Read the API. Curl the endpoints.

Six verbs. Bearer auth. Receipts compatible with emem.dev.

[ Quickstart ]

One call, one token.

Get a token at /auth/signup. Bearer auth, JSON in/out.

curl -X POST https://geo.qa/api/v1/ask \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "question": "what changed in sector 7 this week?",
    "region": {
      "type": "Polygon",
      "coordinates": [[[77.59,12.97],[77.61,12.97],[77.61,12.99],[77.59,12.99],[77.59,12.97]]]
    }
  }'
[ Primitives ]

Six verbs. Typed.

ask :: Question × Region → Answer
POST /api/v1/ask. Natural-language query bound to a region.
watch :: Region × Cadence × Predicate → Stream<Event>
POST /api/v1/watch. Persistent subscription that fires on predicate match.
verify :: Claim × Region → Receipt
GET /api/v1/verify/{cid}. Returns the signed receipt for a claim.
forecast :: Series × Horizon → Distribution
POST /api/v1/forecast. Probabilistic horizon over a series.
anomaly :: SeriesEmbeddings → Score
POST /api/v1/anomaly. Score residual against neighbourhood prior.
trajectory :: Position × Velocity × Δt → PositionDistribution
POST /api/v1/trajectory. Forward-propagate uncertainty.
[ Surfaces ]

Where the bytes live.

Full spec and error codes: /api-docs.