API

Credits, usage & estimate

Dry-run job cost and node-availability checks, real-time credit balances, double-entry ledger history, and 30-day usage rollups.

On this page

Dry-run cost & node estimator

POST/v1/estimate

Computes credit cost, checks your available balance, and counts live matching online nodes per requested country without reserving or spending any credits.

For measurement estimates (product: "measurements" or omitted), kind accepts http, tcp_connect, or icmp_ping; unsupported kinds return 422 unknown_type.

Measurement estimate request
{
  "kind": "http",
  "target": "example.com",
  "max_credits": 10,
  "locations": [
    { "country": "LT", "limit": 1 },
    { "country": "RO", "limit": 2 }
  ]
}
Geolocation estimate request
{
  "product": "geolocate",
  "target": "140.82.112.4",
  "mode": "fresh"
}
Response
{
  "product": "measurements",
  "estimated_credits": 3,
  "max_credits": 10,
  "available_credits": 12450,
  "sufficient_credits": true,
  "expected_duration_ms": 1500,
  "locations": [
    { "country": "LT", "requested": 1, "available": 1, "shortfall": 0 },
    { "country": "RO", "requested": 2, "available": 2, "shortfall": 0 }
  ],
  "warnings": []
}

Read credit balances

GET/v1/credits

Returns your current available, partner-grant, and in-flight reserved credit balances.

Response
{
  "available": 12450,
  "grant_available": 10000,
  "reserved": 0,
  "total_available": 12450,
  "currency": "credits"
}

Inspect credit ledger entries

GET/v1/credits/entries

Lists recent atomic double-entry credit transactions (?limit=1..100, default 25).

Response
{
  "entries": [
    {
      "id": "ctx-settle-48",
      "entry_type": "settle",
      "amount": -6,
      "product": "geolocate",
      "reference_id": "geo_9f4a21c8e1104b20",
      "created_at": "2026-11-13T10:28:12Z"
    }
  ]
}

Usage breakdown by product

GET/v1/usage

Summarizes settled credit spend over ?window=24h|7d|30d (default 30d) across measurements, checks, and geolocate.

Response
{
  "window": "30d",
  "total_credits_spent": 1550,
  "by_product": {
    "measurements": 410,
    "checks": 820,
    "geolocate": 320
  },
  "entries_count": 48
}

OpenAPI 3.1.0 schema

GET/v1/openapi.json

Serves the machine-readable OpenAPI 3.1.0 schema covering every /v1/* endpoint and payload.