For integrators and high-volume workloads

High-volume LLM API for bulk jobs

Run millions of requests a month on low-cost models through one OpenAI- and Anthropic-compatible key. Point your existing code at TeamoRouter and keep your own concurrency.

One key, OpenAI and Anthropic compatible

Change the base URL and the key; your OpenAI SDK, Anthropic SDK or any OpenAI-compatible client keeps working.

Low-cost models for parallel batches

DeepSeek V4.1 Flash 1017, GLM-5.3 Flash, MiniMax, Qwen and more, all behind the same endpoint.

One team wallet, split by member

Create a team in the console, top up one balance, and give each member their own API keys and budget.

Pay by card or in USDT / USDC

Top up by card, or with USDT or USDC from an exchange or wallet. No subscription; you pay only for the tokens you use.

Create an API key

New accounts start with a $0 balance — top up before your first request. Top up from $5.

Models that suit bulk workloads

Same base URL, switch only the model ID. Live prices are on the pricing page.

Rate limits, in plain terms

  • Limits are per account and counted in requests per minute (RPM). There is no limit on concurrent connections.
  • Image models have their own per-minute limit.
  • If a bulk job needs more requests per minute, contact sales and we raise the limit on your account.
  • There is no OpenAI Batch endpoint (/v1/batches). Requests return in real time; run your own concurrency, as in the example below.

Run a batch with your own concurrency

OpenAI Python SDK. Keep the number of in-flight requests in line with your per-minute limit.

import asyncio
from openai import AsyncOpenAI

client = AsyncOpenAI(base_url="https://api.teamorouter.com/v1", api_key="YOUR_TEAMOROUTER_KEY")

async def ask(prompt):
    r = await client.chat.completions.create(
        model="deepseek-flash-1017",
        messages=[{"role": "user", "content": prompt}],
    )
    return r.choices[0].message.content

async def main(prompts, concurrency=50):
    sem = asyncio.Semaphore(concurrency)
    async def one(p):
        async with sem:
            return await ask(p)
    return await asyncio.gather(*(one(p) for p in prompts))

results = asyncio.run(main(["task 1", "task 2", "task 3"]))

For the Anthropic SDK, use the base URL without /v1: https://api.teamorouter.com

FAQ

Is there a concurrency limit?
No. The gateway limits requests per minute per account, not the number of parallel connections. Contact sales if you need a higher per-minute limit.
Can my team share one balance?
Yes. Create a team in the console, top up the team wallet, invite members and give each one their own keys and budget. Usage is tracked per member and per key.
How do I pay?
By card, or with USDT or USDC: click Pay with crypto in the top-up dialog and transfer from an exchange or any wallet. The minimum top-up is $5.
Do I need to change my code?
Usually only the base URL, the API key and the model ID. Requests and responses follow the OpenAI and Anthropic formats.
Create an API key