Skip to main content
The Trellis Public API — a REST + WebSocket surface spanning chats, saved queries, datasources, voice, and memories.

Base URL

Keep this host configurable. Trellis supplies a separate pre-production host during onboarding for build-and-test work.

Authentication

All endpoints except /, /v1/health, and /v1/authenticate require a valid JWT token in the Authorization header:
See the Authentication guide for details on obtaining a token.

Request format

  • Request bodies are JSON with Content-Type: application/json unless an endpoint documents multipart upload data.
  • Live chat streaming uses the WebSocket endpoint. Detached clients can submit a durable turn over REST and poll its status.

Response format

Most responses return JSON. Artifact payloads, message audio, and similar download endpoints return their documented binary content types.

Error responses

HTTP error bodies are not uniform. Handle these JSON shapes:
The 429 shape has no detail key and also includes a Retry-After header. An unhandled server error can be plain text, so inspect Content-Type before parsing a 5xx body as JSON. Errors on the chat WebSocket arrive as error frames instead. Terminal turn errors normalize to {error, code, retryable, debug_id}; validation and other pre-turn errors may omit some of those fields. Branch on code when present and treat the human-readable message as non-contractual.

HTTP status codes

Rate limits

Limits on authenticated endpoints are keyed by member_id; re-authenticating does not reset them. The authentication endpoint has a separate API-key budget. HTTP limits return 429 with Retry-After; WebSocket submission limits return an error frame with code: "RATE_LIMIT" and retry_after_seconds.

Pagination

List endpoints that support pagination return results in pages. Pass a page query parameter (1-based) to navigate. Responses include total, page, page_size, and has_more fields.

Endpoint summary