API overview
Wire formats & base URLs
| Format | Endpoint | Base URL |
|---|---|---|
| Anthropic Messages | /v1/messages | https://app.inferencehub.tech |
| OpenAI Chat Completions | /v1/chat/completions | https://app.inferencehub.tech/v1 |
| OpenAI Responses | /v1/responses | https://app.inferencehub.tech/v1 |
| OpenAI Images | /v1/images/generations | https://app.inferencehub.tech/v1 |
| OpenAI Embeddings | /v1/embeddings | https://app.inferencehub.tech/v1 |
| Rerank | /v1/rerank | https://app.inferencehub.tech/v1 |
The one rule that prevents most 404s: the Anthropic Messages wire uses the bare origin as its base URL (the client appends /v1/messages itself), while the OpenAI-format wires use the /v1 base (the client appends /chat/completions, /responses, …).
Authentication
One key — the same sk-prov-live-… value — wherever your client expects its provider credential:
- OpenAI-format clients: as the OpenAI API key, sent as an
Authorization: Bearerheader. - Anthropic-format clients: as the Anthropic API key / auth token — the
x-api-keyheader orANTHROPIC_AUTH_TOKENvalue.
Keys are scoped and revocable — rotate freely from the portal, and revoke immediately if a key is ever exposed.
Discover your models
The gateway serves whatever models are enabled on your plan. List the live ids — the .data[].id shape is common to the Anthropic and OpenAI /v1/models responses, so this works for any client:
curl -s https://app.inferencehub.tech/v1/models \ -H "Authorization: Bearer sk-prov-live-YOUR_KEY" | jq -r '.data[].id'Streaming
All three text surfaces stream with "stream": true, exactly as the native APIs do. During long quiet stretches the gateway may insert SSE comment lines to keep the connection alive — standard SSE clients (and the official SDKs) ignore comment frames automatically, so no handling is needed.
Byte-faithful pass-through
Your request and the model's response pass through unchanged on the native API — no prompt injection, no quality degradation, and the response's model field names the exact model that served it. Provider-side prompt caching passes through too: Anthropic cache_control breakpoints earn the cache read discount on the Messages wire, and the GPT models' automatic prefix caching applies on the Responses wire. One documented exception to pass-through: open-weight models used inside Claude Code are served through a format bridge (the provider only offers them on the OpenAI-style API), which converts the envelope both ways — the model's output and your billing are untouched.
For parameter-level reference, use the upstream docs for each format — every documented field passes through: Anthropic Messages, OpenAI Chat Completions, and OpenAI Responses. Model-specific limits live with the model — see Models.