Расписание врачей

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

Пример отображения (дизайн может меняться):

Клиника может передавать свое расписание напрямую или через технологического партнера.

При передаче фидов через технологического партнера предложение отображается от имени клиники. Если клиника не заинтересована в таком формате размещения или планирует подключиться самостоятельно (напрямую передавать фиды), ей необходимо обратиться к своему технологическому партнеру.

Если клиника взаимодействует с несколькими технологическими партнерами, размещение осуществляется на основе данных партнера, который первым подключил клинику к партнерской интеграции. Чтобы сменить партнера, необходимо отключить размещение через ранее подключенных партнеров, после чего можно выполнить повторное подключение через нужного партнера.

С 1 апреля 2025 года при передаче данных о расписании врачей необходимо также передавать информацию обо всех совершенных фактах записи пользователя в указанный временной слот. Записью считается нажатие на кнопку Записаться на форме партнера, вне зависимости от подтверждения записи или посещения пользователем медицинского учреждения. Информация о записи передается через интеграцию по API. Подробнее см. Подтверждение записи.

С 16 февраля 2026 года для передачи данных о расписании врачей необходимо заключить возмездный договор. Если вы не хотите заключать договор, вы можете передавать данные о врачах без расписания приема.

Ниже приведена инструкция по настройке передачи расписания приема врачей через API.

Шаг 1. Передача идентификаторов

Вы можете передавать идентификаторы через YML‑фид или файл в формате XLSX.

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

  • param name="внутренний идентификатор врача";

  • param name="внутренний идентификатор услуги";

  • param name="внутренний идентификатор клиники";

  • param name="Онлайн-расписание" **со значением** true.

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

  • ячейка Внутренний идентификатор врача;

  • ячейка Внутренний идентификатор услуги;

  • ячейка Внутренний идентификатор клиники;

  • ячейка Онлайн-расписание со значением ИСТИНА.

Подробно об идентификаторах см. Подключение.

Шаг 2. Доработка сайта

Добавьте на ваш сайт страницу, где пользователи смогут записаться на прием к врачу. На странице должны определяться врач, слот записи и клиника.

Ссылки для перехода на страницу записи из поисковой выдачи формируются следующим образом:

  1. Яндекс получает от вашего API:

    Яндекс может взять URL сайта из фида, если не получил его от API.

  2. 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
Описание

Имя

Обязательный

Тип

Описание

page

Нет

Number

Номер страницы данных о слотах записи.

На страницах должно быть фиксированное количество врачей. Рекомендуемое количество: не более 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"
                        }
                    }
                ]
            }
        },
        ...
}
Описание

Имя

Обязательный

Тип

Описание

Total

Да

Number

Общее количество врачей со слотами записи на всех страницах.

Url

Нет

String

Ссылка, к которой будут добавляться CGI‑параметры для каждого врача.

DoctorList

Да

Array of objects

Список врачей с их слотами записи. У каждого врача один набор слотов записи.

Рекомендуемое количество врачей в списке: не более 500.

Параметры объектов в массиве DoctorList

Id

Да

Number

Внутренний идентификатор врача.

Price

Нет

Number

Цена за прием.

Slots

Да

Object

Словарь расписания врачей по клиникам:

  • Ключ — внутренний идентификатор клиники.

  • Значение — массив со слотами записи.

Параметры объектов в словаре Slots

AmenityIds

Нет

Array of numbers

Массив с внутренними идентификаторами услуг, которые оказывает врач в указанное время в указанной клинике.

StartTime

Да

string, ISO 8601

Начало слота записи: дата и время в часовом поясе клиники.

FinishTime

Да

string, ISO 8601

Конец слота записи: дата и время в часовом поясе клиники.

Data

Нет

Object[String, String]

Словарь с дополнительными CGI‑параметрами.

Параметры добавляются в URL, чтобы при переходе по ссылке открывалась форма записи с определенным врачом, клиникой и слотом записи.

Шаг 4. Подтверждение записи

Ниже представлена информация по использованию API системы сбора отчетов. Отчеты собираются для передачи данных о записи пациентов в медицинские учреждения.

Регистрация и получение токена

  1. Создайте приложение, при этом заполните поля:

    • название — можно указать произвольно;

    • иконка сервиса — необязательно;

    • платформы приложения — выберите веб-сервисы;

    • redirect URI — укажите https://oauth.yandex.ru/verification_code;

    • доступ к данным — укажите doctors-clinics:write_reports.

  2. Нажмите Создать приложение и скопируйте его ClientID (напротив идентификатора нажмите значок ).

  3. Добавьте скопированный ClientID в ссылку вида

    https://oauth.yandex.ru/authorize?response_type=token&client_id=<идентификатор приложения>
    
  4. Перейдите по ссылке и на открывшейся странице скопируйте ваш авторизационный токен.

Токен действует 6 месяцев. Чтобы получить новый токен, перейдите по ссылке из п. 3 еще раз.

Примечание

Токен передается при передаче отчетов вместе с остальными параметрами в теле запроса. См. Формат сообщений.

Механика взаимодействия

При переходе со страницы Яндекс на сайт партнера к URL-адресу страницы добавляется GET-параметр &ya_token.

Передайте значение этого параметра в запросе на метод подтверждения записи. Cм. Формат сообщений.

Формат сообщений

  1. Запросы направляются в виде POST по адресу: https://yandex.ru/medicine-api/orders.

  2. Параметры передаются в теле запроса в таком формате: application/x-www-form-urlencoded.

  3. Обязательные параметры для успешной записи, уточняющие параметры для фактически осуществленной записи.

Имя Тип Описание
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. Подключение онлайн-расписания

Для подключения заполните форму.

Заполнить форму

Задайте вопрос Нейровебмастеру — в правом нижнем углу нажмите кнопку .

Если у вас остались вопросы, напишите в чат службы поддержки. Для этого в правом нижнем углу нажмите значок . Чат доступен ежедневно с 8:00 до 00:00 по московскому времени.