API referenceOpenAPI description

OpenAPI description

Syntic publishes a machine-readable description of the API in OpenAPI 3.0 format. Use it to generate a typed client in your language, to import the endpoint into an API testing tool, or to validate requests in your own tests.

Download it

curl -o syntic-openapi.yaml https://app.syntic.ai/api/openapi
PropertyValue
URLhttps://app.syntic.ai/api/openapi
MethodGET (no authentication needed)
FormatYAML, Content-Type: application/yaml
Cross-originAllowed from any origin
CachingCached for up to 5 minutes

The file is YAML only. If your tool needs JSON, convert it locally, for example:

python3 -c "import sys, json, yaml; json.dump(yaml.safe_load(sys.stdin), sys.stdout, indent=2)" \
  < syntic-openapi.yaml > syntic-openapi.json

What it contains

  • One server, https://app.syntic.ai/v1.
  • One operation, createChatCompletion (POST /chat/completions).
  • A bearer security scheme for private keys.
  • Schemas for the request, the response, the error body and the documented error responses.

Known differences from the live API

Where the file and this reference disagree, this reference describes what the API actually does today.

TopicOpenAPI file saysThe API does
stream defaultfalsetrue. Leave it out and you get a stream.
Sampling fieldstemperature and similar are listedAccepted, then dropped before the model sees them.
Error responsesLists a subset of statusesEvery status on Error codes can occur.
⚠️

Clients generated from the file will usually default stream to false themselves, which is fine. Hand-written code that omits stream will receive a stream; plan for that.

Generating a client

Any OpenAPI 3.0 generator works. For example, with the open-source OpenAPI Generator CLI:

npx @openapitools/openapi-generator-cli generate \
  -i https://app.syntic.ai/api/openapi \
  -g python \
  -o ./syntic-client

Because the API follows the widely used chat completions shape, an existing OpenAI-compatible client is often simpler than generating one. See OpenAI-compatible clients.

The complete specification

⚠️
Preview — this feature is being built; the design below is the spec. Today the file describes chat completions only, as above.

The OpenAPI file is becoming the single source of truth for the whole public API. Every endpoint, including previews, is described in it before it ships; the official SDKs are generated from it; and an automated check fails the platform’s release if a deployed endpoint and the file disagree.

Where to get it

URLContents
https://app.syntic.ai/api/openapiThe latest API version, stable endpoints only.
https://app.syntic.ai/api/openapi?version=2026-06-01The spec as of a given syntic-version.
https://app.syntic.ai/api/openapi?beta=agents-2026-11-01Stable endpoints plus the endpoints behind one or more beta flags (comma separated).

No authentication is needed.

What it contains

  • Every operation, grouped by tags that match these docs: Messages, Models, Files, Batches, Tools, Agents, Sessions, Admin, Webhooks.
  • Two security schemes: InferenceKey (sk_live_) and AdminKey (sk_admin_), applied per operation.
  • The shared error envelope as one Error schema referenced by every non-2xx response.
  • Pagination parameters and list shapes as reusable components.
  • Streaming responses described with text/event-stream and a schema per event type.
  • Vendor extensions Syntic tools read: x-syntic-beta (the flag an operation needs), x-syntic-since (the version it appeared in), x-syntic-deprecated-after (its removal date, if any).
  • info.version set to the syntic-version date the file describes.

Using it to check your own integration

# Lint the spec and list every operation id
curl -sS -o syntic.yaml https://app.syntic.ai/api/openapi
npx @redocly/cli lint syntic.yaml
yq '.paths[][] | select(has("operationId")) | .operationId' syntic.yaml

Build notes for the platform team

  • Keep the file in the platform repository and update it in the same change as the endpoint. A missing or mismatched operation fails CI.
  • The CI check calls each deployed operation with a fixture and validates both request and response against the file, including the error envelope.
  • The “Known differences” table above must be empty once the 2026-11-01 version is the default.
Was this page helpful?