Skip to content

Документация по API ПИФИЯ

Аутентификация

Метод аутентификации: HTTP BasicAuthentication.

Отдаются все объекты проекта, доступ к которому есть у авторизованного пользователя.

Параметры

date_fromдата, начиная с которой, нужны изменения * отсутствие параметра — получить с самого началадд.мм.гггг чч:мм:сс
date_toдата, заканчивая которой, нужны изменения * отсутствие параметра — получить до текущего момента включительнодд.мм.гггг чч:мм:сс
chunk_sizeвозвращает определенное количество объектов (аналогично LIMIT в SQL)целое положительное число
offsetколичество пропускаемых объектов перед началом выборки результатов запроса (аналогично OFFSET в SQL)целое положительное число

Эндпоинты API

Получение объектов базы данных api/index

URL: https://dit.optimal-city.ru/api/index Метод: GET
Параметры:

  • date_from

  • date_to

  • chunk_size

  • offset

Возвращаемые объекты:

Пример запроса:

Postman
GEThttps://dit.optimal-city.ru/api/index?date\_from=01.09.2024 00:00:00&date_to=05.09.2024 00:00:00&chunk_size=10&offset=5
bash
curl -u 'api_user_@mail.ru:password' https://dit.optimal-city.ru/api/index?date_from=01.09.2024 00:00:00&date_to=05.09.2024 00:00:00&chunk_size=10&offset=5

Получение объектов «Справочник» — api/directory_entries

URL: https://dit.optimal-city.ru/api/directory_entries Метод: GET
Параметры:

  • date_from
  • date_to
  • chunk_size
  • offset

Возвращаемые объекты:

Пример запроса:

Postman
GEThttps://dit.optimal-city.ru/api/directory\_entries?date\_from=05.09.2024 00:00:00&chunk_size=10
bash
curl -u 'api_user_@mail.ru:password' https://dit.optimal-city.ru/api/directory_entries?date_from=05.09.2024 00:00:00&chunk_size=10

Версии статей (article versions)

В каждом объекте возвращается набор следующих параметров:

  • "id" – идентификатор;

  • "title" – название;

  • "article_code" – символьный код (один для всех версий одной статьи);

  • "comment" – комментарий;

  • "status" – статус версии статьи, передает один из двух статусов:

    • "published" – опубликована,

    • "inactive" – неактивна;

  • "created_at" – дата и время создания статьи;

  • "updated_at" – дата и время последнего изменения статьи;

  • "project_id" – идентификатор проекта;

  • "record_type_id" – идентификатор типа записи;

  • "questionnaire_id" – идентификатор анкеты;

  • "questions" – вопросы по которым ищут информацию в статьях;

  • "tag_plus" – тэг+, чек бокс, передает:

    • true,

    • false;

  • "linked_articles_codes" – идентификаторы связанных статей;

  • "plain_body" – содержание статьи без html разметки;

  • "updated_by" – идентификатор пользователя, изменившего версию ;

  • "textsearchable_index_col" – параметры для поиска;

  • "created_by" – идентификатор пользователя, создавшего версию;

  • "subtitle" – альтернативные название статьи;

  • "classifier_ids" – идентификаторы классификаторов;

  • "answers" – список ответов статьи;

  • "id" – идентификатор ответа;

  • "channel" – канал ответа;

  • "content" – текст ответа;

  • "article_version_id" – идентификатор версии статьи;

  • "created_at" – дата и время создания ответа;

  • "updated_at" – дата и время последнего изменения ответа;

  • "mime_type" – тип текста ответа, передаются атрибуты:

    • "text_html" – текст с html разметкой,

    • "text_plain" – простой текст без разметки;

  • "media_links" – возвращает массив url изображений в ответе;

  • "answer_references" – возвращает массив источников:

    • "url" – ссылка на источник,

    • "title" – отображаемый заголовок;

  • "article_code_prefix" – null;

  • "double_linked_codes" – null;

  • "virtual_linked_articles_codes" – идентификаторы привязанных но деактивированных статей;

  • "first_published_at" – дата первой публикации версии статьи.

Пример ответа:

