API реєстру

Ті самі дані, що на сайті, у форматі JSON:API (відкриється в новому вікні). Реєстрація не потрібна. Опис для програм: openapi.json (OpenAPI 3.1, файл JSON).

Адреси

  • GET /api/v1/registrations: перелік посвідчень і пошук.
  • GET /api/v1/registrations/{rp}: одне посвідчення. Ідентифікатор {rp} це номер малими літерами через дефіс: ua-1234-01-01.
  • GET /api/v1/registrations/{rp}/versions: усі картки посвідчення, найновіші першими.
  • GET /api/v1/versions/{id}: одна картка. Ідентифікатор з 32 символів (UNID документа в реєстрі), його віддає перелік /registrations/{rp}/versions у полі id.
  • GET /api/v1/directories/{довідник}: names, inns, atc, manufacturers, applicants, countries.
  • GET /api/v1/directories/{довідник}/{id}: одне значення довідника.
  • GET /api/v1/changes: лише те, що змінилось.

Пошук і фільтри

Параметри /registrations, усі необов'язкові:

  • filter[q]: текст, filter[field]: де його шукати (all, name, inn, number, composition, atc).
  • filter[state]: current чинні, archive архівні, any усі. Без параметра всі.
  • filter[manufacturer], filter[applicant], filter[country], filter[inn], filter[name], filter[atc]: ідентифікатор значення з довідника.
  • filter[dispensing]: rx за рецептом, otc без рецепта.
  • filter[month]: рік і місяць початку дії, як-от 202102.
  • filter[emergency_use]=1, filter[emergency_registration]=1: екстрені переліки.
  • fields[registrations]=number,title: лише потрібні поля.

Приклад, чинні посвідчення, картки яких почали діяти в лютому 2021 року, лише номер і назва: https://www.drlz.com.ua/api/v1/registrations?filter[state]=current&filter[month]=202102&fields[registrations]=number,title

Сторінки

page[number] і page[size], на сторінці до 100 записів. У відповіді links.next веде на наступну сторінку, meta.total показує, скільки всього.

Як стежити за змінами

Повне завантаження не потрібне щоразу. Викликайте /changes і переходьте за links.next, доки meta.has_more не стане false. Збережіть останній links.next і викликайте його наступного разу: прийде лише нове. Перший виклик без параметрів віддає весь реєстр частинами по 500 карток.

Картки, що зникли з публічної частини реєстру, перелічені в meta.removed.

Обмеження

Без ключа до 60 запитів на хвилину з однієї адреси, з ключем у заголовку X-Api-Key до 600. Заголовки X-RateLimit-Limit і X-RateLimit-Remaining показують залишок. Коли ліміт вичерпано, приходить відповідь 429 із заголовком Retry-After.

Ключ видає Державний експертний центр МОЗ України (відкриється в новому вікні) на запит.

Кожна відповідь має ETag. Надішліть його в If-None-Match, і незмінені дані не передаватимуться вдруге.

Помилки

Помилки приходять у форматі JSON:API: {"errors": [{"status": "404", "title": "Not Found", "detail": "..."}]}.