Управление пользователями
API для работы с пользователями партнера.
Получение списка пользователей
Возвращает список всех пользователей, привязанных к партнеру.
Endpoint: GET /api/v1/users
Заголовки:
token: YOUR_PARTNER_API_KEY
Пример ответа:
{
"status": "success",
"data": {
"items": [
{
"user": {
"id": 123,
"external_id": "ext_123",
"username": "Иван Иванов",
"email": "ivan@kotzdorov.ru",
"phone": "79001234567",
"created_at": 1638360000,
"updated_at": 1638360000
},
"profile": {
"user_id": 123,
"first_name": "Иван",
"middle_name": "Иванович",
"last_name": "Иванов",
"birthday": "1990-01-15",
"phone": "79001234567",
"communication": "telegram",
"photo": "https://kotzdorov.ru/photo.jpg",
"city_id": 1,
"city": "Москва",
"address": "ул. Примерная, д. 1",
"created_at": 1638360000,
"updated_at": 1638360000
},
"pets": [
{
"id": 1,
"user_id": 123,
"type": 1,
"breed": 5,
"name": "Барсик",
"gender": "male",
"birthday": "2020-05-10",
"chip": 1,
"mark": 0,
"neuter": 1,
"vaccination": 1,
"comment": "Комментарий о питомце",
"created_at": 1638360000,
"updated_at": 1638360000,
"ectoparasites": "Фронтлайн",
"ectoparasites_date": "2023-10-01",
"helminths": "Мильбемакс",
"helminths_date": "2023-09-15",
"vaccination_date": "2023-08-20",
"chip_number": "123456789012345",
"mark_number": null
}
]
}
]
}
}
Просмотр пользователя
Получение детальной информации о конкретном пользователе.
Endpoint: GET /api/v1/users/view/{id}
Параметры URL:
id(integer, обязательный) - ID пользователя
Заголовки:
token: YOUR_PARTNER_API_KEY
Пример ответа:
{
"status": "success",
"data": {
"user": {
"id": 123,
"external_id": "ext_123",
"username": "Иван Иванов",
"comment": "VIP клиент",
"email": "ivan@kotzdorov.ru",
"phone": "79001234567",
"created_at": 1638360000,
"updated_at": 1638360000
},
"profile": {...},
"pets": [...]
}
}
Возможные ошибки:
404- Пользователь не найден или не принадлежит партнеру
Поиск пользователя
Поиск пользователя по телефону или email.
Endpoint: GET /api/v1/users/find
Параметры запроса:
phone(string, обязательный) - Номер телефонаemail(string, опциональный) - Email адрес
Заголовки:
token: YOUR_PARTNER_API_KEY
Пример запроса:
GET /api/v1/users/find?phone=79001234567&email=ivan@kotzdorov.ru
Пример ответа:
{
"status": "success",
"data": {
"user": {...},
"profile": {...},
"pets": [...]
}
}
Возможные ошибки:
400- Неверный формат телефона или email404- Пользователь не найден
Создание пользователя
Создание нового пользователя и привязка к партнеру.
Endpoint: POST /api/v1/users/create
Заголовки:
token: YOUR_PARTNER_API_KEY
Content-Type: application/json
Параметры тела запроса:
phone(string, обязательный) - Номер телефонаemail(string, опциональный) - Email адресpassword(string, опциональный) - Пароль (если не указан, используется телефон)
Пример запроса:
{
"phone": "79001234567",
"email": "ivan@kotzdorov.ru",
"password": "securepassword123"
}
Пример успешного ответа:
{
"status": "success",
"data": {
"id": 123,
"name": "79001234567",
"phone": "79001234567",
"email": "ivan@kotzdorov.ru",
"created_at": "2023-12-01T10:00:00.000000Z",
"updated_at": "2023-12-01T10:00:00.000000Z"
},
"id": 123
}
Пример ответа с ошибкой:
{
"status": "fail",
"errors": {
"phone": ["Значение «Phone» не является правильным номером телефона."],
"email": ["Значение «Email» не является правильным email адресом."]
},
"id": null
}
Если пользователь с указанным телефоном уже существует, в ответе будет возвращен его ID в поле id, даже при статусе fail.
Обновление пользователя
Обновление данных существующего пользователя.
Endpoint: POST /api/v1/users/update/{id}
Параметры URL:
id(integer, обязательный) - ID пользователя
Заголовки:
token: YOUR_PARTNER_API_KEY
Content-Type: application/json
Параметры тела запроса:
phone(string, опциональный) - Новый номер телефонаemail(string, опциональный) - Новый email адрес
Пример запроса:
{
"phone": "79009876543",
"email": "newemail@kotzdorov.ru"
}
Пример ответа:
{
"status": "success",
"data": {
"items": {
"id": 123,
"phone": "79009876543",
"email": "newemail@kotzdorov.ru",
...
}
}
}
Возможные ошибки:
404- Пользователь не найден или не принадлежит партнеру
Структура данных
Объект User
| Поле | Тип | Описание |
|---|---|---|
id | integer | Уникальный идентификатор |
external_id | string|null | Внешний идентификатор |
username | string|null | Имя пользователя |
comment | string|null | Комментарий |
email | string | Email адрес |
phone | string | Номер телефона (нормализованный) |
created_at | integer | Unix timestamp создания |
updated_at | integer | Unix timestamp обновления |
Объект Profile
| Поле | Тип | Описание |
|---|---|---|
user_id | integer | ID пользователя |
first_name | string|null | Имя |
middle_name | string|null | Отчество |
last_name | string|null | Фамилия |
birthday | string|null | Дата рождения (YYYY-MM-DD) |
phone | string | Телефон |
communication | string|null | Предпочитаемый способ связи |
photo | string|null | URL фотографии |
city_id | integer|null | ID города |
city | string|null | Название города |
address | string|null | Адрес |
created_at | integer | Unix timestamp создания |
updated_at | integer | Unix timestamp обновления |
Объект Pet
| Поле | Тип | Описание |
|---|---|---|
id | integer | ID питомца |
user_id | integer | ID владельца |
type | integer|null | Тип животного |
breed | integer|null | Порода |
name | string|null | Кличка |
gender | string|null | Пол (male/female) |
birthday | string|null | Дата рождения |
chip | integer|null | Наличие чипа (0/1) |
mark | integer|null | Наличие клейма (0/1) |
neuter | integer|null | Стерилизация (0/1) |
vaccination | integer|null | Вакцинация (0/1) |
comment | string|null | Комментарий |
ectoparasites | string|null | Препарат от эктопаразитов |
ectoparasites_date | string|null | Дата обработки |
helminths | string|null | Препарат от гельминтов |
helminths_date | string|null | Дата дегельминтизации |
vaccination_date | string|null | Дата вакцинации |
chip_number | string|null | Номер чипа |
mark_number | string|null | Номер клейма |
created_at | integer | Unix timestamp создания |
updated_at | integer | Unix timestamp обновления |