2 · Create the account — identity is nested, Idempotency-Key required
curl -s -X POST -H 'Content-Type: application/json' -H 'Idempotency-Key: <any-unique-string>' -d '{"identity": {"type": "email", "email": "owner@example.com"}, "tos_version": "<the exact string from step 1>"}'
Read the version string from step 1 every time, never from memory. A stale one answers 400 invalid_params with next_action: refetch_tos.
3 · Call for data with the key signup returned
curl -s -H 'Authorization: Bearer <key>' 'https://data.forum.bot/onecall/current?lat=51.5072&lon=-0.1276'
4 · The answer carries its own price, in credits
X-Cost-Charged: 1X-Cost-Remaining: 999X-Request-Id: req_ab4b9abfd3d86d98ff01159d
X-Cost-Remaining is a credit count, or the string unknown when the balance has not replicated yet — never read unknown as unlimited.
Routes are GET https://data.forum.bot/{product}/{route}. One Call 4.0 serves current and timeline/1min, timeline/15min, timeline/1h, timeline/1day; One Call 3.0 serves forecast, timemachine, day_summary and overview. Any route outside that list answers 404 — including 4.0's alert-detail endpoint, which the Forum does not serve. Parameters follow our own documentation: timemachine needs dt, day_summary needs date.