Client API Auth, Errors, and Limits
Authentication
Send your OMNI API key in bearer format:omni_live_...omni_test_...
Scopes (restricted keys)
OMNI supports restricted API keys via scopes. Behavior:- Keys with no scopes are treated as unrestricted.
- Keys with scopes must include the required scopes for the endpoint/tool.
- HTTP
403 error.type = permission_errorerror.code = insufficient_scopeOmni-Required-Scopesheader (space-delimited scopes) to help you debug
/sources/client-api-keys for key creation and scope updates.
Scope catalog (v1)
| Scope | What it allows | Required for |
|---|---|---|
fred.read | Read access to FRED REST endpoints and FRED tools. | GET /v1/fred/*, fred.* tool calls |
mcp.tools.read | Read the tool catalog. | GET /v1/mcp/tools, hosted tools/list |
mcp.invoke | Invoke tools. | POST /v1/mcp/invoke, hosted tools/call |
GET /v1/openapi.jsonrequires authentication, but does not require any specific scope.
Request tracing
Optional inbound request ID:X-Request-Id in responses.
Version pinning
Optional version header:Omni-Version in responses.
Idempotency
POST endpoints require:POST /v1/mcp/invoke- Hosted MCP
tools/callrequests sent toPOST /mcp
Error envelope
All errors use:Rate limiting
Per-key limits apply:- burst window limits
- sustained per-minute limits
429 Too Many RequestsRetry-AfterheaderX-RateLimit-Limit-BurstheaderX-RateLimit-Limit-Minuteheader