Anaconda.org API
Look up conda packages on Anaconda.org including every version, owner and summary, with no API key. Covers conda-forge and Bioconda. Verified example included.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the Anaconda.org API?
Anaconda.org exposes a public JSON API for conda packages. `GET https://api.anaconda.org/package/{owner}/{name}` returns a package's summary, home page, owner details and the full list of published versions, for channels such as `conda-forge` and `bioconda`. No API key is required for public packages.
Conda's ecosystem is organised by channel rather than by a single registry, and this API makes that structure explicit: the owner in the path is the channel, so `conda-forge/numpy` and `anaconda/numpy` are separate records with different version histories. Any tool that resolves conda dependencies has to respect that split, and this is the cheapest way to inspect it without running a solver.
Two practical warnings. Responses for large packages are slow, and we measured close to fifteen seconds for `conda-forge/numpy`, so set a generous client timeout and cache results rather than calling it inline. The `versions` array is also ordered by upload time rather than by version number, so `1.11.0` can appear before `1.10.4`. Use `latest_version` if you just want the current release.
Quick facts
- Base URL
https://api.anaconda.org- Authentication
- Public packages need no token. A token is only required for private packages and for uploading.
- Rate limit
- Not published. Responses for large packages are slow enough that caching is essential regardless.
- Pricing
- Free for public packages. Anaconda sells commercial plans for private hosting.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the Anaconda.org API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Fetch a conda package's metadata and version list
GET https://api.anaconda.org/package/conda-forge/numpy
curl 'https://api.anaconda.org/package/conda-forge/numpy'const res = await fetch("https://api.anaconda.org/package/conda-forge/numpy");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://api.anaconda.org/package/conda-forge/numpy", timeout=20)
res.raise_for_status()
print(res.json()){
"name": "numpy",
"id": "573efc1708df8671aa72838f",
"package_types": [
"conda"
],
"summary": "The fundamental package for scientific computing with Python.",
"description": "",
"home": "http://numpy.org/",
"public": true,
"access": "public",
"owner": {
"company": "",
"location": "",
"login": "conda-forge",
"name": "conda-forge",
"url": "",
"description": "A community-led collection of recipes, build infrastructure, and distributions for the conda package manager.",
"created_at": "2015-04-11 10:15:08.727000+00:00",
"user_type": "org"
},
"full_name": "conda-forge/numpy",
"url": "http://api.anaconda.org/packages/conda-forge/numpy",
"html_url": "http://anaconda.org/conda-forge/numpy",
"versions": [
"1.11.0",
"1.10.4",
"1.11.1",
"1.11.2",
"1.11.3",
"1.12.0",
"1.12.1",
"1.13.0",
"1.13.1",
"1.7.2",
"1.9.3",
"1.8.2",
"1.13.2",
"1.13.3",
"1.14.0rc1",
"1.14.0",
"1.14.1",
"1.14.2",
"1.14.3",
"1.14.4",
"1.14.5",
"1.15.0",
"1.15.1",
"1.15.2",
"1.14.6",
"1.15.3",
"1.15.4",
"1.16.0",
"1.16.1",
"1.16.2",
"1.16.3",
"1.16.4",
"1.17.0",
"1.17.1",
"1.17.2",
"1.17.3",
"1.16.5",
"1.17.5",
"1.18.1",
"1.18.4",
"1.18.5",
"1.19.0",
"1.19.1",
"1.19.2",
"1.19.4",
"1.16.6",
"1.19.5",
"1.20.0",
"1.20.1",
"1.20.2",
"1.20.3",
"1.21.0",
"1.21.1",
"1.21.2",
"1.21.3",
"1.21.4",
"1.21.5",
"1.22.0",
"1.22.1",Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
{owner} | path | Required | The channel or user that owns the package, such as `conda-forge` or `bioconda`. conda-forge |
{package} | path | Required | Package name within that channel. numpy |
/package/{owner}/{package}/files | path | Optional | Alternative endpoint listing individual build artefacts per platform and Python version. conda-forge/numpy/files |
Response fields
name / full_namestring- Package name, and `owner/name` combined. The full name is the identifier that is actually unique.
summarystring- One-line description. `description` is frequently an empty string rather than null, so check for emptiness, not for absence.
package_typesarray of strings- Usually `["conda"]`, but some channels also publish `pypi` or `standard.R` artefacts under the same name.
ownerobject- Channel details including `login`, `name`, `description`, `created_at` and `user_type`, which distinguishes an organisation from an individual.
versionsarray of strings- Every published version, ordered by upload time rather than by version number. Do not assume the last element is newest.
public / accessboolean / string- Whether the package is publicly visible. Private packages return 401 rather than appearing with `public: false`.
html_urlstring- Human-facing page on anaconda.org, useful for linking from a dashboard.
What you can build with the Anaconda.org API
- Check whether conda-forge has a newer build of a scientific dependency
- Compare version availability between conda-forge and the defaults channel
- Audit which channels a project's environment file actually depends on
- Build an internal package browser for data science teams
- Detect packages that have not been rebuilt since an old Python release
Common errors and how to fix them
404
Wrong channel. The same package name exists under several owners with different histories.
Fix: Check `conda-forge` first for community builds and `anaconda` for the defaults channel.
Client timeout
Large packages return slowly; we measured almost fifteen seconds for one popular package.
Fix: Raise your HTTP timeout to at least 30 seconds and cache the result rather than fetching on demand.
Version list out of order
`versions` is ordered by upload time, not semantically.
Fix: Sort it yourself with a version-aware comparator, or read `latest_version` when you only need the current release.
Anaconda.org API — frequently asked questions
Does the Anaconda.org API need a token?
Not for public packages. Tokens are only needed for private packages or for uploading builds.
What is the difference between conda-forge and anaconda as owners?
They are different channels with independently built packages. conda-forge is the community channel and usually has newer versions; `anaconda` is the defaults channel shipped with Anaconda distributions.
How do I see individual builds per platform?
Use the `/files` variant of the package path, which lists each artefact with its platform, build string and Python version.
Why is the description empty?
Many recipes only fill in `summary`. The API returns an empty string rather than null for the missing field, so check the length rather than testing for null.
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.
JSON Viewer
View JSON as a collapsible interactive tree online. Expand and collapse nodes, search keys and values, and copy the JSONPath of any node privately.
JSON to CSV Converter
Convert a JSON array of objects to CSV online. Automatic column headers from the union of all keys, delimiter choice and proper quoting — all in-browser.
YAML to JSON Converter
Convert YAML to JSON online in your browser. Handles block scalars, flow collections, anchors and multi-document files — nothing is uploaded.
Anaconda.org is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.