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.agentapiai.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.agentapiai.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
High-Volume LLM API for Bulk Jobs — OpenAI-Compatible, One Key | TeamoRouter