The same data behind the changelog, as JSON: the latest crawled plans for each provider, and every pricing change we detect. Free with a key: 100 requests per UTC day.
We email the key to you. No card, no digest signup.
Send the key as a Bearer token (or an X-API-Key header).
curl -H "Authorization: Bearer ipk_…" \
"https://infraprice.dev/api/v1/changes?since=2026-10-01&provider=vercel"GET /api/v1/prices?provider=Latest successfully crawled plans per provider. Omit provider for all providers. Money is in integer US cents (price_monthly_cents, null for free or custom pricing). included and overage_rates are as extracted from the pricing page.
{
"data": [{
"provider": { "id": "vercel", "name": "Vercel", "category": "Hosting", "pricing_url": "https://vercel.com/pricing" },
"crawled_at": "2026-10-19T04:21:07.000Z",
"plans": [{ "name": "Pro", "tier_index": 1, "price_monthly_cents": 2000, "price_monthly_display": "$20/mo",
"included": { … }, "overage_rates": { … } }]
}],
"meta": { "provider": "vercel", "count": 1, "currency": "USD", "money_unit": "cents" }
}GET /api/v1/changes?since=&provider=Detected pricing changes, newest first. since is an ISO date (default: 7 days ago, at most 90 days back). Up to 500 changes per call; meta.truncated tells you if there were more.
{
"data": [{ "id": "…", "provider_id": "heroku", "detected_at": "2026-10-19T04:20:12.000Z",
"change_type": "price_change", "severity": "major", "field_path": "plans[2].price_monthly_cents",
"old_value": 500, "new_value": 700, "headline": "…", "narrative": "…",
"url": "https://infraprice.dev/providers/heroku" }],
"meta": { "since": "2026-10-12T13:00:00.000Z", "provider": null, "count": 1, "truncated": false }
}X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (Unix seconds).429 with Retry-After. A missing or wrong key gets 401; bad parameters get 400 (not counted).{ "error": "rate_limited", "message": "…" }.Higher limits, full history, archived snapshots or webhooks are on the table for a paid tier. Tell us what you need and we'll get in touch.
I need more than 100/day