USD/IDR history an agent can buy itself
Every rung of this is a normal HTTP call. There is no key to request, no account to register, and nobody to wait for: an unpaid call answers 402 with the amount, the networks and the address, you pay it, and the data comes back in the same response.
What one call returns
GET /series?from=USD&to=IDR&days=365 answers:
- base, quote, rate, date — the latest ECB reference rate
- series — the daily { date, rate } array, oldest first
- series_days and change_pct_over_series — how long the series is and how far it moved
- max_days_for_this_call — the ceiling for your credential, so an agent can budget without probing
- source and note — ECB reference rates, weekdays only, not a bank's selling rate
Depth is priced, and the gate enforces it
30 days is the default series on /fx ($0.05). Past that, depth is what separates the licence tiers — measured, not marketing. Depth is counted in daily prints: the source publishes one reference rate per weekday, so 1.825 prints reach further back than 1.825 calendar days, and every number below is what the gate actually serves.
- up to 365 daily prints — $0.25 per call, no licence needed (GET /series)
- 365 prints unmetered — $99 licence, 30 days (/license/pilot)
- 1,825 prints unmetered, which reaches back past 5 years — $399 licence, 30 days (/license/growth)
- 3,650 prints unmetered, past 10 years — $700 licence, 90 days (/license/enterprise)
Why the deep ranges sit behind a licence
Honestly: the underlying rates are public (ECB, served by Frankfurter), and a buyer who wants one year can pay $0.25. What the licence sells is everything else at once — five or ten years of daily points, unmetered, no per-call settlement, and one payment covering 30 days to a full quarter. That is also the only way to get past 365 days, which is why the ceiling is written into the 402, the OpenAPI schema and the refusal message.
The rest of the wire
The same payment rails carry 24 other paid routes: Indonesian headlines with entities and a deterministic 0-100 sentiment index, keyword search, a delta feed with a since-cursor, an 8-topic digest, brand coverage monitoring with timelines, BTC/ETH/USDT quoted in rupiah from Indodax with the local premium, BMKG earthquakes with an alert view, public holidays with working-day arithmetic, and a clean-text page reader.
Pertanyaan umum
Is there a free sample before I pay?
Yes. GET /data/preview returns live samples of the data routes without payment, /digest/preview gives three articles per beat, and /proof lists the calls that have already settled on-chain with block numbers and transaction hashes.
Do I need an account or an API key?
No. Payment travels inside the call: x402 v2 exact USDC on Base, Polygon, Arbitrum or Avalanche, or the MPP/Tempo rail offered in the same 402. A licence is a signed Bearer token that arrives in the response you paid for, and /license/claim re-issues it from the transaction hash if you lose it.
How current is the series?
ECB reference rates are published on European working days; the endpoint caches for 30 minutes, so a five-year pull costs one upstream fetch. These are reference rates — not bank selling rates, not the informal money-changer rate.
What happens if I ask for more depth than my credential allows?
The request is refused with 400 and charged:false, naming the ceiling and the tier that sells the range, before any payment challenge is issued. You cannot be billed for a depth the server will not serve.
Selengkapnya