> ## Documentation Index
> Fetch the complete documentation index at: https://docs.taimly.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Ошибки

> Коды ошибок Taimly API и способы их решения

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

Все ошибки возвращаются с соответствующим HTTP-статусом и JSON-телом:

```json theme={null}
{
  "detail": "Описание ошибки"
}
```

## 401 — Invalid or missing API key

Проблема с аутентификацией.

```json theme={null}
{
  "detail": "Invalid or missing API key"
}
```

**Возможные причины:**

| Причина                               | Решение                                                         |
| ------------------------------------- | --------------------------------------------------------------- |
| Заголовок `Authorization` отсутствует | Добавьте заголовок `Authorization: Bearer YOUR_API_KEY`         |
| Неверный формат заголовка             | Убедитесь в формате `Bearer <ключ>` (с пробелом после `Bearer`) |
| Ключ невалиден или истёк              | Запросите новый ключ у администратора                           |

**Пример правильного запроса:**

```bash theme={null}
curl -X POST https://taimly.net/api/spam-check/start \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
```

## 404 — No accounts available for this scope

Нет активных тестовых аккаунтов для проверки.

```json theme={null}
{
  "detail": "No accounts available for this scope"
}
```

Эта ошибка возникает при вызове `POST /api/spam-check/start`, если в системе нет доступных Gmail-аккаунтов. Обратитесь к администратору.

## 404 — Check not found or expired

Проверка не найдена или истекла.

```json theme={null}
{
  "detail": "Check not found or expired"
}
```

Эта ошибка возникает при вызове `GET /api/spam-check/{check_id}`.

**Возможные причины:**

| Причина                                  | Решение                                                       |
| ---------------------------------------- | ------------------------------------------------------------- |
| Неверный `check_id`                      | Используйте `check_id` из ответа `POST /api/spam-check/start` |
| Проверка истекла (прошло более 10 минут) | Создайте новую проверку                                       |
| Сервер был перезапущен                   | Создайте новую проверку                                       |

<Info>
  Проверки хранятся **5 минут** в активном состоянии и **10 минут** до полного удаления. Опрашивайте результаты сразу после отправки письма.
</Info>

## Обработка ошибок в коде

<CodeGroup>
  ```python Python theme={null}
  import requests

  API_KEY = "YOUR_API_KEY"
  BASE_URL = "https://taimly.net"
  HEADERS = {"Authorization": f"Bearer {API_KEY}"}

  response = requests.post(f"{BASE_URL}/api/spam-check/start", headers=HEADERS)

  if response.status_code == 401:
      print("Ошибка: невалидный API-ключ")
  elif response.status_code == 404:
      print("Ошибка: нет доступных аккаунтов")
  elif response.ok:
      data = response.json()
      print(f"Проверка создана: {data['check_id']}")
  else:
      print(f"Неизвестная ошибка: {response.status_code}")
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(`${BASE_URL}/api/spam-check/start`, {
    method: "POST",
    headers: { "Authorization": `Bearer ${API_KEY}` }
  });

  if (response.status === 401) {
    console.error("Ошибка: невалидный API-ключ");
  } else if (response.status === 404) {
    console.error("Ошибка: нет доступных аккаунтов");
  } else if (response.ok) {
    const data = await response.json();
    console.log(`Проверка создана: ${data.check_id}`);
  }
  ```
</CodeGroup>

## Таблица всех ошибок

| Код   | Сообщение                            | Эндпоинт          | Описание                        |
| ----- | ------------------------------------ | ----------------- | ------------------------------- |
| `401` | Invalid or missing API key           | Оба               | Проблема с API-ключом           |
| `404` | No accounts available for this scope | `POST /start`     | Нет тестовых аккаунтов          |
| `404` | Check not found or expired           | `GET /{check_id}` | Проверка не найдена или истекла |
