Resolution

Resolve AND execute — return the actual table or chart

Carries a ready plan through to the data. Everything the plan would refuse still refuses here (a licence-blocked source never reaches the fetch).

The 200 body is a status-tagged object. Common status values: ok, ok_correlation, ok_coverage (success); empty, no_candidates, dsd_unavailable, multi_concept_unparsed, language_unsupported, tariff_redirect, unit_mismatch (honest non-answers). tariff_redirect: the prompt names a goods code (HS 8542.31), so it is a tariff question; try holds the /v1/tariff call and needs any parameter the prompt did not state. unit_mismatch: the prompt asks per capita and no matched dataset states per capita. Both are decided before any fetch and are never metered. With format=html the response is a self-contained HTML chart (text/html) instead of JSON.

Metered. Over-quota keyed callers get 429. Over-quota anonymous callers may instead get 402 with x402 payment terms (only when the server has x402 configured).

get/v1/data

Request

  • Base URL: https://api.stackdata.io
  • URL: https://api.stackdata.io/v1/data
  • Auth: one of:
    • none
    • API key in header X-API-Key

Query parameters

qstring required

The question, in English (non-English prompts may be auto-translated by an LLM when configured).

startinteger

First year (inclusive) to include.

endinteger

Last year (inclusive) to include.

format'json' | 'html'

json (default) returns data; html returns a self-contained chart.

datasetstring

Pin resolution to this dataset id instead of the ranked default. An empty pinned dataset returns an honest empty, never a silent fallback.

Headers

X-PAYMENTstring

x402 payment payload (base64-encoded JSON of a signed stablecoin authorization). Send this to satisfy a prior 402. Only relevant to anonymous, over-quota callers.

Response

The answer. JSON by default; HTML when format=html. On a settled x402 payment, an X-PAYMENT-RESPONSE header carries the receipt and the body gains a payment object.

statusstring
scope_notestring nullable

Present when the country on the series did not come from a code in the data. Either a named region is the publisher's own aggregate (not a sum of members), or the source publishes exactly one country and this dataflow carries no geography dimension, so every value is that country's by the publisher's declared scope (cells then carry country_binding: source_scope).

fallback_triedstring[] nullable
coverageobject
interpreted_asobject
paymentobject

Present only on the x402 path — settlement outcome for the answer.

Example response

{
  "withheld": {
    "count": {
      "value": 2807,
      "exact": true
    }
  },
  "meta": {
    "harvest": {
      "ilo": "2026-08-10 03:14:22",
      "wb": "2026-08-10 03:15:01"
    },
    "api_version": "0.1"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.