Getting started, authentication, endpoints, and error codes
RoboVAI is compatible with OpenAI and Anthropic official clients — just swap the base_url and api_key.
https://api.robovai.comThe endpoint below is returned by the current gateway; put it into your client’s base_url / API endpoint field.
OpenAI-compatible clients use https://api.robovai.com/api/open/v1; Anthropic-compatible clients (e.g. Claude Code) use https://api.robovai.com/api/plan.
Create a key in “Dashboard → API Keys”, then put it into your client’s api_key field.
Every request carries the API key via an HTTP header:
apiDocs.auth.headerKey format: subscription keys start with sub_, pay-as-you-go keys start with api_.
Never hardcode keys in frontend code or public repos; reset immediately in the dashboard if leaked.
https://api.robovai.com/api/planCompatible with the Anthropic Messages API — for Claude Code, official Claude SDKs, etc. Full path: https://api.robovai.com/api/plan
https://api.robovai.com/api/open/v1Compatible with the OpenAI Chat/Completions API — for ChatBox, OpenCat, etc. Full path: https://api.robovai.com/api/open/v1
Endpoints grouped by input/output modality. Text chat is sync/stream; image generation returns a URL synchronously; video generation is async (submit then poll). All request bodies are forwarded to the upstream provider — only model is required; other fields follow the corresponding model spec.
Async endpoint: submit to get a task_id, then poll for the result.
Sync or streaming text chat, compatible with both OpenAI and Anthropic protocols.
https://api.robovai.com/api/open/v1/chat/completionsOpenAI-compatible, supports streaming. Full path: https://api.robovai.com/api/open/v1/chat/completions
https://api.robovai.com/api/plan/v1/messagesAnthropic-compatible, for Claude Code etc. Full path: https://api.robovai.com/api/plan/v1/messages
| Status | Meaning | Suggestion |
|---|---|---|
| 400 Bad Request | Invalid request parameters | Check the body, model name, and parameter format. |
| 401 Unauthorized | Missing or invalid key | Ensure the Authorization header carries a valid API key. |
| 402 Payment Required | Insufficient balance or quota exhausted | Top up in the dashboard or switch keys. |
| 403 Forbidden | No access to this model | Confirm your key’s plan includes the target model. |
| 404 Not Found | Model or endpoint not found | Verify the model ID and endpoint path. |
| 429 Too Many Requests | Rate limited | Reduce request frequency or retry later. |
https://api.robovai.com/api/open/v1/responsesOpenAI Responses API (incl. WebSocket). Full path: https://api.robovai.com/api/open/v1/responses
https://api.robovai.com/api/open/v1/embeddingsText vectorization. Full path: https://api.robovai.com/api/open/v1/embeddings
| Field | Type | Required | Description |
|---|---|---|---|
| model | string | Yes | Model ID. |
| messages | array | Yes | Conversation message array, with role and content. |
| stream | boolean | No | Stream the response, default false. |
| temperature | number | No | Sampling temperature, 0–2, default 1. |
| max_tokens | integer | No | Maximum tokens to generate. |
| tools |
apiDocs.modalities.text.requestapiDocs.modalities.text.responseReturns the generated image URL synchronously (OpenAI gpt-image via /api/open; Volcengine Doubao Seedream etc. via /api/multimodal; Midjourney via /api/mj).
https://api.robovai.com/api/open/v1/images/generationsOpenAI gpt-image and similar models. Full path: https://api.robovai.com/api/open/v1/images/generations
https://api.robovai.com/api/open/v1/images/editsImage editing from a reference image. Full path: https://api.robovai.com/api/open/v1/images/edits
https://api.robovai.com/api/multimodal/v1/images/generationsVolcengine Doubao Seedream and similar multimodal models. Full path: https://api.robovai.com/api/multimodal/v1/images/generations
Async interface: submit a task to get a task_id, then poll until it succeeds and returns result_url.
https://api.robovai.com/api/multimodal/v1/videos/generationsSubmit a video generation, returns task_id. Full path: https://api.robovai.com/api/multimodal/v1/videos/generations
https://api.robovai.com/api/multimodal/v1/videos/tasks/:task_idQuery task status; returns result_url on success. Full path: https://api.robovai.com/api/multimodal/v1/videos/tasks/:task_id
| Field | Type | Required | Description |
|---|---|---|---|
| model | string | Yes |
Flow: POST submit → get task_id → poll GET at intervals → read result_url when status is succeeded.
apiDocs.modalities.video.pollResponseOpenAI-compatible audio endpoints: text-to-speech, transcription, translation.
https://api.robovai.com/api/open/v1/audio/speechTTS; takes text, returns audio. Full path: https://api.robovai.com/api/open/v1/audio/speech
https://api.robovai.com/api/open/v1/audio/transcriptionsAudio to text. Full path: https://api.robovai.com/api/open/v1/audio/transcriptions
https://api.robovai.com/api/open/v1/audio/translationsTranslate audio into text in the target language. Full path: https://api.robovai.com/api/open/v1/audio/translations
| 500 Internal Server Error |
| Server error |
| Retry later; contact support if it persists. |
| 503 Service Unavailable | Service temporarily unavailable | Retry for transient errors; do not blindly retry non-idempotent endpoints. |
| array |
| No |
| List of callable tools/functions. |
https://api.robovai.com/api/mj/submit/:actionimagine/blend/action/describe etc.; query via GET /api/mj/task/:task_id. Full path: https://api.robovai.com/api/mj/submit/:action
| Field | Type | Required | Description |
|---|---|---|---|
| model | string | Yes | Model ID (e.g. gpt-image, Seedream series). |
| prompt | string | Yes | Image description prompt. |
| n | integer | No | Number of images, default 1. |
| size | string | No | Image size, e.g. 1024x1024. |
| quality | string | No | Quality (OpenAI): standard/hd. |
| response_format |
apiDocs.modalities.image.requestapiDocs.modalities.image.response| Model ID (e.g. Seedance series). |
| prompt | string | Yes | Video description prompt. |
| duration | number | No | Video length in seconds, e.g. 5. |
| resolution | string | No | Resolution, e.g. 720p, 1080p. |
| ratio | string | No | Aspect ratio, e.g. 16:9, 9:16. |
| fps | number | No | Frame rate, e.g. 24, 30. |
apiDocs.modalities.video.requestapiDocs.modalities.video.submitResponse| Field | Type | Required | Description |
|---|
| model | string | Yes | Model ID (e.g. tts-1). |
| input | string | Yes | Text to synthesize. |
| voice | string | Yes | Voice, e.g. alloy, echo, nova. |
| response_format | string | No | Audio format: mp3/opus/aac/flac, default mp3. |
| speed | number | No | Speed, 0.25–4, default 1. |
apiDocs.modalities.audio.request(binary audio stream, Content-Type: audio/mpeg)| string |
| No |
| Return format: url or b64_json, default url. |
| style | string | No | Style (OpenAI): vivid/natural. |