The gateway exposes an OpenAI-compatible API under https://app.manylayers.io/v1, plus an Anthropic-compatible /v1/messages. Use this page to check whether an endpoint exists and which providers can serve it. On the hosted service, /v1 and the console’s control-plane routes (/ui, /auth/*, /admin/*, /w/*) are both served from https://app.manylayers.io. A self-hosted stack runs them as separate services (Gateway and Workspace). All /v1 endpoints require Authorization: Bearer <token>: an API key (ml-...), personal access token (ml_pat_...), virtual account token (ml_vat_...) or an OIDC JWT. See Authentication and Making Requests. The caller’s organization must hold the AI Gateway product, otherwise /v1 answers 403 product_not_entitled.

Where models come from

A model is resolved from one of two sources (see Model Resolution):
  • Workspace providers registered in the console, for callers bound to a workspace.
  • models: in gateway.yaml, the configured catalog.
Which source an endpoint uses:
  • Workspace providers only (for a workspace-bound credential): /v1/chat/completions, /v1/systemone, and /v1/responses and /v1/messages, which run as chat completions.
  • Workspace providers first, then gateway.yaml: /v1/embeddings, /v1/rerank, /v1/audio/speech and /v1/audio/transcriptions. A workspace model of the wrong type (a chat model on /v1/embeddings) is refused.
  • gateway.yaml only: /v1/completions, /v1/images/*, /v1/audio/translations, /v1/moderations, files, fine-tuning, realtime and async.

Chat & completions

MethodPathDescription
POST/v1/chat/completionsChat completions on every provider. Set "stream": true for Server-Sent Events.
POST/v1/responsesOpenAI Responses API, stateless. Translated onto chat completions, so it works on every provider. See Responses.
POST/v1/messagesAnthropic Messages API. Translated onto chat completions, so it works on any provider, not only Anthropic. See Anthropic Messages API.
POST/v1/completionsLegacy text completions.
GET/v1/modelsModels your credential may use, aliases and virtual models included.
GET/v1/models/{model}One model. A model outside your policy returns 404.
See OpenAI Compatibility for which parameters each provider honours.

Embeddings

MethodPathDescription
POST/v1/embeddingsText embeddings. OpenAI-compatible providers are passed through; Azure is re-addressed to the deployment; Gemini, Vertex, Cohere and Bedrock are translated. Bedrock inputs are embedded one call per input and merged into one response. Anthropic has no embeddings.

Realtime

MethodPathDescription
GET/v1/realtime?model=<model>WebSocket tunnel to OpenAI or Azure OpenAI realtime. See Realtime API.

Images & audio

MethodPathProvidersDescription
POST/v1/images/generationsopenai, azureGenerate images
POST/v1/images/editsopenai, azureEdit an image with a prompt and optional mask (multipart)
POST/v1/images/variationsopenai, azureVariations of an image (multipart)
POST/v1/audio/speechopenai, azure, elevenlabs, deepgram, cartesia, smallestText-to-speech
POST/v1/audio/transcriptionsopenai, azure, elevenlabs, deepgram, cartesia, smallestSpeech-to-text (multipart)
POST/v1/audio/translationsopenai, azureTranslate audio to English text (multipart)
A model on any other provider returns 400 unsupported_provider. Responses carry X-ManyLayers-Cost when the model has a price configured. These endpoints skip token counting, PII redaction, the cache, guardrails and budget checks; access policies, model restrictions and rate limits still apply.

Moderations & rerank

MethodPathDescription
POST/v1/moderationsPassed through for openai and azure models. Without a model, or for other providers, a built-in moderation check answers.
POST/v1/rerankTranslated to Cohere’s rerank API for cohere; passed through for openai, azure and OpenAI-compatible providers.

Files & fine-tuning

openai and azure only. Name the model in the X-ManyLayers-Model header or the ?model= query parameter. POST /v1/fine_tuning/jobs reads model from its JSON body instead; without any of these the call returns 400 missing_model.
MethodPathDescription
POST/v1/filesUpload a file
GET/v1/filesList files
GET/v1/files/{id}File metadata
GET/v1/files/{id}/contentDownload file content
DELETE/v1/files/{id}Delete a file
POST/v1/fine_tuning/jobsCreate a fine-tuning job
GET/v1/fine_tuning/jobsList jobs
GET/v1/fine_tuning/jobs/{id}Job status
POST/v1/fine_tuning/jobs/{id}/cancelCancel a job

Async inference

MethodPathDescription
POST/v1/async/chat/completionsQueue a chat completion; returns 202 with a job id
POST/v1/async/completionsQueue a legacy completion
GET/v1/async/jobs/{id}Job status and result
Jobs replay through the full gateway pipeline and can deliver results to a signed webhook. See Async Requests.

System One

MethodPathDescription
POST/v1/systemoneTypeSafe System One call: {model, state, questions} in, {model, answers, usage} out. Only TypeSafe decision models; other providers return 400 unsupported_provider.

Knowledge bases & document sets

MethodPathDescription
POST/v1/kbCreate a knowledge base
GET/v1/kbList knowledge bases
DELETE/v1/kb/{id}Delete a knowledge base
GET/v1/kb/{id}/documentsList documents
POST/v1/kb/{id}/documentsAdd a document
DELETE/v1/kb/{id}/documents/{docID}Delete a document
POST/v1/kb/{id}/queryVector search over a knowledge base
GET/v1/docsetsList document sets
POST/v1/docsetsCreate a document set
GET/v1/docsets/{id}Get a document set
PUT/v1/docsets/{id}Update a document set
DELETE/v1/docsets/{id}Delete a document set

Service endpoints

Every service (Gateway and Workspace) serves these without a credential, outside /v1: GET /health and /healthz (liveness), /ready and /readyz (readiness, which also checks dependencies), /version (build stamp), and /metrics (Prometheus).

Unsupported endpoints

These OpenAI surfaces are refused with 404 and code: "unsupported_endpoint", for every method and sub-path. The message names what to use instead.
PathUse instead
/v1/assistantsWorkspace Agents, or /v1/chat/completions with tools
/v1/threadsWorkspace Agents, or chat completions with the conversation in messages
/v1/conversations/v1/responses with the conversation in input
/v1/vector_stores/v1/kb and /v1/docsets
/v1/containersWorkspace Agents
/v1/uploads/v1/files (single multipart upload)
/v1/evalsThe evaluation suite under /admin/evals on the Workspace service
/v1/organizationThe Workspace admin API under /admin
Any other unrouted /v1 path — including /v1/responses/{id} — also returns 404 unsupported_endpoint. A known path called with the wrong method returns 405 method_not_allowed. Both use the standard OpenAI error envelope.

Next steps

Making Requests

Configure your SDK and send a first request.

Request & Response Headers

Headers that steer and describe each request.

Model Resolution

How a model name becomes a provider deployment.

OpenAI Compatibility

Parameter support per provider.