NieoToken logo NieoTokenDocs
OpenAI-compatible · one endpoint, every model

Integration docs

One base URL, one key, every model. If your SDK speaks OpenAI, point it at NieoToken and you are done — no wrapper, no vendor SDK, no subscription.

POST /v1/chat/completions
curl https://nieotoken.com/v1/chat/completions
-H "Authorization: Bearer sk-••••"
-d '{"model":"deepseek-v4-flash","messages":[
  {"role":"user","content":"Hello"}]}'
200 OK  1.2s · 168 tokens
{ "content": "Hello! How can I help?" }
⚡
Drop-in OpenAI SDKChange base_url, keep your code
🔑
Per-key controlsQuota, model scope, expiry, IP allowlist
📊
Transparent usagePer-token logs, live balance

1Quickstart in three steps

From signup to your first 200 response, about a minute.

01
Create an account

Sign up at nieotoken.com — email or GitHub. Free credit is added to new accounts.

02
Create a key

Open the Tokens page and generate a key starting with sk-.

03
Call the API

Set base URL to https://nieotoken.com/v1, pick a model, send a request.

💡Keys can be created, frozen or deleted at any time. Each key carries its own quota cap, allowed models, expiry date and IP allowlist — useful when you split usage by project or by teammate.

2Endpoint and authentication

All traffic is HTTPS with standard Bearer authentication — identical to what your OpenAI client already does.

BASE URL https://nieotoken.com/v1

Key endpoints

PurposeEndpoint
List available modelsGET /v1/models
Chat completionsPOST /v1/chat/completions
Responses APIPOST /v1/responses
Auth headerAuthorization: Bearer sk-your-key
⚠️Treat a key like cash. Never commit it to a public repository or paste it in a shared notebook. If it leaks, freeze it on the Tokens page and create a new one.

3Code examples

Replace sk-**** with a real key from your console and each snippet runs as-is.

curl
# chat completion (streaming)
curl https://nieotoken.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-****" \
  -d '{
    "model": "deepseek-v4-flash",
    "messages": [{"role": "user", "content": "Hello"}],
    "stream": true
  }'

# list models
curl https://nieotoken.com/v1/models \
  -H "Authorization: Bearer sk-****"
Python · OpenAI SDK
from openai import OpenAI

client = OpenAI(
    api_key="sk-****",                     # your key
    base_url="https://nieotoken.com/v1",   # NieoToken
)

resp = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[{"role": "user",
               "content": "Hello"}],
)
print(resp.choices[0].message.content)
Node.js
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "sk-****",
  baseURL: "https://nieotoken.com/v1",
});

const res = await client.chat.completions.create({
  model: "deepseek-v4-flash",
  messages: [{ role: "user", content: "Hello" }],
});
console.log(res.choices[0].message.content);
TypeScript · streaming
import OpenAI from "openai";

const stream = await client.chat.completions.create({
  model: "deepseek-v4-flash",
  messages: messages,
  stream: true,                  // SSE stream
});

for await (const chunk of stream) {
  process.stdout.write(
    chunk.choices[0]?.delta?.content ?? ""
  );
}
Images (vision models)
const res = await client.chat.completions.create({
  model: "deepseek-v4-flash-vision-exp",
  messages: [{
    role: "user",
    content: [
      { type: "text", text: "What is in this screenshot?" },
      { type: "image_url",
        image_url: { url: "data:image/png;base64,..." } }
    ]
  }]
});
Batch jobs · what the gateway adds
# NieoToken spreads requests across multiple
# upstream accounts and retries once on failure,
# so a sustained batch does not need you to
# rotate keys or run your own pooling layer.

# Keep concurrency sane and let the gateway
# handle upstream hiccups:
for prompt in prompts:
    try:
        out.append(call(prompt))
    except RateLimitError:
        backoff(); retry(prompt)

4Client configuration

Pick OpenAI as the provider type in each app, then fill in the three fields below. No plugin needed.

AppProvider typeBase URLModel
ChatboxOpenAIhttps://nieotoken.com/v1deepseek-v4-flash
Cherry Studio
NextChat
LobeChat
Cline / Continue (editor agents)
OpenCat, Immersive Translate, etc.
🔑The API key is the sk- key you created on the Tokens page. For everyday chat use deepseek-v4-flash; for harder math and multi-step reasoning try deepseek-v4-pro; for screenshots and image input use a model tagged vision.

5Available models

The list below is generated from the live routing table and refreshed automatically every day. Per-model rates, quotas and availability in your console are the authoritative source.

