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.

shell
# 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_...
python · openai
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,)
python · anthropic
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.