Guides
Compatibility
Client and provider compatibility matrix for the LM0 gateway.
LM0 prioritizes practical SDK compatibility over implementing every optional field of the OpenAI and Anthropic APIs.
Client surfaces
| Surface | Path | Typical clients |
|---|---|---|
| OpenAI Chat Completions | POST /v1/chat/completions |
OpenAI SDKs, LiteLLM, many agent frameworks |
| OpenAI Responses | POST /v1/responses |
Newer OpenAI clients (subset) |
| Anthropic Messages | POST /v1/messages |
Anthropic SDKs, Claude-compatible tools |
| Models | GET /v1/models |
Both ecosystems (shape via headers) |
Auth compatibility
| Style | Header |
|---|---|
| OpenAI | Authorization: Bearer <key> |
| Anthropic | x-api-key: <key> |
Provider compatibility
Upstream adapters speak:
- OpenAI-compatible HTTP APIs
- Anthropic-compatible HTTP APIs
Cross translation is first-class: OpenAI clients can target Anthropic providers and Anthropic clients can target OpenAI providers via the canonical middle layer.
Supported feature areas
| Feature | Support |
|---|---|
| Non-streaming text | Yes |
| Streaming (SSE) | Yes (surface-specific) |
| Vision / image input | When upstream supports it |
| Tool / function calling | Translated where possible |
| Reasoning / thinking | Visible translation where upstream exposes it |
| Model listing | Yes (dual shape) |
| Token counting | Anthropic route; estimates for some targets |
Known limitations
The gateway intentionally does not implement every OpenAI or Anthropic field. High-level gaps include:
- Incomplete coverage of niche sampling / modality parameters
- Responses API is a stateless subset, not full stateful Responses
- Some tool and reasoning edge cases depend on upstream fidelity
- Provider-specific extensions may be dropped during translation
When in doubt, start with simple chat/messages payloads, then enable tools and streaming.
Billing & enforcement (DB mode)
| Concern | Behavior |
|---|---|
| Credits / package tokens | Reserved and recorded around generation |
| RPM | Per account tier |
| Ban | Hard block |
| Maintenance pause | Blocks generation endpoints only |