# PyPI Registry API
> Python package data from PyPI as clean JSON. Look up any package’s latest metadata — version, summary, license, repository, author, keywords, required Python version, dependencies, supported Python versions and total release count — browse its full version history with release dates and yanked flags, or get the details and distribution files for one specific version. Sourced live from the public Python Package Index and returned through a fast, reliable API. Ideal for developer dashboards and tooling, package and dependency analytics, security and supply-chain checks, CI/CD and documentation sites.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/pypi-api/..."
```

## Pricing
- **Free** (Free) — 1,000 calls/Mo, 2 req/s
- **Basic** ($4/Mo) — 20,000 calls/Mo, 5 req/s
- **Pro** ($13/Mo) — 150,000 calls/Mo, 15 req/s
- **Mega** ($34/Mo) — 600,000 calls/Mo, 40 req/s

## Endpoints

### PyPI

#### `GET /v1/package` — Package metadata

**Parameters:**
- `name` (query, required, string) — Package name Example: `requests`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/pypi-api/v1/package?name=requests"
```

**Response:**
```json
{
    "data": {
        "name": "requests",
        "author": "Kenneth Reitz <me@kennethreitz.org>",
        "yanked": false,
        "license": "Apache-2.0",
        "summary": "Python HTTP for Humans.",
        "version": "2.34.2",
        "homepage": null,
        "keywords": [],
        "pypi_url": "https://pypi.org/project/requests/",
        "repository": "https://github.com/psf/requests",
        "dependencies": [
            "charset_normalizer<4,>=2",
            "idna<4,>=2.5",
            "urllib3<3,>=1.26",
            "certifi>=2023.5.7",
            "PySocks!=1.5.7,>=1.5.6; extra == \"socks\"",
            "chardet<8,>=3.0.2; extra == \"use-chardet-on-py3\""
        ],
        "last_release": "2026-05-14T19:25:26.443000Z",
        "documentation": "https://requests.readthedocs.io",
        "first_release": "2011-02-14T08:49:42.641660Z",
        "total_versions": 163,
        "python_versions": [
            "3",
            "3 :: Only",
            "3.10",
            "3.11",
            "3.12",
            "3.13",
            "3.14",
            "3.15"
        ],
        "requires_python": ">=3.10",
        "dependency_count": 6,
        "description_content_type": "text/markdown"
    },
    "meta": {
        "timestamp": "2026-05-30T18:16:47.471Z",
        "request_id": "013c03df-63b4-416d-9d9b-b11a220ed939"
    },
    "status": "ok",
    "message": "Package retrieved",
    "success": true
}
```

#### `GET /v1/version` — Specific version details

**Parameters:**
- `name` (query, required, string) — Package name Example: `requests`
- `version` (query, required, string) — Version Example: `2.31.0`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/pypi-api/v1/version?name=requests&version=2.31.0"
```

**Response:**
```json
{
    "data": {
        "name": "requests",
        "files": [
            {
                "size": 62574,
                "filename": "requests-2.31.0-py3-none-any.whl",
                "packagetype": "bdist_wheel",
                "python_version": "py3"
            },
            {
                "size": 110794,
                "filename": "requests-2.31.0.tar.gz",
                "packagetype": "sdist",
                "python_version": "source"
            }
        ],
        "author": "Kenneth Reitz",
        "yanked": false,
        "license": "Apache 2.0",
        "summary": "Python HTTP for Humans.",
        "version": "2.31.0",
        "homepage": "https://requests.readthedocs.io",
        "keywords": [],
        "released": "2023-05-22T15:12:42.313790Z",
        "repository": "https://github.com/psf/requests",
        "dependencies": [
            "charset-normalizer (<4,>=2)",
            "idna (<4,>=2.5)",
            "urllib3 (<3,>=1.21.1)",
            "certifi (>=2017.4.17)",
            "PySocks (!=1.5.7,>=1.5.6) ; extra == 'socks'",
            "chardet (<6,>=3.0.2) ; extra == 'use_chardet_on_py3'"
        ],
        "documentation": "https://requests.readthedocs.io",
        "python_versions": [
            "3",
            "3 :: Only",
            "3.10",
            "3.11",
            "3.7",
            "3.8",
            "3.9"
        ],
        "requires_python": ">=3.7",
        "dependency_count": 6,
        "description_content_type": "text/markd
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/versions` — Version history

**Parameters:**
- `name` (query, required, string) — Package name Example: `numpy`
- `limit` (query, optional, string) — 1-2000 (default 100) Example: `100`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/pypi-api/v1/versions?name=numpy&limit=100"
```

**Response:**
```json
{
    "data": {
        "name": "numpy",
        "total": 146,
        "latest": "2.4.6",
        "versions": [
            {
                "files": 72,
                "yanked": false,
                "version": "2.4.6",
                "released": "2026-05-18T23:33:13.503322Z"
            },
            {
                "files": 72,
                "yanked": false,
                "version": "2.4.5",
                "released": "2026-05-15T20:22:23.036152Z"
            },
            {
                "files": 72,
                "yanked": false,
                "version": "2.4.4",
                "released": "2026-03-29T13:18:15.438035Z"
            },
            {
                "files": 72,
                "yanked": false,
                "version": "2.4.3",
                "released": "2026-03-09T07:55:57.774728Z"
            },
            {
                "files": 72,
                "yanked": false,
                "version": "2.4.2",
                "released": "2026-01-31T23:10:25.623288Z"
            },
            {
                "files": 72,
                "yanked": false,
                "version": "2.4.1",
                "released": "2026-01-10T06:42:14.615963Z"
            },
            {
                "files": 72,
                "yanked": true,
                "version": "2.4.0",
                "released": "2025-12-20T16:15:43.434135Z"
            },
            {
                "files": 72,
                "yanked": false,
                "v
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/pypi-api
OpenAPI spec: https://www.oanor.com/api/pypi-api/openapi.json
