REST API
Read-only, no authentication, rate-limited per IP (120 requests per minute). Every endpoint returns JSON by default and CSV with ?format=csv. Current data and 90 days of history; CC BY 4.0.
| Endpoint | Parameters | Returns |
|---|---|---|
GET /v1/skus | category (vps|gpu|llm), provider, q (substring of id or name), limit (≤1000), offset, include_delisted, listing (current|all|listed|catalog_only|vanished|unknown; default current) | SKUs with current price, USD/EUR equivalents, spec, source URL, verified_at |
GET /v1/skus/{id} | id = category/provider/plan | One SKU plus its other listings (cross-checks) |
GET /v1/skus/{id}/history | days (default 90), or from/to (ISO dates) | Change points: price, USD/EUR, FX rate used, snapshot id |
GET /v1/changes | since (ISO date or datetime), category, provider, kind (price_change|new_sku|delisted|spec_change), limit, offset | Dated changes with old/new value, % and the previous snapshot time |
GET /v1/cheapest | category (default vps), vcpu, ram_gb, disk_gb, gpu, gpu_count, region (eu|…), provider, currency (USD|EUR), limit, exact, listing (default current) | Cheapest SKUs meeting the minimum spec, ranked by price only. Only SKUs that are on the provider's public price page or product API count unless listing says otherwise; every SKU carries listing_status (listed|catalog_only|vanished|unknown), listing_first_missing and listing_reason |
GET /v1/index, GET /v1/index/{series} | days | Named daily series with constituents |
GET /v1/providers | category | Providers with SKU counts and last verification |
GET /v1/sources | Source health: last good fetch, status | |
GET /v1/status | Counts, last recompute, archive start |
Examples
curl 'https://infrarabbit.com/v1/cheapest?category=vps&vcpu=2&ram_gb=4®ion=eu¤cy=EUR' curl 'https://infrarabbit.com/v1/skus/llm/openai/gpt-5' curl 'https://infrarabbit.com/v1/skus/vps/ovhcloud/vps-2025-model1/history?format=csv' curl 'https://infrarabbit.com/v1/changes?since=2026-10-01&category=llm&kind=price_change' curl 'https://infrarabbit.com/v1/index/eu-vps-2vcpu-4gb-floor'
Fields
price is the primary price in currency per unit (per_month, per_hour, per_1m_tokens_in). prices holds the secondary prices (per_hour, per_1m_tokens_out, per_1m_tokens_cached_in, per_1m_tokens_in_batch, …) in the same currency. verified_at is the last archived snapshot that contained the SKU; price_since is when the current value was first seen; stale is true when the source's latest fetch failed. Prices exclude VAT unless vat_included is true.
Full history, bulk export and alerts beyond the free window are planned as a paid tier; nothing on the current-data endpoints will move behind it.