- Головна
- Документація API
Документація API
Адреса API: https://2index.ninja/api/v1/
Для виконання запиту до API потрібно передати Bearer токен доступу в заголовку Authorization.
curl https://2index.ninja/api/v1/account -H "Authorization: Bearer API_TOKEN"
Токен доступу можна отримати у відповідному розділі в кабінеті користувача.
У відповіді errors кожен запит є параметр success , за яким визначається успішність запиту.
У деяких випадках, якщо повертатиметься помилка 403, необхідно вказати user-agent, наприклад:
curl https://2index.ninja/api/v1/account -H "Authorization: Bearer API_TOKEN" -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36"
Запити можуть бути обмежені з боку хостингу, тому ми рекомендуємо використовувати проксі.
Методи роботи з акаунтом
Отримати дані облікового запису
Потрібно виконати GET запит на адресу account
GET https://2index.ninja/api/v1/account
У відповідь будуть отримані дані у форматі JSON:
{
"success": true,
"account": {
"email": "[email protected]",
"tariff": "White Ninja",
"balance": 100.0,
"available_projects": 1,
"available_links": 100,
"available_indexation_check_links": 500,
"link_sending_speed": 100,
"tariff_available": true,
"tariff_expiring_date": "2025-01-16T14:26:11.000000Z",
"email_verified": false,
"link_cost": "$0.00056"
}
}
Методи роботи з проектами
Отримати список проектів
Потрібно виконати GET запит на адресу project
GET https://2index.ninja/api/v1/project
У відповідь будуть отримані дані у форматі JSON:
{
"success": true,
"projects": [
{
"id": 1,
"name": "Project name",
"type": "indexing",
"website": "https://domain.com/",
"status": "in progress",
"created_at": "2024-03-01 14:34:56",
"links_type": "internal",
"google_account_access_granted": 0,
"links_total": 500,
"links_sending_speed": 400,
"links_sent_google": 100,
"links_sent_yandex": 40,
"links_sent_bing": 100,
"in_queue": 360,
"sent_links": 100,
"indexed": 30,
"not_indexed": 0,
"download_queue_url": "DOWNLOAD_QUEUE_URL",
"download_sent_url": "DOWNLOAD_SENT_URL",
"download_indexed_url": "DOWNLOAD_INDEXED_URL",
"download_unindexed_url": "DOWNLOAD_UNINDEXED_URL"
},
{
"id": "2",
"name": "Project 2 name",
"type": "indexing_check",
"status": "in progress",
"created_at": "2024-03-01 14:34:56",
"links_total": 200,
"links_checking_speed": 100,
"in_queue": 100,
"checked": 100,
"indexed": 70,
"not_indexed": 30,
"download_queue_url": "DOWNLOAD_QUEUE_URL",
"download_indexed_url": "DOWNLOAD_INDEXED_URL",
"download_unindexed_url": "DOWNLOAD_UNINDEXED_URL",
"download_all_url": "DOWNLOAD_ALL_URL",
"download_checked_url": "DOWNLOAD_CHECKED_URL",
}
...
]
}
Отримати дані проекту
Потрібно виконати GET запит на адресу project/{project_id}
GET https://2index.ninja/api/v1/project/1
У відповідь будуть отримані дані у форматі JSON:
- Для проекту індексації:
{
"success": true,
"project": {
"id": 1,
"name": "Project name",
"type": "indexing",
"website": "https://domain.com/",
"status": "in progress",
"created_at": "2024-03-01 14:34:56",
"links_type": "internal",
"google_account_access_granted": 0,
"links_total": 500,
"links_sending_speed": 400,
"links_sent_google": 100,
"links_sent_yandex": 40,
"links_sent_bing": 100,
"in_queue": 360,
"sent_links": 100,
"indexed": 30,
"not_indexed": 0,
"download_queue_url": "DOWNLOAD_QUEUE_URL",
"download_sent_url": "DOWNLOAD_SENT_URL",
"download_indexed_url": "DOWNLOAD_INDEXED_URL",
"download_unindexed_url": "DOWNLOAD_UNINDEXED_URL"
}
}
- Для проекту перевірки індексації:
{
"success": true,
"project": {
"id": "2",
"name": "Project 2 name",
"type": "indexing_check",
"status": "in progress",
"created_at": "2024-03-01 14:34:56",
"links_total": 200,
"links_checking_speed": 100,
"in_queue": 100,
"checked": 100,
"indexed": 70,
"not_indexed": 30,
"download_queue_url": "DOWNLOAD_QUEUE_URL",
"download_indexed_url": "DOWNLOAD_INDEXED_URL",
"download_unindexed_url": "DOWNLOAD_UNINDEXED_URL",
"download_all_url": "DOWNLOAD_ALL_URL",
"download_checked_url": "DOWNLOAD_CHECKED_URL"
}
}
Створити проект
Потрібно виконати запит POST за адресою project
POST https://2index.ninja/api/v1/project
Параметри запиту:
| Поле | Тип | Обов'язково | Опис |
|---|---|---|---|
| name | string | так | Назва проекту |
| website | string | так* | Адреса сайту у форматі https://site.domain/ .*Обов'язковий якщо тип проекту: indexing |
| for_external_links | boolean | ні | Проект для зовнішніх посилань. Якщо не вказано, буде лише для внутрішніх. |
| indexing_speed | integer | ні** | Швидкість індексації проекту, якщо не вказано, буде застосована вся доступна швидкість checking_speed indexing_check indexing |
| checking_speed | integer | ні** | Швидкість перевірки indexing_speed проекту, якщо не вказано вся доступна швидкість на indexing Використовується для проектів з типом indexing_check . |
| type | string | ні | Тип проекту. Можливі варіанти: indexing – індексація посилань, indexing_check – перевірка індексації посилань.Якщо не вказано - створить проект індексації indexing |
** При створенні проекту будь-якого типу можна використовувати будь-який з параметрів indexing_speed і checking_speed вони є аліасами один для одного, але якщо обидва передані, буде використовуватися indexing_speed .
У відповідь будуть отримані дані у форматі JSON:
{
"success": true,
"message": "The project has been successfully created"
}
Приклад створення проекту індексації посилань: POST https://2index.ninja/api/v1/project
name: Project 1 website: https://website.com for_external_links: 1 indexing_speed: 100
Приклад створення проекту перевірки індексації посилань: POST https://2index.ninja/api/v1/project
name: Project 2 checking_speed: 100
Очистити чергу індексації
Потрібно виконати запит POST на адресу project/{project_id}/clear_queue
POST https://2index.ninja/api/v1/project/1/clear_queue
У відповідь будуть отримані дані у форматі JSON:
{
"success": true,
"message": "The indexing queue has been cleared successfully. X links have been removed"
}
Або буде повернено відповідне повідомлення про помилку:
{
"success": false,
"errors": ["Project not found"]
}
Методи роботи з посиланнями
Додати посилання
Потрібно виконати запит POST за адресою link/add
POST https://2index.ninja/api/v1/link/add
Параметри запиту:
| Поле | Обов'язково | Опис |
|---|---|---|
| project_id | так | ID проекту |
| links | так | Список посилань Можна передати у вигляді масиву посилань або тексту (кожне посилання окремим рядком). |
| ні, за умови yandex або bing | Надсилати посилання в Google | |
| yandex | ні, за умови google або bing | Надсилати посилання в Yandex |
| bing | ні, за умови google або yandex | Надсилати посилання в Bing |
| google_access_granted | ні | Доступ до облікового запису Google |
У відповідь будуть отримані дані у форматі JSON:
{
"success": true,
"message": "Links have been successfully added to the project"
}
Якщо у списку будуть помилкові посилання, посилання не будуть додані, у відповідь буде отримано відповідне повідомлення про помилку:
{
"success": false,
"errors": ["You sent invalid links"],
"invalid_links": ["http://wrong.link"]
}
Для проектів перевірки індексації посилання додаються так само, як і для індексації, google_access_granted - не обов'язково передавати, буде ігноруватися. Пошукові системи потрібно вказати, але на даний момент доступна перевірка тільки в google.
Додати посилання за назвою проекту
Потрібно виконати запит POST на адресу link/add_simple .
POST https://2index.ninja/api/v1/link/add_simple
Параметри запиту:
| Поле | Обов'язково | Опис |
|---|---|---|
| project_name | ні | Назва проекту. Якщо не вказано, буде створено проект "default" . |
| links | так | Список посилань можна передати масивом або текстом (кожне посилання з нового рядка). |
| ні, якщо вказано yandex або bing | Надсилати посилання в Google. | |
| yandex | ні, якщо вказано google або bing | Надсилати посилання в Yandex. |
| bing | ні, якщо вказано google або yandex | Надсилати посилання в Bing. |
| google_access_granted | ні | Доступ до облікового запису Google. |
Для проектів перевірки індексації посилання додаються так само, як і для індексації, google_access_granted - не обов'язково передавати, буде ігноруватися. Пошукові системи потрібно вказати, але на даний момент доступна перевірка тільки в google.
Приклад запиту:
{
"project_name": "My Website",
"links": ["https://example.com/page1", "https://example.com/page2"],
"google": true,
"yandex": false,
"bing": true,
"google_access_granted": false
}
Відповідь у разі успіху:
{
"success": true,
"message": "Links have been successfully added to the project",
"project_name": "My Website",
"project_id": 12345
}
Можливі помилки:
- Якщо у списку будуть помилкові посилання:
{
"success": false,
"errors": ["You sent invalid links"],
"invalid_links": ["http://wrong.link"]
}
- Якщо виникла помилка під час створення проекту:
{
"success": false,
"errors": ["Failed to create the project"]
}
Перевірити статус посилання
Виконайте POST-запит за адресою /api/v1/link/status
POST https://2index.ninja/api/v1/link/status
Параметри запиту:
| Поле | Обов'язково | Опис |
|---|---|---|
| project_id | так | ID проєкту |
| link | так | Посилання для перевірки |
- У разі успіху буде повернено JSON-об'єкт:
{
"success": true,
"link": {
"id": 34368960,
"url": "https://2index.ninja/",
"google": "Sent",
"yandex": "Sent",
"bing": "Sent",
"is_external": 1,
"google_sent": "2025-08-24 20:10:02",
"yandex_sent": "2025-08-24 20:45:02",
"bing_sent": "2025-08-24 20:05:05",
"google_indexed": 1,
"google_indexing_check_date": "2025-08-29"
}
}
Де:
| Поле | Опис |
|---|---|
id |
ID посилання |
url |
Посилання |
google |
* Статус відправки в Google |
yandex |
* Статус відправки в Yandex |
bing |
* Статус відправки в Bing |
is_external |
Зовнішнє посилання |
google_sent |
Дата відправки в Google |
yandex_sent |
Дата відправки в Yandex |
bing_sent |
Дата відправки в Bing |
google_indexed |
Проіндексовано в Google |
google_indexing_check_date |
Дата перевірки індексації в Google |
* Можливі статуси:
| Статус | Значення |
|---|---|
New |
Нове |
Sent |
Відправлено |
In the queue |
У черзі на відправку |
In the process |
У процесі відправки |
Error sending |
Сталася помилка під час відправки |
Don't index |
Не індексувати |
Sent to reindexing |
Відправлено на переіндексацію |
- У разі помилки буде повернено JSON-об'єкт із повідомленням про помилку. Приклади помилок:
{
"success": false,
"errors":{
"link": [
"The link field is required."
]
}
}
{
"success": false,
"errors":[
"Project not found"
]
}
{
"success": false,
"errors":[
"URL not found"
]
}
Також можна отримати статус посилання за його ID
Для цього виконайте GET-запит за адресою /api/v1/link/status/ID
GET https://2index.ninja/api/v1/link/status/ID
Відповідь буде такою ж, як і у попередньому варіанті
Робота з джерелами посилань
Джерела посилань доступні для будь-яких типів проектів і обробляються однаково.
Додавання картки сайту
Виконайте запит POST за адресою /api/v1/sitemap/add
POST https://2index.ninja/api/v1/sitemap/add
Параметри запиту:
| Поле | Обов'язково | Опис |
|---|---|---|
| project_id | так | ID проекту |
| sitemap | так | Посилання на карту сайту |
| ні, за умови yandex або bing | Надсилати посилання в Google | |
| yandex | ні, за умови google або bing | Надсилати посилання в Yandex |
| bing | ні, за умови google або yandex | Надсилати посилання в Bing |
| google_access_granted | ні | Доступ до облікового запису Google |
| watch | ні | Слідкувати за змінами карти сайту |
Можливі помилки:
| Помилка |
|---|
| Помилка валідації даних. |
| Недоступність тарифу. |
| Проект не знайдено. Користувач не має зазначеного проекту або проект не існує. |
| Внутрішня помилка сервера |
Приклади відповідей:
Успішне додавання картки сайту:
{
"success": true,
"message": "Карта сайта успешно добавлена, мы скачаем её как можно скорее и отправим уведомление по электронной почте после завершения."
}
Помилка валідації:
{
"errors": ["sitemap":["The sitemap field is required."]]
}
Проект не знайдено:
{
"errors": ["Project not found"]
}
Оновлення статусу відстеження картки сайту
Виконайте запит POST за адресою /api/v1/sitemap/update_watch
POST https://2index.ninja/api/v1/sitemap/update_watch
Параметри запиту:
| Поле | Тип | Обов'язково | Опис |
|---|---|---|---|
| project_id | integer | так | ID проекту |
| sitemap_id | integer | так | ID картки сайту |
| watch | boolean | так | Ознака того, чи потрібно відстежувати зміни карти сайту |
Можливі помилки:
| Помилка |
|---|
| Помилка валідації даних. |
| Проект або джерело посилання не знайдено. |
| Внутрішня помилка сервера |
Приклади відповідей:
Успішне оновлення статусу відстеження:
{
"success": true
}
Джерело посилання не знайдено:
{
"errors": ["Link source not found"]
}
Видалення джерела посилань
Виконайте запит POST за адресою /api/v1/sitemap/delete
POST https://2index.ninja/api/v1/sitemap/delete
Параметри запиту:
| Поле | Тип | Обов'язково | Опис |
|---|---|---|---|
| project_id | integer | так | ID проекту |
| sitemap_id | integer | так | ID картки сайту |
Можливі помилки:
| Помилка |
|---|
| Помилка валідації даних. |
| Проект або джерело посилання не знайдено. |
| Внутрішня помилка сервера |
Приклади відповідей:
Успішне видалення джерела посилань:
{
"success": true,
"message": "Источник ссылок успешно удален"
}
Проект не знайдено:
{
"errors": ["Project not found"]
}
Список джерел посилань
Для отримання списку доданих джерел посилань потрібно зробити запит POST на https://2index.ninja/api/v1/link_sources
У запиті передати project_id
В результаті буде повернено такий набір даних:
[
{
"id": 1247,
"project_id": 3540,
"name": "urls.txt",
"type": "text file",
"created_at": "2025-01-17T15:51:43.000000Z",
"processing_date": "2025-01-17T15:51:48.000000Z",
"has_error": false,
"error_message": "",
"status": "success",
"is_pending": false,
"is_success": true,
"total_links": 29585,
"added_links": 29582,
"invalid_links": 3,
"watch": 0,
"google_access_granted": 0,
"is_external_links": 1,
"search_engines": {
"google": "1"
}
},
{
"id": 22,
"project_id": 3540,
"name": "https://2index.ninja/sitemap.xml",
"type": "sitemap",
"created_at": "2025-07-03T14:24:23.000000Z",
"processing_date":,
"has_error":,
"error_message":,
"status": "pending",
"is_pending": 1,
"is_success":,
"total_links": 0,
"added_links": 0,
"invalid_links": 0,
"watch": 1,
"google_access_granted": 0,
"is_external_links": 1,
"search_engines": {
"google": 1
}
}
]
Де
id - id джерела посиланьproject_id - id проектуname - назва прикріпленого файлу або адреса картки сайтуtype - тип джерела файлів (текстовий файл або карта сайту) - може бути:sitemaptext filecreated_at - дата спостереженняprocessing_date - дата обробкиhas_error - сталася помилка обробкиerror_message - повідомлення про помилкуstatus - статус - можливо:pending (очікує обробки),error (помилка обробки),successis_pending - зараз обробляєтьсяis_success - успішна обробкаtotal_links - всього знайдено посиланьadded_links - додано посиланьinvalid_links - невалідні посиланняwatch - статус спостереження за карткою сайтуgoogle_access_granted - доступ до облікового запису гугл надано чи ніis_external_links - зовнішні посиланняsearch_engines - підключені пошукові системи
Приклад реалізації на PHP
<?php
/**
* Клас для роботи з API сервісу 2Index.Ninja
*/
class API_2IndexNinja
{
/**
* URL API-ендпоінту
* @var string
*/
private $url = 'https://2index.ninja/api/v1/';
/**
* Токен доступу до API
* @var string
*/
private $access_token;
/**
* Конструктор класу.
*
* @param string $access_token Токен доступу для авторизації в API.
*/
public function __construct($access_token)
{
$this->access_token = $access_token;
}
/*
|--------------------------------------------------------------------------
| Методи для роботи з акаунтом
|--------------------------------------------------------------------------
*/
/**
* Отримує інформацію про поточний акаунт.
*
* @return array|null Декодована відповідь від API з даними акаунту.
*/
public function account()
{
return $this->make_request('account');
}
/*
|--------------------------------------------------------------------------
| Методи для роботи з проектами
|--------------------------------------------------------------------------
*/
/**
* Отримує список усіх проектів.
*
* @return array|null Декодована відповідь від API зі списком проектів.
*/
public function projects_list()
{
return $this->make_request('project');
}
/**
* Отримує дані конкретного проекту за його ID.
*
* @param int $id ID проекту.
* @return array|null Декодована відповідь від API з даними проекту.
*/
public function project($id)
{
return $this->make_request('project/' . $id);
}
/**
* Додає новий проект для індексації посилань.
*
* @param string $name Назва проекту.
* @param string $website Сайт проекту.
* @param bool $for_external_links Чи призначений для зовнішніх посилань (0 або 1).
* @param int|null $indexing_speed Швидкість індексації.
* @return array|null Декодована відповідь від API з даними створеного проекту.
*/
public function add_project($name, $website, $for_external_links = 0, $indexing_speed = null)
{
return $this->make_request('project', [
'name' => $name,
'website' => $website,
'for_external_links' => $for_external_links,
'indexing_speed' => $indexing_speed,
'type' => 'indexing',
]);
}
/**
* Додає новий проект для перевірки індексації.
*
* @param string $name Назва проекту.
* @param int|null $checking_speed Швидкість перевірки.
* @return array|null Декодована відповідь від API з даними створеного проекту.
*/
public function add_indexing_check_project($name, $checking_speed = null)
{
return $this->make_request('project', [
'name' => $name,
'checking_speed' => $checking_speed,
'type' => 'indexing_check',
]);
}
/**
* Очищає чергу посилань для проекту.
*
* @param int $project_id ID проекту.
* @return array|null Декодована відповідь від API.
*/
public function clear_queue($project_id)
{
return $this->make_request('project/' . $project_id . '/clear_queue', true);
}
/*
|--------------------------------------------------------------------------
| Методи для роботи з посиланнями
|--------------------------------------------------------------------------
*/
/**
* Додає посилання у вказаний проект.
*
* @param int $project_id ID проекту.
* @param array|string $links Масив посилань або одне посилання у вигляді рядка.
* @param bool $google Чи відправляти в Google.
* @param bool $yandex Чи відправляти в Yandex.
* @param bool $bing Чи відправляти в Bing.
* @param bool $google_access_granted Прапорець, що підтверджує доступ до Google.
* @return array|null Декодована відповідь від API.
*/
public function add_links($project_id, $links, $google, $yandex, $bing, $google_access_granted = false)
{
return $this->make_request('link/add', [
'project_id' => $project_id,
'links' => $links,
'google' => $google,
'yandex' => $yandex,
'bing' => $bing,
'google_access_granted' => $google_access_granted,
]);
}
/**
* Додає посилання в проект за назвою. Якщо проект не існує, він буде створений.
*
* @param array|string $links Масив посилань або одне посилання у вигляді рядка.
* @param bool $google Чи відправляти в Google.
* @param bool $yandex Чи відправляти в Yandex.
* @param bool $bing Чи відправляти в Bing.
* @param string $project_name Ім'я проекту (за замовчуванням 'default').
* @param bool $google_access_granted Прапорець, що підтверджує доступ до Google.
* @return array|null Декодована відповідь від API.
*/
public function add_links_simple($links, $google, $yandex, $bing, $project_name = 'default', $google_access_granted = false)
{
return $this->make_request('link/add_simple', [
'project_name' => $project_name,
'links' => $links,
'google' => $google,
'yandex' => $yandex,
'bing' => $bing,
'google_access_granted' => $google_access_granted,
]);
}
/**
* Отримує джерела посилань для проекту.
*
* @param int $project_id ID проекту.
* @return array|null Декодована відповідь від API.
*/
public function link_sources($project_id)
{
return $this->make_request('link_sources', [
'project_id' => $project_id
]);
}
/**
* Отримує статус зазначеного посилання
* Якщо одне і те ж посилання було надіслано кілька разів, відобразиться статус останнього надісланого
*
* @param int $project_id ID проекту
* @param string $link Посилання для перевірки
* @return array Статус посилання
*/
public function checkLink($project_id, $link)
{
return $this->make_request('link/status', [
'project_id' => $project_id,
'link' => $link,
]);
}
/**
* Отримує статус зазначеного посилання
*
* @param int $link_id ID посилання
* @return array Статус посилання
*/
public function checkLinkById($link_id)
{
return $this->make_request('link/status/' . $link_id);
}
/**
* Перенаправляє непроіндексовані посилання
*
* Якщо передані посилання, які не надсилалися, вони також будуть додані в чергу
*
* @param int $project_id ID проекту
* @param int $max_attempts обмеження максимального к-ва перенаправлень посилань (від 1 до 10)
* @param array $links (не обов'язково) масив посилань для перенаправлення на індексацію, якщо посилання не передані перенаправляє всі непроіндексовані посилання з проекту
* @return void
*/
public function resent_notindexed_links($project_id, $max_attempts, array $links = [])
{
return $this->make_request('link/resent_notindexed_links/' . $project_id, [
'max_attempts' => $max_attempts,
'links' => $links,
]);
}
/**
* Видалити посилання з проєкту
*
* @param string|array $link
* @return void
*/
public function deleteUrls($project_id, $link)
{
return $this->make_request('link/delete/' . $project_id, [
'link' => $link,
]);
}
/*
|--------------------------------------------------------------------------
| Методи для роботи з джерелами посилань
|--------------------------------------------------------------------------
*/
/**
* Додає Sitemap до проекту.
*
* @param int $project_id ID проекту.
* @param string $sitemap_url URL файлу Sitemap.
* @param bool $google Чи відправляти в Google.
* @param bool $yandex Чи відправляти в Yandex.
* @param bool $bing Чи відправляти в Bing.
* @param bool $google_access_granted Прапорець, що підтверджує доступ до Google.
* @param bool $watch Чи ввімкнути відстеження змін у Sitemap.
* @return array|null Декодована відповідь від API.
*/
public function add_sitemap($project_id, $sitemap_url, $google, $yandex, $bing, $google_access_granted = false, $watch = false)
{
return $this->make_request('sitemap/add', [
'project_id' => $project_id,
'sitemap' => $sitemap_url,
'google' => $google,
'yandex' => $yandex,
'bing' => $bing,
'google_access_granted' => $google_access_granted,
'watch' => $watch,
]);
}
/**
* Вмикає або вимикає відстеження змін для Sitemap.
*
* @param int $project_id ID проекту.
* @param int $sitemap_id ID файлу Sitemap.
* @param bool $watch Новий статус відстеження (true - увімкнути, false - вимкнути).
* @return array|null Декодована відповідь від API.
*/
public function update_sitemap_watch($project_id, $sitemap_id, $watch)
{
return $this->make_request('sitemap/update_watch', [
'project_id' => $project_id,
'sitemap_id' => $sitemap_id,
'watch' => $watch,
]);
}
/**
* Видаляє Sitemap з проекту.
*
* @param int $project_id ID проекту.
* @param int $sitemap_id ID файлу Sitemap для видалення.
* @return array|null Декодована відповідь від API.
*/
public function sitemap_delete($project_id, $sitemap_id)
{
return $this->make_request('sitemap/delete', [
'project_id' => $project_id,
'sitemap_id' => $sitemap_id,
]);
}
/**
* Виконує запит до API.
*
* @param string $endpoint Ендпоінт API для виклику.
* @param array|true $post_data Дані для POST-запиту. Якщо true, надсилається порожній POST.
* @return array|null Декодована JSON-відповідь від API або null у разі помилки.
*/
private function make_request($endpoint, $post_data = [])
{
$ch = curl_init($this->url . $endpoint);
if ($post_data === true) {
curl_setopt($ch, CURLOPT_POST, 1);
} elseif ($post_data) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));
}
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer " . $this->access_token]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
// Вказує user-agent, необхідно вказувати, якщо з'являються помилки 403
// curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36');
$result = curl_exec($ch);
curl_close($ch);
return json_decode($result, 1);
}
}