AI model API for developers

One key and one base URL for text models, images and video. Being OpenAI- and Anthropic-compatible means an existing SDK or client needs nothing but our address and our key — no rewrite.

First request
curl https://api.teamtoken.store/v1/chat/completions \
  -H "Authorization: Bearer $TEAMTOKEN_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "model": "gpt-5.6-sol", "messages": [{"role":"user","content":"Hi"}] }'
from openai import OpenAI
import os

client = OpenAI(
    base_url="https://api.teamtoken.store/v1",
    api_key=os.environ["TEAMTOKEN_KEY"],
)
r = client.chat.completions.create(
    model="gpt-5.6-sol",
    messages=[{"role": "user", "content": "Hi"}],
)
curl https://api.teamtoken.store/v1/chat/completions \
  -H "x-api-key: $TEAMTOKEN_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "model": "gpt-5.6-sol", "messages": [{"role":"user","content":"Hi"}] }'
200 OK · usage.cost_usdthe request's cost arrives inside the answer — the x-teamtoken-cost-usd header and a field in the body.

Three scenarios, one key

Text
OpenAI- and Anthropic-compatible chat, responses and embeddings. Every reply carries its own cost.
  • ·The main text route: an OpenAI-shaped conversation.
  • ·The OpenAI Responses API — the path Codex CLI is configured against.
  • ·The same chat, in the Anthropic shape: a different request and response body.
  • ·Vectors for text, in the OpenAI shape.
To the endpoints →
Images
Image generation and edits. A long generation returns a job you poll by id.
  • ·Images come back as base64 in the same answer; a long generation returns a job id (202).
  • ·Poll the job a generation returned with 202: status, and the images once they are ready.
  • ·An edit is a generation with references: the same handler, a JSON body only.
To the endpoints →
Video
Asynchronous video generation from text, an image or another video, plus result delivery.
  • ·Queues a video generation: 202 with a job id, or the finished result inline with wait: true.
  • ·A video job's state, and the link to the finished clip.
  • ·Serves the clip's actual bytes — MP4 streamed through the gateway, not a redirect.
To the endpoints →

What's inside

One key, one balance
Text, images and video spend the same money: no separate account and no separate invoice per scenario.
OpenAI- and Anthropic-compatible
An existing SDK changes its base_url and its key; Anthropic clients call /v1/messages, where any model in the catalog answers — not only Claude.
Cost inside the answer
Text reports it in usage.cost_usd, and a non-streamed answer also in the x-teamtoken-cost-usd header; media reports it in cost_usd next to the job's status. Always a decimal string, so your client cannot re-render it by its own float rules.
A repeat is idempotent
A byte-identical request with the same key inside the TTL (60 s by default) never reaches the model twice and is not charged twice.
Media are asynchronous jobs
A long generation answers 202 with an id, is polled by that id, and its money stays reserved until the result arrives.
Catalog and status, no key
Live prices and model availability — a success rate and a per-day history — are open without authentication, readable before you sign up.

Documentation sections

Base URL and key

POST https://api.teamtoken.store/v1/chat/completions

Authorization: Bearer sk-…
x-api-key: sk-…

The key is issued in the cabinet and goes into either header — whichever the client prefers. The same key works on every endpoint below.

  • Preferred header — Authorization: Bearer sk-… .
  • Alternative for simple clients — x-api-key: sk-… .
  • POST requests require Content-Type: application/json.
  • Never keep a key in frontend code or a public repository — a key spends real money.

Endpoints

Text

OpenAI- and Anthropic-compatible chat, responses and embeddings. Every reply carries its own cost.

Images

Image generation and edits. A long generation returns a job you poll by id.

Video

Asynchronous video generation from text, an image or another video, plus result delivery.

Account & catalog

Which models are available and how much money the key's account has. The priced catalog needs no key.

OpenAPI document

The same contract, machine-readable: generated from this very spec, ready for a client generator or a Postman import.

About prices

Prices are live, and the catalog serves them — no key needed:

The key is issued right after signup; top up with a card, SBP or crypto.