Reference

API reference

The public surface is intentionally small: one model endpoint, a catalog, and account introspection. Everything else lives in the console.

Authentication

Pass your key in the x-api-key header (or as a Bearer token). Keys are prefixed ares_sk_ and can be created for a personal account or an organization — usage is billed to the key's account.

x-api-key: ares_sk_YOUR_KEY # or Authorization: Bearer ares_sk_YOUR_KEY
POST/v1/messages

Anthropic Messages API, verbatim — including streaming via "stream": true (SSE), system prompts, and multi-turn conversations. Ares routes to the right provider from the model ID and translates OpenAI/Bedrock responses back into Anthropic events, so one client handles every model.

{ "model": "claude-sonnet-5", "max_tokens": 1024, "stream": true, "system": "You are terse.", "messages": [{"role": "user", "content": "Why is the sky dark at night?"}] }
GET/catalog

The live model catalog: { models: [{ id, label, provider, group }] }. Public, no auth. Build your model picker from this — when Project Ares enables a new model it appears here immediately.

GET/me

Introspect the calling key: email, plan, and credits — your currently available usage in micro-USD (1,000,000 = $1.00).

GET/status

Liveness + which provider families are configured. Useful for health checks.

Errors

StatusTypeMeaning
401authentication_errorMissing, revoked, or unknown key
402billing_errorAllowance used and balance empty, or spend limit reached
429rate_limit_errorOver 120 requests/minute on one account, or global throttle
502api_errorUpstream provider failure — retry with backoff

Error bodies follow the Anthropic shape: {"type":"error","error":{"type":"…","message":"…"}}.

Rate limits

Streaming responses are metered from the final usage frame. If your client disconnects mid-stream, you're still billed for tokens the provider generated.