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" – дата первой публикации версии статьи.

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

{
  "article_versions": [
    {
      "id": 43521,
      "article_code": "код_статьи_000001",
      "comment": null,
      "created_at": "2024-01-22T21:06:29.377+03:00",
      "created_by": null,
      "linked_articles_codes": [],
      "plain_body": "Тип: text_html. Канал: Название_канала. Текст_статьи_без_разметки",
      "project_id": 23,
      "questionnaire_id": null,
      "questions": [
        "Пример_вопроса_1",
        "Пример_вопроса_2",
        "Пример_вопроса_3"
      ],
      "record_type_id": null,
      "status": "published",
      "subtitle": null,
      "tag_plus": false,
      "textsearchable_index_col": "текст_для_поискового_индекса",
      "title": "Название_статьи",
      "updated_at": "2024-01-22T21:06:29.377+03:00",
      "updated_by": null,
      "first_published_at": "2024-01-22T21:06:29.377+03:00",
      "classifier_ids": [
        4284
      ],
      "answers": [
        {
          "id": 192846,
          "answer_references": [],
          "article_version_id": 43521,
          "channel": "Название_канала",
          "content": "Текст_ответа_с_HTML_разметкой",
          "created_at": "2024-01-22T21:06:29.377+03:00",
          "media_links": [],
          "mime_type": "text_html",
          "updated_at": "2024-01-22T21:06:29.377+03:00"
        }
      ],
      "article_code_prefix": null,
      "double_linked_codes": null,
      "virtual_linked_articles_codes": []
    }
  ]
}

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

Словари (dictionaries)

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

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

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

{
  "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": "Значение_1",
      "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": "Значение_2",
      "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" – тип объекта.

  • "parent_id" - id родительского классификатора

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

{
  "id": 174,
  "tree_path": "Регистратура.Взрослая_регистратура_филиал_2",
  "tree_path_decoded": "Регистратура.Взрослая регистратура филиал 2",
  "parent_tree_path": "Регистратура",
  "parent_tree_path_decoded": "Регистратура",
  "parent_id": 169,
  "type": "ArticleClassifier",
  "required": false,
  "project_id": 4,
  "row_order": 1879048192,
  "created_at": "2023-10-17T12:40:26.023+03:00",
  "updated_at": "2025-10-15T11:24:48.351+03:00",
  "created_by": null,
  "updated_by": 205
}

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

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

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

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

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

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

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

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

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

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

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

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

  • “archive_updated_at” - дата обновления.

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

{
  "id": 415,
  "name": "Название_типа_записи",
  "created_at": "2024-01-22T21:06:29.377+03:00",
  "updated_at": "2024-01-22T21:06:29.377+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.

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

{
  "id": 43,
  "name": "Название_анкеты",
  "created_at": "2024-01-22T21:06:29.377+03:00",
  "updated_at": "2024-01-22T21:06:29.377+03:00",
  "project_id": 4,
  "updated_by": null,
  "created_by": null,
  "questionnaire_fields": [
    {
      "id": 83,
      "questionnaire_id": 43,
      "dictionary_id": null,
      "question": "Текст_вопроса_1",
      "created_at": "2024-01-22T21:06:29.377+03:00",
      "updated_at": "2024-01-22T21:06:29.377+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": "Текст_вопроса_2",
      "created_at": "2024-01-22T21:06:29.377+03:00",
      "updated_at": "2024-01-22T21:06:29.377+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" – название группы. Пример ответа:

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

{
  "title": "0",
  "surname": "Название_подразделения",
  "name": "",
  "patronymic": "",
  "department_name": "Название_отдела",
  "position": "",
  "phones": [
    "+7 999 999-99-99",
    "",
    ""
  ],
  "email": null,
  "weekdays_schedule": {
    "понедельник": {
      "время начала": "09:00",
      "время окончания": "18:00",
      "время начала обеда": "13:00",
      "время окончания обеда": "14:00"
    },
    "вторник": {
      "время начала": "09:00",
      "время окончания": "18:00",
      "время начала обеда": "13:00",
      "время окончания обеда": "14:00"
    },
    "среда": {
      "время начала": "09:00",
      "время окончания": "18:00",
      "время начала обеда": "13:00",
      "время окончания обеда": "14:00"
    },
    "четверг": {
      "время начала": "09:00",
      "время окончания": "18:00",
      "время начала обеда": "13:00",
      "время окончания обеда": "14:00"
    },
    "пятница": {
      "время начала": "09:00",
      "время окончания": "16:45",
      "время начала обеда": "13:00",
      "время окончания обеда": "14:00"
    },
    "суббота": {
      "время начала": "",
      "время окончания": "",
      "время начала обеда": "",
      "время окончания обеда": ""
    },
    "воскресенье": {
      "время начала": "",
      "время окончания": "",
      "время начала обеда": "",
      "время окончания обеда": ""
    },
    "выходной день": {
      "время начала": "",
      "время окончания": "",
      "время начала обеда": "",
      "время окончания обеда": ""
    }
}