Repology Lookup
Query package version information from Repology across multiple repositories.
Endpoint
GET /api/v1/repology/:packagePath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
package | string | Yes | Package name to look up |
Response
json
{
"success": true,
"data": {
"package": "curl",
"repositories": [
{
"repo": "nix_unstable",
"version": "8.5.0",
"status": "newest"
},
{
"repo": "debian_12",
"version": "7.88.1",
"status": "outdated"
},
{
"repo": "alpine_edge",
"version": "8.5.0",
"status": "newest"
}
],
"latestVersion": "8.5.0",
"summary": {
"totalRepos": 85,
"newest": 42,
"outdated": 38,
"vulnerable": 5
}
},
"timestamp": "2024-01-15T12:00:00.000Z"
}Response Fields
Repository Object
| Field | Type | Description |
|---|---|---|
repo | string | Repository identifier |
version | string | Package version in this repository |
status | string | Version status: newest, outdated, devel, unique, vulnerable |
Summary Object
| Field | Type | Description |
|---|---|---|
totalRepos | number | Total repositories tracking this package |
newest | number | Repositories with the latest version |
outdated | number | Repositories with outdated versions |
vulnerable | number | Repositories with known vulnerable versions |
Examples
Basic Lookup
bash
curl "https://api.vulnpatch.dev/api/v1/repology/curl"Query OpenSSL Versions
bash
curl "https://api.vulnpatch.dev/api/v1/repology/openssl"Code Examples
javascript
async function checkPackageVersion(packageName) {
const response = await fetch(
`https://api.vulnpatch.dev/api/v1/repology/${packageName}`
);
const { data } = await response.json();
console.log(`Latest version: ${data.latestVersion}`);
console.log(`Tracked in ${data.summary.totalRepos} repositories`);
// Find nixpkgs version
const nixpkgs = data.repositories.find(r => r.repo === 'nix_unstable');
if (nixpkgs) {
console.log(`Nixpkgs version: ${nixpkgs.version} (${nixpkgs.status})`);
}
}python
import requests
def check_package_version(package_name):
response = requests.get(
f'https://api.vulnpatch.dev/api/v1/repology/{package_name}'
)
data = response.json()['data']
print(f"Latest version: {data['latestVersion']}")
print(f"Tracked in {data['summary']['totalRepos']} repositories")
# Find nixpkgs version
for repo in data['repositories']:
if repo['repo'] == 'nix_unstable':
print(f"Nixpkgs version: {repo['version']} ({repo['status']})")
breakUse Cases
- Version comparison: Check if a package is up to date across distros
- Vulnerability triage: Identify which versions are affected
- Release tracking: Monitor when new versions are packaged
Package Name Format
Use the canonical package name (lowercase, no version suffix):
| Input | Correct |
|---|---|
python3 | python |
libssl-dev | openssl |
nodejs18 | nodejs |
Errors
Package Not Found
json
{
"success": false,
"error": "Package 'nonexistent' not found on Repology"
}Caching
This endpoint is cached for 1 hour. The X-Cache header indicates cache status.