API Reference

REST API endpoints for Kalibr observability platform.

Base URL: https://api.kalibr.systems


Authentication

All requests require an API key in the X-API-Key header:

X-API-Key: sk_live_...

Ingestion

POST/api/ingest

Ingest trace events. Supports NDJSON (default) and JSON formats.

Headers

HeaderValue
X-API-KeyYour API key
Content-Typeapplication/x-ndjson or application/json

NDJSON Body (Recommended)

{"trace_id":"abc","span_id":"123","provider":"openai","model_id":"gpt-4o","operation":"chat","duration_ms":250,"input_tokens":100,"output_tokens":50,"cost_usd":0.001,"status":"success","tenant_id":"my-tenant","timestamp":"2025-01-15T12:00:00Z","schema_version":"1.0"}
{"trace_id":"def","span_id":"456",...}

JSON Body

{
  "events": [
    {
      "trace_id": "abc",
      "span_id": "123",
      "provider": "openai",
      "model_id": "gpt-4o",
      ...
    }
  ]
}

Event Schema v1.0

FieldTypeRequiredDescription
schema_versionstringYesAlways "1.0"
trace_idstringYesTrace identifier
span_idstringYesSpan identifier
parent_span_idstringNoParent span for nesting
tenant_idstringYesTenant identifier
providerstringYesLLM provider
model_idstringYesModel name
operationstringYesOperation type
duration_msnumberYesDuration in milliseconds
input_tokensnumberYesInput token count
output_tokensnumberYesOutput token count
cost_usdnumberYesCost in USD
statusstringYessuccess, error, timeout
timestampstringYesISO 8601 timestamp
environmentstringNoprod, staging, dev
servicestringNoService name
workflow_idstringNoWorkflow identifier
error_typestringNoError class name
error_messagestringNoError message
metadataobjectNoCustom metadata

Traces

GET/api/otel/spans

Query spans with filters.

Query Parameters

ParameterTypeDescription
vendorstringFilter by provider
modelstringFilter by model (partial match)
trace_idstringFilter by trace ID
start_timedatetimeStart of time range
end_timedatetimeEnd of time range
min_costnumberMinimum cost filter
max_costnumberMaximum cost filter
statusstringFilter by status
limitnumberMax results (default: 100)
offsetnumberPagination offset

GET/api/otel/traces/{trace_id}

Get all spans for a specific trace.

GET/api/otel/metrics

Get aggregated metrics (cost, latency, tokens by provider/model).

GET/api/otel/comparison

Multi-provider comparison data for dashboard.


Intelligence

Base URL: https://kalibr-intelligence.fly.dev/api/v1/intelligence

POST/policy

Get model recommendation for a goal.

{
  "goal": "book_meeting",
  "task_type": "scheduling",    // optional
  "constraints": {              // optional
    "max_cost_usd": 0.05,
    "max_latency_ms": 3000
  },
  "window_hours": 168           // optional, default 1 week
}

POST/report-outcome

Report execution outcome.

{
  "trace_id": "abc123",
  "goal": "book_meeting",
  "success": true,
  "score": 0.9,                 // optional
  "failure_reason": "timeout",  // optional
  "metadata": {}                // optional
}

POST/recommend

Get model recommendation by task type.

{
  "task_type": "summarization",
  "optimize_for": "balanced",   // cost, quality, latency, balanced
  "constraints": {}
}

GET/patterns/{task_type}

Get aggregated patterns for a task type.

POST/compare

Compare specific models.

GET/health

Health check.


Error Responses

StatusDescription
400Bad request (validation error)
401Unauthorized (invalid API key)
403Forbidden (tier restriction)
404Not found
429Rate limited
500Server error

Rate Limits

TierLimit
Free100 req/min
Pro500 req/min
EnterpriseCustom

Next Steps