GitHub - repository page

v1.0.1

by extracthub Updated 11/6/2026 github.com

Public GitHub repository page: owner, name, description, website, topics, stars, forks, watchers, license, default branch, commits, releases, open issues and pull requests, creation date and flags.

Extractor ID

@1 follows fixes and added fields. to freeze the output.

Try in playground
Price
$0.0025 / request premium Also charged when the request fails after the page was fetched. Pricing
Health
healthy v1.0.1
Request settings
  • GET
  • Proxy
  • No JS rendering
HTML
https://github.com/microsoft/vscode
Loading source preview…

What it returns

result.extracted is a JSON object with these top-level fields (from the current configuration; every released version keeps the schema it was released with, see the changes under Versions and health). A sample is in the extracted data panel above.

Field Type
fullName string
owner string
name string
repoId number
description string
website string
topics string[]
stars number
forks number
watchers number
license string
licenseSpdx string
defaultBranch string
latestCommitSha string
commitCount number
releaseCount number
tagCount number
openIssues number
openPullRequests number
createdAt string
isFork boolean
isArchived boolean
isTemplate boolean
isOrg boolean
ownerAvatar string

How to call GitHub - repository page

Pass the URL of a github.com page and this extractor's pinned id. Authenticate every request with your API key in the X-API-Key header (a test key, exth_test_..., returns simulated results at no cost). Every parameter and error code is described in the API reference.

Realtime: one URL, result in the response

GET https://api.extracthub.io/api/extractor/extract

Authentication required via X-API-Key header

Parameter Type Required Description
target_url string Yes The URL to scrape and extract data from
extractor_id string Yes This extractor's ID with a version pin: @extracthub1/github-repo@1. Use @1 for the latest 1.x or @1.2.3 for an exact version.
return_raw_html boolean No Include raw HTML in response (default: false)
async_fallback boolean No Default true: a request still queued after the wait limit becomes an async job (202 with job_id). false: 503 queue_timeout instead
webhook_url string No HTTPS URL notified if the request becomes a job (job.completed / job.failed)

Code examples

curl -X GET "https://api.extracthub.io/api/extractor/extract?target_url=https://example.com&extractor_id=%40extracthub1%2Fgithub-repo%401" \
  -H "X-API-Key: YOUR_API_KEY"

Example response

Shape of a 200 answer (placeholder values). metadata also carries costUsd, and the X-Extractor-Version header names the exact version that ran. A busy queue answers 202 with job_id, status_url and result_url; poll GET /api/extractor/jobs/{id} (or cancel it with POST /api/extractor/jobs/{id}/cancel).

{
  "success": true,
  "result": {
    "extracted": {
      "fullName": "…",
      "owner": "…",
      "name": "…",
      "repoId": 0,
      "description": "…",
      "website": "…",
      "topics": [
        "…"
      ],
      "stars": 0,
      "forks": 0,
      "watchers": 0,
      "license": "…",
      "licenseSpdx": "…",
      "defaultBranch": "…",
      "latestCommitSha": "…",
      "commitCount": 0,
      "releaseCount": 0,
      "tagCount": 0,
      "openIssues": 0,
      "openPullRequests": 0,
      "createdAt": "…",
      "isFork": false,
      "isArchived": false,
      "isTemplate": false,
      "isOrg": false,
      "ownerAvatar": "…"
    },
    "metadata": {
      "url": "https://example.com",
      "useProxy": true,
      "renderJs": false,
      "scrapedAt": "2026-01-01T12:00:00.000Z"
    }
  }
}

Batch: many URLs in one request

The batch runs in the background with the version resolved once at submission. Read the results as NDJSON pages with a stable cursor; succeeded URLs are charged, and failed URLs only when their scrape reached the provider. If your credit runs out the batch pauses and resumes when credit is available, and POST /api/extractor/batch/{id}/cancel stops it. Signed webhooks report batch.completed, batch.failed and batch.paused.

curl -X POST "https://api.extracthub.io/api/extractor/batch" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "extractor_id": "@extracthub1/github-repo@1",
    "targets": [
      { "url": "https://github.com/..." },
      { "url": "https://github.com/..." }
    ],
    "webhook_url": "https://your-app.example/webhooks/extracthub"
  }'