Last synced: —
DeepSeek2 models▼
deepseek-v4-flashEveryday chat, coding and bulk work. Fast and the best value per token - the default pick. deepseek-flashlightLightweight and fast, lower unit cost
OpenAI9 models▼
gpt-6-astraflagshipOpenAI flagship tier model. gpt-5.6-solHigh-performance general chat and task model. gpt-5.6-terraHigh-performance general chat and task model. gpt-5.6-lunalightLightweight and fast, with a lower unit cost. gpt-5.4Standard general-purpose chat model. gpt-5.5Standard general-purpose chat model. gpt-image-2visionAccepts images and screenshots gpt-5.3-codexAvailable model gpt-realtime-2.1Available model
Others40 models▼
gemini-3.8-flashlightLightweight and fast, lower unit cost gemini-3.7-flashlightLightweight and fast, lower unit cost gemini-3.6-flashlightLightweight and fast, lower unit cost gemini-3.5-flashlightLightweight and fast, lower unit cost gemini-3.5-flash-litelightLightweight and fast, lower unit cost gemini-3.1-pro-previewflagshipLightweight and fast, lower unit cost gemini-2.5-flash-imagevisionLightweight and fast, lower unit cost gemini-3-pro-image-previewvisionLightweight and fast, lower unit cost gemini-3-pro-imagevisionLightweight and fast, lower unit cost gemini-3.1-flash-image-previewvisionLightweight and fast, lower unit cost gemini-3.1-flash-imagevisionLightweight and fast, lower unit cost gemini-3.1-flash-lite-imagevisionLightweight and fast, lower unit cost grok-4-1-fast-reasoninglightLightweight and fast, lower unit cost grok-4.3Available model grok-4.5Available model grok-4.6Available model glm-4.5Available model glm-4.5-airAvailable model glm-4.6Available model glm-4.7Available model glm-5Available model glm-5-turboAvailable model glm-5.1Available model glm-5.2Available model glm-5.3Available model glm-5.3-flashlightLightweight and fast, lower unit cost qwen3.8-flashlightLightweight and fast, lower unit cost qwen3.8-maxflagshipFlagship-class capability qwen3.7-maxflagshipFlagship-class capability qwen3.7-flashlightLightweight and fast, lower unit cost qwen3.6-flashlightLightweight and fast, lower unit cost qwen3.6-plusAvailable model qwen3.5-flashlightLightweight and fast, lower unit cost qwen3.5-plusAvailable model wan2.7-imagevisionAccepts images and screenshots wan2.7-image-provisionFlagship-class capability qwen-image-3.0-provisionFlagship-class capability qwen-image-3.0visionAccepts images and screenshots wan3.0-imagevisionAccepts images and screenshots wan3.0-image-provisionFlagship-class capability
No model matches that keyword. Try another one.
🖼️To send an image, pass a data:image/...;base64,xxx URL in the image_url content part and pick a model tagged vision — text-only models ignore image input. Click any model card to copy its ID.

6FAQ

Still stuck? The fastest route is a comment on our Hacker News or Reddit thread, or email the operator.

?I get 401 Unauthorized.

The key is invalid or expired. Check its status on the Tokens page, copy the full key including the sk- prefix, and verify the header reads Authorization: Bearer sk-xxx.

?How does billing work, and where do I see the balance?

Prepaid and per token — no subscription, no seat fee. Your remaining balance is at the top of the console overview. Every request's token count and cost appear in the Logs page, so you can reconcile charges exactly.

?Do you support streaming?

Yes. Send "stream": true and you get an SSE stream with the same event shape as OpenAI, which is what you want for typewriter-style output.

?Can several apps share one key?

Yes — a key is not bound to a device. If you want separate budgets per project, create separate keys and set a quota cap on each instead.

?I get 429 Too Many Requests.

Either you exceeded a rate limit or the balance ran out. Lower your concurrency, or check quota and top up in the console, then retry.

?What is the minimum top-up, and how do I pay?

Top-ups start at a small amount and the unused balance stays on your account. The payment methods available to you are listed on the top-up page inside the console once you are signed in — check there before you plan a purchase, since the available channels differ by region.

?Is this an official reseller of OpenAI, DeepSeek, Alibaba or Zhipu?

No. NieoToken is an independent API gateway. Models are served through upstream providers, and we do not claim official partnership or reseller status with any of them. If you need a signed SLA or a contract with a vendor, buy from that vendor directly.

?How private is my data?

Prompts are forwarded to the upstream provider you selected in order to generate a reply, so that provider's own policy applies to them. We do not sell your data. See the privacy policy for details.

Get a key and make your first call

One OpenAI-compatible endpoint for DeepSeek V4, Qwen and GLM · free credit on signup · pay per token

Create free account →