Connect
HTTP
Six endpoints, and the reason there is no seventh.
Base URL: https://api.formalogic.io
Six endpoints. There is deliberately no /check that takes rules and
returns a verdict: using it would mean learning the rules, which would mean
publishing them, and the point of an oracle is that you never have to.
GET /v1/oracles |
What this key may ask. Free |
POST /v1/oracles/{name}/ask |
Ask one. Costs the oracle's credits |
GET /v1/me |
Which organisation this key acts for. Free |
POST /v1/figures/render |
Draw a valid answer as SVG or PNG. Free |
GET /v1/news |
What changed for callers, newest first. Free |
POST /v1/feedback |
Say what worked and what did not. Free |
Full parameters, types and responses are on those pages, generated from the API's own definition.
Conventions
Authentication is a bearer token on every call. See Authentication.
Content type is application/json on the request and the response.
Timeouts: allow 120 seconds for an ask. Listing is fast.
No streaming, no polling, no callbacks. A call returns when the verdict does.
No pagination. The catalogue is small enough to return whole, and there is no list endpoint that grows without bound. If that changes, it changes with a documented cursor rather than silently.
Versioning
The path carries the version: /v1. Within a version we will add response
fields and add oracles; we will not remove a field, change a field's type or
narrow an enum you already receive. Anything that would is a /v2.
Write clients that ignore fields they do not recognise.
Note that the API version and the rules' verified_by hash are different
things and move independently — see Citations.
Errors
Every failure carries a stable code. See Errors.
Note that a refused answer is not an error: it is 200 with
"status": "invalid". See Verdicts.