Skip to main content

What You Need in Advance

  • An account, logged in to the console
  • At least one API key created under API Keys, in the space (personal or team) you intend to call from
  • Sufficient balance — calls are rejected when quota is insufficient (see Billing)

Model Availability

  • Determined by your access group: each API key can call the models enabled for its model-access group. Two keys on the same account may see different model lists.
  • The model directory is authoritative: GET /v1/models, /claude/v1/models, and /gemini/:version/models return exactly what the current key can call. Anything absent is unavailable.
  • Per-key restrictions: a key can be further limited to specific models from its detail panel — a model in your group may still be blocked for that key.
  • Task services: capabilities like Midjourney, Suno, RecraftAI, and Kling depend on those channels being enabled for your deployment.

Quota and Billing

  • Insufficient quota rejects immediately: quota is validated and pre-deducted before the request reaches a model. If any level (personal, team, or owner balance) is short, the call is rejected.
  • Two-phase settlement: pre-deduction on request, settlement on completion based on actual usage; failures roll back the reservation.
  • Independent quota pools: personal and team contexts are separate. Confirm your current space before automating.

Rate Limits

Rate limiting applies on two dimensions: per IP address (separate buckets for general API traffic, uploads, and downloads, with thresholds set per deployment) and per account (determined by your access group — 600 requests per minute on the default group). Exceeding either returns 429 with a Retry-After header. Design for it regardless:
  • Implement exponential backoff on 429
  • Spread bulk workloads rather than firing them in parallel spikes
  • Prefer batching where the API supports it
Model relay traffic is metered by quota rather than the general API rate limiter — the limits that matter most for high-volume inference are your balance and the upstream provider’s own limits.

Protocol and Entry Point Notes

  • OpenAI-compatible /v1/*: accepts OpenAI-style request bodies. Broad surface — chat completions, responses, embeddings, images, audio, moderations, files, batches, and more.
  • Native paths: /claude/v1/messages and /gemini/:version/models/:model preserve each provider’s own protocol, fields, and model IDs. Use these with the official Claude/Gemini SDKs.
  • Task interfaces: Midjourney, Suno, RecraftAI, and Kling follow an asynchronous “submit → poll task id” pattern; a single request does not return the final asset.
  • Parameter passthrough: provider-specific parameters (reasoning effort, Claude thinking, Gemini search and code execution) pass through unchanged — keep them in the official format.
Newer OpenAI reasoning models (gpt-5 family, o1/o3/o4) expect max_completion_tokens rather than max_tokens on Chat Completions.

Stability Notes

  • Channel health: automatic retry and channel switching require at least one healthy alternative; when all channels for a model are unavailable, requests fail.
  • Long streaming calls: streams close on network errors or timeouts — implement client-side timeout and reconnection handling.

Permissions and Context

  • Space context: calls execute in a personal or team context, each with its own quota pool and model visibility.
  • Roles: managing team quotas, viewing team-wide usage, and adjusting member allocations depend on your team role — see Roles and Permissions.
  • Log visibility: members see their own call records; team-wide logs and statistics require the corresponding permission.

Pre-Use Checklist

  1. Confirm the current space (personal vs. team) and that your balance is sufficient
  2. List models via the directory endpoint and confirm your target model appears
  3. For task services, confirm the channel is enabled in your deployment
  4. Estimate volume and reserve quota before production traffic