Skip to main content

Official Python SDK for AllToken — one API for OpenAI, Anthropic, and 100+ models.

Project description

alltoken

Official Python SDK for AllToken — one API for OpenAI, Anthropic, and 100+ models.

pip install alltoken

Requires Python 3.10+.

Quick start

from alltoken import AllToken

client = AllToken(api_key="...")  # or os.environ["ALLTOKEN_API_KEY"]

# OpenAI-compatible surface (maps to /v1)
resp = client.openai.raw.post(
    "/chat/completions",
    json={
        "model": "gpt-4o",
        "messages": [{"role": "user", "content": "Hello!"}],
    },
)
print(resp.json())

# Anthropic-compatible surface (maps to /anthropic)
resp = client.anthropic.raw.post(
    "/messages",
    json={
        "model": "claude-sonnet-4",
        "max_tokens": 1024,
        "messages": [{"role": "user", "content": "Hello!"}],
    },
)
print(resp.json())

The same API key works for both surfaces. Model catalog: alltoken.ai/models.

Configuration

AllToken(
    api_key="...",                      # required
    base_url="https://api.alltoken.ai", # optional, defaults to production
    default_headers={"X-My-Tag": "a"},  # optional, merged into every request
)

API surface

Field Spec Base URL
client.openai.raw chat.yml (OpenAI-compatible) https://api.alltoken.ai/v1
client.anthropic.raw anthropic.yml https://api.alltoken.ai/anthropic

.raw is a pre-configured httpx.Client — base URL + auth are set, call .get() / .post() / .stream() directly. Pydantic models for request/response bodies are generated from the OpenAPI specs into alltoken.generated.chat and alltoken.generated.anthropic.

Status

v0.1.0 — Scaffold. Pydantic models are generated from the spec, the wrapper surface is minimal. Expect breaking changes in 0.x. Ergonomic helpers (client.chat.completions.create(...), async streaming iterators, retries, etc.) are coming in 0.2.x.

Contributing / Local development

# Clone megaopenrouter as a sibling (for the OpenAPI specs)
git clone git@gitlab.53site.com:ai-innovation-lab/megaopenrouter.git ../megaopenrouter

# Install with dev deps
pip install -e ".[dev]"

# Regenerate pydantic models from specs
python scripts/generate.py

# Test + lint
pytest
ruff check
mypy .

Generated models live in src/alltoken/generated/{chat,anthropic}.py — these are committed so users who install from PyPI don't need to run codegen.

License

MIT

\x00 \x00

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

alltoken-0.2.2.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

alltoken-0.2.2-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file alltoken-0.2.2.tar.gz.

File metadata

  • Download URL: alltoken-0.2.2.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for alltoken-0.2.2.tar.gz
Algorithm Hash digest
SHA256 245483e7858d1bcb4dd195756092d363bb01fb3e45d172349688d8c44a7576e2
MD5 3b744c3a92122ebf432441d7cb4d77a8
BLAKE2b-256 a297c368f950d6462d249ee5ac29c49d8a2e08fac9687cc2f815edc8d10ef80e

See more details on using hashes here.

File details

Details for the file alltoken-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: alltoken-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 13.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for alltoken-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5c73003ab5eae37c2adfb85bd2bbe1384d607d60548b2c65895fe93fd277f2f0
MD5 c1aba0087ba7361fc5e506fd9be27b04
BLAKE2b-256 df70b1564dc035e1c3cdca826b0ddd30b897550ddefbdeee64d6a177f873d060

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page