Base URL
task on the request, and a protege object on the response.
Authentication
Every request carries a bearer token.x-api-key: $PROTEGE_API_KEY is accepted as an alternative.
Keys are scoped to an environment. Use separate keys for production and staging,
so staging traffic does not enter a task’s production history.
This is the only credential involved. Protégé is managed, so there is no
bring-your-own-key header and no provider account to configure.
Content type
Requests are JSON. Streaming responses are server-sent events.Versioning
The version is in the path./v1 will not change in a way that breaks an
existing request body.
Additive changes ship without a version bump, so parse responses leniently.
Unknown response fields should be ignored rather than treated as errors, since
the protege object gains fields over time.
Rate limits
600 requests per key per minute, returned on every response. A looser per-IP ceiling applies before a key is verified.
A
429 means the window is exhausted. Back off using x-ratelimit-reset-requests
rather than retrying immediately.
Request IDs
Every response carriesx-request-id. Include it when reporting a problem; it is
what lets us find the exact call, its route and its trace.
Chat completions
The endpoint, and the
task parameter in full.