Skip to main content

Spire API

Spire's API is what the studio's /api/llm/*, /api/docs/* and /api/sites/* routes forward to. Every endpoint except /health and the hosted reader surface needs a service bearer or an X-API-Key, and the authoring entitlement (Run Spire). {t} is the tenant slug.

Authoring core​

EndpointWhat it does
GET /healthLiveness; no authentication
GET /v1/authoring/formatsThe launch formats: openapi (3.x and Swagger 2), asyncapi (2.x and 3.x), graphql (introspection), grpc (protobuf descriptor), jsonschema (draft 7 and 2020-12), arazzo
POST /v1/authoring/{t}/targets/resolveResolve a native document into canonical documentation targets — artifact, service, operation, message, channel, type, field, parameter, response, workflow_step
POST /v1/authoring/{t}/provenanceResolve, persist and reconcile a version: provenance envelopes, dependency edges and documentation anchors. Re-importing a version remaps anchors across moves and renames, orphans the rest, and starts stale detection
GET /v1/authoring/{t}/artifacts/{version_id}/provenanceList a version's persisted envelopes
POST /v1/authoring/{t}/pointers/resolveResolve a source pointer to its native slice. Cross-tenant access is 403, cross-version 409

LLM gateway​

EndpointWhat it does
POST /v1/llm/{t}/generateGenerate text; JSON, or SSE when streaming
GET, PUT, DELETE /v1/llm/{t}/providers[/{provider}]Per-tenant provider API keys, stored encrypted; reads return a …last4 fingerprint only. Providers: anthropic, openai (supported); azure_openai, ollama (declared)
GET, PUT /v1/llm/{t}/settingsThe active provider, model and temperature — Scribe settings
POST /v1/llm/{t}/proposals, /proposals/batch, /proposals/{job_id}/cancelGrounded proposals with citations, validation, redaction and an audit entry
GET, PUT /v1/llm/{t}/budgetThe tenant's budget
GET /v1/llm/{t}/usageBudget status and usage
GET /v1/llm/{t}/auditThe audit log

Docs (Scribe)​

EndpointWhat it does
GET, PUT /v1/docs/{t}/{version_id}/contentA version's documentation content; the PUT is an atomic bulk upsert
GET /v1/docs/{t}/coverage, GET /v1/docs/{t}/{version_id}/coverageFormat-aware coverage, across the tenant or for one version — the coverage dashboard
GET /v1/docs/{t}/{version_id}/stale-alerts, PUT …/stale-alerts/{alert_id}Stale alerts raised by detection, and their resolution
GET, PUT /v1/docs/{t}/{project_id}/style-guideThe style guide: tone preset, terminology, custom guidance
POST /v1/docs/{t}/{version_id}/generateOne AI suggestion for a target
POST /v1/docs/{t}/{version_id}/bulk-generate (202), GET /v1/docs/{t}/bulk-jobs[/{job_id}], POST …/bulk-jobs/{job_id}/cancelBulk generation jobs

Sites and builds (Slate)​

EndpointWhat it does
POST, GET /v1/sites/{t}; GET, PUT, DELETE /v1/sites/{t}/{site_id}Slate sites; delete is soft
POST /v1/sites/{t}/{site_id}/buildStart a build
GET, PUT /v1/sites/{t}/{site_id}/accessThe reader access policy. A shared password is stored as a bcrypt hash and never returned
GET /v1/builds/{t}, GET /v1/builds/{t}/{build_id}Builds — the build history
POST /v1/builds/{t}/{build_id}/runRun a build
GET …/log, GET …/artifact, GET …/artifact/downloadThe build log, its artifact, and the ZIP

Hosted reader surface​

The one router without the entitlement gate: it serves a built site to its readers.

EndpointWhat it does
GET /hosted/{tenant_id}/{site_id}[/{path}]A page of the built site
POST /hosted/{tenant_id}/{site_id}/_slate/loginThe shared-password form

Access modes are none (public), password (a shared password; a per-site cookie) and sso (a suite bearer or slate_session cookie, checked for tenant and email domain; oidc or saml). Sites can be marked index or noindex for crawlers. This surface has no CDN, custom domain, TLS or rate limit of its own; the hosted-plan pages (Releases, Cache, Security, Edge) describe the managed delivery that sits in front of it.

Releases, promotion and rollback are not Spire endpoints: the Release Center's /api/slate/* routes forward to apiome-rest's /v1/slate/* control plane, documented in the Apiome REST reference.