// docs
Documentation
Connect GPT, Claude, Gemini, Kimi and DeepSeek through one OpenAI- and Anthropic-compatible endpoint. Unlimited tokens at a fixed monthly price, no per-token billing.
// quickstart
Quickstart
NEXORA is an OpenAI- and Anthropic-compatible gateway. To connect, change two things in your client: the Base URL and the API key. No other code changes are needed.
Base URL https://nexora-app.su/v1
API key nx-live-... (or nx-free-... for the free key)No key yet? Start with a free key — 5 requests on the Lite pool, no card — or pick a pool in Models & pricing.
// authentication
Authentication
Send your key in the standard Authorization header. The native Anthropic endpoint also accepts x-api-key.
Authorization: Bearer nx-live-your-api-key
# Anthropic SDK / POST /v1/messages
x-api-key: nx-live-your-api-keyCheck or recover a key
Use the Check API key button in the header, or call the endpoints below. You can check a key’s plan, pools, expiry and request usage, or resend an active key to its bound email.
curl https://nexora-app.su/api/key/check \
-H "Content-Type: application/json" \
-d '{"key":"nx-live-your-api-key"}'
# Resend key to its bound email
curl https://nexora-app.su/api/key/resend \
-H "Content-Type: application/json" \
-d '{"email":"you@domain.com"}'// free key
Free key
Every email can get one free key: 5 requests on the Lite pool, valid for 30 days, no card. The key is bound to your email, delivered to your inbox via the NEXORA mailer and also returned in the response. After 5 requests the key stops with HTTP 429 and you can upgrade to a paid pool.
curl https://nexora-app.su/api/free-key \
-H "Content-Type: application/json" \
-d '{"email":"you@domain.com"}'
# {"ok":true,"sent":true,"email":"you@domain.com","key":"nx-free-...","plan":"trial5-lite","pools":["lite"],"requests_limit":5}// pools
Pools & limits
Plans are unlimited: a fixed monthly price, no per-token billing and no daily or monthly token cap — only per-minute speed limits (RPM / TPM) apply. Each pool unlocks its own group of models. A key only works with models of its pool; any other model returns 403 model_not_allowed. The All pools bundle unlocks everything with one key.
| pool | USD / mo | RUB / mo | limits | models |
|---|---|---|---|---|
| Lite | $9 | 800 ₽ | 60 RPM · 1M TPM | Haiku, DeepSeek, Luna, Terra |
| Standard | $19 | 1 600 ₽ | 120 RPM · 2M TPM | Sol, Sonnet, Gemini Argon, Kimi |
| Max | $39 | 3 200 ₽ | 240 RPM · 4M TPM | Astra, Opus, Fable |
| All pools | $59 | 4 800 ₽ | per pool | Lite + Standard + Max |
// models
Models
16 models. Use the id from the table as the model parameter. Context is 1M tokens for every model; GPT-6 Astra has 1.05M.
| model id | provider | pool | context |
|---|---|---|---|
gpt-6-astra | OpenAI | Max | 1.05M |
gpt-6.1-sol | OpenAI | Standard | 1M |
gpt-6-sol | OpenAI | Standard | 1M |
gpt-6-terra | OpenAI | Lite | 1M |
gpt-6-luna | OpenAI | Lite | 1M |
claude-5-5-opus | Anthropic | Max | 1M |
claude-5-opus | Anthropic | Max | 1M |
claude-5-5-sonnet | Anthropic | Standard | 1M |
claude-5-sonnet | Anthropic | Standard | 1M |
claude-5-1-fable | Anthropic | Max | 1M |
claude-5-haiku | Anthropic | Lite | 1M |
deepseek-v4-pro | DeepSeek | Lite | 1M |
deepseek-v4-flash | DeepSeek | Lite | 1M |
gemini-4-argon | Standard | 1M | |
kimi-k3 | Moonshot AI | Standard | 1M |
kimi-k3.1 | Moonshot AI | Standard | 1M |
// endpoints
Endpoints
POST /v1/chat/completions
OpenAI-compatible chat. Supports streaming, tools and images.
curl https://nexora-app.su/v1/chat/completions \
-H "Authorization: Bearer nx-live-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-5-5-sonnet",
"messages": [{"role": "user", "content": "Hello!"}]
}'POST /v1/messages
Native Anthropic Messages API for the Anthropic SDK and Claude Code style clients.
curl https://nexora-app.su/v1/messages \
-H "x-api-key: nx-live-your-api-key" \
-H "Content-Type: application/json" \
-d '{"model":"claude-5-5-sonnet","max_tokens":1024,
"messages":[{"role":"user","content":"Hello!"}]}'GET /v1/models
Returns the list of available model ids.
curl https://nexora-app.su/v1/models -H "Authorization: Bearer nx-live-your-api-key"Streaming
Set "stream": true to receive Server-Sent Events. The stream ends with data: [DONE].
// integrations
Integrations
Cursor
Settings → Models → OpenAI API Key. Enable Override OpenAI Base URL and paste the values below, then add a model id from the table.
OpenAI Base URL https://nexora-app.su/v1
OpenAI API Key nx-live-your-api-key
Model claude-5-5-sonnetVS Code — Cline / Roo Code / Continue
Choose the OpenAI Compatible provider and fill in the same Base URL, key and model id.
{
"models": [{
"title": "NEXORA Sonnet",
"provider": "openai",
"model": "claude-5-5-sonnet",
"apiBase": "https://nexora-app.su/v1",
"apiKey": "nx-live-your-api-key"
}]
}Python
from openai import OpenAI
client = OpenAI(base_url="https://nexora-app.su/v1", api_key="nx-live-your-api-key")
r = client.chat.completions.create(
model="gpt-6-sol",
messages=[{"role": "user", "content": "Hello!"}],
)
print(r.choices[0].message.content)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://nexora-app.su/v1", apiKey: "nx-live-your-api-key" });
const r = await client.chat.completions.create({
model: "gemini-4-argon",
messages: [{ role: "user", content: "Hello!" }],
});
console.log(r.choices[0].message.content);Anthropic SDK
import anthropic
client = anthropic.Anthropic(base_url="https://nexora-app.su", api_key="nx-live-your-api-key")
m = client.messages.create(model="claude-5-opus", max_tokens=1024,
messages=[{"role": "user", "content": "Hello!"}])
print(m.content[0].text)// errors
Errors
Errors use standard HTTP status codes and a JSON body with error.code.
| HTTP | code | meaning |
|---|---|---|
401 | invalid_api_key | The key does not exist. |
403 | key_expired | The key has expired — renew the plan. |
403 | key_deactivated | The key was deactivated. |
403 | model_not_allowed | The model is not in the key’s pool. |
429 | quota_exceeded | Free key: all 5 requests used. |
429 | rate_limit | Pool RPM / TPM limit exceeded — retry with backoff. |
422 | invalid_request | Malformed request body. |
502 | upstream_error | Upstream provider error — retry. |