# Fix 404 model_not_found and model_retired

> Why BigModel.io returns 404 model_not_found or model_retired, how to get exact model IDs, and how to stop Claude Code from asking for claude-* models.

Web version: https://bigmodel.io/docs/error-model-not-found · Updated 2026-10-27

The key is fine, but the model ID in the request does not match a model you can call:

```json
{ "code": "model_not_found", "message": "The model `glm-5.4` does not exist or is not available.", "error": { "message": "The model `glm-5.4` does not exist or is not available.", "type": "invalid_request_error", "code": "model_not_found" } }
```

## What it means

- **`model_not_found`**: the ID is mistyped, or the model is not in the catalog. Every pay-as-you-go key can call every catalog model; plan keys cover text models only.
- **`model_retired`**: the model was taken off sale. The message names the replacement: "The model `X` has been retired. Use `Y` instead."
- **A `claude-*` model on `/v1/messages`**: Claude Code asked for one of its default Claude models because a model slot was not set. The message reads: "The model `claude-…` is not available on BigModel.io. In Claude Code, set ANTHROPIC_MODEL and ANTHROPIC_DEFAULT_HAIKU_MODEL (and the Sonnet/Opus defaults) to a supported model: …"

## How to fix it

1. Copy the ID from the [model catalog](https://bigmodel.io/models), or list what your key can call:

```bash
curl https://bigmodel.io/v1/models -H "Authorization: Bearer $BIGMODEL_API_KEY"
```

2. Check dots and dashes: `glm-5.3`, `deepseek-v4-pro`, `kimi-k3`. IDs are matched case-insensitively, and vendor-prefixed IDs such as `z-ai/glm-5.3` also work.
3. For `model_retired`, switch to the model named in the message.
4. In Claude Code, set `ANTHROPIC_MODEL` and all three `ANTHROPIC_DEFAULT_*_MODEL` values to models that support `/v1/messages`. See [Claude Code](https://bigmodel.io/docs/claude-code).

## Troubleshooting

**The ID works in curl but not in my tool.** The tool may add a prefix or change the case of the name. Check its request log, or type the ID by hand instead of picking it from a preset list.

**An image or video model returns 400 `model_endpoint_mismatch`.** The model exists but belongs to another endpoint. Call the endpoint named in the message, for example `/v1/videos`.

## Related

- [Model IDs](https://bigmodel.io/docs/model-ids)
- [List models](https://bigmodel.io/docs/api-models)
- [Error codes and responses](https://bigmodel.io/docs/errors)
