Telemetry
Ingest SDK telemetry from your application runtime. Uses sdk_key body authentication instead of Bearer token.
/v1/eventsIngest SDK telemetry
Accepts telemetry events from the CheckUpstream SDK. Authentication is via the sdk_key field in the request body — not the Authorization header.
Supports both single-event ({sdk_key, event}) and batch ({sdk_key, batch}) formats.
Each event records an HTTP call your application made to an upstream service, including status code and latency. CheckUpstream aggregates this data to provide first-party observability alongside third-party status page data.
Rate limited per SDK key (1,000 events/minute) and per IP (100 requests/minute). When rate limited, the response includes Retry-After and X-RateLimit-* headers.
Request BodyRequired
sdk_keystringrequiredSDK key from your CheckUpstream dashboard. Used for authentication and rate limiting.
eventTelemetryEventoptionalhoststringrequiredRequest hostname (e.g. api.stripe.com, api.openai.com). The server maps hosts to services.
endpointstringrequiredAPI endpoint path (e.g. /v1/charges)
methodstringoptionalHTTP method (e.g. GET, POST)
statusintegerrequiredHTTP response status code
latency_msnumberrequiredRequest latency in milliseconds
tsintegerrequiredUnix timestamp (seconds) when the request was made
environmentstringoptionalDeployment environment (e.g. production, staging)
regionstringoptionalDeployment region (e.g. us-east-1)
error_classstringoptionalStandardized error classification
featurestringoptionalFeature context tag for grouping events
sdk_versionstringoptionalSDK version string
deployment_idstringoptionalDeployment identifier (e.g. git commit SHA)
runtimestringoptionalRuntime environment (e.g. node-22.0.0, bun-1.0.0)
tagsobjectoptionalCustom key-value metadata (max 20 tags)
batchTelemetryEvent[]optionalArray of telemetry events (max 500)
hoststringrequiredRequest hostname (e.g. api.stripe.com, api.openai.com). The server maps hosts to services.
endpointstringrequiredAPI endpoint path (e.g. /v1/charges)
methodstringoptionalHTTP method (e.g. GET, POST)
statusintegerrequiredHTTP response status code
latency_msnumberrequiredRequest latency in milliseconds
tsintegerrequiredUnix timestamp (seconds) when the request was made
environmentstringoptionalDeployment environment (e.g. production, staging)
regionstringoptionalDeployment region (e.g. us-east-1)
error_classstringoptionalStandardized error classification
featurestringoptionalFeature context tag for grouping events
sdk_versionstringoptionalSDK version string
deployment_idstringoptionalDeployment identifier (e.g. git commit SHA)
runtimestringoptionalRuntime environment (e.g. node-22.0.0, bun-1.0.0)
tagsobjectoptionalCustom key-value metadata (max 20 tags)
Responses
Code Samples
curl -X POST https://ingest.checkupstream.com/v1/events \
-H 'Content-Type: application/json' \
-d '{
"sdk_key": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2",
"batch": [{
"host": "api.stripe.com",
"endpoint": "/v1/charges",
"method": "POST",
"status": 200,
"latency_ms": 342,
"ts": 1710230400
}]
}'