Перейти до основного контенту
Zenedu API
Оновлено понад місяць тому

Вступ

У цій документації ви дізнаєтеся про те, як використовувати 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": "&laquo; Previous",
"active": false
},
{
"url": "https://app.zenedu.io/api/v1/bot/1/offers?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Next &raquo;",
"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": "&laquo; Previous",
"active": false
},
{
"url": "https://app.zenedu.io/api/v1/bot/1/products?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Next &raquo;",
"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": "&laquo; Previous",
"active": false
},
{
"url": "https://app.zenedu.io/api/v1/bot/1/funnels?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Next &raquo;",
"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": "&laquo; Previous",
"active": false
},
{
"url": "https://app.zenedu.io/api/v1/bot/1/products?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Next &raquo;",
"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"
}
}

Ви отримали відповідь на своє запитання?