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", # one id; your plan sets the ceiling 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", 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 context ceiling is the same model on the same hardware. What you choose is the longest context your subscription reserves — a longer ceiling costs more per share unit because it holds more of the card.
qwen3.8-27b- Qwen 3.8 27B · 27B multimodal · FP8 weights, FP8 (e4m3) KV cache — reserved ceilings: 4k · 8k · 16k · 32k · 64k · 128k · 256k; credits up to 256k
A request longer than your plan's ceiling is refused (HTTP 400), not truncated and not billed.
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
- Subscription context
- your plan's reserved ceiling; longer requests are refused (400)
- Pay-as-you-go context
- the model's widest served ceiling; longer requests are refused (400)
- Pay-as-you-go max wait
- 60s standard / 240s flex, then 503
Credits run up to the widest context ceiling the model serves — one model id, no rung to name. A subscription reserves a ceiling: requests longer than your plan's ceiling are refused rather than run on someone else's reservation.
Inside the share you reserved you are never refused for volume. Past it the reservation is spent and your traffic is best-effort: it ranks below every paying pay-as-you-go request and queues while there is room, but a full queue is refused (429, with Retry-After) and one that outlasts the wait your tier publishes is refused too (503). Retry after the published wait, 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.