Documentation Blog Free tools [email protected]Log in

GitHub repository search API

A GitHub repository search API turns a repo query into rows: owner/name, description, primary language, star count, topics, the archived flag and the last-update time. Send a query — GitHub's own search syntax works, language:go stars:>500 and all — pick best-match, stars or recently-updated order, and get the ranked list back without holding a token.

$0.0005 per delivered repository · $2 free every month · Failed runs never billed

POST /v1/scraper/collectors/github_repos/run
$ curl $QD/github_repos/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{"query": "web scraper", "sort": "stars", "max_results": 20}'
{ "status": "done", "count": 20,
  "results": [
    {
      "repo": "…",
      "owner": "…",
      "name": "…",
      "description": "…" } ],
  "cost": 0.01 }
# 20 repositorys × $0.0005 · nothing delivered, nothing charged
$0.0005 / repository4,000 repositorys on the free $2 every month
Semantic inputquery, sort, country — no URL lists
Up to 50repositorys per run, pagination handled for you
No browserread over HTTP/TLS — cheaper and faster than rendering

What a GitHub repository search API does

The GitHub REST search endpoint throttles unauthenticated callers to ten requests a minute, and even with a token the search window is small enough that a sweep over a popular term exhausts it before you have paged through the matches. This collector reads the same ranking from the server-rendered search page instead, so there is no token to provision, no per-minute search window to back off from, and the only thing you size is how many repositories you want back.

Every row is already typed: stars as an integer, topics as an array, archived as a boolean, updated_at as an ISO timestamp. That is the shape you want for filtering a technology landscape — sort by stars to find the incumbents, sort by updated to drop the abandoned forks — without parsing star counts out of a rendered "1.2k" or guessing whether a repo is still alive.

What one repository looks like

Every delivered repository carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.

FieldTypeWhat it holds
rankinteger1-based position.
repostringowner/name.
ownerstring · nullableOwner login.
namestring · nullableRepository name.
descriptionstring · nullableRepo description.
languagestring · nullablePrimary language.
starsinteger · nullableStar count.
topicsstring[]Repo topics.
archivedbooleanArchived flag.
updated_atstring · nullableLast update (ISO 8601).
urlstringRepository URL.

Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

InputTypeRequiredWhat it does
querystringyesSearch query — GitHub syntax works ("web scraper language:python stars:>100").
sortstringnobest_match (default), stars, or updated. One of: best_match, stars, updated.
countrystringnoISO 3166-1 alpha-2 code — proxy exit geo and Google locale (gl). Omit for the default pool.
max_resultsintegernoHow many repositories to deliver at most (1–50). You pay only for delivered repositories.

Pricing

GitHub repository search API pricing

$0.0005 per delivered repository. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 4,000 repositorys before you spend anything.

$0.0005per delivered repository$0.4 per 1,000 delivered repositorys
4,000 repositoryson the free allowance$2 every month, no card
Zero rowszero chargeblocks, captchas and retries are on us
−30%on volume tiersthe catalog returns your key's price

Pay as you go

$0/mo
  • $2 free credit / month
  • 60 requests / min
  • List unit prices

Starter

$19/mo
  • $15 free credit / month
  • 300 requests / min
  • 10% off unit prices

Scale

$299/mo
  • $250 free credit / month
  • 1,200 requests / min
  • 30% off unit prices

Same wallet, same key and same $2 monthly allowance as every other Data API. Prices are launch pricing read live from the billing config — GET /v1/scraper/collectors returns the price your key actually pays.

Integration

One POST, typed rows

Base URL https://api.quanticdata.io/v1, Bearer auth, the same key as every other Data API. Endpoint: POST /v1/scraper/collectors/github_repos/run.

curl -X POST https://api.quanticdata.io/v1/scraper/collectors/github_repos/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"web scraper","sort":"stars","max_results":20}'

What people build with the GitHub repository search API

Three shapes of work this endpoint was designed around.

Dependency and tooling scouting

Search a problem space, sort by stars, and get the field of libraries that solve it with their language and topics attached — the shortlist an engineer would otherwise assemble tab by tab.

Ecosystem trend tracking

Re-run the same query on a schedule and watch star counts and last-update times move, so a technology that is gaining or going stale shows up as a number rather than a hunch.

Populating a software catalog

Feed queries per language or topic and store owner, description and topics as structured rows, ready to join against your own inventory of what your teams already use.

GitHub repository search API versus rolling your own

The differences that actually cost time when you build this in-house.

DIY scraperThis collector
AuthA personal access token per clientNone — nothing to provision or rotate
Rate ceilingThe API's per-minute search windowThe search page, paginated on our side
Query languageWhatever your client re-implementsGitHub's own syntax, passed straight through

FAQ

Questions we get about the GitHub repository search API.

Something else? Ask us →

Does this use my GitHub token or count against the API?

Neither. It reads the public server-rendered search results page, ten repositories to a page, and paginates for you. There is no token to supply and nothing is drawn from the REST API's search quota, so a broad crawl does not trip the unauthenticated ten-requests-a-minute limit.

Can I use qualifiers like <code>language:</code> and <code>stars:&gt;1000</code>?

Yes. The query is handed to GitHub verbatim, so the full search syntax works — language:python, stars:>1000, topic:, org: and the rest — and you can order the result by best match, stars or last update.

What fields come back per repository?

owner/name, description, primary language, star count, topics, the archived flag, the last-update timestamp and the repo URL. It is repository-level metadata for search and ranking; it does not open each repo to pull forks, issues, contributors or file contents.

Is there a free GitHub repository search API?

Every account gets $2 of credit every month with no card, which is about 4,000 delivered repositorys on this endpoint at $0.0005 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.

How much does one run cost?

Multiply the rows you actually receive by $0.0005. A run capped at 50 repositorys — the maximum for this collector — costs $0.025 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and GET /v1/scraper/collectors returns the price your key actually pays.

Run the GitHub repository search API now

$2 of free credit every month, no card. Your key returns its own prices from GET /v1/scraper/collectors.

Get my free API key
Get my free API key