Data refreshed 5 October 2026, 22:59 UTC
Dataset field reference: every field in the Top100 JSONL files
The Top100 dataset is 30 newline-delimited JSON files — 3,000 GitHub repository records in total — where every line is the complete, untouched repository object returned by GitHub's Search API.
Each JSONL file holds 100 records — one per repository — and each record is the
complete, untouched JSON object returned by GitHub's Search API. The files are
UTF-8 encoded newline-delimited JSON: one object per line, no wrapping array, no
trailing commas, no reshaping. That makes them streamable with
jq, loadable by pandas.read_json(lines=True), and
queryable in place by DuckDB and BigQuery.
Files
| Language | File | Records | Size | Download |
|---|---|---|---|---|
| TypeScript | data/JSONL/typescript.jsonl | 100 | 559.7 KB | download |
| Python | data/JSONL/python.jsonl | 100 | 586.8 KB | download |
| JavaScript | data/JSONL/javascript.jsonl | 100 | 562.9 KB | download |
| Java | data/JSONL/java.jsonl | 100 | 562.2 KB | download |
| C# | data/JSONL/c#.jsonl | 100 | 568.3 KB | download |
| C++ | data/JSONL/c++.jsonl | 100 | 557.1 KB | download |
| PHP | data/JSONL/php.jsonl | 100 | 553.0 KB | download |
| Shell | data/JSONL/shell.jsonl | 100 | 563.4 KB | download |
| C | data/JSONL/c.jsonl | 100 | 547.7 KB | download |
| Go | data/JSONL/go.jsonl | 100 | 547.9 KB | download |
| Rust | data/JSONL/rust.jsonl | 100 | 546.8 KB | download |
| Ruby | data/JSONL/ruby.jsonl | 100 | 546.5 KB | download |
| Kotlin | data/JSONL/kotlin.jsonl | 100 | 557.3 KB | download |
| Swift | data/JSONL/swift.jsonl | 100 | 558.0 KB | download |
| Dart | data/JSONL/dart.jsonl | 100 | 569.3 KB | download |
| HTML | data/JSONL/html.jsonl | 100 | 572.4 KB | download |
| CSS | data/JSONL/css.jsonl | 100 | 562.4 KB | download |
| SQL | data/JSONL/sql.jsonl | 100 | 588.1 KB | download |
| Scala | data/JSONL/scala.jsonl | 100 | 550.0 KB | download |
| Lua | data/JSONL/lua.jsonl | 100 | 555.8 KB | download |
| Groovy | data/JSONL/groovy.jsonl | 100 | 577.2 KB | download |
| Objective-C | data/JSONL/objective-c.jsonl | 100 | 559.8 KB | download |
| Perl | data/JSONL/perl.jsonl | 100 | 549.5 KB | download |
| Haskell | data/JSONL/haskell.jsonl | 100 | 546.8 KB | download |
| Assembly | data/JSONL/assembly.jsonl | 100 | 709.2 KB | download |
| R | data/JSONL/r.jsonl | 100 | 545.3 KB | download |
| Julia | data/JSONL/julia.jsonl | 100 | 567.1 KB | download |
| Elixir | data/JSONL/elixir.jsonl | 100 | 549.6 KB | download |
| PowerShell | data/JSONL/powershell.jsonl | 100 | 577.6 KB | download |
| Nix | data/JSONL/nix.jsonl | 100 | 551.9 KB | download |
Every field, documented
| Field | Type | What it is |
|---|---|---|
| Identity | ||
id | integer | GitHub's numeric repository ID. Stable across renames and transfers. |
node_id | string | GraphQL global node ID for the repository. |
name | string | Repository name without the owner, e.g. top100. |
full_name | string | owner/repo. The canonical identifier used in every URL and API path on this site. |
private | boolean | Always false here: the Search API only returns public repositories for an unauthenticated caller. |
visibility | string | Always public. |
owner | object | The owning account: login, id, type (User or Organization), avatar URLs and API URLs. |
| URLs | ||
html_url | string | Human URL, e.g. https://github.com/owner/repo. |
url | string | API URL, e.g. https://api.github.com/repos/owner/repo. |
*_url | string | API endpoints for sub-resources: forks_url, issues_url, pulls_url, labels_url, releases_url, deployments_url, languages_url, stargazers_url, contributors_url, commits_url, contents_url, compare_url, archive_url, downloads_url, branches_url, tags_url, blobs_url, git_refs_url, trees_url, statuses_url, keys_url, collaborators_url, teams_url, hooks_url, issue_events_url, events_url, assignees_url, comments_url, issue_comment_url, commits_url, git_commits_url, merges_url, milestones_url, subscription_url, subscribers_url. Templates contain placeholders such as {/branch} or {/sha}. |
git_url | string | git:// URL. |
ssh_url | string | SSH clone URL. |
clone_url | string | HTTPS clone URL. |
svn_url | string | Subversion URL. |
homepage | string|null | Project website declared in the repository settings. Empty for most repositories. |
mirror_url | string|null | Set only for mirrored repositories. |
| Timestamps (ISO 8601, UTC) | ||
created_at | string | When the repository was created. Useful for age-normalising star counts. |
updated_at | string | When any repository metadata last changed (description, topics, stars, …). |
pushed_at | string | When code was last pushed. For archived or abandoned repositories this can be years older than updated_at. |
| Counts | ||
stargazers_count | integer | Number of stars. The ranking key for every list on this site. |
watchers_count | integer | Number of users who starred the repository. GitHub returns the same value as stargazers_count here; the true subscriber count is subscribers_count, which this endpoint does not return. |
forks_count | integer | Number of forks. |
open_issues_count | integer | Open issues plus open pull requests. |
size | integer | Repository size in kilobytes, as GitHub accounts it. Lags behind aggressive history rewrites. |
forks / open_issues / watchers | integer | Duplicates of the *_count fields, kept because the raw object contains both spellings. |
| Flags | ||
has_issues | boolean | Whether the issues tab is enabled. |
has_projects | boolean | Whether the projects tab is enabled. |
has_downloads | boolean | Whether the downloads tab is enabled. |
has_wiki | boolean | Whether the wiki is enabled. |
has_pages | boolean | Whether GitHub Pages is enabled for the repository. |
has_discussions | boolean | Whether discussions are enabled. |
archived | boolean | Whether the repository is read-only and archived. |
disabled | boolean | Whether GitHub has disabled the repository. |
allow_forking | boolean | Whether forking is permitted. |
is_template | boolean | Whether the repository can be used as a template. |
web_commit_signoff_required | boolean | Whether commits must be signed off. |
has_pull_requests | boolean | Whether pull requests are enabled. |
pull_request_creation_policy | string | Who may open pull requests (all or collaborators_only). |
| Classification | ||
license | object|null | {key, name, spdx_id, url, node_id}. spdx_id is the machine-readable identifier (MIT, Apache-2.0, GPL-3.0, …); NOASSERTION means GitHub could not map the licence to an SPDX ID. |
language | string|null | GitHub's detected primary language. Every list on this site filters on this field. |
topics | array<string> | Repository topics — the closest thing GitHub has to keywords, and a useful join key for your own analysis. |
default_branch | string | Usually main or master. |
| Search API artifacts | ||
score | number | The Search API's internal relevance score for this result. With sort=stars it is mostly monotonic, but it is not a meaningful quantity — ignore it. |
permissions | object | The calling token's permissions on this repository (admin, push, pull). An artifact of the authenticated request, not repository metadata. |
Fields that are not in these files
The single-repository endpoint returns a few extra fields the Search API omits:
subscribers_count, network_count, the
parent and source objects for forks,
code_of_conduct, security_and_analysis and
temp_clone_token. Set ENRICH_WITH_REPO_DETAILS = True in
scripts/fetch_top_repos.py if you need them — at the cost of roughly
100 extra API requests per language.
Load it
Download and query
# one language
curl -sSL -o python.jsonl \
https://raw.githubusercontent.com/havaianasdestruido/top100/main/data/JSONL/python.jsonl
# the current leaders, straight from the file
jq -r '.full_name + " " + (.stargazers_count|tostring)' python.jsonl | head
# SQL over the raw file, no import step
duckdb -c "SELECT full_name, stargazers_count, license.spdx_id
FROM read_json_auto('python.jsonl')
ORDER BY stargazers_count DESC LIMIT 10;"
# Python
import json
repos = [json.loads(line) for line in open("python.jsonl", encoding="utf-8")]
print(repos[0]["full_name"], repos[0]["stargazers_count"])
Because the files are static, they are friendly to caches, mirrors and Hugging Face dataset mirrors: there is nothing to authenticate and no rate limit to respect.
Example record
The first line of data/JSONL/python.jsonl, pretty-printed:
{
"id": 54346799,
"node_id": "MDEwOlJlcG9zaXRvcnk1NDM0Njc5OQ==",
"name": "public-apis",
"full_name": "public-apis/public-apis",
"private": false,
"owner": {
"login": "public-apis",
"id": 51121562,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjUxMTIxNTYy",
"avatar_url": "https://avatars.githubusercontent.com/u/51121562?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/public-apis",
"html_url": "https://github.com/public-apis",
"followers_url": "https://api.github.com/users/public-apis/followers",
"following_url": "https://api.github.com/users/public-apis/following{/other_user}",
"gists_url": "https://api.github.com/users/public-apis/gists{/gist_id}",
"starred_url": "https://api.github.com/users/public-apis/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/public-apis/subscriptions",
"organizations_url": "https://api.github.com/users/public-apis/orgs",
"repos_url": "https://api.github.com/users/public-apis/repos",
"events_url": "https://api.github.com/users/public-apis/events{/privacy}",
"received_events_url": "https://api.github.com/users/public-apis/received_events",
"type": "Organization",
"user_view_type": "public",
"site_admin": false
},
"html_url": "https://github.com/public-apis/public-apis",
"description": "A collective list of free APIs",
"fork": false,
"url": "https://api.github.com/repos/public-apis/public-apis",
"forks_url": "https://api.github.com/repos/public-apis/public-apis/forks",
"keys_url": "https://api.github.com/repos/public-apis/public-apis/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/public-apis/public-apis/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/public-apis/public-apis/teams",
"hooks_url": "https://api.github.com/repos/public-apis/public-apis/hooks",
"issue_events_url": "https://api.github.com/repos/public-apis/public-apis/issues/events{/number}",
"events_url": "https://api.github.com/repos/public-apis/public-apis/events",
"assignees_url": "https://api.github.com/repos/public-apis/public-apis/assignees{/user}",
"branches_url": "https://api.github.com/repos/public-apis/public-apis/branches{/branch}",
… (truncated for display)
Licensing and attribution
The repository metadata is GitHub's, served through GitHub's public API, and each
listed project keeps its own licence — check the license field
before reusing anyone's code. The collection script, the generated tables and this
website are published under the MIT licence in the
repository. If you republish the data,
link back here and credit GitHub as the source.