CountdownMail API

Цей посібник допоможе вам почати користуватися API CountdownMail. Він охоплює налаштування, автентифікацію, обробку помилок та роботу з таймерами зворотного відліку.

Швидкий старт

Цей розділ підготує вас до використання API CountdownMail і покаже, як зробити перший API-запит.

  1. Отримайте свій API-ключ:
    • Увійдіть у свій обліковий запис CountdownMail.
    • Перейдіть до Профіль » API.
    • Скопіюйте свій API-ключ.
  2. Зробіть свій перший API-запит:
    • Ми використаємо ендпоінт "Створити таймер" як приклад.
    • Використовуйте інструмент на кшталт cURL або Postman, щоб надіслати POST-запит до https://countdownmail.com/api/create.
    • Додайте свій API-ключ у заголовок Authorization.
    • Включіть необхідні дані таймера в тіло запиту (у форматі JSON).

Ось приклад з використанням cURL:

Запит

POST
https://countdownmail.com/api/create

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):

Запит

GET
https://countdownmail.com/api/some_endpoint

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 CountdownMail. Запустити в Postman
  • Додайте свій API-ключ до налаштувань автентифікації колекції, і ви готові надсилати запити.

Помилки

Іноді API-запити не вдаються. API CountdownMail використовує коди статусу HTTP, щоб повідомити, що пішло не так. Ось список можливих помилок, їх значення та що робити:

КодНазва статусуОписРекомендована дія
400Некоректний запитЩось не так з вашим запитом.Перевірте, чи запит відповідає документації та використовує правильний синтаксис.
401НеавторизованийУ вас немає дозволу на цей запит. Переконайтеся, що ви використовуєте дійсний API-ключ у заголовку Authorization.
404Не знайденоСервер не може знайти те, що ви запитували. Перевірте, чи URL відповідає дійсному ендпоінту API.
405Метод не дозволенийЕндпоінт не підтримує цей метод. Використовуйте правильний HTTP-метод (напр., GET, POST) згідно з документацією.
429Забагато запитівКлієнт надіслав забагато запитів за 1 хвилину. Ви можете використовувати заголовки, що надсилаються з кожною відповіддю, щоб визначити поточний статус обмеження частоти.
Назва заголовкаОпис
X-RateLimit-LimitМаксимальна кількість запитів за хвилину
X-RateLimit-RemainingКількість запитів, що залишилися в поточному обмеженні
X-RateLimit-ResetЧас скидання поточного обмеження в секундах UTC epoch
500Внутрішня помилка сервераЩось зламалося на стороні CountdownMail.Спробуйте пізніше. Якщо проблема повторюється, зверніться до підтримки.
503Сервіс недоступнийСервер зараз занадто завантажений.Зачекайте трохи і спробуйте знову.

Приклад відповіді з помилкою (401 Unauthorized):

Відповідь


{
    "status": "error",
    "message": "Unauthorized"
}
                                    

Якщо бачите помилку, перевірте код статусу та повідомлення, потім виконайте рекомендовану дію.


Модель таймера

Ресурс Timer містить всю інформацію про таймер зворотного відліку. Ось доступні поля для визначення таймера:

ВластивістьТипОписОбов'язковоПримітки
skin_idintegerСтиль дизайну таймера (шаблон).ТакМає бути числом від 1 до 23.
namestringНазва таймера.ТакМаксимум 100 символів. Приклад: Big Sale!
time_endstringКоли таймер закінчується (YYYY-MM-DD HH:MM:SS). ТакПриклад: 2025-04-09 04:57:16
time_zonestringЧасовий пояс таймера.ТакПриклад: America/Los_Angeles. Перегляньте всі доступні значення time_zone.
font_familystringШрифт для тексту таймера.НіПриклад: Roboto-Bold. Перегляньте всі доступні значення font_family.
label_font_familystringШрифт для міток таймера.НіПриклад: Roboto-Bold. Перегляньте всі доступні значення font_family.
color_primarystringОсновний колір (hex-код).ТакПриклад: FF3A43 (червоний).
color_textstringКолір тексту (hex-код).ТакПриклад: FFFFFF (білий).
color_bgstringКолір фону (hex-код).ТакПриклад: 000000 (чорний).
font_sizeintegerРозмір тексту таймера.НіВід 14 до 73.
label_font_sizeintegerРозмір тексту мітки.НіВід 0 до 50.
dayintegerПоказувати дні (0 = ні, 1 = так).НіМає бути 0 або 1.
langstringКод мови (ISO 2-літерний).НіПриклад: en (англійська). Перегляньте всі 54 підтримувані мови.
transparentintegerФон: 0 = суцільний, 1 = прозорий.НіМає бути 0 або 1.
expired_mes_onintegerПоказувати повідомлення про завершення (0 = ні, 1 = так).НіМає бути 0 або 1.
expired_messtringПовідомлення при завершенні таймера.НіМаксимум 100 символів. Приклад: This offer has expired
labelsintegerВикористовувати власні мітки (0 = ні, 1 = так).НіМає бути 0 або 1.
daysstringМітка для днів.НіМаксимум 15 символів. Приклад: days
hoursstringМітка для годин.НіМаксимум 15 символів. Приклад: hours
minutesstringМітка для хвилин.НіМаксимум 15 символів. Приклад: minutes
secondsstringМітка для секунд.НіМаксимум 15 символів. Приклад: seconds
timer_typeintegerТип таймера: 1 = Таймер зі спільною датою, 2 = Персональний таймер, 3 = Таймер за посиланням.НіМає бути 1, 2 або 3. За замовчуванням 1 (Таймер зі спільною датою).
durationintegerТривалість таймера в секундах (для персональних таймерів).НіОбов'язково, коли timer_type дорівнює 2 (Персональний таймер). Приклад: 86400 (24 години).
advanced_paramsobjectДодаткові налаштування (напр., колір роздільника).Ні

Приклад


{
    "separator_color"  : "4275BC",
    "separator_size" : 1.3,
    "separator_style" : 6,
    "labels_color" : "A3A3A3"
}
                                    

Створити таймер

Цей ендпоінт дозволяє створити таймер. Щоб створити новий таймер, потрібно надати всі обов'язкові властивості.

Приклад запиту:

Запит

POST
https://countdownmail.com/api/create

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").

Приклад запиту:

Запит

PUT
https://countdownmail.com/api/update/{code}

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-об'єкт у тіло запиту. Це дозволяє змінювати конкретні атрибути, такі як час завершення або назву, зберігаючи решту налаштувань як в оригіналі. Атрибути для оновлення такі ж, як при створенні нового таймера (повний список у розділі Модель таймера). Якщо атрибут не включено, він залишиться як в оригінальному таймері.

Важливо: Оригінальний таймер не змінюється. Тільки новий таймер зазнає змін від оновлень у запиті.

Приклад запиту:

Запит

POST
https://countdownmail.com/api/duplicate/{code}

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-ключ у безпеці та звертайтеся до офіційної документації для детальнішої інформації про поля, такі як часові пояси чи шрифти!