Skip to main content

EvalGate REST API overview

Everything you need to call the EvalGate REST API: base URL, authentication, response format, error envelope, versioning, and available endpoint groups.
The EvalGate REST API gives you programmatic access to evaluations, traces, LLM judges, human annotation tasks, and the authenticated Tool API. Every request goes to a single base URL and returns JSON with camelCase field names. If you prefer a typed client, the TypeScript SDK and Python SDK wrap this API and add retries, batching, and caching on top.

Base URL

All endpoints are served from:

Authentication

Every request requires a bearer token in the Authorization header:
Get your API key from Developer Dashboard → Settings → API Keys. See API authentication for the full details, including scope errors and the organization ID environment variable.

Response format

All responses are JSON. Field names use camelCase throughout:

Standard error envelope

All error responses use this shape, regardless of status code:
The requestId field is a UUID you can include in support tickets to help the team locate the exact request. It also appears in the x-request-id response header. See API error codes for the full list of codes, HTTP status mappings, and error-handling examples.

Versioning

The error envelope and all documented response shapes are stable. Breaking changes are versioned and announced before they take effect — you will not encounter silent field removals or type changes on existing endpoints.

Endpoint groups

Rate limits

Limits are applied per organization on a sliding one-minute window: When rate limiting is active, responses include X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers. A 429 response uses the RATE_LIMITED error code.

SDK alternative

If you are working in TypeScript or Python, the SDKs handle auth, retries, and batching automatically: