BYTETOOLS

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.

No API key requiredHTTPSFree tier

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
curl 'https://api.anaconda.org/package/conda-forge/numpy'
JavaScript (fetch)
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);
Python (requests)
import requests

res = requests.get("https://api.anaconda.org/package/conda-forge/numpy", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "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

ParameterTypeRequiredDescription
{owner}pathRequiredThe channel or user that owns the package, such as `conda-forge` or `bioconda`. conda-forge
{package}pathRequiredPackage name within that channel. numpy
/package/{owner}/{package}/filespathOptionalAlternative 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

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.