[{"data":1,"prerenderedAt":9},["ShallowReactive",2],{"doc-http":3},{"blocks":4,"markdown":8},[5],{"kind":6,"html":7},"html","\u003Cp>Base URL: \u003Ccode>https:\u002F\u002Fapi.formalogic.io\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>Six endpoints. There is deliberately no \u003Ccode>\u002Fcheck\u003C\u002Fcode> that takes rules and\nreturns a verdict: using it would mean learning the rules, which would mean\npublishing them, and the point of an oracle is that you never have to.\u003C\u002Fp>\n\u003Cdiv class=\"doc-table\">\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>\u003C\u002Fth>\n\u003Cth>\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ca href=\"\u002Flist-oracles\">\u003Ccode>GET \u002Fv1\u002Foracles\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>What this key may ask. Free\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=\"\u002Fask\">\u003Ccode>POST \u002Fv1\u002Foracles\u002F{name}\u002Fask\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>Ask one. Costs the oracle's credits\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=\"\u002Fme\">\u003Ccode>GET \u002Fv1\u002Fme\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>Which organisation this key acts for. Free\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=\"\u002Ffigures\">\u003Ccode>POST \u002Fv1\u002Ffigures\u002Frender\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>Draw a \u003Ccode class=\"chip chip--valid\">valid\u003C\u002Fcode> answer as SVG or PNG. Free\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=\"\u002Fnews-feedback\">\u003Ccode>GET \u002Fv1\u002Fnews\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>What changed for callers, newest first. Free\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=\"\u002Fnews-feedback#send-feedback\">\u003Ccode>POST \u002Fv1\u002Ffeedback\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>Say what worked and what did not. Free\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\u003Cp>Full parameters, types and responses are on those pages, generated from the\nAPI's own definition.\u003C\u002Fp>\n\u003Ch2 id=\"conventions\">Conventions\u003C\u002Fh2>\n\u003Cp>\u003Cstrong>Authentication\u003C\u002Fstrong> is a bearer token on every call. See\n\u003Ca href=\"\u002Fauthentication\">Authentication\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Content type\u003C\u002Fstrong> is \u003Ccode>application\u002Fjson\u003C\u002Fcode> on the request and the response.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Timeouts\u003C\u002Fstrong>: allow 120 seconds for an ask. Listing is fast.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>No streaming, no polling, no callbacks.\u003C\u002Fstrong> A call returns when the verdict does.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>No pagination.\u003C\u002Fstrong> The catalogue is small enough to return whole, and there is no\nlist endpoint that grows without bound. If that changes, it changes with a\ndocumented cursor rather than silently.\u003C\u002Fp>\n\u003Ch2 id=\"versioning\">Versioning\u003C\u002Fh2>\n\u003Cp>The path carries the version: \u003Ccode>\u002Fv1\u003C\u002Fcode>. Within a version we will add response\nfields and add oracles; we will not remove a field, change a field's type or\nnarrow an enum you already receive. Anything that would is a \u003Ccode>\u002Fv2\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Write clients that ignore fields they do not recognise.\u003C\u002Fp>\n\u003Cp>Note that the API version and the rules' \u003Ccode>verified_by\u003C\u002Fcode> hash are different\nthings and move independently — see \u003Ca href=\"\u002Fcitations\">Citations\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2 id=\"errors\">Errors\u003C\u002Fh2>\n\u003Cp>Every failure carries a stable code. See \u003Ca href=\"\u002Ferrors\">Errors\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Note that a refused answer is \u003Cstrong>not\u003C\u002Fstrong> an error: it is \u003Ccode>200\u003C\u002Fcode> with\n\u003Ccode>&quot;status&quot;: &quot;invalid&quot;\u003C\u002Fcode>. See \u003Ca href=\"\u002Fverdicts\">Verdicts\u003C\u002Fa>.\u003C\u002Fp>\n","# HTTP\n\n> Six endpoints, and the reason there is no seventh.\n\nBase URL: `https:\u002F\u002Fapi.formalogic.io`\n\nSix endpoints. There is deliberately no `\u002Fcheck` that takes rules and\nreturns a verdict: using it would mean learning the rules, which would mean\npublishing them, and the point of an oracle is that you never have to.\n\n| | |\n|---|---|\n| [`GET \u002Fv1\u002Foracles`](https:\u002F\u002Fdocs.formalogic.io\u002Flist-oracles) | What this key may ask. Free |\n| [`POST \u002Fv1\u002Foracles\u002F{name}\u002Fask`](https:\u002F\u002Fdocs.formalogic.io\u002Fask) | Ask one. Costs the oracle's credits |\n| [`GET \u002Fv1\u002Fme`](https:\u002F\u002Fdocs.formalogic.io\u002Fme) | Which organisation this key acts for. Free |\n| [`POST \u002Fv1\u002Ffigures\u002Frender`](https:\u002F\u002Fdocs.formalogic.io\u002Ffigures) | Draw a `valid` answer as SVG or PNG. Free |\n| [`GET \u002Fv1\u002Fnews`](https:\u002F\u002Fdocs.formalogic.io\u002Fnews-feedback) | What changed for callers, newest first. Free |\n| [`POST \u002Fv1\u002Ffeedback`](https:\u002F\u002Fdocs.formalogic.io\u002Fnews-feedback#send-feedback) | Say what worked and what did not. Free |\n\nFull parameters, types and responses are on those pages, generated from the\nAPI's own definition.\n\n## Conventions\n\n**Authentication** is a bearer token on every call. See\n[Authentication](https:\u002F\u002Fdocs.formalogic.io\u002Fauthentication).\n\n**Content type** is `application\u002Fjson` on the request and the response.\n\n**Timeouts**: allow 120 seconds for an ask. Listing is fast.\n\n**No streaming, no polling, no callbacks.** A call returns when the verdict does.\n\n**No pagination.** The catalogue is small enough to return whole, and there is no\nlist endpoint that grows without bound. If that changes, it changes with a\ndocumented cursor rather than silently.\n\n## Versioning\n\nThe path carries the version: `\u002Fv1`. Within a version we will add response\nfields and add oracles; we will not remove a field, change a field's type or\nnarrow an enum you already receive. Anything that would is a `\u002Fv2`.\n\nWrite clients that ignore fields they do not recognise.\n\nNote that the API version and the rules' `verified_by` hash are different\nthings and move independently — see [Citations](https:\u002F\u002Fdocs.formalogic.io\u002Fcitations).\n\n## Errors\n\nEvery failure carries a stable code. See [Errors](https:\u002F\u002Fdocs.formalogic.io\u002Ferrors).\n\nNote that a refused answer is **not** an error: it is `200` with\n`\"status\": \"invalid\"`. See [Verdicts](https:\u002F\u002Fdocs.formalogic.io\u002Fverdicts).\n",1793819974143]