lateststable.org
Free JSON API for the latest stable version on 15 registries.
You need no key or account.
/v1/pypi/{package}
Response
curl -s https://lateststable.org/v1/pypi/fastapi{
"name": "fastapi",
"version": "x.y.z",
"major": "x",
"minor": "y",
"patch": "z",
"date": null,
"platform": "pypi"
}
Legend
- Registry with a stable version
- Prerelease tags beside the four registries with their own rule
- Hollow tile: its most recent lookup failed
- Select a tile to run its lookup
What stable means per registry
Maven can list a milestone as a package's release and Docker Hub a partial tag like 26.13, so lateststable applies its own rule at four registries. The other eleven return the latest the registry reports.
| Registry | URL | Rule |
|---|---|---|
| own rule | ||
| Packagist | / |
First version in the p2 metadata that is not dev, alpha, beta or RC. |
| Maven | / |
Highest numeric version in maven-metadata.xml, skipping any with a prerelease qualifier such as RC. |
| Docker Hub | / |
Highest numeric tag among the 100 most recently updated; 26.13.0 ranks above 26.13. |
| NuGet | / |
Last listed version without a prerelease suffix; if all have one, the last listed. |
| registry decides | ||
| PyPI | / |
info.version from the PyPI JSON API. |
| npm | / |
dist-tags.latest from the npm registry. |
| GitHub | / |
The tag of GitHub's latest release, minus a leading v, with its publish date. |
| crates.io | / |
max_stable_version, highest stable by number, so wasmtime 50.0.1 beats a later-published 48.0.8 backport; if absent, first listed non-yanked version, else newest_version; neither filters prereleases. |
| Go | / |
The version proxy.golang.org reports at @latest, minus the leading v. |
| Homebrew | / |
versions.stable from the formulae.brew.sh API. |
| RubyGems | / |
The version field from the RubyGems API. |
| Helm | / |
The chart version Artifact Hub reports. |
| JetBrains | / |
The first result from the JetBrains releases API, queried with type=release. |
| Artifact Hub | / |
The package version Artifact Hub reports for kind/repo/package. |
| AUR | / |
AUR's Version field with the package release suffix removed. |
The response
lateststable returns these fields for all 15 registries.
name- Package name as requested; maven as groupId:artifactId, artifacthub as repo/package
version- The version string
major- First dot-separated segment after any leading v, as a string
minor- Second dot-separated segment, null when the version has none
patch- Third dot-separated segment, null when the version has none
date- Release date as YYYY-MM-DD at github, jetbrains, crates and go; null elsewhere
platform- The registry key, as listed at /v1
Status codes
200- The body is the object described above
400- Parameter has disallowed characters, consecutive dots, or over 256 characters
404- No such package, or no version passes lateststable's rule
502- The registry failed or timed out
Notes
- lateststable caches a successful lookup for one hour and never caches an error.
- Access-Control-Allow-Origin is *, so a browser page can call the API.
- GET /v1 lists every registry key.