EvalGate Telemetry API
The telemetry API from EvalGate — 2 operation(s) for telemetry.
The telemetry API from EvalGate — 2 operation(s) for telemetry.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/evalgate-com:evalgate-com-telemetry-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: EvalGate Telemetry API
version: 18.13.0
description: EvalGate API. See docs/api-contract.md for stability commitments.
servers:
- url: https://evalgate.com
description: Production
- url: http://localhost:3000
description: Local
tags:
- name: Telemetry
paths:
/api/telemetry/setup:
get:
x-evalgate-source-hash: sha256:b45e7583b5052754324b330306a8f94ac33e968d37a5c14cfa763be6bad24df7
summary: List telemetry setup
operationId: get_telemetry_setup
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/GetApiTelemetrySetupResponse200ApplicationJson'
'400':
$ref: '#/components/responses/ValidationError'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
security:
- bearerAuth: []
tags:
- Telemetry
x-evalgate-required-scopes:
- traces:read
description: 'Requires scopes: traces:read'
x-evalgate-contract-hash: sha256:13ac5c96c3e6ec93d7761b9c351c48e3a69116ce47fdbcd28a3feb1c4f1ad3a8
/api/telemetry/test-trace:
post:
x-evalgate-source-hash: sha256:d5ca56b6fcb7c24135aae3771bdfcb15a6bef20edf863c2ded7779a9709003b2
summary: Create telemetry test trace
operationId: post_telemetry_test_trace
responses:
'201':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/PostApiTelemetryTestTraceResponse201ApplicationJson'
'400':
$ref: '#/components/responses/ValidationError'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
security:
- bearerAuth: []
tags:
- Telemetry
x-evalgate-required-scopes:
- traces:write
description: 'Requires scopes: traces:write'
x-evalgate-contract-hash: sha256:c61cde8b38b7c177863907901c58f4ccc39aee75f1b288da4b2409610095d2c9
components:
schemas:
PostApiTelemetryTestTraceResponse201ApplicationJson:
type: object
properties:
status:
type: string
tracesCreated:
type: number
spansWritten:
type: number
spansExisting:
type: number
spansSkipped:
type: number
traceId:
type: string
traceUrl:
type: string
additionalProperties: false
required:
- status
- tracesCreated
- spansWritten
- spansExisting
- spansSkipped
- traceId
- traceUrl
GetApiTelemetrySetupResponse200ApplicationJson:
type: object
properties:
collector:
type: object
properties:
status:
type: string
enum:
- configured
otlpEndpoint:
type: string
collectorEndpoint:
type: string
auth:
type: string
enum:
- session-or-bearer-api-key
additionalProperties: false
required:
- status
- otlpEndpoint
- collectorEndpoint
- auth
paths:
type: array
items:
type: object
properties:
id:
oneOf:
- type: string
enum:
- manual
- type: string
enum:
- openinference
- type: string
enum:
- opentelemetry
- type: string
enum:
- collector
label:
type: string
plainEnglish:
type: string
language:
oneOf:
- type: string
enum:
- json
- type: string
enum:
- python
- type: string
enum:
- typescript
- type: string
enum:
- yaml
code:
type: string
nextStep:
type: string
requiresCloudCredential:
type: boolean
additionalProperties: false
required:
- id
- label
- plainEnglish
- language
- code
- nextStep
- requiresCloudCredential
testTrace:
type: object
properties:
action:
type: string
enum:
- send_deterministic_trace
method:
type: string
enum:
- POST
path:
type: string
enum:
- /api/telemetry/test-trace
previewTraceId:
type: string
additionalProperties: false
required:
- action
- method
- path
- previewTraceId
localSetup:
type: object
properties:
requiresCloudCredential:
type: boolean
enum:
- false
message:
type: string
additionalProperties: false
required:
- requiresCloudCredential
- message
additionalProperties: false
required:
- collector
- paths
- testTrace
- localSetup
ApiError:
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INVALID_REFERENCE
- VALIDATION_ERROR
- RATE_LIMITED
- CONFLICT
- INTERNAL_ERROR
- SERVICE_UNAVAILABLE
- QUOTA_EXCEEDED
- FEATURE_LIMIT_REACHED
- NO_ORG_MEMBERSHIP
- SHARE_REVOKED
- SHARE_EXPIRED
- SHARE_UNAVAILABLE
- PROVIDER_KEY_MISSING
- PROVIDER_KEY_EXPIRED
- PROVIDER_RATE_LIMITED
- PROVIDER_UNAUTHORIZED
- PROVIDER_UNAVAILABLE
- AGENT_HANDOFF_INVALID
- AGENT_HANDOFF_EXPIRED
- AGENT_HANDOFF_DENIED
- AGENT_HANDOFF_CONSUMED
- PAYLOAD_TOO_LARGE
- METHOD_NOT_ALLOWED
message:
type: string
details: {}
requestId:
type: string
format: uuid
redaction:
type: object
properties:
applied:
type: boolean
enum:
- true
fieldCount:
type: integer
minimum: 0
secretCount:
type: integer
minimum: 0
required:
- applied
- fieldCount
- secretCount
required:
- code
- message
required:
- error
responses:
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
headers:
RateLimit-Limit:
description: Quota in requests for the active window.
schema:
type: integer
minimum: 0
RateLimit-Remaining:
description: Remaining requests in the active window.
schema:
type: integer
minimum: 0
RateLimit-Reset:
description: Reset delay in seconds (not a Unix timestamp).
schema:
type: integer
minimum: 1
X-RateLimit-Limit:
schema:
type: integer
minimum: 0
X-RateLimit-Remaining:
schema:
type: integer
minimum: 0
X-RateLimit-Reset:
description: Legacy reset timestamp in Unix milliseconds.
schema:
type: integer
minimum: 0
RateLimit-Policy:
description: IETF HTTPAPI structured quota policy (work in progress).
schema:
type: string
RateLimit:
description: IETF HTTPAPI structured remaining quota and reset delay (work in progress).
schema:
type: string
WWW-Authenticate:
description: Bearer challenge. Agent-facing routes include the RFC 9728 resource_metadata URL.
schema:
type: string
Conflict:
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
headers:
RateLimit-Limit:
description: Quota in requests for the active window.
schema:
type: integer
minimum: 0
RateLimit-Remaining:
description: Remaining requests in the active window.
schema:
type: integer
minimum: 0
RateLimit-Reset:
description: Reset delay in seconds (not a Unix timestamp).
schema:
type: integer
minimum: 1
X-RateLimit-Limit:
schema:
type: integer
minimum: 0
X-RateLimit-Remaining:
schema:
type: integer
minimum: 0
X-RateLimit-Reset:
description: Legacy reset timestamp in Unix milliseconds.
schema:
type: integer
minimum: 0
RateLimit-Policy:
description: IETF HTTPAPI structured quota policy (work in progress).
schema:
type: string
RateLimit:
description: IETF HTTPAPI structured remaining quota and reset delay (work in progress).
schema:
type: string
ValidationError:
description: Validation error
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
headers:
RateLimit-Limit:
description: Quota in requests for the active window.
schema:
type: integer
minimum: 0
RateLimit-Remaining:
description: Remaining requests in the active window.
schema:
type: integer
minimum: 0
RateLimit-Reset:
description: Reset delay in seconds (not a Unix timestamp).
schema:
type: integer
minimum: 1
X-RateLimit-Limit:
schema:
type: integer
minimum: 0
X-RateLimit-Remaining:
schema:
type: integer
minimum: 0
X-RateLimit-Reset:
description: Legacy reset timestamp in Unix milliseconds.
schema:
type: integer
minimum: 0
RateLimit-Policy:
description: IETF HTTPAPI structured quota policy (work in progress).
schema:
type: string
RateLimit:
description: IETF HTTPAPI structured remaining quota and reset delay (work in progress).
schema:
type: string
RateLimited:
description: Rate limit exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
headers:
RateLimit-Limit:
description: Quota in requests for the active window.
schema:
type: integer
minimum: 0
RateLimit-Remaining:
description: Remaining requests in the active window.
schema:
type: integer
minimum: 0
RateLimit-Reset:
description: Reset delay in seconds (not a Unix timestamp).
schema:
type: integer
minimum: 1
X-RateLimit-Limit:
schema:
type: integer
minimum: 0
X-RateLimit-Remaining:
schema:
type: integer
minimum: 0
X-RateLimit-Reset:
description: Legacy reset timestamp in Unix milliseconds.
schema:
type: integer
minimum: 0
RateLimit-Policy:
description: IETF HTTPAPI structured quota policy (work in progress).
schema:
type: string
RateLimit:
description: IETF HTTPAPI structured remaining quota and reset delay (work in progress).
schema:
type: string
Retry-After:
description: Delay in seconds before retrying when present.
schema:
type: integer
minimum: 1
Forbidden:
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
headers:
RateLimit-Limit:
description: Quota in requests for the active window.
schema:
type: integer
minimum: 0
RateLimit-Remaining:
description: Remaining requests in the active window.
schema:
type: integer
minimum: 0
RateLimit-Reset:
description: Reset delay in seconds (not a Unix timestamp).
schema:
type: integer
minimum: 1
X-RateLimit-Limit:
schema:
type: integer
minimum: 0
X-RateLimit-Remaining:
schema:
type: integer
minimum: 0
X-RateLimit-Reset:
description: Legacy reset timestamp in Unix milliseconds.
schema:
type: integer
minimum: 0
RateLimit-Policy:
description: IETF HTTPAPI structured quota policy (work in progress).
schema:
type: string
RateLimit:
description: IETF HTTPAPI structured remaining quota and reset delay (work in progress).
schema:
type: string
ServiceUnavailable:
description: Service unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
headers:
RateLimit-Limit:
description: Quota in requests for the active window.
schema:
type: integer
minimum: 0
RateLimit-Remaining:
description: Remaining requests in the active window.
schema:
type: integer
minimum: 0
RateLimit-Reset:
description: Reset delay in seconds (not a Unix timestamp).
schema:
type: integer
minimum: 1
X-RateLimit-Limit:
schema:
type: integer
minimum: 0
X-RateLimit-Remaining:
schema:
type: integer
minimum: 0
X-RateLimit-Reset:
description: Legacy reset timestamp in Unix milliseconds.
schema:
type: integer
minimum: 0
RateLimit-Policy:
description: IETF HTTPAPI structured quota policy (work in progress).
schema:
type: string
RateLimit:
description: IETF HTTPAPI structured remaining quota and reset delay (work in progress).
schema:
type: string
InternalError:
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
headers:
RateLimit-Limit:
description: Quota in requests for the active window.
schema:
type: integer
minimum: 0
RateLimit-Remaining:
description: Remaining requests in the active window.
schema:
type: integer
minimum: 0
RateLimit-Reset:
description: Reset delay in seconds (not a Unix timestamp).
schema:
type: integer
minimum: 1
X-RateLimit-Limit:
schema:
type: integer
minimum: 0
X-RateLimit-Remaining:
schema:
type: integer
minimum: 0
X-RateLimit-Reset:
description: Legacy reset timestamp in Unix milliseconds.
schema:
type: integer
minimum: 0
RateLimit-Policy:
description: IETF HTTPAPI structured quota policy (work in progress).
schema:
type: string
RateLimit:
description: IETF HTTPAPI structured remaining quota and reset delay (work in progress).
schema:
type: string
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
headers:
RateLimit-Limit:
description: Quota in requests for the active window.
schema:
type: integer
minimum: 0
RateLimit-Remaining:
description: Remaining requests in the active window.
schema:
type: integer
minimum: 0
RateLimit-Reset:
description: Reset delay in seconds (not a Unix timestamp).
schema:
type: integer
minimum: 1
X-RateLimit-Limit:
schema:
type: integer
minimum: 0
X-RateLimit-Remaining:
schema:
type: integer
minimum: 0
X-RateLimit-Reset:
description: Legacy reset timestamp in Unix milliseconds.
schema:
type: integer
minimum: 0
RateLimit-Policy:
description: IETF HTTPAPI structured quota policy (work in progress).
schema:
type: string
RateLimit:
description: IETF HTTPAPI structured remaining quota and reset delay (work in progress).
schema:
type: string
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: EvalGate API key
description: Organization-scoped EvalGate API key. Discover the supported agent scopes at /.well-known/oauth-protected-resource. Per-operation grants are listed in x-evalgate-required-scopes; OpenAPI bearer security requirement arrays remain empty as required for non-OAuth schemes.
x-evalgate-scopes-supported:
- eval:read
- eval:write
- objectives:read
- objectives:write
- runs:read
- runs:write
- traces:read
- traces:write
- exports:download
- reports:write
- prompt:publish
- scorer:publish
- red_team:read
- red_team:run
- red_team:approve
- docs:read
- agent:read
- agent:execute
- resources:read
- resources:write
- contexts:read
- contexts:write
- observations:write
- checks:read
- checks:run
- standards:read
- standards:write
- standards:approve
- grants:read
- grants:write
- admin:keys
- admin:workspace
- admin:org
x-evalgate-protected-resource-metadata: https://www.evalgate.com/.well-known/oauth-protected-resource
ProviderHealthSignature:
type: apiKey
in: header
name: x-evalgate-provider-health-signature
description: HMAC SHA-256 signature over the exact provider request bytes. Provider requests also require the timestamp and key-id headers.
browserSession:
type: apiKey
in: cookie
name: better-auth.session_token
description: Interactive EvalGate browser session established through GitHub or Google sign-in. This scheme represents the human approval step and is not an agent API key or an EvalGate OAuth authorization-server token.
x-service-info:
categories:
- ai
- developer-tools
docs:
homepage: https://evalgate.com
apiReference: https://docs.evalgate.com/api-reference
llms: https://evalgate.com/llms.txt