Memo AIDocs

Ошибки и rate limits

HTTP-коды, которые возвращает Memo AI API (401, 403, 422, 429, 5xx), формат JSON-ошибки, причины каждого и как обрабатывать rate limits.

API использует стандартные HTTP-коды. 2xx — успех; 4xx — что-то в запросе нужно исправить.

Коды статусов

СтатусЗначениеТипичная причина
200OKЗапрос успешен.
201CreatedКлюч создан (управление).
204No ContentКлюч отозван (управление).
401UnauthorizedНет/неверный/истёкший ключ или ключ передан в URL.
402Payment RequiredЗакончились минуты тарифа (загрузки).
403ForbiddenПлан без доступа к API (api_access_denied) или ключ без права загрузки (upload_scope_required).
404Not FoundРесурс не существует в вашем workspace.
408Request TimeoutЗагрузка зависла или шла слишком долго.
409ConflictТот же Idempotency-Key еще в полете.
411Length RequiredЗагрузка без Content-Length.
413Payload Too LargeФайл больше лимита загрузки 2 ГБ.
422Unprocessable EntityНеверный параметр (например, плохой format, слишком много ids).
429Too Many RequestsПревышен rate limit или лимит загрузок.
5xxОшибка сервераВременная — повторите с backoff.

Формат ошибки

Большинство ошибок возвращают JSON с полем detail. Ошибки доступа/плана включают машиночитаемый code:

403 Forbidden
{
  "detail": {
    "code": "api_access_denied",
    "message": "Your current plan does not include API access. Please upgrade to a plan with API & MCP support."
  }
}
401 Unauthorized
{
  "detail": "Invalid API key"
}

Частые случаи

Что видитеПочемуКак исправить
401 на каждом вызовеКлюч отозван, истёк или с пробелом в концеСоздайте новый ключ, аккуратно скопируйте
401 с ключом в query-строкеКлючи в URL отклоняются намеренноПеренесите ключ в заголовок Authorization
403 api_access_deniedПлан без API & MCPПерейдите на Pro или Expert
404 на известном IDРасшифровка в другом workspaceИспользуйте ключ того workspace
422 на экспортеformat не md/txt или ids пуст/больше 100Исправьте параметр

Ошибки загрузки и удаления

Загрузка файла и Удаление расшифровки возвращают машиночитаемые коды в detail.code. Ветвите код по code, а не по тексту сообщения:

КодСтатусЗначениеЧто делать
unsupported_file_format400Расширение не поддерживаетсяСверьтесь со списком форматов
file_too_small400Меньше 1 КБЭто не настоящая запись
filename_required400Нет заголовка Content-DispositionДобавьте заголовок
insufficient_balance402Минуты закончилисьПополните и загрузите заново
upload_scope_required403У ключа нет права загрузкиСоздайте ключ с опцией Разрешить загрузку файлов
delete_scope_required403У ключа нет права удаленияСоздайте ключ с опцией Разрешить удаление расшифровок
upload_timeout408Стрим завис / дольше 90 минутПроверьте соединение, повторите
idempotency_conflict409Тот же Idempotency-Key еще грузитсяПодождите Retry-After, повторите
length_required411Нет Content-LengthИспользуйте клиент, который его ставит
file_size_limit_exceeded413Больше 2 ГБРазрежьте или сожмите файл
too_many_concurrent_uploads429Лимит параллельных загрузокПодождите Retry-After, повторите
too_many_queued_files429100+ файлов ждут обработкиОчередь дренируется — подождите, повторите
upload_quota_exceeded429Суточный анти-абьюз капПовторите после полуночи UTC или напишите в поддержку
export_quota_exceeded429Суточный кап объема экспортаПовторите после полуночи UTC или напишите в поддержку
uploads_temporarily_disabled503Загрузки выключеныВременно — повторите позже

Временные (408, 429, 5xx) → повтор с backoff. Остальные → чините запрос, повтор не поможет. Никогда не пересылайте файл после 201 — это создаст вторую расшифровку со вторым списанием.

Rate limits

Лимиты — на ключ:

ПоверхностьЛимит
Data-эндпоинты (list / get / export / bulk)500 запросов / минуту
Объем экспорта10 ГБ / сутки
Загрузка файлов60 запросов / минуту, 10 одновременных на ключ
Удаления30 запросов / минуту
Управление ключами180 запросов / минуту

При превышении приходит 429. Обрабатывайте аккуратно:

  • Сделайте паузу, не повторяйте сразу. Подождите несколько секунд и попробуйте снова.
  • Избегайте плотных циклов. Для экспорта многих расшифровок используйте Массовый экспорт (один запрос) вместо цикла по одиночным экспортам.
  • Распределяйте нагрузку вместо сотен вызовов разом.

Не делайте мгновенный авто-ретрай на 429

Немедленные авто-повторы только усугубляют лимит. Используйте экспоненциальный backoff (например, 1s, 2s, 4s).

На этой странице