API – Пакетний імпорт користувачів
Для авторизації використовуйте АРІ token. Детально в статті API token
Пакетний імпорт користувачів можна провести двома способами:
- За допомогою CSV-файлу.
- В JSON-форматі.
Імпорт користувачів за допомогою CSV-файлу
- Для пакетного імпорту користувачів у форматі CSV потрібно надіслати POST-запит на один з наступних URI:
- /api/v2/users-import/csv;
- або /api/v2/users-import/batch.
- До запиту повинен бути прикріплений файл у форматі, описаному в Синхронізація за допомогою CSV.
- Запит повинен містити заголовки: Content-Type: multipart/form-data та X-Cbr-Authorization: Bearer API_TOKEN
Приклад запиту:
curl 'https://your-domain.davintoo.com/api/v2/users-import/csv' -H 'X-Cbr-Authorization: Bearer API_TOKEN' -H 'Content-Type: multipart/form-data' -F 'file=@/path/to/users.csv'

curl 'https://your-domain.davintoo.com/api/v2/users-import/batch' -H 'X-Cbr-Authorization: Bearer API_TOKEN' -H 'Content-Type: multipart/form-data' -F 'file=@/path/to/users.csv'

Замість локальної адреси https://your-domain.davintoo.com потрібно використовувати адресу вашого інстанса.
Імпорт користувачів в JSON-форматі
Замість CSV-файлу в тіло запиту можна додати інформацію про користувачів в JSON-форматі.
- Потрібно надіслати POST-запит на URI /api/v2/users-import/batch.
- Запит повинен містити заголовки Content-Type: application/json та X-Cbr-Authorization: Bearer API_TOKEN.
- Налаштування body: raw, JSON.
Список полів аналогічний як для АРІ /api/v2/users-import/single: API – Імпорт користувача.
Приклад:
[
{
"uid": "ad123473",
"secondname": "Бойко",
"firstname": "Оксана",
"patronymic": "",
"login": "addiccens",
"email": "[email protected]",
"password": "111",
"birth_date": "16.10.1988",
"gender": "0",
"city": "Ужгород",
"department": "Відділ продажу",
"position": "Менеджер",
"tags": "новачок",
"phone": "",
"status": "0",
"date_of_employment": "",
"google_id": null,
"work_contact": "",
"date_of_assignment_current_position": "",
"structure_uid": ["a2701216083","a1206747582"],
"user_field1": null,
"user_field2": null,
"user_field3": null,
"customInfo": null,
"language": null,
"user_field4": null,
"user_field5": null,
"role_id": null,
"manager_uid": "ad123456"
},
{
"uid": "ad123474",
"secondname": "Коваленко",
"firstname": "Богдан",
"patronymic": "",
"login": "admitchel",
"email": "[email protected]",
"password": "111",
"birth_date": "31.03.1991",
"gender": "1",
"city": "Львів",
"department": "Відділ логістики",
"position": "Водій",
"tags": "новичок",
"phone": "",
"status": "0",
"date_of_employment": "",
"google_id": null,
"work_contact": "",
"date_of_assignment_current_position": "",
"structure_uid": "a2701216083",
"user_field1": null,
"user_field2": null,
"user_field3": null,
"customInfo": null,
"language": null,
"user_field4": null,
"user_field5": null,
"role_id": null,
"manager_uid": ["ad123456","ad123457"]
},
{
"uid": "ad123456",
"secondname": "Стеценко",
"firstname": "Степан",
"patronymic": "",
"login": "arthurclarke",
"email": "[email protected]",
"password": "111",
"birth_date": "30.05.1972",
"gender": "0",
"city": "Харків",
"department": "Відділ навчання та розвитку персоналу",
"position": "Керівник відділу",
"tags": "кадровий резерв",
"phone": "",
"status": "0",
"date_of_employment": "",
"google_id": null,
"work_contact": "",
"date_of_assignment_current_position": "",
"structure_uid": "a1206747582",
"user_field1": null,
"user_field2": null,
"user_field3": null,
"customInfo": null,
"language": null,
"user_field4": null,
"user_field5": null,
"role_id": null,
"manager_uid": "ad123475"
}
]
Приклад запиту:
curl 'https://your-domain.davintoo.com/api/v2/users-import/batch' -H 'X-Cbr-Authorization: Bearer API_TOKEN' -H 'Content-Type: application/json'

Відповідь
-
В разі успішного запиту (HTTP код відповіді - 200), буде відповідь у форматі JSON з інформацією про кількість оброблених записів:
{"created_count":1,"updated_count":0,"blocked_count":0,"unblocked_count":0}
created_count - дорівнюватиме 1, якщо новий користувач був створений в системі.
updated_count - дорівнюватиме 1, якщо існуючий користувач був оновлений в системі.
blocked_count - дорівнюватиме 1, якщо в процесі оновлення раніше активний користувач був заблокований.
unblocked_count - дорівнюватиме 1, якщо в процесі оновлення раніше заблокований користувач був включений. -
В разі помилки (HTTP код відповіді - 400, 500) повертає JSON об'єкт з інформацією про помилку.
Якщо під час API-запиту виникла помилка 504 Gateway Timeout або 524 A Timeout Occurred, то необхідно зменшити кількість записів на сторінці через параметр пагінації або кількість записів для імпорту (детальніше Автоматичне блокування Користувачів ).
Зверніть увагу! Для цих ендпойнтів застосовується обмеження частоти запитів Rate Limit : не більше 5 запитів протягом 60 секунд для одного користувача. При перевищенні ліміту повертається помилка 429 Too Many Requests.

