Nuvix documentation
Manage your account, create an API key and send messages through the Deepgram-managed model connection. Requests become available when the server's provider credentials are configured.
Your account
Register with your name, email, a password of 12–128 characters, and the security code, or use Google sign-in. Manage your workspace and account from Settings.
Email verification and email password recovery are not available yet. Keep your password in a password manager.
Create an API key
Open API keys, choose Create key and name it after your app. Copy the key while it is visible: the full value is shown only once. Store it on your server, never in public frontend code. You can revoke it from the same page.
Pass your Nuvix key in the Authorization: Bearer header. Your key works for GET /v1/models, POST /v1/chat/completions and Anthropic Messages requests at POST /v1/messages. The Messages route also accepts the Anthropic-compatible x-api-key header.
Send a text request
This endpoint accepts a JSON message history and returns one complete text response. Set the NUVIX_API_KEY environment variable on your server, then run:
curl https://nuvix.top/v1/chat/completions \
-H "Authorization: Bearer $NUVIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-sonnet-4-6",
"messages": [
{"role": "user", "content": "Hello"}
],
"temperature": 0.7,
"stream": false
}'The reply is in choices[0].message.content. To continue a conversation, append the assistant reply and your next user message to messages. The browser Playground manages this history while its tab stays open.
Supported request format
Use one of the model IDs returned by GET /v1/models. Messages contain a role and plain-text content. You may begin with one system message, followed by alternating user and assistant messages. The last message must be from the user.
The entire JSON request must fit within 64 KB and contain at most 32 messages, including the optional system message. temperature is optional and ranges from 0 to 1. Responses are nonstreaming: omit stream or set it to false.
This chat-completions route does not support images, tools, streaming or a custom max_tokens setting. The request and reply use familiar chat-completion fields; this does not imply support for every SDK feature. Long code outputs can still be shortened by the upstream agent. If that happens, request the code in smaller files or sections.
Anthropic Messages compatibility
Send Anthropic-format text requests to https://nuvix.top/v1/messages with model, required max_tokens, and messages. This route accepts JSON bodies up to 20 MiB. Text-block content, an optional text system prompt, temperature, stream, and the output limit are applied. Other top-level fields are accepted for forward compatibility but currently ignored. System prompts that exceed Deepgram's managed prompt limit are preserved in the model context instead of rejected. The reply is capped using Nuvix's estimated token count. Streaming uses Anthropic SSE event names after generation completes. Inline base64 `image` blocks and `document` blocks for PDF, plain text, CSV and Markdown are accepted. Nuvix extracts text locally with Poppler and English/Dutch Tesseract OCR, then sends only that text to Deepgram. This supports reading printed text; it does not give the model visual access to photos, charts, diagrams or layout. Use at most 5 attachments, 10 MB per attachment, 5 PDF pages and 56 KiB of extracted message text. URL and Files API sources are not supported. Anthropic's server-side web search tool (web_search) is supported: the search runs on our side and the results are returned as server_tool_use and web_search_result blocks. The selected model is served as the model you request; no other model is substituted for it.
curl https://nuvix.top/v1/messages -H "Authorization: Bearer $NUVIX_API_KEY" -H "anthropic-version: 2023-06-01" -H "Content-Type: application/json" -d '{
"model": "claude-sonnet-5-5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello"}]
}'Availability and errors
API and Playground requests share your subscription allowance. Both five-hour and weekly limits apply. If you enable optional balance use under Plan & billing, your balance covers usage beyond the included allowance. Free accounts use signup credit or top-ups. Running requests reserve their estimated maximum, then release unused allowance and balance. If provider credentials have not been configured, chat requests return HTTP 503 with provider_not_configured.
Failed requests return a non-success HTTP status and a JSON error message. Check that your key is valid, the model ID is supported and the message history fits the limits. If the service is busy, wait before retrying. Large replies can take more than two minutes. A timeout may occur after a request has reached the provider, so check your recent request logs before sending the same request again.
Request history and billing
Logs show the latest 100 requests with their model, HTTP status and latency. Prompts and responses are not stored in these logs. Playground conversations remain in the current tab and are cleared when you reload or leave the page.
New accounts start with $25.00 in usage credit. Paid plans run for 30 days and activate after confirmed crypto payment; renewals are manual. Renewing the same plan extends its term. Changing plans starts a new term immediately without prorating, and current usage windows carry over. Top-ups remain available after a plan expires. Model promotions change the effective token prices shown under Models. Failed requests are not charged. Token counts are estimated from text.
Account protection
Passwords are stored as hashes, and sign-in uses a secure session cookie. Security codes expire and can be used only once. Reload the registration or sign-in page if the code has expired. Repeated attempts are rate limited; wait before retrying if you reach a limit.