json
{ "id": 3489, "title": "Заголовок статьи", "article_code": "rsud_000003", "comment": "[]", "status": "published", "created_at": "2024-01-22T21:06:29.377+03:00", "updated_at": "2024-01-22T21:06:29.377+03:00", "project_id": 12,

"record_type_id": null, "questionnaire_id": null, "questions": [
"Где узнать/ посмотреть график приема"

],

"tag_plus": true,

"linked_articles_codes": [], "plain_body": "текст без разметки", "updated_by": null,
"textsearchable_index_col": "текст для поиска", "created_by": 42,
"subtitle": "Альтернативный заголовок статьи",
"first_published_at": "2024-07-16T14:45:05.171+03:00",
"classifier_ids": [
539

],

"answers": [

{

"id": 7002,

"channel": "operator",

"content": "<p>текст статьи</p>", "article_version_id": 3489,
"created_at": "2024-07-16T14:45:05.171+03:00", "updated_at": "2024-07-16T14:45:05.171+03:00",
"mime_type": "text_html", "media_links": [],
"answer_references": [

{

"url": "https://ru.wikipedia.org/wiki/", "title": "Подробнее
}

]

},

{

"id": 7005,

"channel": "sms",

"content": "текст для смс сообщения", "article_version_id": 3489,
"created_at": "2024-08-21T11:50:50.730+03:00", "updated_at": "2024-08-21T11:50:50.730+03:00",
"mime_type": "text_plain", "media_links": [],

Версии статей со статусами "Черновик" , "На проверке" и все архивные версии отсутствуют в возвращаемом массиве "article_versions".

Словари (dictionaries)

В каждом объекте словаря возвращается следующий набор параметров:

  • id - идентификатор словаря
  • name - название словаря
  • created_at - дата и время создания словаря
  • updated_at - дата и время последнего изменения словаря
  • project_id - идентификатор проекта
  • updated_by - идентификатор пользователя, изменившего словарь
  • created_by - идентификатор пользователя, создавшего словарь
  • archive - признак архивности словаря:
    • false - словарь активен
    • true - словарь помещен в архив
  • archive_at - дата и время помещения словаря в архив, если применимо
  • dictionary_values - список значений словаря

Пример ответа:

json
{ "id": 466, "name": "Каналы", "created_at": "2025-05-30T22:00:44.403+03:00", "updated_at": "2025-05-30T22:00:44.614+03:00", "project_id": 51, "updated_by": null, "created_by": null, "archive": false, "archive_at": null, "dictionary_values": [ { "id": 55176, "dictionary_id": 466, "value": "Чат", "created_at": "2025-05-30T22:00:44.499+03:00", "updated_at": "2025-05-30T22:00:44.499+03:00", "project_id": 51, "updated_by": null, "created_by": null }, { "id": 55177, "dictionary_id": 466, "value": "Оператор", "created_at": "2025-05-30T22:00:44.606+03:00", "updated_at": "2025-05-30T22:00:44.606+03:00", "project_id": 51, "updated_by": null, "created_by": null } ] }

Классификаторы (classifiers)

В каждом объекте возвращается набор следующих параметров:

  • "id" – идентификатор классификатора;

  • "created_at" – дата и время создания классификатора;

  • "updated_at" – дата и время последнего изменения классификатора;

  • "project_id" – идентификатор проекта;

  • "row_order" – последовательность отображения;

  • "updated_by" – идентификатор пользователя, изменившего классификатор;

  • "created_by" – идентификатор пользователя, создавшего классификатор;

  • "required" – поле, указывающее, является ли классификатор обязательным для заполнения:

    • true – классификатор является обязательным для заполнения;

    • false – классификатор не является обязательным.

  • "tree_path_decoded" – полный путь классификатора;

  • "parent_tree_path_decoded" – родительский каталог классификатора;

  • "type" – тип объекта.

Пример ответа:

Типы записей - record types

В каждом объекте возвращается набор следующих параметров:

  • "id" – идентификатор типа записи;

  • "name" – название типа записи;

  • "created_at" – дата и время создания типа записи ;

  • "updated_at" – дата и время последнего изменения типа записи;

  • "project_id" – идентификатор проекта;

  • "updated_by" – идентификатор пользователя, сделавшего изменение;

  • "created_by" – идентификатор пользователя, создавшего объект;

  • “archive” - поле, указывающее, активен ли тип записи:

    • false – тип записи активен;

    • true – тип записи помещен в архив.

  • “archive_updated_at” - дата и время последнего изменения значения атрибута “archive”

Пример ответа:

json
{ "id": 415, "name": "1-ый тип записи", "created_at": "2025-11-28T13:43:42.918+03:00", "updated_at": "2025-11-28T13:43:42.918+03:00", "project_id": 70, "updated_by": null, "created_by": 205**,** "archive": false**,** "archive_updated_at": null }
  • Анкеты - questionnaires

В каждом объекте возвращается набор следующих параметров:

  • "id" – идентификатор анкеты;

    • "name" – название анкеты;

    • "created_at" – дата и время создания анкеты;

    • "updated_at" – дата и время последнего изменения анкеты;

    • "project_id" – идентификатор проекта;

    • "updated_by" – идентификатор пользователя, изменившего анкету;

    • "questionnaire_fields" – список полей анкеты;

    • "id" – идентификатор поля;

    • "questionnaire_id" – идентификатор анкеты;

    • "dictionary_id" – идентификатор словаря;

    • "question" – текст поля “Вопрос”;

    • "created_at" – дата и время создания поля;

    • "updated_at" – дата и время последнего изменения поля;

    • "project_id" – идентификатор проекта;

    • "row_order" – последовательность отображения;

    • "updated_by" – идентификатор пользователя, внесшего изменение в поле анкеты;

    • “created_by" – идентификатор пользователя, создавшего анкету;

    • "required" – указывает на обязательность поля:

      • true – обязательно для заполнения,

      • false – необязательно для заполнения;

    • "created_by" – null.

Пример ответа:

json
{ "id": 43, "name": "Тестовая анкета", "created_at": "2023-09-25T14:36:16.948+03:00", "updated_at": "2023-10-03T22:14:33.841+03:00", "project_id": 4, "updated_by": null, "created_by": null, "questionnaire_fields": [ { "id": 83, "questionnaire_id": 43, "dictionary_id": null, "question": "Подскажите ваш район", "created_at": "2023-09-25T14:37:45.388+03:00", "updated_at": "2023-09-25T14:40:26.592+03:00", "project_id": 4, "row_order": 1610612736, "updated_by": 76, "required": false, "created_by": null }, { "id": 85, "questionnaire_id": 43, "dictionary_id": null, "question": "Подскажите ваш возраст", "created_at": "2023-09-25T14:41:21.058+03:00", "updated_at": "2023-09-25T14:41:32.432+03:00", "project_id": 4, "row_order": -268435456, "updated_by": 76, "required": false, "created_by": null

Справочники - directory entries

В каждом объекте возвращается набор следующих параметров:

  • "title" – название справочника;

    • "surname" – фамилия сотрудника;

    • "name" – имя сотрудника;

    • "patronymic" – отчество сотрудника;

    • "department_name" – название отдела;

    • "position" – должность сотрудника;

    • "phones" – список номеров телефона;

    • "email" – почта;

    • "weekdays_schedule" – список начала и конца рабочего дня и обеденного времени;

    • "created_at" – дата и время создания справочника;

    • "updated_at" – дата и время последнего изменения справочника;

    • "project_id" – идентификатор проекта;

    • "classifier_id" – идентификатор общего классификатора справочника;

    • "phone_visibility" – отображение телефона, принимает значения:

      • true – включена видимость телефона;

      • false – выключена видимость телефона.

    • "schedule" – поле с информацией для озвучивания пользователю;

    • "updated_by" – id пользователя, изменившего справочник;

    • "id" – идентификатор записи справочника;

    • "created_by" – id пользователя, создавшего справочник;

    • "archive" – поле, указывающее, активен ли справочник:

      • false – справочник активен;

      • true – справочник помещен в архив.

    • "level_id" – идентификатор уровня;

    • "group_id" – идентификатор группы;

    • "level_name" – название уровня;

    • "group_name" – название группы. Пример ответа:

json
{ "title": "0", "surname": "Управление государственной службы и кадров", "name": "", "patronymic": "", "department_name": "По вопросам трудоустройства", "position": "", "phones": [ "84956099726", "", "" ], "email": null, "weekdays_schedule": { "понедельник": { "время начала": "08:00", "время окончания": "17:00", "время начала обеда": "", "время окончания обеда": "" }, "вторник": { "время начала": "08:00",

"время окончания": "17:00", "время начала обеда": "",

"время окончания обеда": ""

},

"среда": {

"время начала": "08:00",

"время окончания": "17:00", "время начала обеда": "",

"время окончания обеда": ""

},

"четверг": {

"время начала": "08:00",

"время окончания": "17:00", "время начала обеда": "",

"время окончания обеда": ""

},

"пятница": {

"время начала": "08:00",

"время окончания": "15:45", "время начала обеда": "",

"время окончания обеда": ""

},

"суббота": {

"время начала": "",

"время окончания": "",

"время начала обеда": "",

"время окончания обеда": ""

},

"воскресенье": {

"время начала": "",

"время окончания": "",

"время начала обеда": "",

"время окончания обеда": ""

},

"выходной день": {

"время начала": "",

"время окончания": "",

"время начала обеда": "",

"время окончания обеда": ""

}

},