OpenAPI specification
Machine-readable OpenAPI 3.1 document for the Edgaze v1 REST API.
Developers generating SDKs, importing into Postman/Insomnia, or building custom API tooling.
The v1 REST API ships with an OpenAPI 3.1 document. Generators, documentation tools, and validators can consume it without an API key.
Where to find it#
Pin the spec repository. It is the versioned artifact (JSON and YAML), updated automatically when the API on main changes:
https://github.com/edgaze-ai/edgaze-openapi
curl -L https://raw.githubusercontent.com/edgaze-ai/edgaze-openapi/main/openapi.json \ -o edgaze-openapi.json
Production also serves the same JSON without a key:
https://api.edgaze.ai/v1/openapi(production, dedicated host)https://www.edgaze.ai/api/v1/openapihttps://www.edgaze.ai/openapi.json
What is in the document#
openapi: "3.1.0"andinfo.version: "1.0.0".serverspoints athttps://api.edgaze.ai/v1.securitySchemes.bearerAuthis HTTP bearer. Every non-webhook operation declaressecurity: [{ bearerAuth: [] }]and carriesx-required-scopesfor programmatic scope checks.- Stable
operationIdvalues for client generation. - Response headers include
Cache-ControlandVaryon every authenticated response.createRunadds rate-limit headers on 429.streamRundeclares the SSE headers. createRundocuments theIdempotency-Keyheader (max 255 chars) and the 409idempotency_conflictconflict response.streamRundocuments theLast-Event-IDresume header.- A
webhookssection describesrun.completed,run.failed,run.cancelled, andwebhook.test, each with theedgaze-signatureHMAC verification contract.
Version resolution#
The public v1 API resolves every run to a workflow version. Different callers may use different versions of the same workflow based on their access.
POST /runs resolves the version in this order:
- Explicit
versionin the request body. The caller must have access to that version. Sending an unknown or forbiddenversionreturns 403forbidden. - Pinned access. When
versionis omitted and the caller's access is pinned, the run uses that version. A newer release does not silently upgrade the caller. - Current version. When
versionis omitted and the caller is not pinned, the run uses the current active version.
GET /workflows/{id} surfaces three related fields so integrators can detect and reason about drift without polling every run:
pinnedVersionId: the version this caller is pinned to via a prior purchase, ornullwhen they follow the active version.activeVersionId: the workflow's current active version.updateAvailable:truewhen the caller is pinned to an older version than the active one.
Cache these values per workflow. When updateAvailable becomes true, inspect newly required inputs or output shapes before the next run. Buyers who want to use the newest version can call POST /workflows/{id}/accept-update (requires workflow:write).
Was this useful?
Your response helps us improve the documentation.