> ## 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.

# Быстрый старт

> Запустите первую проверку доставляемости за 5 минут

## Что вам понадобится

* **API-ключ** — запросите у администратора Taimly ([подробнее](/authentication))
* Возможность отправить email с вашего домена/сервиса

## Запуск проверки

### Шаг 1: Создайте проверку

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

  ```python Python theme={null}
  import requests

  API_KEY = "YOUR_API_KEY"
  BASE_URL = "https://taimly.net"

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

  data = response.json()
  check_id = data["check_id"]
  accounts = data["accounts"]

  print(f"Check ID: {check_id}")
  print(f"Отправьте письмо на: {', '.join(accounts)}")
  ```

  ```javascript JavaScript theme={null}
  const API_KEY = "YOUR_API_KEY";
  const BASE_URL = "https://taimly.net";

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

  const { check_id, accounts } = await response.json();

  console.log(`Check ID: ${check_id}`);
  console.log(`Отправьте письмо на: ${accounts.join(", ")}`);
  ```
</CodeGroup>

Ответ:

```json theme={null}
{
  "check_id": "a1b2c3d4e5f6",
  "accounts": [
    "inbox1+tc_a1b2c3d4e5f6@gmail.com",
    "inbox2+tc_a1b2c3d4e5f6@gmail.com",
    "inbox3+tc_a1b2c3d4e5f6@gmail.com"
  ]
}
```

### Шаг 2: Отправьте тестовое письмо

Отправьте **одно письмо** на все адреса из массива `accounts`. Добавьте их в поле **To** или **BCC**.

<Warning>
  Не изменяйте адреса — теги `+tc_...` привязывают письмо к проверке. Без тега система не сможет определить результат.
</Warning>

### Шаг 3: Получите результаты

Опрашивайте эндпоинт результатов каждые 5–15 секунд:

<CodeGroup>
  ```bash cURL theme={null}
  curl https://taimly.net/api/spam-check/a1b2c3d4e5f6 \
    -H "Authorization: Bearer YOUR_API_KEY"
  ```

  ```python Python theme={null}
  import time

  while True:
      response = requests.get(
          f"{BASE_URL}/api/spam-check/{check_id}",
          headers={"Authorization": f"Bearer {API_KEY}"}
      )
      result = response.json()

      if result["status"] != "pending":
          break

      print(f"Ожидание... ({result['received']}/{result['total']})")
      time.sleep(10)

  print(f"Статус: {result['status']}")
  for r in result["results"]:
      print(f"  {r['email']}: {r['category']}")
  ```

  ```javascript JavaScript theme={null}
  const poll = async () => {
    while (true) {
      const res = await fetch(`${BASE_URL}/api/spam-check/${check_id}`, {
        headers: { "Authorization": `Bearer ${API_KEY}` }
      });
      const result = await res.json();

      if (result.status !== "pending") {
        return result;
      }

      console.log(`Ожидание... (${result.received}/${result.total})`);
      await new Promise(r => setTimeout(r, 10000));
    }
  };

  const result = await poll();

  console.log(`Статус: ${result.status}`);
  result.results.forEach(r => {
    console.log(`  ${r.email}: ${r.category}`);
  });
  ```
</CodeGroup>

Ответ после завершения:

```json theme={null}
{
  "check_id": "a1b2c3d4e5f6",
  "status": "complete",
  "received": 3,
  "total": 3,
  "results": [
    { "email": "inbox1@gmail.com", "category": "primary" },
    { "email": "inbox2@gmail.com", "category": "primary" },
    { "email": "inbox3@gmail.com", "category": "promotions" }
  ]
}
```

## Полный пример

```python theme={null}
import requests
import time

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

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

check_id = data["check_id"]
print(f"Check ID: {check_id}")
print(f"Отправьте письмо на:")
for addr in data["accounts"]:
    print(f"  {addr}")

input("\nНажмите Enter после отправки письма...")

while True:
    result = requests.get(
        f"{BASE_URL}/api/spam-check/{check_id}",
        headers=HEADERS
    ).json()

    if result["status"] != "pending":
        break

    print(f"Ожидание... ({result['received']}/{result['total']})")
    time.sleep(10)

print(f"\nРезультат: {result['status']}")

inbox_count = 0
total = len(result["results"])

for r in result["results"]:
    cat = r["category"]
    is_inbox = cat in ("primary", "updates")
    inbox_count += int(is_inbox)

    icon = "✅" if is_inbox else "❌" if cat == "spam" else "⚠️"
    print(f"  {icon} {r['email']}: {cat}")

print(f"\nInbox Rate: {inbox_count}/{total} ({inbox_count/total*100:.0f}%)")
```

## Важные ограничения

<Note>
  * Проверка автоматически завершается через **5 минут** со статусом `timeout`
  * Данные проверки удаляются через **10 минут**
  * Отправляйте письмо **сразу** после получения адресов — чем быстрее, тем точнее результат
</Note>