# Progress, then results as NDJSON pages (cursor = last index)
curl "https://api.extracthub.io/api/extractor/batch/BATCH_ID" -H "X-API-Key: YOUR_API_KEY"
curl "https://api.extracthub.io/api/extractor/batch/BATCH_ID/results" -H "X-API-Key: YOUR_API_KEY"

In a pipeline

In the dashboard's pipeline builder, add GitHub - repository page as an extractor node and set its version pin to 1 (or exactly 1.0.1). A previous node can feed it the URLs it extracts; pipelines run manually or on a cron schedule, report progress live and export JSON, CSV or NDJSON.

With an AI agent (MCP)

Connect Claude Code, Claude Desktop or Cursor to the ExtractHub MCP server (https://api.extracthub.io/mcp, your API key as a Bearer token) and ask in plain language. The agent calls extract with this extractor's pinned id, or create_batch for many URLs, at the same price and limits as the API. Use a test key to try it without credit. Set up the MCP server.

Ask your agent
Use ExtractHub to extract https://github.com/... with @extracthub1/github-repo@1
Tool call it makes
{
  "tool": "extract",
  "arguments": {
    "extractor_id": "@extracthub1/github-repo@1",
    "url": "https://github.com/..."
  }
}

Versions and health

Each version is immutable. @N resolves to the newest non-yanked version of major N; a deprecated major keeps working until its sunset date and its responses carry Deprecation and Sunset headers. Health comes from scheduled checks of the released versions.

@1
latest 1.0.1
active healthy
  1. v1.0.1 active healthy Released 11/6/2026

    Fetch through the scraping proxy for more reliable results. Output unchanged.

  2. v1.0.0 active healthy Released 11/6/2026

GitHub - repository page: frequently asked questions

Is GitHub - repository page a github.com scraper?

Yes. GitHub - repository page is an ExtractHub extractor: a saved, versioned web scraper for github.com pages that returns the page as structured JSON. Call it as a github.com scraper API with extractor_id=@extracthub1/github-repo@1; it never changes under you, because every released version is immutable.

What data does GitHub - repository page return?

It returns a JSON object with 25 top-level fields: fullName (string), owner (string), name (string), repoId (number), description (string), website (string), topics (string[]), stars (number), forks (number), watchers (number), license (string), licenseSpdx (string), defaultBranch (string), latestCommitSha (string), commitCount (number), releaseCount (number), tagCount (number), openIssues (number), openPullRequests (number), createdAt (string), isFork (boolean), isArchived (boolean), isTemplate (boolean), isOrg (boolean) and ownerAvatar (string). The extracted data panel on this page shows a sample.

How do I call GitHub - repository page?

Send GET or POST https://api.extracthub.io/api/extractor/extract with your API key in the X-API-Key header, extractor_id=@extracthub1/github-repo@1 and the URL of a github.com page as the target. For many URLs use POST https://api.extracthub.io/api/extractor/batch, and in a pipeline add it as an extractor node pinned to 1.

Can an AI agent use GitHub - repository page?

Yes. Connect Claude Code, Claude Desktop, Cursor or another MCP client to the ExtractHub MCP server at https://api.extracthub.io/mcp with your API key, then ask it to extract a github.com page: the agent calls the extract tool with extractor_id=@extracthub1/github-repo@1 (or create_batch for many URLs), at the same price as the API.

Which version should I pin?

Pin the major (@extracthub1/github-repo@1) to receive fixes and added fields automatically, or the exact version (@extracthub1/github-repo@1.0.1) to freeze the output. A breaking schema change is always released as a new major, so a major pin never loses or retypes a field.

Does it render JavaScript or use a proxy?

No, it fetches the HTML without JavaScript rendering and it goes through a proxy. Calls are charged at the premium tier (through the scraping proxy, no JavaScript). These settings are part of each released version; JavaScript rendering, XHR capture and browser actions always use the proxy.

More web scrapers in the scraper catalog and in Other.