InfraRabbit

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.

EndpointParametersReturns
GET /v1/skuscategory (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/planOne SKU plus its other listings (cross-checks)
GET /v1/skus/{id}/historydays (default 90), or from/to (ISO dates)Change points: price, USD/EUR, FX rate used, snapshot id
GET /v1/changessince (ISO date or datetime), category, provider, kind (price_change|new_sku|delisted|spec_change), limit, offsetDated changes with old/new value, % and the previous snapshot time
GET /v1/cheapestcategory (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}daysNamed daily series with constituents
GET /v1/providerscategoryProviders with SKU counts and last verification
GET /v1/sourcesSource health: last good fetch, status
GET /v1/statusCounts, last recompute, archive start

Examples

curl 'https://infrarabbit.com/v1/cheapest?category=vps&vcpu=2&ram_gb=4&region=eu&currency=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.