
Website Content Crawler
scrape.ly/store/querystone/website-content-crawlerAIDeveloper tools
1 monthly user

Scrape GitHub repositories from search queries, Trending, topics, users, organisations and repository URLs: stars, forks, watchers, open issues, language, topics, license, homepage, dates and stars gained today. No login or token needed.
Turn GitHub search, Trending, topics and user or organisation pages into a clean spreadsheet of repositories. Every row has stars, forks, open issues, language, topics, license, homepage, owner and the created, updated and pushed dates. Trending rows add the stars gained today, this week or this month. No GitHub account or token needed, and it costs $0.80 per 1,000 repositories.
llm or rag.web scraping or language:rust stars:>1000), and/or paste GitHub URLs (repositories, users, organisations, topics, Trending or search pages), and/or add topics.| Field | What it does |
|---|---|
searchQueries | GitHub search text, qualifiers allowed (topic:cli created:>2024-01-01, org:microsoft) |
startUrls | Repository, user, organisation, topic, Trending or search URLs (owner/repo shorthand works) |
topics | Topic tags such as machine-learning |
maxResults | Total repositories to save (0 = no limit) |
maxResultsPerSource | Cap per query, topic, user or Trending page |
scrapeTrending, trendingLanguages, trendingSince, trendingSpokenLanguage | GitHub Trending options |
language, minStars, maxStars, pushedAfter, pushedBefore, createdAfter, createdBefore, license, excludeArchived, includeForks | Filters |
sortBy, sortOrder | Best match, stars, forks, recently updated or help-wanted issues |
includeDetails | Adds real watcher count, fork network size and fork parent |
includeReadme | Adds the README text |
{
"searchQueries": ["web scraping", "language:rust stars:>5000"],
"startUrls": ["https://github.com/vercel", "https://github.com/trending/python?since=weekly", "psf/requests"],
"topics": ["llm"],
"maxResults": 200,
"minStars": 100,
"pushedAfter": "2026-01-01",
"sortBy": "stars"
}
| Field | Description |
|---|---|
fullName, name, owner, ownerType, url | Who and where |
description, homepage, topics, language, license | What it is |
stars, forks, openIssues, watchers | Popularity (watchers with Include watchers) |
createdAt, updatedAt, pushedAt, lastUpdated | Activity dates (ISO 8601) |
isFork, isArchived, isTemplate, defaultBranch, sizeKb | Repository flags |
starsToday, starsGrowthPercent, trendingRank, trendingPeriod, builtBy | Trending data |
rank, source, sourceInput | Position and the input that found it |
readmeContent | README text (with Include README) |
Example row from a test run (trimmed):
{
"id": 529502,
"fullName": "scrapy/scrapy",
"owner": "scrapy",
"ownerType": "Organization",
"url": "https://github.com/scrapy/scrapy",
"description": "Scrapy, a fast high-level web crawling & scraping framework for Python.",
"homepage": "https://scrapy.org",
"stars": 64807,
"forks": 12002,
"openIssues": 246,
"language": "Python",
"topics": ["crawler", "crawling", "framework", "python", "scraping", "web-scraping"],
"license": "BSD-3-Clause",
"isFork": false,
"isArchived": false,
"createdAt": "2010-02-22T02:01:14Z",
"pushedAt": "2026-10-14T16:21:55Z",
"rank": 1,
"source": "search",
"sourceInput": "web scraping"
}
A Trending row also carries (sample values):
{
"trendingRank": 1,
"trendingPeriod": "daily",
"starsToday": 1520,
"starsGrowthPercent": 4.2,
"builtBy": [{"username": "example-dev", "avatar": "https://avatars.githubusercontent.com/u/0"}]
}
You pay $0.80 per 1,000 repositories ($0.0008 each), charged only for rows saved to the dataset. Platform usage (a little compute at 256 MB and datacenter proxy traffic) is billed on top and is usually a fraction of a cent per run.
Example: 1,000 repositories ≈ $0.80 plus about $0.01 of usage.
Is it legal to scrape GitHub? The actor reads only public repository data that GitHub shows to anyone without logging in. Check GitHub's terms and your local rules for your use case, especially before republishing data.
Do I need a GitHub account, token or my own proxy? No. Datacenter proxies are on by default and each proxy session has its own GitHub rate limit, so the actor rotates sessions when GitHub slows it down.
How many results can I get? As many as GitHub has. Searches with more than 1,000 matches are split by star range (when sorted by stars) or by creation date, so 10,000+ results per query are possible. Trending shows about 10 to 25 repositories per language and period.
Why is a field empty? Many repositories have no homepage, license or topics. watchers, networkCount and parentFullName are filled only with Include watchers turned on, and readmeContent only with Include README. Trending fields are filled only for Trending rows.
Can I schedule it or use the API? Yes. Schedule a daily Trending run, or start runs over the API and read the dataset as JSON or CSV.
Can I combine inputs? Yes. Queries, URLs, topics and Trending can be mixed in one run; a repository found twice is saved once.
watchers in GitHub's sense (people subscribed to notifications) needs one extra lookup per repository, so Include watchers makes big runs slower.Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchQueriesarrayOptionalSearch queries
Words to search for, exactly as you would type them into GitHub's search box. GitHub qualifiers work too, for example language:rust stars:>1000, topic:cli created:>2024-01-01 or org:microsoft. A github.com/search URL is accepted as well.
startUrlsarrayOptionalGitHub URLs
Repository URLs (https://github.com/owner/repo or just owner/repo), user or organisation pages (https://github.com/vercel lists all their repositories), topic pages (https://github.com/topics/llm), Trending pages (https://github.com/trending/python?since=weekly) or search result URLs.
topicsarrayOptionalTopics
GitHub topic tags such as machine-learning or react. Each topic returns the repositories tagged with it, most-starred first unless you choose another sort.
maxResultsintegerOptionaldefault 20Max results
Maximum number of repositories to save across all inputs. Use 0 for no limit (up to 100,000). Queries with more than 1,000 matches are split automatically, so you are not stuck at GitHub's 1,000-result cap.
maxResultsPerSourceintegerOptionaldefault 0Max results per input
Cap for each single query, topic, user, Trending page or the list of repository URLs. 0 means no per-input cap.
Read github.com/trending, with the stars gained in the period and the top contributors of each repository.
scrapeTrendingbooleanOptionaldefault falseScrape GitHub Trending
Also save the repositories on GitHub Trending (about 10 to 25 per language and period).
trendingLanguagesarrayOptionalTrending languages
Programming languages to read Trending for, such as python, typescript, c++ or jupyter notebook. Leave empty for all languages.
trendingSinceenumOptionaldefault "daily"Trending period
Trending today, this week or this month. Also decides what Stars today means.
trendingSpokenLanguagestringOptionalSpoken language
Optional two-letter spoken language code for Trending, for example en, zh or es.
Optional. Filters are added to searches, topics and user lists as GitHub qualifiers, and checked on Trending and repository URLs. Leave empty to keep everything.
languagestringOptionalProgramming language
Keep only repositories whose main language is this one, for example Python or TypeScript.
minStarsintegerOptionalMin stars
Keep repositories with at least this many stars.
maxStarsintegerOptionalMax stars
Keep repositories with at most this many stars.
pushedAfterstringOptionalPushed after
Keep repositories with a commit pushed on or after this date (YYYY-MM-DD, or relative like 30 days).
pushedBeforestringOptionalPushed before
Keep repositories whose last push is on or before this date.
createdAfterstringOptionalCreated after
Keep repositories created on or after this date.
createdBeforestringOptionalCreated before
Keep repositories created on or before this date.
licensestringOptionalLicense
Keep repositories under this license, as a GitHub license key such as mit, apache-2.0 or gpl-3.0.
excludeArchivedbooleanOptionaldefault falseSkip archived repositories
Leave out repositories their owners have archived (read-only).
includeForksbooleanOptionaldefault falseInclude forks
GitHub search leaves forks out by default. Turn this on to include them in searches, topics and user lists.
Order of search results and optional per-repository extras.
sortByenumOptionaldefault "best-match"Sort by
Order of search results. Topics and user lists default to most stars when Best match is chosen.
sortOrderenumOptionaldefault "desc"Sort order
Descending puts the highest numbers or newest first.
includeDetailsbooleanOptionaldefault falseInclude watchers and fork network
Look up each repository once more to add the real watcher count (people subscribed to notifications), the fork network size and the parent of forks. Slower on big runs.
includeReadmebooleanOptionaldefault falseInclude README
Save the README text of each repository (Markdown, up to 200,000 characters).
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies are the default. Each proxy session gets its own GitHub rate limit, so large runs rotate sessions automatically.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| id | integer | null | GitHub repository id |
| fullName | string | null | owner/name |
| name | string | null | Repository name |
| owner | string | null | Owner login |
| ownerType | string | null | User or Organization |
| ownerUrl | string | null | Owner profile URL |
| ownerAvatar | string | null | Owner avatar image |
| url | string | null | Repository URL |
| description | string | null | Repository description |
| homepage | string | null | Project website set on the repository |
| stars | integer | null | Stars |
| forks | integer | null | Forks |
| watchers | integer | null | Watchers subscribed to notifications (with Include watchers) |
| openIssues | integer | null | Open issues and pull requests |
| language | string | null | Main programming language |
| topics | array | null | Topic tags |
| license | string | null | SPDX license id |
| licenseName | string | null | License name |
| defaultBranch | string | null | Default branch |
| sizeKb | integer | null | Repository size in KB |
| isFork | boolean | null | Is a fork |
| isArchived | boolean | null | Is archived |
| isTemplate | boolean | null | Is a template repository |
| hasIssues | boolean | null | Issues enabled |
| hasWiki | boolean | null | Wiki enabled |
| hasPages | boolean | null | GitHub Pages enabled |
| hasDiscussions | boolean | null | Discussions enabled |
| visibility | string | null | public |
| createdAt | string | null | Created at (ISO 8601) |
| updatedAt | string | null | Last updated at |
| pushedAt | string | null | Last push at |
| lastUpdated | string | null | Latest of pushed and updated |
| networkCount | integer | null | Fork network size (with Include watchers) |
| parentFullName | string | null | Parent repository of a fork (with Include watchers) |
| rank | integer | null | Position within its input (search, topic, Trending) |
| trendingRank | integer | null | Position on GitHub Trending |
| trendingPeriod | string | null | daily, weekly or monthly |
| starsToday | integer | null | Stars gained in the Trending period |
| starsGrowthPercent | number | null | Stars gained in the period as a percent of the stars before |
| builtBy | array | null | Top contributors shown on Trending |
| readmeContent | string | null | README text (with Include README) |
| source | string | null | search, topic, owner, trending or repository |
| sourceInput | string | null | The query, topic, user or URL that found it |
| scrapedAt | string | null | When it was scraped |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Repository | One GitHub repository saved to the dataset. | $0.0008 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('querystone/github-scraper').call({
"searchQueries": [
"web scraping"
],
"startUrls": [],
"topics": [],
"maxResults": 20,
"trendingLanguages": [],
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run querystone/github-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=querystone/github-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
GitHub's weekly trending repositories for Python.
Search repositories by language, stars and license.
Repositories for a topic tag, including their README.
All repositories of an organization with extra details.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.