Quickstart · first response in under two minutes
Use this keyless API example to verify the response shape. Use the 150-record email sample to evaluate coverage before buying.
Step 1 — run a keyless API example
Run this without a token to verify transport, pagination, and response shape. Request the 150-record sample by email for product evaluation.
# List records — no token needed
curl "https://api.rxatlas.dev/v1/drugs?sample=1&limit=5"
# Fetch one record in full — use any id from the list above
curl "https://api.rxatlas.dev/v1/drugs/{id}?sample=1"The response follows the standard envelope: data array, has_more flag, and next_cursor for keyset pagination. Every record includes a _provenance subtree with per-field source attribution.
Step 2 — get a free key
Sign in at the portal with your email. You receive a free key prefixed rxatlas_live_… scoped to the small API preview fixture with a higher daily limit than the keyless tier (100 req/day vs. 20 req/day per IP).
Step 3 — pay for one full-data call
No subscription is required for one-off access. A full record costs $0.025 per row; search pages cost $0.10, and coverage calls cost $0.25. Settlement uses x402 (USDC on Base) or MPP (USDC on Base and Tempo).
curl -i "https://api.rxatlas.dev/v1/drugs/{id}"
# → 402 Payment Required
# x402 v2: decode PAYMENT-REQUIRED, then retry with PAYMENT-SIGNATURE;
# read PAYMENT-RESPONSE after settlement.
# x402 v1 compatibility: retry with X-PAYMENT and read X-PAYMENT-RESPONSE.
# MPP: read WWW-Authenticate, then retry with
# Authorization: Payment <credential>; read Payment-Receipt.Step 4 — make a plan-authenticated call
Pass your token in the Authorization header:
curl "https://api.rxatlas.dev/v1/drugs?limit=10" \
-H "Authorization: Bearer rxatlas_live_····"import requests
TOKEN = "rxatlas_live_····"
API = "https://api.rxatlas.dev/v1"
resp = requests.get(
f"{API}/drugs",
headers={"Authorization": f"Bearer {TOKEN}"},
params={"limit": 10},
)
resp.raise_for_status()
records = resp.json()["data"]const TOKEN = "rxatlas_live_····";
const API = "https://api.rxatlas.dev/v1";
const res = await fetch(`${API}/drugs?limit=10`, {
headers: { Authorization: `Bearer ${TOKEN}` },
});
const { data } = await res.json();Step 5 — test dataset workflows
These examples are the first calls most evaluators should try for this dataset.
- Resolve a product NDC/v1/drugs?ndc=75834-258&limit=5
Resolve an FDA product NDC through authenticated production access.
- Fetch one canonical product/v1/drugs/147244
Inspect one canonical drug product with provenance and cross-source IDs.
- List data sources/v1/sources
Inspect the source registry behind the delivered dataset.
Next steps
You have a working connection. Where to go next depends on your use case:
- →REST API reference — full endpoint list, pagination, rate limits, error semantics.
- →MCP server — connect Claude, Cursor, or any MCP-compatible agent in two minutes.
- →Data dictionary — provenance model and key fields.
- →Coverage — current counts, freshness, and known limits.