Better Fetch

GitHub Scraper

Extract public GitHub repository, profile, repository search, and trending repository metadata, including stars, forks, topics, languages, licenses, dates, follower counts, and trend velocity when visible.

Developer Toolsv0.1.0~1 credit/runApify StoreSource on GitHub

Overview

GitHub Scraper gives agents a structured way to inspect public open-source activity without managing a GitHub integration. Choose repository, profile, search, or trending mode and the tool normalizes public GitHub metadata into compact records for research, competitive intelligence, sourcing, technical due diligence, DevRel monitoring, and newsletter curation.

Last validated: Jul 3, 2026

Playground

Extraction mode: repo, profile, search, or trending.

Repository search sort field.

Repository search sort direction.

GitHub repository search query. Required for search mode.

GitHub Trending period for trending mode.

Optional GitHub Trending language filter, such as typescript, python, go, or rust.

Maximum repository records to return for search or trending modes.

Owner/repo slug or GitHub repository URL. Required for repo mode.

GitHub username or profile URL. Required for profile mode.

Sign in to run this tool

~1 credit per run · runs against your account

Input

mode"repo" | "profile" | "search" | "trending"default: "repo"

Extraction mode: repo, profile, search, or trending.

sort"stars" | "forks" | "updated"default: "stars"

Repository search sort field.

order"desc" | "asc"default: "desc"

Repository search sort direction.

querystring

GitHub repository search query. Required for search mode.

since"daily" | "weekly" | "monthly"default: "daily"

GitHub Trending period for trending mode.

languagestring

Optional GitHub Trending language filter, such as typescript, python, go, or rust.

max_resultsintegerdefault: 10

Maximum repository records to return for search or trending modes.

repo_or_urlstring

Owner/repo slug or GitHub repository URL. Required for repo mode.

username_or_urlstring

GitHub username or profile URL. Required for profile mode.

Output

modestringrequired

Extraction mode used

countintegerrequired

Number of returned records

itemsobject[]required

Public GitHub repository, profile, search, or trending records

source_urlstringrequired

Fetched GitHub API or page URL

Examples

react-repo

{
  "mode": "repo",
  "repo_or_url": "facebook/react"
}

Use cases

Open-source momentum checks

Fetch stars, forks, languages, topics, licenses, and update dates for a repository before an agent compares project health or adoption.

Developer and organization research

Read public profile fields such as bio, company, location, follower count, website, and public repo count for sourcing or partner research.

Trend discovery

Pull GitHub Trending repositories by language and period or search repositories by keyword, sorted by stars, forks, or update date.

FAQ

Does GitHub Scraper need a GitHub token?

No. Version 0.1 uses public GitHub endpoints and public pages through Better Fetch. It does not access private repositories or authenticated account data.

Can it fetch issues, pull requests, releases, or contributors?

Not yet. Version 0.1 focuses on repository, profile, search, and trending metadata. Issues, pull requests, releases, contributors, README text, and deep pagination should be added as separate validated slices.

Why are results limited?

The unauthenticated GitHub API is rate-limited, and GitHub Trending has a bounded page size. The tool keeps each run small and predictable so it remains reliable for agent workflows.

Use it anywhere

MCP (Claude, Cursor, any client)

# Add the Better Fetch MCP connector (or paste the URL into
# Claude → Settings → Connectors → Add custom connector):
claude mcp add --transport http better-fetch https://betterfetch.co/api/mcp \
  --header "Authorization: Bearer bf_your_key_here"

# Then ask for the tool by name: github_scraper

REST

curl -sS -X POST "https://betterfetch.co/api/tools/github_scraper/run" \
  -H "Authorization: Bearer bf_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"input": {"mode":"repo","repo_or_url":"facebook/react"}}'

Run locally

git clone https://github.com/better-fetch/github-scraper && cd github-scraper && npm i
BETTER_FETCH_API_KEY=bf_your_key_here npx bf-tool run --input '{"mode":"repo","repo_or_url":"facebook/react"}'