Orq MCP is live: Use natural language to interrogate traces, spot regressions, and experiment your way to optimal AI configurations. Available in Claude Desktop, Claude Code, Cursor, and more. Start now →
Use this file to discover all available pages before exploring further.
The Reporting API exposes detailed visibility into AI activity on Orq.ai. Break down requests, tokens, cost, latency, evaluator outcomes, and guardrail outcomes by model, provider, project, agent, tool, tag, identity, credential type, and more, all with a single JSON request.
Spend dashboards
Track cost by model, provider, project, or credential type. Build
per-customer billing breakdowns.
Performance monitoring
Watch p50, p95, p99 latency over time. Catch regressions before users
complain.
Evaluator quality
Quantify pass rate, average score, and result distribution per Evaluator
and version.
Guardrail enforcement
Measure block rate, triggers, and outcomes by Policy and stage.
All requests require a Bearer token. Scope follows the API key: workspace and projects are derived from the token itself and are never passed in the body.
The HTTP JSON wire format is snake_case end-to-end (group_by,
include_totals, effective_grain, and so on). SDKs expose the same fields
using each language’s normal naming style, for example groupBy in TypeScript
and group_by in Python.
Up to 20 predicates, combined with AND. Each filter is { field, op, values }.
Supported filter fields depend on the selected metric and match the
dimensions listed below unless noted otherwise.
Map of metric or field name to numeric value. Single-metric requests carry one entry keyed by the requested metric name. Bundle metrics carry one entry per field. Numeric values are rounded to 10 decimal places.
Evaluator and guardrail metrics read from the same source: every Evaluator
run is recorded as a guardrail check regardless of the Evaluator
implementation type. Pick the metric that matches the question being asked.
The API picks the right index for the query automatically. Asking for an entity dimension (agent, tool, tag, and so on) on a usage metric routes the query through entity attribution; everything else stays on the core usage path.
billing_billable is available as a filter field for usage metrics, but not
as a group_by dimension. Use credential_type when you want a public
breakdown of Orq-managed versus customer-owned credentials.
Usage dimensions
Entity dimensions
Evaluator and guardrail dimensions
Pair these with genai.requests, genai.tokens, genai.cost, genai.errors, genai.latency.*, or genai.usage.
Dimension
Notes
project
identity
End-user identifier from Identities
provider
For example, openai, anthropic
model
For example, gpt-4o-mini
product
Which Orq.ai product surface served the request
api_key
API key used to authenticate the request
status_code
High-level status (OK, ERROR)
http_status_code
HTTP status from the upstream model
credential_type
orq_managed or customer_byok (BYOK detection)
Add an entity dimension to any usage metric to break it down by a product entity. The API routes the query to attribution storage automatically.
Entity
Description
agent
Agent that issued the request
tool
Tool invoked during the request
deployment
Deployment ID
evaluator
Evaluator that ran on the trace
policy
Policy that matched the request
tag
Tags attached to the request
prompt
Prompt template
dataset
Dataset used in an experiment
conversation
Conversation grouping
thread
Thread grouping
memory_store
Memory Store
knowledge
Knowledge base
sheet
Sheet ID
Two conflicting entity dimensions in the same request (for example, ["agent", "tool"]) return 400. Issue one request per entity dimension.
Advanced attribution queries can group by raw dimension, but must include a
dimension_type filter such as { "field": "dimension_type", "op": "eq", "values": ["agent"] }. Prefer the entity aliases above for most dashboards.
Pair these with genai.evaluator.* and genai.guardrail.* metrics.
Dimension
Notes
project
identity
api_key
policy
evaluator
Evaluator that produced the result
evaluator_name
Human-readable Evaluator name
evaluator_type
llm_eval, python_eval, function_eval, and so on
evaluator_version
Compare versions over time
result_type
boolean, number, categorical, string
result_label
Bounded result bucket (pass, fail, error, or category name)
evaluation_stage
input or output (aliases: guardrail_stage, evaluator_stage)
Unknown metric, dimension not allowed, range outside workspace retention, range over 90 days, from >= to, grain outside retention, or invalid filter operator.
401
16
Missing or invalid bearer token.
403
7
API key does not have access to the requested project.
500
13
Unexpected backend failure. Forward meta.request_id to support.
Every successful response includes meta.request_id. Include it in support
tickets for fast log correlation.
Trace events flow into reporting in near real time, with a small ingestion
delay measured in seconds. Very recent data may take a moment to appear.
Quantile metrics (genai.latency.p*) carry a +/-1-2% error band typical of
t-digest estimation at high cardinality.
Numeric responses are rounded to 10 decimal places server-side so dashboards
never display floating-point noise like 0.00009900000000000001.
credential_type is a public alias derived from billing setup at query time:
orq_managed when Orq.ai keys served the traffic, customer_byok when
customer-owned keys did.