# SignalDesk AI – PyPI Release Lookup

> SignalDesk AI – PyPI Release Lookup is a paid API for AI agents from x402-agent.kariguetoazul.workers.dev, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-13).

Fetches metadata and file download links for a specific PyPI package version, including file hashes, sizes, upload times, and dependency information.

## Facts

- Endpoint: GET https://x402-agent.kariguetoazul.workers.dev/api/dev/pypi-release?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/signaldesk-ai-pypi-release-lookup-4566bba8
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_birW377_hrZ3YtuUBAXNA

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability signaldesk-ai-pypi-release-lookup-4566bba8
```

Example prompt: What are the download URLs and SHA256 hashes for the files in the requests 2.32.3 release on PyPI?

## When to prefer this

Use this endpoint when you need authoritative, structured PyPI release metadata for a specific package version — especially file hashes, download URLs, and dependency lists — without scraping PyPI directly. Prefer it over pip show or manual PyPI web browsing when you need machine-readable data about a pinned release. Best suited for dependency auditing, supply chain verification, or programmatically resolving download URLs for a known version.

## Known failure modes

- Package name not found on PyPI returns an error or empty result
- Exact version string does not exist for the package (version mismatch or typo)
- Version string fails regex validation (must match ^[A-Za-z0-9.+_-]+$)
- PyPI upstream unavailable or rate-limiting causes fetch failure
- Cached metadata may be up to 24 hours stale based on expires_at field

## How this service works

Evidence-backed autonomous AI jobs and paid data tools. Queue/D1/cron run outside the chat; free quotas and bounded execution apply.

## Output

Returns a JSON object containing the package name, version, and summary; a list of distribution files each with their URL, filename, size, SHA256 hash, and upload timestamp; the source metadata provenance (provider, fetch time, expiry); project URLs (homepage, docs, source repo); requires_dist dependency strings; and the requires_python version constraint.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "package",
      "version"
     ],
     "properties": {
      "package": {
       "type": "string",
       "maxLength": 200,
       "minLength": 1,
       "description": "Package name."
      },
      "version": {
       "type": "string",
       "pattern": "^[A-Za-z0-9.+_-]+$",
       "maxLength": 100,
       "minLength": 1,
       "description": "Exact version."
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "files": [
   {
    "url": "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl",
    "size": 64928,
    "sha256": "70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6",
    "filename": "requests-2.32.3-py3-none-any.whl",
    "upload_time": "2024-05-29T15:37:47.027275Z"
   },
   {
    "url": "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz",
    "size": 131218,
    "sha256": "55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760",
    "filename": "requests-2.32.3.tar.gz",
    "upload_time": "2024-05-29T15:37:49.536140Z"
   }
  ],
  "source": {
   "provider": "PyPI public metadata",
   "expires_at": "2026-10-03T09:44:48.710Z",
   "fetched_at": "2026-10-02T09:44:48.710Z",
   "source_url": "https://pypi.org/pypi/requests/2.32.3/json",
   "transformed": true
  },
  "package": "requests",
  "summary": "Python HTTP for Humans.",
  "version": "2.32.3",
  "project_urls": {
   "Source": "https://github.com/psf/requests",
   "Homepage": "https://requests.readthedocs.io",
   "Documentation": "https://requests.readthedocs.io"
  },
  "requires_dist": [
   "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\""
  ],
  "requires_python": ">=3.8"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/signaldesk-ai-pypi-release-lookup-4566bba8/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402-agent.kariguetoazul.workers.dev](https://www.zero.xyz/host/x402-agent.kariguetoazul.workers.dev/llms.txt)
