Введение
В этой документации вы узнаете о том, как использовать 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
Описание
Obtain a list of all your offers for a given bot using this endpoint. The results are paginated with 30 items per page.
URL:
https://app.zenedu.io/api/v1/bot/{botId}/offers
Метод: GET
Authentication: Bearer token in headers
Results: The list of offers is sorted in descending order by creation date.
Parameters: Use the per_page and page parameters to control the number of results per page.
Example request
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"
Example response
{
"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
}
}
Funnels
Описание
Получите список всех ваших воронок для данного бота, используя эту конечную точку. Результаты выводятся постранично, по 30 элементов на странице.
URL:
https://app.zenedu.io/api/v1/bot/{botId}/funnels
Method: GET
Аутентификация: Bearer token in headers
Результаты: The list of funnels 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/funnels?per_page=30&page=1" -H "Accept: application/json" -H "Authorization: Bearer YOUR_API_TOKEN"
Пример ответа
{
"data": [
{
"id": 263,
"name": "Intensiv Leonardo",
"is_active": true,
"subscribers_count": 1,
"steps_count": 1,
"sections_count": 0,
"cover_url": "https://app.zenedu.io/assets/img/product_blank/3.jpg",
"description": null,
"restart_enabled": true,
"autodelete_steps_enabled": true,
"template_url": "https://app.zenedu.io/bots?template=oMzBCK7MZqEwzrTbczlb9YjEIPUS9cK4",
"template_url_enabled": true,
"created_at": "2024-08-15T10:05:58.000000Z",
"direct_subscription_access": false
}
],
"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": 16,
"total": 16
}
}
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"
}
}