kosareva.cloud

Ошибка 404 API: сервер не нашёл путь или модель

Ключ и деньги в порядке, а ответ 404. Почти всегда это адрес: лишний или пропущенный /v1, опечатка в имени модели или GET вместо POST.

Коротко: Ошибка API с кодом 404 (not found) значит, что сервер не нашёл то, к чему вы обращаетесь: либо путь запроса, либо модель с таким именем. Ключ здесь ни при чём: до проверки ключа дело часто даже не доходит, потому что маршрут не совпал. Повторять запрос без изменений бесполезно.

/ Подробнее

Что важно знать

Две главные причины. Первая: base URL собран неверно. У OpenAI-совместимых сервисов адрес заканчивается на /v1, а SDK сам добавляет /chat/completions. Если написать /v1/chat/completions в base URL, SDK добавит путь второй раз и получит 404; если забыть /v1, путь не найдётся вовсе. Вторая: имя модели. У OpenAI это code model_not_found: опечатка, снятая с производства модель или имя с точкой там, где сервис ждёт дефис, и наоборот.

Третья причина реже, но коварнее: метод. Запрос на /chat/completions через GET вместо POST часть серверов отдаёт как 404, а не как 405. Проверяется одной командой curl со списком моделей: если /v1/models отвечает 200, адрес верный, и остаётся проверить имя модели.

/ На kosareva.cloud

Один адрес для всех моделей

Один адрес для всех моделей, точный список имён отдаёт /v1/models по вашему ключу. Имена пишутся без точек: gpt-5-6, claude-sonnet-5.

Адрес
https://api.kosareva.cloud/v1, ключ из кабинета
Оплата
Карта РФ или СБП от 50 ₽, компаниям — по счёту
Доступ
Без VPN, запросы идут с российских IP
from openai import OpenAI

client = OpenAI(
    api_key="ВАШ_API_КЛЮЧ",
    base_url="https://api.kosareva.cloud/v1",
)

response = client.chat.completions.create(
    model="gpt-5-6",
    messages=[{"role": "user", "content": "Привет!"}],
    stream=True,
)
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "ВАШ_API_КЛЮЧ",
  baseURL: "https://api.kosareva.cloud/v1",
});

const response = await client.chat.completions.create({
  model: "gpt-5-6",
  messages: [{ role: "user", content: "Привет!" }],
  stream: true,
});
curl https://api.kosareva.cloud/v1/chat/completions \
  -H "Authorization: Bearer ВАШ_API_КЛЮЧ" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-5-6","messages":[{"role":"user","content":"Привет!"}],"stream":true}'
/ Почему

Откуда берётся ошибка

base URL без /v1

адрес указан как https://api.example.com, и SDK шлёт запрос на /chat/completions без версии.

Лишний путь в base URL

адрес заканчивается на /chat/completions или /v1/chat, SDK добавляет свой путь поверх и получает несуществующий маршрут.

model_not_found

опечатка в имени, модель снята с производства, или имя написано с точкой, а у сервиса принято через дефис.

GET вместо POST

обращение к endpoint генерации методом GET, например через браузер или неверно настроенный HTTP-узел.

Другой формат API

Anthropic-путь /v1/messages отправлен на OpenAI-совместимый адрес или наоборот.

/ Тексты ошибок

Что пишет сервер и что это значит

Текст в ответеПричинаЧто делать
model_not_found / The model does not existТакой модели нет или имя с опечаткойВозьмите точное имя из /v1/models
Not Found на любой запросbase URL без /v1 или с лишним путёмОставьте адрес до /v1 включительно, остальное добавит SDK
Cannot GET /v1/chat/completionsМетод GET вместо POSTОтправляйте POST с JSON-телом
404 с HTML вместо JSONЗапрос ушёл не на API, а на сайт или проксиПроверьте домен и порт в base URL
Unknown path / route not foundПуть другого формата APIСверьте: /v1/chat/completions для OpenAI-формата, /v1/messages для Anthropic

Тексты приведены по ответам сервисов на момент написания; формулировки отличаются от сервиса к сервису.

/ Что делать

Порядок действий

01

Проверьте адрес списком моделей

Если этот запрос отвечает 200 и списком, base URL верный. Если 404, дело в адресе, а не в модели.

curl https://api.kosareva.cloud/v1/models \
  -H "Authorization: Bearer $KEY"
02

Оставьте base URL до /v1

Правильно: https://api.kosareva.cloud/v1. Неправильно: без /v1 или с /chat/completions в конце. SDK и большинство инструментов добавляют путь сами.

from openai import OpenAI
client = OpenAI(
    base_url="https://api.kosareva.cloud/v1",
    api_key="KEY",
)
r = client.chat.completions.create(
    model="gpt-5-6",
    messages=[{"role": "user", "content": "Привет"}],
)
03

Скопируйте имя модели из списка

Не набирайте имя по памяти: у каждого сервиса свои слаги, где-то с точками, где-то с дефисами. Возьмите строку id из ответа /v1/models.

04

Убедитесь, что метод POST

Endpoint генерации принимает только POST с телом JSON. Открытие адреса в браузере или GET-нода в конструкторе сценариев даст 404 или 405.

05

Сверьте формат API с адресом

Claude Code и Anthropic SDK ходят на /v1/messages, OpenAI SDK и совместимые инструменты на /v1/chat/completions. Адрес должен поддерживать тот формат, которым говорит ваш инструмент.

/ По инструментам

Где это чинится в разных инструментах

Cursor, Cline, Continue

Поле base URL должно заканчиваться на /v1, поле model содержать точный слаг. Лишний пробел или слеш в конце тоже ломают путь у некоторых версий.

Open WebUI

Пустой список моделей после сохранения соединения обычно значит 404 на /v1/models: проверьте, что адрес с /v1 и что «Verify connection» проходит.

n8n и Make

В HTTP-ноде метод должен быть POST, а URL полным, до /chat/completions включительно: здесь SDK ничего не добавляет.

Python и Node.js SDK

Исключение NotFoundError. Выведите поле body: там будет либо model_not_found, либо текст про путь.

/ FAQ

Частые вопросы

Нужен ли /v1 в base URL?

Для OpenAI SDK и совместимых инструментов да: адрес заканчивается на /v1, дальше SDK добавляет /chat/completions сам. В HTTP-ноде без SDK пишите полный путь.

Почему модель есть в каталоге, а API отвечает model_not_found?

Имя в каталоге и слаг в API могут отличаться: точки, дефисы, суффиксы версий. Берите id из /v1/models.

404 или 400, если модели нет?

У OpenAI отсутствующая модель приходит как 404 model_not_found. Часть сервисов отдаёт 400 с тем же смыслом, поэтому смотрите message, а не только код.

Почему модель вчера работала, а сегодня отвечает 404?

Скорее всего, её сняли с обслуживания или заменили новой версией: после даты отключения поставщик перестаёт принимать это имя и отвечает 404 model_not_found. OpenAI и Anthropic объявляют такие даты заранее на страницах о снятии моделей, а актуальное имя всегда можно взять из /v1/models.

Может ли 404 означать, что у ключа нет доступа к модели?

Да. У OpenAI текст так и звучит: «The model does not exist or you do not have access to it», то есть несуществующую модель и закрытую для вашего проекта сервис не различает. Если имя точно верное, проверьте, есть ли модель в ответе /v1/models по этому же ключу.

Ключ, который работает из России

OpenAI-совместимый адрес, оплата в рублях, ключ сразу после регистрации. Пополнение картой от 50 ₽.

Получить ключ