Расписание врачей
Ответ может содержать информацию о расписании врача с возможностью записи на прием. После выбора дня и времени приема пользователь перейдет на ваш сайт, чтобы записаться.
Пример отображения (дизайн может меняться):

Клиника может передавать свое расписание напрямую или через технологического партнера.
При передаче фидов через технологического партнера предложение отображается от имени клиники. Если клиника не заинтересована в таком формате размещения или планирует подключиться самостоятельно (напрямую передавать фиды), ей необходимо обратиться к своему технологическому партнеру.
Если клиника взаимодействует с несколькими технологическими партнерами, размещение осуществляется на основе данных партнера, который первым подключил клинику к партнерской интеграции. Чтобы сменить партнера, необходимо отключить размещение через ранее подключенных партнеров, после чего можно выполнить повторное подключение через нужного партнера.
С 1 апреля 2025 года при передаче данных о расписании врачей необходимо также передавать информацию обо всех совершенных фактах записи пользователя в указанный временной слот. Записью считается нажатие на кнопку Записаться на форме партнера, вне зависимости от подтверждения записи или посещения пользователем медицинского учреждения. Информация о записи передается через интеграцию по API. Подробнее см. Подтверждение записи.
С 16 февраля 2026 года для передачи данных о расписании врачей необходимо заключить возмездный договор. Если вы не хотите заключать договор, вы можете передавать данные о врачах без расписания приема.
Ниже приведена инструкция по настройке передачи расписания приема врачей через API.
Шаг 1. Передача идентификаторов
Вы можете передавать идентификаторы через YML‑фид или файл в формате XLSX.
Определите, какая система идентификаторов используется на вашем сайте для работы с расписаниями врачей. Передайте в фиде идентификаторы с помощью параметров (один или несколько) и информацию об онлайн-расписании:
-
param name="внутренний идентификатор врача"; -
param name="внутренний идентификатор услуги"; -
param name="внутренний идентификатор клиники"; -
param name="Онлайн-расписание" **со значением** true.
Определите, какая система идентификаторов используется на вашем сайте для работы с расписаниями врачей. Передайте в XLSX-файле идентификаторы с помощью параметров (один или несколько) и информацию об онлайн-расписании:
-
ячейка Внутренний идентификатор врача;
-
ячейка Внутренний идентификатор услуги;
-
ячейка Внутренний идентификатор клиники;
-
ячейка Онлайн-расписание со значением ИСТИНА.
Подробно об идентификаторах см. Подключение.
Шаг 2. Доработка сайта
Добавьте на ваш сайт страницу, где пользователи смогут записаться на прием к врачу. На странице должны определяться врач, слот записи и клиника.
Ссылки для перехода на страницу записи из поисковой выдачи формируются следующим образом:
-
Яндекс получает от вашего API:
- URL сайта;
- CGI-параметры слотов записи.
Яндекс может взять URL сайта из фида, если не получил его от API.
-
CGI-параметры добавляются к URL сайта.
По сформированной ссылке должна открываться страница для записи с определенным врачом, клиникой и слотом записи.
Шаг 3. Настройка API
API должен предоставлять информацию о слотах записи к врачам в формате JSON.
Чтобы поддерживать актуальность расписания, Яндекс будет запрашивать информацию через HTTP-endpoint каждые 15 минут.
Общие требования
-
Метод запроса —
GET. -
Формат ответа —
JSON. -
Код ответа при успешном запросе —
200 OK. -
Редиректы и другие коды ответов не допускаются.
-
Content-Type ответа —
application/json; charset=utf-8.
Требования к производительности
-
API должно выдерживать нагрузку 3 RPS.
-
Скорость передачи информации не должна превышать установленные лимиты времени:
-
Запрос к HTTP-endpoint — не более 10 секунд.
-
Выгрузка всех страниц с данными о слотах записи — не более 10 минут.
-
Для оптимизации в базе данных можно реализовать пагинацию с помощью параметра page. Рекомендуемое количество врачей на странице: не более 300.
При настроенной пагинации на запрос без параметра page API должно возвращать такой же ответ, как при запросе с page=1.
Формат запроса
Пример
GET /api/slots?page=1 HTTP/1.1
Host: example.com
Accept: application/json
Описание
|
Имя |
Обязательный |
Тип |
Описание |
|
|
Нет |
|
Номер страницы данных о слотах записи. На страницах должно быть фиксированное количество врачей. Рекомендуемое количество: не более 500. Если параметр не указан, должно возвращаться содержимое первой страницы. Если значение параметра больше возможного, то в ответе список DoctorList должен быть пустым. |
Формат ответа
Пример
{
"Total": 15578,
"Url": "https://example.ru/",
"DoctorList": [
{
"Id": 7706,
"Price": 1500,
"Slots": {
"2": [
{
"AmenityIds": [1, 2, 3],
"StartTime": "2024-05-02T10:30:00",
"FinishTime": "2024-05-02T10:45:00",
"Data": {
"cgi1": "value1",
"cgi2": "value2"
}
},
{
"AmenityIds": [1, 2, 3],
"StartTime": "2024-05-02T10:45:00",
"FinishTime": "2024-05-02T11:00:00",
"Data": {
"cgi1": "value1",
"cgi2": "value2"
}
}
]
}
},
...
}
Описание
|
Имя |
Обязательный |
Тип |
Описание |
|
|
Да |
|
Общее количество врачей со слотами записи на всех страницах. |
|
|
Нет |
|
Ссылка, к которой будут добавляться CGI‑параметры для каждого врача. |
|
|
Да |
|
Список врачей с их слотами записи. У каждого врача один набор слотов записи. Рекомендуемое количество врачей в списке: не более 500. |
|
Параметры объектов в массиве DoctorList |
|||
|
|
Да |
|
Внутренний идентификатор врача. |
|
|
Нет |
|
Цена за прием. |
|
|
Да |
|
Словарь расписания врачей по клиникам:
|
|
Параметры объектов в словаре Slots |
|||
|
|
Нет |
|
Массив с внутренними идентификаторами услуг, которые оказывает врач в указанное время в указанной клинике. |
|
|
Да |
|
Начало слота записи: дата и время в часовом поясе клиники. |
|
|
Да |
|
Конец слота записи: дата и время в часовом поясе клиники. |
|
|
Нет |
|
Словарь с дополнительными CGI‑параметрами. Параметры добавляются в URL, чтобы при переходе по ссылке открывалась форма записи с определенным врачом, клиникой и слотом записи. |
Шаг 4. Подтверждение записи
Ниже представлена информация по использованию API системы сбора отчетов. Отчеты собираются для передачи данных о записи пациентов в медицинские учреждения.
Регистрация и получение токена
-
Создайте приложение, при этом заполните поля:
-
название — можно указать произвольно;
-
иконка сервиса — необязательно;
-
платформы приложения — выберите веб-сервисы;
-
redirect URI — укажите
https://oauth.yandex.ru/verification_code; -
доступ к данным — укажите
doctors-clinics:write_reports.
-
-
Нажмите Создать приложение и скопируйте его ClientID (напротив идентификатора нажмите значок
). -
Добавьте скопированный ClientID в ссылку вида
https://oauth.yandex.ru/authorize?response_type=token&client_id=<идентификатор приложения> -
Перейдите по ссылке и на открывшейся странице скопируйте ваш авторизационный токен.
Токен действует 6 месяцев. Чтобы получить новый токен, перейдите по ссылке из п. 3 еще раз.
Примечание
Токен передается при передаче отчетов вместе с остальными параметрами в теле запроса. См. Формат сообщений.
Механика взаимодействия
При переходе со страницы Яндекс на сайт партнера к URL-адресу страницы добавляется GET-параметр &ya_token.
Передайте значение этого параметра в запросе на метод подтверждения записи. Cм. Формат сообщений.
Формат сообщений
-
Запросы направляются в виде POST по адресу: https://yandex.ru/medicine-api/orders.
-
Параметры передаются в теле запроса в таком формате:
application/x-www-form-urlencoded. -
Обязательные параметры для успешной записи, уточняющие параметры для фактически осуществленной записи.
| Имя | Тип | Описание |
|---|---|---|
access_token |
string |
Токен аутентификации партнера, полученный при регистрации приложения. |
ya_token |
string |
Токен, переданный при переходе на сайт партнера. |
price |
integer |
Стоимость услуги.* |
clinic_id |
string |
Идентификатор клиники, соответствует атрибуту "внутренний идентификатор клиники" в фиде партнера.* |
doctor_id |
string |
Идентификатор врача, соответствует атрибуту "внутренний идентификатор врача" в фиде партнера.* |
slot_time |
number |
Время, на которую произведена запись, в формате "Unix Timestamp" (Unix Epoch).* |
specialization |
string |
Специализация врача, соответствует атрибуту "id" списка специализации в фиде партнера.* |
service |
string |
Услуга.* |
* Значения параметров должны соответствовать финальному выбору пользователя на момент подтверждения записи, включая любые изменения, внесенные на странице подтверждения заявки.
Формат ответа метода POST /medicine-api/orders
При успешном ответе тело ответа будет пустое. В случае ответа с ошибкой уточнение возвращается в виде текста (plaintext).
| Код | Причина | Описание |
|---|---|---|
| 204 | NO_CONTENT | Успешный ответ. Тело ответа пустое. |
| 400 | BAD_REQUEST | Общая ошибка. В ответе может содержаться уточнение. |
| 401 | UNAUTHORIZED | Ошибка аутентификации партнера. Скорее всего, ошибка связана с неверно переданным или устаревшим токеном аутентификации. |
| 405 | METHOD_NOT_ALLOWED | Ошибка метода в обращении. Сервер принимает запросы POST. |
| 429 | TOO_MANY_REQUESTS | Слишком много одновременных запросов со стороны всех партнеров. При нормальной нагрузке такая ситуация возникать не должна. |
| 500 | INTERNAL_SERVER_ERROR | Неуточненная ошибка со стороны сервера. В ответе может содержаться уточнение. |
Шаг 5. Подключение онлайн-расписания
Для подключения заполните форму.
Заполнить форму
Задайте вопрос Нейровебмастеру — в правом нижнем углу нажмите кнопку
.
Если у вас остались вопросы, напишите в чат службы поддержки. Для этого в правом нижнем углу нажмите значок