Fix model not found errors in OpenAI-compatible APIs
List models with the same key first. That one request tells you whether to fix authentication, routing, the model ID or endpoint compatibility.
What does model not found mean?
Direct answer: the server could not route the model identifier used by that request. Do not rename the model from memory. List the models visible to the same API key and copy an exact id.
| Result | What it establishes | Next check |
|---|---|---|
GET /v1/models returns 401 | The request reached authentication, but the credential was absent or rejected | Authorization header and which MonkeyAI system issued the key |
| Model list succeeds, requested ID is absent | That key does not currently see that exact ID | Choose a returned ID or ask whether access should be enabled |
| Model list succeeds, exact ID is present, generation fails | Basic routing and model visibility passed | Endpoint compatibility, response error code and request evidence |
| Models route returns HTML or 404 | The request probably did not reach the compatible API route | Base URL and whether the client appended /models correctly |
List the models available to your key
OpenAI's Models API documents GET /v1/models as the endpoint that lists currently available models and basic information about them. Run it against the same host and key used by your client.
curl -sS https://monkeytheme.com/v1/models \ -H "Authorization: Bearer ***"
Read the returned data[].id values. The spelling, punctuation and suffix must match. A name from a blog post, another provider or a different account is not evidence that your key can use it here.
Keep the host, key and Base URL together
Run the check with the same Base URL and credential as the failing client. Keys from separate systems are not interchangeable. For MonkeyAI's OpenAI-compatible endpoint, use:
OPENAI_BASE_URL=https://monkeytheme.com/v1 OPENAI_API_KEY=***
If a client asks for a Base URL, enter the base once. Do not produce /v1/v1 by adding /v1 both in the client setting and in a custom endpoint field. If the raw response is HTML, inspect the final URL before changing the model.
Copy an exact model ID instead of inventing an alias
Use a literal ID returned by /v1/models. Client labels such as "fast", "default" or a display name may be local aliases rather than API model IDs. Check the client's model field, environment variables, workspace settings and per-agent overrides.
curl -sS https://monkeytheme.com/v1/models \
-H "Authorization: Bearer ***" \
| python3 -c 'import json,sys; [print(x.get("id")) for x in json.load(sys.stdin).get("data", [])]'If the exact ID is listed but the request still fails
Preserve the HTTP status, structured error code, response headers, request ID when present, endpoint family and timestamp. A listed model may still require a specific endpoint or request shape. OpenAI-compatible gateways can expose different compatibility rules, so inspect the actual response rather than assuming every listed model supports every endpoint.
- Confirm whether the client called
/v1/chat/completionsor/v1/responses. - Retry once with the smallest valid request and no tools, images or optional parameters.
- Compare the model ID in the outgoing request with the ID copied from the list.
- Do not send the API key or full sensitive prompt in a support ticket.
Sources and related guides
Frequently asked questions
Should I guess a newer model name when I get model not found?
No. Call GET /v1/models with the same key and copy an exact data[].id value.
Does a successful model list prove chat requests will work?
No. It proves basic authentication, routing and model visibility for that request. The generation endpoint and request shape still need to be compatible.
Why does the models route return HTML?
The request may be hitting a website or SPA route instead of the API. Check the final Base URL and make sure the request is sent to /v1/models.
Can I use a key issued by another MonkeyAI system?
No. Credentials belong to the system that issued them. Use the same monkeytheme.com key and Base URL together.
What evidence should I send to support?
Send the timestamp, endpoint, model ID, HTTP status, safe error details and request ID when present. Do not send the API key or full sensitive prompt.