Вступ
У цій документації ви дізнаєтеся про те, як використовувати REST API Zenedu для інтеграції нашої платформи з іншими сервісами.
API базується на протоколі HTTP, і всі відповіді повертаються у форматі JSON. Усі запити повинні мати значення Accept: application/json
у заголовках.
Базовий URL
Базовий URL для всіх методів API: https://app.zenedu.io/api/v1/
Усі запити повинні мати значення Accept: application/json
в заголовках.
Аутентифікація
API Zenedu використовує аутентифікацію за допомогою токена-носія (Bearer token) для забезпечення безпечного доступу до захищених методів. Для взаємодії з API в кожному запиті необхідно включити заголовок авторизації.
Отримання API Токена
Щоб отримати токен API, перейдіть на сторінку облікового запису в розділі API. Токен генерується під час реєстрації та залишається дійсним безстроково.
Дуже важливо не розкривати ваш токен API у загальнодоступному коді чи репозиторіях. Якщо ви підозрюєте, що ваш токен API був скомпрометований, відразу скиньте його та отримайте новий через ту саму сторінку.
Виконання запитів
Після отримання токена API, увімкніть його у ваші запити, використовуючи заголовок Authorization. Встановіть заголовок на Bearer YOUR_API_TOKEN
.
Приклад запиту:
curl -X GET "https://app.zenedu.io/api/v1/endpoint" -H "Accept: application/json" -H "Authorization: Bearer YOUR_API_TOKEN"
Методи
Bots
Опис
Отримайте список всіх ваших роботів за допомогою цього методу.
URL:
https://app.zenedu.io/api/v1/bots
Метод: GET
Автентифікація: Заголовок Authorization зі значенням
Bearer YOUR_API_TOKEN
Параметри: Немає
Результати: Список роботів відсортований за датою створення в порядку зменшення.
Приклад запиту
curl -X GET "https://app.zenedu.io/api/v1/bots" -H "Accept: application/json" -H "Authorization: Bearer YOUR_API_TOKEN"
Приклад відповіді
{
"data": [
{
"id": 2,
"name": "Test Bot 2",
"username": "test_bot_2",
"is_active": true,
"created_at": "2023-07-24T07:58:52.000000Z"
},
{
"id": 1,
"name": "Test Bot",
"username": "test_bot",
"is_active": true,
"created_at": "2023-06-23T09:41:34.000000Z"
}
]
}
Subscribers
Опис
Отримайте список усіх підписників за допомогою цього методу. Результати розбито на сторінки по 30 елементів на сторінку.
URL:
https://app.zenedu.io/api/v1/bot/{botId}/subscribers
Метод: GET
Автентифікація: Заголовок Authorization зі значенням
Bearer YOUR_API_TOKEN
Результати: Список передплатників відсортовано за датою створення в порядку зменшення.
Параметри: Використовуйте параметри
per_page
таpage
для керування кількістю результатів на сторінці.
Приклад запиту
curl -X GET "https://app.zenedu.io/api/v1/bot/1/subscribers?per_page=30&page=1" -H "Accept: application/json" -H "Authorization: Bearer YOUR_API_TOKEN"
Приклад відповіді
{
"data": [
{
"id": 3,
"user_id": 1002,
"first_name": "Sarah",
"last_name": "Connor",
"username": "sarah_connor",
"phone": null,
"email": null,
"notes": null,
"tags": null,
"is_active": true,
"is_blocked": false,
"last_active_at": "2023-07-24T14:43:12.000000Z",
"created_at": "2023-07-24T14:43:10.000000Z",
"utm_tags": {
"utm_source": "source",
"utm_medium": "medium",
"utm_campaign": "campaign",
"utm_term": "term",
"utm_content": "content"
},
"custom_fields": {
"Address": "Address",
"Website": "https://zenedu.io"
}
},
{
"id": 2,
"user_id": 1001,
"first_name": "Foo",
"last_name": "Bar",
"username": "foo_bar",
"phone": null,
"email": null,
"notes": null,
"tags": null,
"is_active": true,
"is_blocked": false,
"last_active_at": "2023-07-24T14:43:12.000000Z",
"created_at": "2023-07-24T14:41:44.000000Z",
"utm_tags": [],
"custom_fields": []
},
{
"id": 1,
"user_id": 1000,
"first_name": "John",
"last_name": null,
"username": "john",
"phone": null,
"email": null,
"notes": null,
"tags": null,
"is_active": true,
"is_blocked": false,
"last_active_at": "2023-07-24T14:43:12.000000Z",
"created_at": "2023-06-23T09:51:07.000000Z",
"utm_tags": [],
"custom_fields": []
}
],
"links": {
"first": "https://app.zenedu.io/api/v1/bot/1/subscribers?page=1",
"last": "https://app.zenedu.io/api/v1/bot/1/subscribers?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://app.zenedu.io/api/v1/bot/1/subscribers?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Next »",
"active": false
}
],
"path": "https://app.zenedu.io/api/v1/bot/1/subscribers",
"per_page": 30,
"to": 3,
"total": 3
}
}
Orders
Опис
Отримайте список всіх замовлень за допомогою цього методу. Результати розбито на сторінки по 30 елементів на сторінку.
URL:
https://app.zenedu.io/api/v1/bot/{botId}/orders
Метод: GET
Автентифікація: Заголовок Authorization зі значенням
Bearer YOUR_API_TOKEN
Результати: Список замовлень відсортований по даті створення в порядку зменшення.
Параметри: Використовуйте параметри
per_page
іpage
для керування кількістю результатів на сторінці.
Пример запроса
curl -X GET "https://app.zenedu.io/api/v1/bot/1/orders?per_page=30&page=1" -H "Accept: application/json" -H "Authorization: Bearer YOUR_API_TOKEN"
Пример ответа
{
"data": [
{
"id": 2,
"uuid": "9d76cf9c-fdb4-4f7b-98e4-76b96159df93",
"number": 2,
"offer_id": 2,
"offer_name": "Offer 2",
"price": 1,
"currency": "USD",
"subscriber_id": 2,
"type": "one-time",
"payment_system_type": "fondy",
"payment_system_name": "Fondy",
"status_changed_at": "2023-07-24T14:43:52.000000Z",
"created_at": "2023-07-24T14:43:24.000000Z",
"subscriber": {
"id": 1,
"user_id": 1000,
"first_name": "John",
"last_name": null,
"username": "john",
"phone": null,
"email": null,
"notes": null,
"tags": null,
"is_active": true,
"is_blocked": false,
"last_active_at": "2023-07-27T08:39:03.000000Z",
"created_at": "2023-06-23T09:51:07.000000Z"
}
},
{
"id": 1,
"uuid": "a9e58c73-f6a8-413e-b6c5-7af312bf315b",
"number": 1,
"offer_id": 1,
"offer_name": "Offer 1",
"price": 1,
"currency": "USD",
"subscriber_id": 1,
"type": "subscription",
"payment_system_type": "stripe",
"payment_system_name": "Stripe",
"status_changed_at": "2023-07-24T14:42:12.000000Z",
"created_at": "2023-07-24T14:41:52.000000Z",
"subscriber": {
"id": 2,
"user_id": 1001,
"first_name": "Foo",
"last_name": "Bar",
"username": "foo_bar",
"phone": null,
"email": null,
"notes": null,
"tags": null,
"is_active": true,
"is_blocked": false,
"last_active_at": "2023-07-27T08:39:03.000000Z",
"created_at": "2023-06-23T09:51:07.000000Z"
}
}
],
"links": {
"first": "https://app.zenedu.io/api/v1/bot/1/orders?page=1",
"last": "https://app.zenedu.io/api/v1/bot/1/orders?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://app.zenedu.io/api/v1/bot/1/orders?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Next »",
"active": false
}
],
"path": "https://app.zenedu.io/api/v1/bot/1/orders",
"per_page": 30,
"to": 2,
"total": 2
}
}
Offers
Опис
Отримайте список усіх тарифів за допомогою цього методу. Результати розбито на сторінки по 30 елементів на сторінку.
URL:
https://app.zenedu.io/api/v1/bot/{botId}/offers
Метод: GET
Автентифікація: Заголовок Authorization зі значенням
Bearer YOUR_API_TOKEN
Результати: Список тарифів відсортовано за датою створення в порядку зменшення.
Параметри: Використовуйте параметри
per_page
таpage
для керування кількістю результатів на сторінці.
Приклад запиту
curl -X GET "https://app.zenedu.io/api/v1/bot/1/offers?per_page=30&page=1" -H "Accept: application/json" -H "Authorization: Bearer YOUR_API_TOKEN"
Приклад відповіді
{
"data": [
{
"id": 177,
"name": "Intensiv Leonardo",
"price": 10,
"currency": "USD",
"is_active": true,
"is_subscription": false,
"accesses_count": 1,
"description": null,
"landing_name": "Intensiv Leonardo",
"landing_description": "",
"cover_url": null,
"request_contacts": false,
"time_limit_enabled": false,
"usage_limit_enabled": false,
"access_limit_enabled": false,
"created_at": "2024-08-15T10:07:01.000000Z",
"link": "https://t.me/your_bot?start=pLtr2OMTKTful2rx",
"landing_link": "https://app.zenedu.io/l/pLtr2OMTKTful2rx",
"direct_payment_links": [
{
"name": "WayForPay",
"link": "https://app.zenedu.io/l/p/MDc142bkGVSZNgiP"
}
]
},
{
"id": 172,
"name": "Coupon with sub",
"price": 100,
"currency": "USD",
"is_active": true,
"is_subscription": true,
"accesses_count": 1,
"description": "<b>Offer:</b> {{offer}} <br><b>Accesses:</b> {{accesses}} <br><b>Price:</b> {{price}}",
"landing_name": "Coupon with sub",
"landing_description": "<b>Accesses:</b> OneTime product",
"cover_url": null,
"request_contacts": false,
"time_limit_enabled": true,
"usage_limit_enabled": true,
"access_limit_enabled": false,
"created_at": "2024-07-24T18:59:46.000000Z",
"link": "https://t.me/your_bot?start=pLtr2OMTKTful2rx",
"landing_link": "https://app.zenedu.io/l/pLtr2OMTKTful2rx",
"direct_payment_links": []
}
],
"links": {
"first": "https://app.zenedu.io/api/v1/bot/1/offers?page=1",
"last": "https://app.zenedu.io/api/v1/bot/1/offers?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://app.zenedu.io/api/v1/bot/1/offers?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Next »",
"active": false
}
],
"path": "https://app.zenedu.io/api/v1/bot/1/offers",
"per_page": 30,
"to": 14,
"total": 14
}
}
Products
Опис
Отримайте список усіх продуктів за допомогою цього методу. Результати розбито на сторінки по 30 елементів на сторінку.
URL:
https://app.zenedu.io/api/v1/bot/{botId}/productss
Метод: GET
Автентифікація: Заголовок Authorization зі значенням
Bearer YOUR_API_TOKEN
Результати: Список продуктів відсортовано за датою створення в порядку зменшення.
Параметри: Використовуйте параметри
per_page
таpage
для керування кількістю результатів на сторінці.
Приклад запиту
curl -X GET "https://app.zenedu.io/api/v1/bot/1/products?per_page=30&page=1" -H "Accept: application/json" -H "Authorization: Bearer YOUR_API_TOKEN"
Приклад відповіді
{
"data": [
{
"id": 2,
"name": "Product 2",
"is_active": true,
"subscribers_count": 1,
"steps_count": 5,
"sections_count": 0,
"cover_url": "https://storage.com/image.jpg",
"description": "Product Description",
"restart_enabled": false,
"autodelete_steps_enabled": true,
"template_url": "https://app.zenedu.io/bots?template=CODE",
"template_url_enabled": true,
"created_at": "2024-01-22T14:43:24.000000Z"
},
{
"id": 1,
"name": "Product 1",
"is_active": true,
"subscribers_count": 1,
"steps_count": 5,
"sections_count": 0,
"cover_url": "https://storage.com/image1.jpg",
"description": "Product Description",
"restart_enabled": false,
"autodelete_steps_enabled": true,
"template_url": "https://app.zenedu.io/bots?template=CODE1",
"template_url_enabled": true,
"created_at": "2024-01-21T14:43:24.000000Z"
}
],
"links": {
"first": "https://app.zenedu.io/api/v1/bot/1/products?page=1",
"last": "https://app.zenedu.io/api/v1/bot/1/products?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://app.zenedu.io/api/v1/bot/1/products?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Next »",
"active": false
}
],
"path": "https://app.zenedu.io/api/v1/bot/1/products",
"per_page": 30,
"to": 2,
"total": 2
}
}
Funnels
Опис
Отримайте список усіх воронок за допомогою цього методу. Результати розбито на сторінки по 30 елементів на сторінку.
URL:
https://app.zenedu.io/api/v1/bot/{botId}/funnels
Метод: GET
Автентифікація: Заголовок Authorization зі значенням
Bearer YOUR_API_TOKEN
Результати: Список воронок відсортовано за датою створення в порядку зменшення.
Параметри: Використовуйте параметри
per_page
таpage
для керування кількістю результатів на сторінці.
Приклад запиту
curl -X GET "https://app.zenedu.io/api/v1/bot/1/funnels?per_page=30&page=1" -H "Accept: application/json" -H "Authorization: Bearer YOUR_API_TOKEN"
Приклад відповіді
{
"data": [
{
"id": 2,
"name": "Funnel 2",
"is_active": true,
"subscribers_count": 1,
"steps_count": 5,
"sections_count": 0,
"cover_url": "https://storage.com/image.jpg",
"description": "Funnel Description",
"restart_enabled": false,
"autodelete_steps_enabled": true,
"template_url": "https://app.zenedu.io/bots?template=FCODE",
"template_url_enabled": true,
"direct_subscription_access": false,
"created_at": "2024-01-21T14:43:24.000000Z"
},
{
"id": 1,
"name": "Funnel 1",
"is_active": true,
"subscribers_count": 1,
"steps_count": 5,
"sections_count": 0,
"cover_url": "https://storage.com/image.jpg",
"description": "Funnel Description",
"restart_enabled": false,
"autodelete_steps_enabled": true,
"template_url": "https://app.zenedu.io/bots?template=FCODE1",
"template_url_enabled": true,
"direct_subscription_access": false,
"created_at": "2024-01-20T14:43:24.000000Z"
}
],
"links": {
"first": "https://app.zenedu.io/api/v1/bot/1/funnels?page=1",
"last": "https://app.zenedu.io/api/v1/bot/1/funnels?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://app.zenedu.io/api/v1/bot/1/funnels?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Next »",
"active": false
}
],
"path": "https://app.zenedu.io/api/v1/bot/1/funnels",
"per_page": 30,
"to": 2,
"total": 2
}
}
Products
Опис
Отримайте список усіх ваших продуктів для цього бота, використовуючи цю кінцеву точку. Результати виводяться посторінково, по 30 товарів на сторінці.
URL:
https://app.zenedu.io/api/v1/bot/{botId}/products
Метод: GET
Аутентифікація: Bearer token in headers
Результати: The list of products is sorted in descending order by creation date.
Параметри: Use the per_page and page parameters to control the number of results per page.
Приклад запиту
curl -X GET "https://app.zenedu.io/api/v1/bot/1/products?per_page=30&page=1" -H "Accept: application/json" -H "Authorization: Bearer YOUR_API_TOKEN"
Приклад відповіді
{
"data": [
{
"id": 253,
"name": "Assessments Test",
"is_active": true,
"subscribers_count": 1,
"steps_count": 8,
"sections_count": 0,
"cover_url": "https://app.zenedu.io/assets/img/product_blank/3.jpg",
"description": null,
"restart_enabled": false,
"autodelete_steps_enabled": true,
"template_url": "https://app.zenedu.io/bots?template=Bmsyk0unsFmyXcGxDovtJrDgOAMjOapI",
"template_url_enabled": true,
"created_at": "2024-06-19T07:20:02.000000Z"
}
],
"links": {
"first": "https://app.zenedu.io/api/v1/bot/1/products?page=1",
"last": "https://app.zenedu.io/api/v1/bot/1/products?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://app.zenedu.io/api/v1/bot/1/products?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Next »",
"active": false
}
],
"path": "https://app.zenedu.io/api/v1/bot/1/products",
"per_page": 30,
"to": 12,
"total": 12
}
}
Add Subscriber To Funnel
Опис
За допомогою цього методу можна додати підписника в певну воронку.
URL:
https://app.zenedu.io/api/v1/bot/{botId}/subscribers/{subscriberId}/funnels
Метод: POST
Аутентифікація: Bearer token in headers
Параметри: funnel_id in form data.
Приклад запиту
curl -X POST "https://app.zenedu.io/api/v1/bot/1/subscribers/1/funnels" -H "Accept: application/json" -H "Authorization: Bearer YOUR_API_TOKEN" –form “funnel_id=1”
Приклад відповіді
{
"id": 1,
"user_id": 111222,
"first_name": "Student",
"last_name": null,
"username": null,
"phone": "+111222333444",
"email": null,
"notes": null,
"tags": null,
"is_active": true,
"is_blocked": false,
"last_active_at": "2024-08-19T09:20:38.000000Z",
"created_at": "2023-06-23T09:51:07.000000Z"
}
Add Subscriber To Offer
Опис
Ви можете додати підписника до певного тарифу за допомогою цього методу.
URL:
https://app.zenedu.io/api/v1/bot/{botId}/subscribers/{subscriberId}/offers
Метод: POST
Аутентифікація: Bearer token in headers
Параметри: offer_id in form data.
Приклад запиту
curl -X POST "https://app.zenedu.io/api/v1/bot/1/subscribers/1/offers" -H "Accept: application/json" -H "Authorization: Bearer YOUR_API_TOKEN" –form “offer_id=1”
Приклад відповіді
{
"id": 1,
"user_id": 111222,
"first_name": "Student",
"last_name": null,
"username": null,
"phone": "+111222333444",
"email": null,
"notes": null,
"tags": null,
"is_active": true,
"is_blocked": false,
"last_active_at": "2024-08-19T09:20:38.000000Z",
"created_at": "2023-06-23T09:51:07.000000Z"
}
Add Tags To Subscriber
Опис
Ви можете додати теги до підписника за допомогою цього методу.
URL:
https://app.zenedu.io/api/v1/bot/{botId}/subscribers/{subscriberId}/tags
Метод: POST
Аутентифікація: Bearer token in headers
Параметри: tags[] in form data.
Приклад запиту
curl -X POST "https://app.zenedu.io/api/v1/bot/1/subscribers/1/tags" -H "Accept: application/json" -H "Authorization: Bearer YOUR_API_TOKEN" –form “tags[]=’tag1’” –form “tags[]=’tag2’”
Приклад відповіді
{
"id": 1,
"user_id": 111222,
"first_name": "Student",
"last_name": null,
"username": null,
"phone": "+111222333444",
"email": null,
"notes": null,
"tags": "tag1,tag2",
"is_active": true,
"is_blocked": false,
"last_active_at": "2024-08-19T09:20:38.000000Z",
"created_at": "2023-06-23T09:51:07.000000Z"
}
Create Offer Link
Опис
Створюйте посилання на пропозиції, щоб підписники могли отримати пропозицію без оплати.
URL:
https://app.zenedu.io/api/v1/bot/{botId}/links/offer
Метод: POST
Аутентифікація: Bearer token in headers
Параметри: in form data:
offer_id - required
usage_limit
expire_date
create_order
Приклад запиту
curl -X POST "https://app.zenedu.io/api/v1/bot/1/links/offer" -H "Accept: application/json" -H "Authorization: Bearer YOUR_API_TOKEN" –form “offer_id=1”
Приклад відповіді
{
"status": "success",
"data": {
"link": "https://t.me/bot_username?start=LINK",
"landing_link": "https://app.zenedu.io/l/LINK"
}
}
Create Funnel Link
Опис
Створіть посилання на воронку для передплатників.
URL:
https://app.zenedu.io/api/v1/bot/{botId}/links/funnel
Метод: POST
Аутентифікація: Bearer token in headers
Параметри: in form data:
funnel_id - required
name - required
expire_date
request_email
request_phone
tags
Приклад запиту
curl -X POST "https://app.zenedu.io/api/v1/bot/1/links/funnel" -H "Accept: application/json" -H "Authorization: Bearer YOUR_API_TOKEN" –form “funnel_id=1”
Приклад відповіді
{
"status": "success",
"data": {
"link": "https://t.me/bot_username?start=LINK",
"landing_link": "https://app.zenedu.io/l/LINK"
}
}