Quickstart
One endpoint, either SDK. Change a base URL, keep the client you already have, and pick a queue with service_tier.
Base URLs
Both protocols are served from the same host. Set one environment variable and the SDK does the rest.
# OpenAI SDKsexport OPENAI_BASE_URL=https://api.partitionlabs.ai/v1export OPENAI_API_KEY=pl_... # Anthropic SDKsexport ANTHROPIC_BASE_URL=https://api.partitionlabs.aiexport ANTHROPIC_API_KEY=pl_...from openai import OpenAI client = OpenAI() # reads the envstream = client.chat.completions.create( model="qwen3.8-27b-fp8", messages=[{"role": "user", "content": "..."}], service_tier="flex", # queue order, not speed stream=True,)from anthropic import Anthropic client = Anthropic()message = client.messages.create( model="qwen3.8-27b-fp8", max_tokens=1024, messages=[{"role": "user", "content": "..."}], service_tier="flex",)Streaming, tool calls and image input work on both surfaces. Files and batches use the OpenAI shapes, /v1/files and /v1/batches, from either key.
Models
Every pool runs one model, resident in memory. The model id names the pool, and a subscription is a share of exactly one.
qwen3.8-27b-fp8-4k- Qwen 3.8 27B FP8, 4k context pool, up to 4k context
qwen3.8-27b-fp8-8k- Qwen 3.8 27B FP8, 8k context pool, up to 8k context
qwen3.8-27b-fp8-16k- Qwen 3.8 27B FP8, 16k context pool, up to 16k context
qwen3.8-27b-fp8- Qwen 3.8 27B FP8, General pool, up to 32k context
qwen3.8-27b-fp8-64k- Qwen 3.8 27B FP8, 64k context pool, up to 64k context
qwen3.8-27b-fp8-128k- Qwen 3.8 27B FP8, 128k context pool, up to 128k context
qwen3.8-27b-fp8-256k- Qwen 3.8 27B FP8, 256k context pool, up to 256k context
service_tier
A tier sets queue admission order, never stream speed: every tier runs the same model at the same tokens per second, and a higher tier starts sooner when the pool is busy.
priority- Priority — queue-jump under contention
standard- Standard — the default
flex- Flex — same model and speed; last in line
batch- Batch — async; completes within 24h or 7d
Pass it top-level on an OpenAI request or as the same field on an Anthropic one. A request that names no tier is standard. The tier that actually served the request is echoed back in usage, so a log can tell which queue it went through.
Limits and 429s
A 429 is never a statement about pool capacity. It comes from the per-key limits, which every tier publishes on the pricing page: concurrent slots, queue depth and a maximum wait.
- Max output tokens
- 32,768
- Max request body
- 32 MiB
- Images per request
- 20, up to 33,177,600 pixels in total
- Request wall clock
- 1800s
- Stalled stream abort
- 120s
- Keepalive interval
- 15s
- Pay-as-you-go context
- up to 64k tokens
- Pay-as-you-go max wait
- 60s standard / 240s flex, then 429
Past its share a subscriber is never refused: their traffic ranks below paying pay-as-you-go requests and queues until they are back under share. Retry a 429 after the queue wait the tier publishes, not sooner.
Files and batches
Batch finishes inside the window you pick — 24 hours or 7 days, same price. We refuse work we cannot schedule in time rather than accept it and run late; anything still unfinished at the deadline expires and is not billed. Results stay available for 30 days after completion, or less if you ask. Files up to 512 MiB, batches up to 100,000 requests or 256 MiB; storage is included with every plan.
For agents
The short form of this page is /llms.txt; the full ladder, the rate card, the limits and the questions from the pricing page are in /llms-full.txt. Both are generated from the same data as this site, so they cannot say something the pages do not.