NEXORA

// 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.

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-key

Check 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.

poolUSD / moRUB / molimitsmodels
Lite$9800 ₽60 RPM · 1M TPMHaiku, DeepSeek, Luna, Terra
Standard$191 600 ₽120 RPM · 2M TPMSol, Sonnet, Gemini Argon, Kimi
Max$393 200 ₽240 RPM · 4M TPMAstra, Opus, Fable
All pools$594 800 ₽per poolLite + 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 idproviderpoolcontext
gpt-6-astraOpenAIMax1.05M
gpt-6.1-solOpenAIStandard1M
gpt-6-solOpenAIStandard1M
gpt-6-terraOpenAILite1M
gpt-6-lunaOpenAILite1M
claude-5-5-opusAnthropicMax1M
claude-5-opusAnthropicMax1M
claude-5-5-sonnetAnthropicStandard1M
claude-5-sonnetAnthropicStandard1M
claude-5-1-fableAnthropicMax1M
claude-5-haikuAnthropicLite1M
deepseek-v4-proDeepSeekLite1M
deepseek-v4-flashDeepSeekLite1M
gemini-4-argonGoogleStandard1M
kimi-k3Moonshot AIStandard1M
kimi-k3.1Moonshot AIStandard1M

// 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-sonnet

VS 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.

HTTPcodemeaning
401invalid_api_keyThe key does not exist.
403key_expiredThe key has expired — renew the plan.
403key_deactivatedThe key was deactivated.
403model_not_allowedThe model is not in the key’s pool.
429quota_exceededFree key: all 5 requests used.
429rate_limitPool RPM / TPM limit exceeded — retry with backoff.
422invalid_requestMalformed request body.
502upstream_errorUpstream provider error — retry.