CountdownMail API
Это руководство поможет вам начать использовать API CountdownMail. Оно охватывает настройку, аутентификацию, обработку ошибок и работу с таймерами обратного отсчёта.
Быстрый старт
Этот раздел подготовит вас к использованию API CountdownMail и покажет, как сделать первый API-запрос.
- Получите свой API-ключ:
- Войдите в свою учётную запись CountdownMail.
- Перейдите в Профиль » API.
- Скопируйте свой API-ключ.
- Сделайте первый API-запрос:
- Мы используем эндпоинт «Создать таймер» в качестве примера.
- Используйте инструмент вроде cURL или Postman для отправки POST-запроса на https://countdownmail.com/api/create.
- Добавьте свой API-ключ в заголовок Authorization.
- Включите необходимые данные таймера в тело запроса (в формате JSON).
Вот пример с использованием cURL:
Запрос
curl -H "Content-Type: application/json" \
-H "Authorization: YOUR_API_KEY" \
-X POST "https://countdownmail.com/api/create" \
-d '{
"skin_id": 1,
"name": "Big Sale!",
"time_end": "2025-04-21 20:00:00",
"time_zone": "America/Los_Angeles",
"font_family": "Roboto-Bold",
"color_primary": "FF3A43",
"color_text": "FFFFFF",
"color_bg": "000000"
}'
- Замените YOUR_API_KEY на ваш настоящий API-ключ.
- Если всё работает, вы получите ответ вроде:
Ответ
{
"status": "success",
"message": {
"id": 1057,
"code": "td",
"src": "http://i.countdownmail.com/td.gif"
}
}
Этот ответ включает код таймера (например, "td") и URL изображения таймера.
Аутентификация
Для использования API CountdownMail необходимо аутентифицировать каждый запрос с помощью API-ключа. Вот как:
- Добавьте заголовок Authorization к запросу. Значение — ваш API-ключ.
- Альтернативно используйте базовую аутентификацию: установите API-ключ как имя пользователя и оставьте пароль пустым.
Пример с заголовком Authorization (cURL):
Запрос
curl -H "Content-Type: application/json" \
-H "Authorization: YOUR_API_KEY" \
-X GET "https://countdownmail.com/api/some_endpoint"
- Замените YOUR_API_KEY на ваш настоящий API-ключ.
- Всегда включайте аутентификацию, иначе получите ошибку 401 Unauthorized.
Использование Postman
Если вы используете Postman, это упрощает тестирование API-запросов. Чтобы использовать его с CountdownMail:
Ошибки
Иногда API-запросы не удаются. API CountdownMail использует коды состояния HTTP, чтобы сообщить о проблеме. Вот список возможных ошибок, их значение и что делать:
| Код | Название статуса | Описание | Рекомендуемое действие | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 400 | Неверный запрос | Что-то не так с вашим запросом. | Проверьте, что запрос соответствует документации и использует правильный синтаксис. | ||||||||
| 401 | Не авторизован | У вас нет разрешения на этот запрос. | Убедитесь, что используете действительный API-ключ в заголовке Authorization. | ||||||||
| 404 | Не найдено | Сервер не может найти запрошенное. | Проверьте, что URL соответствует действительному эндпоинту API. | ||||||||
| 405 | Метод не разрешён | Эндпоинт не поддерживает этот метод. | Используйте правильный HTTP-метод (например, GET, POST) согласно документации. | ||||||||
| 429 | Слишком много запросов | Клиент отправил слишком много запросов за 1 минуту. | Вы можете использовать заголовки, отправляемые с каждым ответом, чтобы определить текущий статус лимита запросов.
| ||||||||
| 500 | Внутренняя ошибка сервера | Что-то сломалось на стороне CountdownMail. | Попробуйте позже. Если проблема повторяется, обратитесь в поддержку. | ||||||||
| 503 | Сервис недоступен | Сервер сейчас слишком загружен. | Подождите немного и попробуйте снова. |
Пример ответа с ошибкой (401 Unauthorized):
Ответ
{
"status": "error",
"message": "Unauthorized"
}
Если видите ошибку, проверьте код статуса и сообщение, затем выполните рекомендуемое действие.
Модель таймера
Ресурс Timer содержит всю информацию о таймере обратного отсчёта. Вот доступные поля для определения таймера:
| Свойство | Тип | Описание | Обязательно | Примечания |
|---|---|---|---|---|
| skin_id | integer | Стиль дизайна таймера (шаблон). | Да | Должно быть числом от 1 до 23. |
| name | string | Название таймера. | Да | Максимум 100 символов. Пример: Big Sale! |
| time_end | string | Когда таймер заканчивается (YYYY-MM-DD HH:MM:SS). | Да | Пример: 2025-04-09 04:57:16 |
| time_zone | string | Часовой пояс таймера. | Да | Пример: America/Los_Angeles. Посмотреть все доступные значения time_zone. |
| font_family | string | Шрифт текста таймера. | Нет | Пример: Roboto-Bold. Посмотреть все доступные значения font_family. |
| label_font_family | string | Шрифт меток таймера. | Нет | Пример: Roboto-Bold. Посмотреть все доступные значения font_family. |
| color_primary | string | Основной цвет (hex-код). | Да | Пример: FF3A43 (красный). |
| color_text | string | Цвет текста (hex-код). | Да | Пример: FFFFFF (белый). |
| color_bg | string | Цвет фона (hex-код). | Да | Пример: 000000 (чёрный). |
| font_size | integer | Размер текста таймера. | Нет | От 14 до 73. |
| label_font_size | integer | Размер текста метки. | Нет | От 0 до 50. |
| day | integer | Показывать дни (0 = нет, 1 = да). | Нет | Должно быть 0 или 1. |
| lang | string | Код языка (ISO 2-буквенный). | Нет | Пример: en (английский). Посмотреть все 54 поддерживаемых языка. |
| transparent | integer | Фон: 0 = сплошной, 1 = прозрачный. | Нет | Должно быть 0 или 1. |
| expired_mes_on | integer | Показывать сообщение об истечении (0 = нет, 1 = да). | Нет | Должно быть 0 или 1. |
| expired_mes | string | Сообщение при истечении таймера. | Нет | Максимум 100 символов. Пример: This offer has expired |
| labels | integer | Использовать свои метки (0 = нет, 1 = да). | Нет | Должно быть 0 или 1. |
| days | string | Метка для дней. | Нет | Максимум 15 символов. Пример: days |
| hours | string | Метка для часов. | Нет | Максимум 15 символов. Пример: hours |
| minutes | string | Метка для минут. | Нет | Максимум 15 символов. Пример: minutes |
| seconds | string | Метка для секунд. | Нет | Максимум 15 символов. Пример: seconds |
| timer_type | integer | Тип таймера: 1 = Таймер с общей датой, 2 = Персональный таймер, 3 = Таймер по ссылке. | Нет | Должно быть 1, 2 или 3. По умолчанию 1 (Таймер с общей датой). |
| duration | integer | Длительность таймера в секундах (для Персональных таймеров). | Нет | Обязательно, когда timer_type = 2 (Персональный таймер). Пример: 86400 (24 часа). |
| advanced_params | object | Дополнительные настройки (напр., цвет разделителя). | Нет | Пример |
Создать таймер
Этот эндпоинт позволяет создать таймер. Для создания нового таймера необходимо указать все обязательные свойства.
Пример запроса:
Запрос
curl -H "Content-Type: application/json" \
-H "Authorization: YOUR_API_KEY" \
-X POST "https://countdownmail.com/api/create" \
-d '{
"skin_id":3,
"name":"Big Sale!",
"time_end":"2026-02-02 20:00:00",
"time_zone":"America\/Los_Angeles",
"font_family":"Roboto-Bold",
"color_primary":"FF3A43",
"color_text":"FFFFFF",
"color_bg":"000000",
"transparent":"0",
"font_size":"38",
"lang":"en",
"expired_mes_on":"1",
"expired_mes":"This offer has expired",
"labels":"1",
"days":"days",
"hours":"hours",
"minutes":"minutes",
"seconds":"seconds"
}'
Ответ
{
"status": "success",
"message": {
"id": 1057,
"code": "td",
"src": "http://i.countdownmail.com/td.gif"
}
}
Обновить таймер
Этот эндпоинт позволяет обновить любой атрибут таймера. Для обновления таймера отправьте PUT-запрос на /update/{code} с полями для обновления. Замените {code} на код таймера (напр., "td").
Пример запроса:
Запрос
curl -H "Content-Type: application/json" \
-H "Authorization: YOUR_API_KEY" \
-X PUT "https://countdownmail.com/api/update/{code}" \
-d '{
"skin_id":6,
"name":"Flash Sale!",
"time_end":"2026-02-02 20:00:00"
}'
Ответ
{
"status": "success",
"message": {
"id": 1057,
"code": "td",
"src": "http://i.countdownmail.com/td.gif"
}
}
Дублировать таймер
Чтобы скопировать существующий таймер, отправьте POST-запрос на /duplicate/{code}. Замените {code} на уникальный код таймера для копирования. Это создаст новый таймер с теми же настройками, что и оригинал.
Вы можете обновить детали нового таймера, добавив JSON-объект в тело запроса. Это позволяет изменять определённые атрибуты, такие как время окончания или название, сохраняя остальное как в оригинале. Атрибуты для обновления те же, что и при создании нового таймера (полный список в разделе Модель таймера). Если атрибут не указан, он остаётся как в оригинальном таймере.
Важно: Оригинальный таймер не изменяется. Только новый таймер получает обновления из запроса.
Пример запроса:
Запрос
curl -H "Content-Type: application/json" \
-H "Authorization: YOUR_API_KEY" \
-X POST "https://countdownmail.com/api/duplicate/{code}" \
-d '{
"skin_id":6,
"name":"Flash Sale!",
"time_end":"2026-02-02 20:00:00"
}'
Ответ
{
"status": "success",
"message": {
"id": 1057,
"code": "td",
"src": "http://i.countdownmail.com/td.gif"
}
}
Деактивировать таймер
Чтобы остановить таймер (архивировать), отправьте GET-запрос на /deactivate/{code}. Замените {code} на код таймера.
Активировать таймер
Чтобы снова активировать таймер, отправьте GET-запрос на /activate/{code}. Замените {code} на код таймера.
Удалить таймер
Чтобы удалить таймер, отправьте DELETE-запрос на /delete/{code}. Замените {code} на код таймера.
Это руководство даёт всё необходимое для начала работы с API CountdownMail. Храните API-ключ в безопасности и обращайтесь к официальной документации за подробностями о полях, таких как часовые пояса или шрифты!
