Which /v1 routes does MonkeyAI actually expose?

Before wiring an OpenAI-, Anthropic- or Gemini-style SDK, the only honest way to know whether a route is supported is to send a probe and read the status code. This page captures that probe, end-to-end, against the public endpoint matrix on 2026-08-09.

2026-08-09Probe timestamp
22 routesHTTP-method × /v1/* combinations probed
7 supportedReturned 401 (auth-first path)
13 not exposedReturned 404 page not found

What this page measured on production

Each row below comes from a single curl probe at the time noted. The auth header is the same fake Bearer key across all rows, so a supported route returns 401 fast (about 0.6–0.9 s) and an unsupported route returns nginx 404 immediately. No real customer key was used; no upstream provider call was made.

One row that deserves calling out before you read the table: POST /v1/images/generations returned 401 INVALID_API_KEY, which means the relay accepts the route and gates on auth first. The image-model provider account pool is checked only after a valid key is presented.

Endpoint matrix (2026-08-09)

MethodPathStatusWhat the status means
GET/v1/models401Supported. The auth probe — endpoint exists, gates on API key first.
POST/v1/chat/completions401Supported. OpenAI Chat Completions, auth before provider routing.
POST/v1/responses401Supported. OpenAI Responses endpoint.
POST/v1/messages401Supported. Anthropic Messages, auth before provider routing.
POST/v1/embeddings401Supported. Embeddings relay path, covered in its own guide.
POST/v1/images/generations401Supported. The relay accepts the route; image-model account pool is checked after auth.
POST/v1/audio/speech404Not exposed. Not in the current sub2api route list.
POST/v1/moderations404Not exposed. No moderation relay path on this host.
POST/v1/audio/transcriptions404Not exposed. No audio-input relay path.
GET/v1/files404Not exposed. MonkeyAI has no file-storage surface.
GET/v1/fine_tuning404Not exposed. No fine-tuning jobs endpoint.
GET/v1/fine_tuning/jobs404Not exposed. Same as above.
GET/v1/batches404Not exposed. Use inline requests, not batch jobs.
GET/v1/assistants404Not exposed. No assistant runtime on this relay.
GET/v1/chat404Wrong path. Use /v1/chat/completions.
GET/v1/completions404Legacy Completions not exposed.
GET/v1/images404Wrong path. Use /v1/images/generations.
GET/v1/audio404Wrong path. Audio routes are not exposed at all today.
DELETE/v1/models404Wrong method. /v1/models is GET only.
PUT/v1/models404Wrong method.
GET/v1/chat/completions404Wrong method. Chat Completions is POST.
OPTIONS/v1/chat/completions403Cloudflare preflight blocked. Send a real POST.

Auth-header matrix (probed 2026-08-09)

All three header forms are accepted as authentication. The probe key was the same fake Bearer across every row, so a 401 INVALID_API_KEY proves the header was accepted but the key was not.

Header set on GET /v1/modelsStatusBody code
(no auth header)401API_KEY_REQUIRED
Authorization: Bearer ***401INVALID_API_KEY
x-api-key: ***401INVALID_API_KEY
x-goog-api-key: ***401INVALID_API_KEY
Bearer + x-api-key + x-goog-api-key401INVALID_API_KEY
anthropic-version: 2023-06-01 (no auth)401API_KEY_REQUIRED
The anthropic-version header is preserved if you send it, but it is not used for authentication. A request without any of the three auth headers above still returns 401 API_KEY_REQUIRED.

How to use this page

  1. If the route is in the 401 rows above, your SDK is pointing at a path the relay will accept. The remaining failure surface is: API key (401), model id (404 from provider), upstream rate limit (429/502), upstream timeout (504). Read the matching guide before retrying.
  2. If the route is in the 404 rows above, your SDK is pointing at a path the relay does not implement. Switch to the closest supported path; do not invent a new path.
  3. If the status you see on your client is missing from this table, capture the status code, request path, response body and request id, then check the right sibling guide: 401, 429, 503, 504, model not found.

What this page does not claim

Endpoint coverage can change between releases of the upstream sub2api binary. If a path here suddenly returns 404 in your client, re-probe it with the same script before changing client code.

FAQ

Does MonkeyAI expose /v1/audio/speech or /v1/moderations?

No. Both return 404 page not found in the production probes captured on 2026-08-09. They are not in the current sub2api route list.

Why does POST /v1/images/generations return 401 instead of 404?

The images route exists, so the relay first runs its API-key check. With a bad key it returns 401 INVALID_API_KEY before any provider routing happens.

Are /v1/files, /v1/fine_tuning, /v1/batches, or /v1/assistants exposed?

No. All four return 404 page not found. MonkeyAI is a relay for chat, responses, messages, embeddings and images only.

Does MonkeyAI accept the x-api-key header from the Anthropic SDK?

Yes. The /v1/models probe returns 401 INVALID_API_KEY with x-api-key alone, and again with all three auth headers together.

Is anthropic-version treated as an auth header?

No. A request that only carries anthropic-version: 2023-06-01 returns 401 API_KEY_REQUIRED. The header is preserved, but not used to authenticate.

Related guides

OpenAI-compatible gateway overview

Why the relay exists, which auth headers it accepts and how to read the first 401 / 404.

Open guide

Embeddings API setup

The /v1/embeddings route in more detail, with 401/404 probes and a model-id check.

Open guide

Client configuration matrix

Match each supported client to the right Base URL, header set, and probe sequence.

Open guide