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 2026-08-20
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 2026-08-20, 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.
Repology is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-20; always check the official documentation before relying on this API in production, as terms and limits can change.