Repology API
Free Repology API with no key: which version of any package each Linux distribution ships, across 300+ repositories. Ideal for packaging work. Tested.
Endpoint tested and returned HTTP 200 on 20 Aug 2026
What is the Repology API?
Repology is a free, key-free API tracking which version of a given software package each of more than 300 Linux distributions and repositories currently ships, along with maintainer and status information.
Repology answers a question nothing else does well: is my package outdated in Debian but current in Arch? It monitors 300+ repositories and normalises package naming across all of them.
For upstream maintainers the `status` field is the useful part — it flags where your software is `outdated`, which distributions are `newest`, and where packaging has been abandoned. That is otherwise tedious to establish manually.
Quick facts
- Base URL
https://repology.org/api/v1- Authentication
- No API key, but Repology requires a descriptive User-Agent identifying your tool.
- Rate limit
- Roughly 1 request per second; Repology asks that bulk consumers use the database dumps instead.
- Pricing
- Free and open source.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the Repology API
Every request below was executed against the live API on 20 Aug 2026, and the response shown is the real body it returned — not an illustration.
1. Check package versions across distributions
GET https://repology.org/api/v1/project/wget
curl 'https://repology.org/api/v1/project/wget'const res = await fetch("https://repology.org/api/v1/project/wget");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://repology.org/api/v1/project/wget", timeout=20)
res.raise_for_status()
print(res.json())[
{
"repo": "aix_osp",
"srcname": "wget",
"visiblename": "wget",
"version": "1.19.4",
"origversion": "1.19.4-1",
"status": "legacy",
"vulnerable": true
},
{
"repo": "fedora_43",
"subrepo": "updates",
"srcname": "wget2",
"binnames": [
"wget2",
"wget2-libs",
"wget2-devel",
"wget2-wget"
],
"visiblename": "wget2",
"version": "2.2.1",
"origversion": "2.2.1-1.fc43",
"status": "newest",
"summary": "An advanced file and recursive website downloader",
"licenses": [
"GPL-3.0-or-later AND LGPL-3.0-or-later AND GFDL-1.3-or-later"
],
"categories": [
"Unspecified"
]
},
{
"repo": "fedora_44",
"subrepo": "release",
"srcname": "wget2",
"binnames": [
"wget2",
"wget2-libs",
"wget2-devel",
"wget2-wget"
],
"visiblename": "wget2",
"version": "2.2.1",
"origversion": "2.2.1-2.fc44",
"status": "newest",
"summary": "An advanced file and recursive website downloader",
"licenses": [
"GPL-3.0-or-later AND LGPL-3.0-or-later AND GFDL-1.3-or-later"
],
"categories": [
"Unspecified"
]
},
{
"repo": "fedora_rawhide",
"subrepo": "development",
"srcname": "wget2",
"binnames": [
"wget2",
"wget2-libs",
"wget2-devel",
"wget2-wget"
],
"visiblename": "wget2",
"version": "2.2.1",
"origversion": "2.2.1-3.fc45",
"status": "newest",
"summary": "An advanced file and recursive website downloader",
"licenses": [
"GPL-3.0-or-lateParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
project/<name> | path | Required | Project name as normalised by Repology. project/wget |
projects/ | path | Optional | List projects with filters. projects/?inrepo=debian_12 |
inrepo / outdated / maintainer | query | Optional | Filters on the projects endpoint. outdated=1 |
Response fields
repostring- Repository identifier such as debian_12 or arch.
srcname / binnamestring- Package name within that repository.
versionstring- Version currently packaged there.
statusstring- newest, outdated, devel, legacy or ignored.
maintainersarray- Package maintainer email addresses.
summarystring- Package description from that repository.
What you can build with the Repology API
- Check whether your software is outdated in any distribution
- Find which distributions package a given tool
- Identify packaging gaps for a project you maintain
- Compare version availability before choosing a base image
Common errors and how to fix them
403 or blocked
Missing or generic User-Agent.
Fix: Repology requires a descriptive User-Agent naming your tool; it enforces this.
Project name not found
Names are normalised by Repology, not upstream.
Fix: Search on the website first — python3 may be normalised to `python` for example.
429
Exceeding roughly one request per second.
Fix: Use the published database dumps for bulk analysis rather than crawling the API.
Repology API — frequently asked questions
Is the Repology API free?
Yes, free with no API key, but it requires a descriptive User-Agent identifying your tool and limits you to about one request per second.
What problem does it solve?
Knowing which version of a package each distribution ships. It monitors 300+ repositories and normalises naming, which is otherwise a manual research task.
What does the status field mean?
How that repository's version compares to the newest known — newest, outdated, devel for pre-release, legacy for deliberately old branches, or ignored.
Can I use it for bulk analysis?
Not via the API. Repology publishes database dumps for that; crawling the API at volume will get you rate limited.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
CSV to JSON Converter
Convert CSV to a JSON array of objects online. Header-row detection, comma/semicolon/tab delimiters and pretty-printed output — 100% in your browser.
Alternatives to Repology API
If Repology does not fit, these developer & testing apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.
| API | What it does | Auth | CORS | Last verified |
|---|---|---|---|---|
| GitHub REST API | GitHub REST API with no key for public data: repository details, users, issues, releases and commits. 60 req/hour unauthenticated, 5,000 with a token. | No key | Yes | 19 Aug 2026 |
| JSONPlaceholder | Free fake REST API for testing and prototyping. Posts, comments, users and todos with full GET, POST, PUT and DELETE support. No key. Real curl examples. | No key | Yes | 19 Aug 2026 |
| Postman Echo | Postman Echo reflects your HTTP request back as JSON: headers, body, query params and auth. Free, no key, ideal for debugging clients. Real POST example. | No key | No | 19 Aug 2026 |
| DummyJSON | Free fake REST API with realistic products, users, carts, recipes and auth. Supports search, pagination, sorting and POST. No key. Tested GET and POST examples. | No key | Yes | 19 Aug 2026 |
| restful-api.dev | Free fake REST API with real GET, POST, PUT, PATCH and DELETE support and no key. Ideal for tutorials, HTTP client demos and integration tests. Live example included. | No key | Yes | 21 Aug 2026 |
| RIPEstat | Query internet routing data from RIPE NCC: announcing ASNs, prefixes, whois, abuse contacts and routing history. No key. Verified example and envelope guide. | No key | Yes | 21 Aug 2026 |
Repology is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 20 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.