/v1/chat/completionsUse this for chat, tools, structured output, and streaming with OpenAI SDKs.
Start with one copyable request, then follow the path that matches your job.
This model is not enabled in the current catalog. Pick a model from the picker above.
Inferway keeps the OpenAI-compatible path small and predictable, then exposes account, billing, usage, and agent operations as separate first-party endpoints.
/v1/chat/completionsUse this for chat, tools, structured output, and streaming with OpenAI SDKs.
/v1/interactionsUse this for video generation: durable background jobs you submit once and poll until the result is ready.
/v1/keys · /v1/billing · /v1/usage · /v1/requestsUse this for server-side key, wallet, usage, and request-metadata workflows.
| Endpoint | Method | Purpose |
|---|---|---|
| /v1/chat/completions | POST | OpenAI-compatible chat completions |
| /v1/interactions | POST | Asynchronous video generation jobs (five operations on one route) |
| /v1/models | GET | List published models with capability and pricing metadata |
| /v1/mcp/sse · /v1/mcp/messages | GET · POST | MCP server endpoint (live) |
| /v1/keys | GET / POST / DELETE | Manage direct API keys |
| /v1/billing | GET | Wallet summary and recent usage |
| /v1/billing/transactions | GET | Wallet ledger transactions |
| /v1/billing/checkout | POST | Create a Stripe Checkout top-up session |
| /v1/usage | GET | Aggregated usage for a time window |
| /v1/requests | GET | Request metadata history (no content) |
| /health | GET | Gateway and backend health status |
| /v1/stats | GET | Aggregate service statistics |
Video generation does not return inline. Every call goes to POST /v1/interactions and names the operation in the body's op field; the job is durable, so a dropped connection never loses work already paid for.
| op | Purpose |
|---|---|
| prepare_upload | Request a one-time upload ticket for a single input image — JPEG, PNG or WebP, at most 10 MiB each. |
| create | Submit a generation task and get an interaction id. The price of the ordered duration is held when you submit and charged only once the video is ready; a failed task costs nothing. |
| get | Read the durable state, the current stage, and — once delivery commits — the result and its download URL. |
| cancel | Best-effort cancellation of a queued or in-flight job. |
| list | List past interaction jobs with pagination and status filtering. |
Supported public endpoints are POST /v1/chat/completions, POST /v1/interactions and GET /v1/models. The legacy POST /v1/completions is not served: it answers 501 (not implemented) and names the chat completions route to use instead. POST /v1/messages (Anthropic-format) is served and open to API keys; every request must carry the anthropic-version: 2023-06-01 header.
Choose a model to see its published capability facts. API examples and tool setup use the same selection.
No model is currently selected.
Inferway returns OpenAI-compatible error objects: {"error": { "type": "...", "message": "...", "code": "..." }}
The complete set of error codes /v1/chat/completions and /v1/agent/chat can return, read from the gateway's own catalog rather than transcribed. Each row carries the HTTP status, whether a retry is safe, and the exact message the API sends. Checkout, billing and key-management endpoints return their own codes, not listed here.
| Code | HTTP | Retry safe | Meaning |
|---|---|---|---|
| account_benefits_restricted | 403 | No | Free text use is temporarily restricted. Contact support for a review at https://inferway.ai/console/contact. This restriction does not deduct paid funds. |
| admission_paused | 503 | Yes — back off first | Paid admission is paused while we finish a service change. Retry shortly; nothing is wrong with this request. |
| authentication_error | 401 | No | Authentication failed. |
| conflict | 409 | No | A conflict occurred with the current state of the resource. |
| context_length_exceeded | 400 | No | The prompt exceeds the model's context window. Shorten or compact the conversation and retry. |
| free_quota_exhausted | 429 | Yes — back off first | Free quota exhausted. Please retry later. |
| free_tier_unavailable | 503 | Yes — back off first | The free tier is temporarily unavailable; please retry shortly. |
| internal_error | 500 | No | An internal error occurred. |
| internal_tool_failure | 500 | No | An internal tool error occurred. |
| invalid_image_input | 400 | No | The image input was invalid. Check the image rejection code and message. |
| invalid_request | 400 | No | The request was invalid. |
| malformed_upstream | 502 | No | Received an invalid response from the upstream service. |
| model_unavailable | 503 | Yes — back off first | This model is temporarily out of service. Other models are unaffected; please retry later. |
| payment_required | 402 | No | Payment required. Add credit at https://inferway.ai/console/billing |
| playground_allowance_exhausted | 402 | No | Your daily Playground allowance is used up. Top up at https://inferway.ai/console/billing to continue, or try again after 00:00 UTC. |
| promotional_credit_not_supported | 402 | No | This model accepts purchased funds, top-up bonuses and earned rewards (referral, feedback); other promotional credits cannot be used here. Please add funds. |
| rate_limited | 429 | Yes — back off first | Rate limit exceeded. Please retry later. |
| service_unavailable | 503 | No | Service outage in progress. Live status: https://inferway.ai/status |
| upstream_rejected | 422 | No | The upstream service rejected the request. |
| upstream_timeout | 504 | Yes — back off first | The upstream service timed out. Please retry. |
| upstream_unavailable | 503 | Yes — back off first | The service is temporarily unavailable. |
These are platform request windows and account quotas, not generation-capability or retention claims for an unselected model.
| Subject | Limit | Window |
|---|---|---|
| Anonymous playground | 90 | per minute, per IP |
| Anonymous playground | 500 | per hour |
| Anonymous playground | 1,000 | per rolling 24 hours |
| Funded accounts | Account limits | Free caps no longer apply — visible in the console |