Skip to main content
The theformalera CLI is the main client of this API. You need it directly only to build your own tooling, a dashboard, or a mirror. All endpoints are under /v1 and exchange JSON, except the package download.

Authentication

Tokens look like tfe_…. The Hub stores only their SHA-256. A missing or unknown token returns 401.

Errors

Errors return a JSON body with a detail message:

Typical flows

  1. GET /v1/specs/{org}/{model}: list the versions and pick the newest that satisfies the requirement.
  2. GET /v1/specs/{org}/{model}/{version}/package: download the archive (on AWS: a redirect to a pre-signed URL).
  3. GET /v1/keys: verify the manifest’s signature against the publisher keys.
  4. GET /v1/advisories: warn if the locked version is affected.
  1. POST /v1/verify with a theformalera.request/v1 body. The response is 202 { "job": "J-…", "status": "queued" }.
  2. GET /v1/jobs/{job_id} until status is done or failed. A done job includes the engine’s response: results, certificates and lemma information.
  1. POST /v1/lemmas/prefetch with the run’s Op Specs and Spec Keys, before solving.
  2. POST /v1/lemmas/deposit with new lemmas and open goals, after solving. The response is 202 { "submission": "D-…" }; admission happens later, on the Hub.
  3. POST /v1/lemmas/usage with hit counts.

Endpoints

The endpoint pages in this tab are generated from the API’s OpenAPI document (/api-reference/openapi.json). Every request and response example on them was captured from a real local Hub.