WORKSECTION

Задания

Получение списка всех задач/подзадач аккаунта через API: get_all_tasks

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

https://your-domain.com/api/admin/v2/?action=get_all_tasks&hash=HASH 
Возвращает данные всех открытых и закрытых задач/подзадач аккаунта
В этом запросе параметр page не требуется

Необязательные параметры:
  • show_subtasks=1 — возвращает поле child (если доступно), которое содержит список подзадач в аналогичном формате. Доступно 2 уровня вложенности: задача / подзадача / вложенная подзадача (под-подзадача)
  • extra=text (аналогично text=1) или extra=html — возвращает описание задачи/подзадачи в текстовом или html формате соответственно 
  • filter=active (аналогично status=active) — возвращает данные только открытых задач/подзадач проекта. Для отображения только закрытых задач отдельное значение указанного параметра не предусмотрено 

Возвращаемые данные задач/подзадач: 
  • id — уникальный номер
  • name — название задачи/подзадачи
  • page — ссылка на задачу/подзадачу (см. формат ссылки)
  • status — статус (active/done — открытая/закрытая)
  • priority — приоритет (диапазон значений: 0..10)
  • user_from и user_to — информация об авторе и ответственном сотруднике
  • project — информация о проекте (его id, name и page)
  • text — текст описания задачи/подзадачи в текстовом или html формате (если в запросе указан соответствующий параметр extra)
  • date_added — дата и время создания
  • date_closed — дата и время закрытия
  • date_start — дата, когда задача/подзадача должна стартовать (если указано)
  • date_end — дата, когда задача/подзадача должна быть закрыта (если указано)
  • max_time и max_money — плановые временные и финансовые затраты (если указаны)
  • tags — массив в формате id: name для статусов и меток задачи/подзадачи (если указаны)

Пример JSON ответа
При успешном выполнении запроса, ответ будет содержать статус ok и следующие данные:

{
    "status": "ok",
    "data": [
        {
            "id": "TASK_ID",
            "name": "TITLE",
            "page": "/project/PROJECT_ID/TASK_ID/",
            "status": "done",
            "priority": "0..10",
            "user_from": {
                "id": "USER_ID",
                "email": "USER_EMAIL",
                "name": "USER_NAME"
            },
            "user_to": {
                "id": "USER_ID",
                "email": "USER_EMAIL",
                "name": "USER_NAME"
            },
            "project": {
                "id": "PROJECT_ID",
                "name": "PROJECT_TITLE",
                "page": "/project/PROJECT_ID/"
            },
            "text": "TASK_TEXT",
            "date_added": "YYYY-MM-DD HH:II",
            "date_start": "YYYY-MM-DD",
            "date_end": "YYYY-MM-DD",
            "date_closed": "YYYY-MM-DD HH:II",
            "max_time": "50",
            "max_money": "100",
            "tags": "complete",
            "child": [
                {
                    "id": "SUBTASK_ID",
                    "name": "SUBTASK_NAME",
                    "page": "/project/PROJECT_ID/TASK_ID/SUBTASK_ID/",
                    "status": "done",
                    "priority": "0..10",
                    "user_from": {
                        "id": "USER_ID",
                        "email": "USER_EMAIL",
                        "name": "USER_NAME"
                    },
                    "user_to": {
                        "id": "USER_ID",
                        "email": "USER_EMAIL",
                        "name": "USER_NAME"
                    },
                    "project": {
                        "id": "PROJECT_ID",
                        "name": "PROJECT_TITLE",
                        "page": "/project/PROJECT_ID/"
                    },
                    "text": "SUBTASK_TEXT",
                    "date_added": "YYYY-MM-DD HH:II",
                    "date_start": "YYYY-MM-DD",
                    "date_end": "YYYY-MM-DD",
                    "date_closed": "YYYY-MM-DD HH:II",
                    "max_time": "25",
                    "max_money": "50",
                    "tags": {
                        "3": "In progress",
"6": "Billable"
}
} ] } ] }

Получение задачи/подзадачи проекта через API: get_task

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

https://your-domain.com/api/admin/v2/?action=get_task&
page=/project/PROJECT_ID/TASK_ID/SUBTASK_ID/&hash=HASH

Возвращает данные выбранной открытой или закрытой задачи/подзадачи аккаунта

Обязательные параметры:
Необязательные параметры:
  • extra=text (аналогично text=1) или extra=html — возвращает описание задачи/подзадачи в текстовом или html формате соответственно 

Возвращаемые данные по задаче/подзадаче:
  • id — её уникальный номер
  • name — название задачи/подзадачи
  • status — статус (active/done — открытая/закрытая)
  • priority — приоритет (диапазон значений: 0..10)
  • user_from и user_to — информация об авторе и ответственном сотруднике
  • project — информация о проекте (его id, name и page)
  • text — текст описания задачи/подзадачи в текстовом или html формате (если в запросе указан соответствующий параметр extra)
  • date_added — дата и время создания
  • date_closed — дата и время закрытия
  • date_start — дата, когда задача/подзадача должна стартовать (если указано)
  • date_end — дата, когда задача/подзадача должна быть закрыта (если указано)
  • max_time и max_money — плановые временные и финансовые затраты (если указаны)
  • tags — массив в формате id: name для статусов и меток задачи/подзадачи (если указаны)

Пример JSON ответа
При успешном выполнении запроса, ответ будет содержать статус ok и следующие данные:

{
    "status": "ok",
    "data": {
        "id": "TASK_ID",
        "name": "TITLE",
        "page": "/project/PROJECT_ID/TASK_ID/",
        "status": "active",
        "priority": "0..10",
        "user_from": {
            "id": "USER_ID",
            "email": "USER_EMAIL",
            "name": "USER_NAME"
        },
        "user_to": {
            "id": "USER_ID",
            "email": "USER_EMAIL",
            "name": "USER_NAME"
        },
        "project": {
            "id": "PROJECT_ID",
            "name": "PROJECT_TITLE",
            "page": "/project/PROJECT_ID/"
        },
        "text": "TASK_TEXT",
        "date_added": "YYYY-MM-DD HH:II",
        "date_start": "YYYY-MM-DD",
        "date_end": "YYYY-MM-DD",
        "date_closed": "YYYY-MM-DD HH:II",
        "max_time": "25",
        "max_money": "50",
        "tags": {
            "3": "In progress",
            "6": "Billable"
        }
    }
}

Получение списка задач проекта через API: get_tasks

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

https://your-domain.com/api/admin/v2/?action=get_tasks&
page=/project/PROJECT_ID/&hash=HASH

Возвращает данные всех открытых и закрытых задач/подзадач определенного проекта

Обязательные параметры:
Необязательные параметры:
  • show_subtasks=1 — возвращает поле child (если доступно), которое содержит список подзадач в аналогичном формате. Доступно 2 уровня вложенности: задача / подзадача / вложенная подзадача (под-подзадача)
  • extra=text (аналогично text=1) или extra=html — возвращает описание задачи/подзадачи в текстовом или html формате соответственно 
  • filter=active (аналогично status=active) — возвращает данные только открытых задач/подзадач проекта. Для отображения только закрытых задач отдельное значение указанного параметра не предусмотрено 

Возвращаемые данные задач/подзадач:
  • id — уникальный номер
  • name — название задачи/подзадачи
  • page — ссылка на задачу/подзадачу (см. формат ссылки)
  • status — статус (active/done — открытая/закрытая)
  • priority — приоритет (диапазон значений: 0..10)
  • user_from и user_to — информация об авторе и ответственном сотруднике
  • project — информация о проекте (его id, name и page)
  • text — текст описания задачи/подзадачи в текстовом или html формате (если в запросе указан соответствующий параметр extra)
  • date_added — дата и время создания
  • date_closed — дата и время закрытия
  • date_start — дата, когда задача/подзадача должна стартовать (если указано)
  • date_end — дата, когда задача/подзадача должна быть закрыта (если указано)
  • max_time и max_money — плановые временные и финансовые затраты (если указаны)
  • tags — массив в формате id: name для статусов и меток задачи/подзадачи (если указаны)

Пример JSON ответа
При успешном выполнении запроса, ответ будет содержать статус ok и следующие данные:

{
    "status": "ok",
    "data": [
        {
            "id": "TASK_ID",
            "name": "TITLE",
            "page": "/project/PROJECT_ID/TASK_ID/",
            "status": "done",
            "priority": "0..10",
            "user_from": {
                "id": "USER_ID",
                "email": "USER_EMAIL",
                "name": "USER_NAME"
            },
            "user_to": {
                "id": "USER_ID",
                "email":"USER_EMAIL",
                "name": "USER_NAME"
            },
            "project": {
                "id": "PROJECT_ID",
                "name": "PROJECT_TITLE",
                "page": "/project/PROJECT_ID/"
            },
            "text": "TASK_TEXT",
            "date_added": "YYYY-MM-DD HH:II",
            "date_start": "YYYY-MM-DD",
            "date_end": "YYYY-MM-DD",
            "date_closed": "YYYY-MM-DD HH:II",
            "max_time": "50",
            "max_money": "100",
            "tags": "complete",
            "child": [
                {
                    "id": "SUBTASK_ID",
                    "name": "SUBTASK_NAME",
                    "page": "/project/PROJECT_ID/TASK_ID/SUBTASK_ID/",
                    "status": "done",
                    "priority": "0..10",
                    "user_from": {
                        "email": "USER_EMAIL",
                        "name": "USER_NAME"
                    },
                    "user_to": {
                        "email": "USER_EMAIL",
                        "name": "USER_NAME"
                    },
                    "project": {
                        "id": "PROJECT_ID",
                        "name": "PROJECT_TITLE",
                        "page": "/project/PROJECT_ID/"
                    },
                    "text": "SUBTASK_TEXT",
                    "date_added": "YYYY-MM-DD HH:II",
                    "date_start": "YYYY-MM-DD",
                    "date_end": "YYYY-MM-DD",
                    "date_closed": "YYYY-MM-DD HH:II",
                    "max_time": "25",
                    "max_money": "50",
                    "tags": {
                        "3": "In progress",
                        "6": "Billable"
                    }
                }
            ]    
        }
    ]
}

Создание задачи через API: post_task

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

https://your-domain.com/api/admin/v2/?action=post_task&
page=/project/PROJECT_ID/&email_user_from=USER_EMAIL&
title=TASK_NAME&hash=HASH

Создает задачу в указанном проекте, независимо от его статуса (активные, спящий, архивный)

В данном запросе можно добавлять файлы (см. Как добавлять файлы)

Обязательные параметры:
  • email_user_from — email автора задания
  • title — наименование задачи 

Необязательные параметры:
  • email_user_to — email ответственного сотрудника по задаче (ANY для "Любой сотрудник", NOONE или отсутствие указанного параметра для "Без ответственного")
  • priority — приоритет (диапазон значений: 0..10)
  • text — описание задачи 
  • todo — чек-лист (например: todo[]=дело1&todo[]=дело2)
  • datestart — дата, когда задача должна стартовать в формате DD.MM.YYYY
  • dateend — дата, когда задача должна быть закрыта в формате DD.MM.YYYY
  • subscribe — список email сотрудников, разделенных запятой, которые будут подписаны на задачу
  • hidden — список email сотрудников, разделенных запятой, которые будут входить в круг видимости задачи. Для других сотрудников задача будет скрытой
  • max_time — плановые временные затраты
  • max_money — плановые финансовые затраты
  • tags — добавляет статусы/метки (например: tags=TAG1,TAG2). Можно указывать наименования (если они уникальны) или их ID (можно получить через метод get_tags)

Пример JSON ответа
При успешном выполнении запроса, ответ будет содержать статус ok и следующие данные:

{
    "status": "ok",
    "data": {
        "id": "TASK_ID",
        "name": "TASK_NAME",
        "page": "/project/PROJECT_ID/TASK_ID/",
        "status": "active",
        "priority": "0..10",
        "user_from": {
"id": "USER_ID",
            "email": "USER_EMAIL",
            "name": "USER_NAME"
        },
        "user_to": { "id": "USER_ID",
            "email": "USER_EMAIL",
            "name": "USER_NAME"
        },
        "project": {
            "id": "PROJECT_ID",
            "name": "PROJECT_NAME",
            "page": "/project/PROJECT_ID/"
        },
        "text": "TASK_TEXT",
        "date_added": "YYYY-MM-DD HH:II",
        "date_start": "YYYY-MM-DD",
        "date_end": "YYYY-MM-DD",
        "max_time": 40,
        "max_money": 200, "tags": { "3": "In progress", "6": "Billable" }
    }
}

Создание подзадачи через API: post_subtask

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

https://your-domain.com/api/admin/v2/?action=post_subtask&
page=/project/PROJECT_ID/TASK_ID/&email_user_from=USER_EMAIL&
title=TASK_NAME&hash=HASH

Создает подзадачу в определенной задаче
Родительская задача не должна быть закрыта

В данном запросе можно добавлять файлы, см. Как добавлять файлы

Обязательные параметры:
  • email_user_from — email автора задания
  • title — наименование задачи 

Необязательные параметры:
  • email_user_to — email ответственного сотрудника по подзадаче (ANY для "Любой сотрудник", NOONE или отсутствие указанного параметра для "Без ответственного")
  • priority — приоритет (диапазон значений: 0..10)
  • text — описание подзадачи 
  • todo — чек-лист (например: todo[]=дело1&todo[]=дело2)
  • datestart — дата, когда подзадача должна стартовать в формате DD.MM.YYYY
  • dateend — дата, когда подзадача должна быть закрыта в формате DD.MM.YYYY
  • subscribe — список email сотрудников, разделенных запятой, которые будут подписаны на подзадачу
  • hidden — список email сотрудников, разделенных запятой, которые будут входить в круг видимости подзадачи. Для других сотрудников подзадача будет скрытой
  • max_time — плановые временные затраты
  • max_money — плановые финансовые затраты
  • tags — добавляет статусы/метки (например: tags=TAG1,TAG2). Можно указывать наименования (если они уникальны) или их ID (можно получить через метод [get_tags])

Пример JSON ответа
При успешном выполнении запроса, ответ будет содержать статус ok и следующие данные:

{
    "status": "ok",
    "data": {
        "id": "SUBTASK_ID",
        "name": "SUBTASK_NAME",
        "page": "/project/PROJECT_ID/TASK_ID/SUBTASK_ID/",
        "status": "active",
        "priority": "0..10",
        "user_from": { "id": "USER_ID",
            "email": "USER_EMAIL",
            "name": "USER_NAME"
        },
        "user_to": { "id": "USER_ID",
            "email": "USER_EMAIL",
            "name": "USER_NAME"
        },
        "project": {
            "id": "PROJECT_ID",
            "name": "PROJECT_NAME",
            "page": "/project/PROJECT_ID/"
        },
        "parent": {
            "id": "TASK_ID",
            "name": "TASK_NAME",
            "page": "/project/PROJECT_ID/TASK_ID/",
            "status": "active",
            "priority": "0..10"
        },
        "text": "SUBTASK_TEXT",
        "date_added": "YYYY-MM-DD HH:II",
        "date_start": "YYYY-MM-DD",
        "date_end": "YYYY-MM-DD", "max_time": 40, "max_money": 200, "tags": {   "3": "In progress",   "6": "Billable" }
    }
}

Закрытие задачи через API: complete_task

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

https://your-domain.com/api/admin/v2/?action=complete_task&
page=/project/PROJECT_ID/TASK_ID/&hash=HASH

Закрывает указанную задачу
Задача не должна быть уже закрытой и не должна содержать открытые подзадачи

Обязательные параметры:

Пример JSON ответа
При успешном выполнении запроса, ответ будет содержать статус ok 

{
    "status": "ok"
}

Закрытие подзадачи через API: complete_subtask

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

https://your-domain.com/api/admin/v2/?action=complete_subtask&
page=/project/PROJECT_ID/TASK_ID/SUBTASK_ID/&hash=HASH 

Закрывает указанную подзадачу/под-подзадачу
Задача не должна быть уже закрытой и в случае подзадачи не должна содержать открытые вложенные подзадачи

Обязательные параметры:

Пример JSON ответа
При успешном выполнении запроса, ответ будет содержать статус ok 

{
    "status": "ok"
}

Повторное открытие задачи через API: reopen_task

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

https://your-domain.com/api/admin/v2/?action=reopen_task&
page=/project/PROJECT_ID/TASK_ID/&hash=HASH 

Повторно открывает указанную задачу

Обязательные параметры:

Пример JSON ответа
При успешном выполнении запроса, ответ будет содержать статус ok 

{
    "status": "ok"
}

Повторное открытие позадачи через API: reopen_subtask

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

https://your-domain.com/api/admin/v2/?action=reopen_subtask&
page=/project/PROJECT_ID/TASK_ID/SUBTASK_ID/&hash=HASH 

Повторно открывает указанную подзадачу или вложенную подзадачу

Обязательные параметры:

Пример JSON ответа
При успешном выполнении запроса, ответ будет содержать статус ok 

{
    "status": "ok"
}

Редактирование задачи через API: update_task

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

https://your-domain.com/api/admin/v2/?action=update_task&
page=/project/PROJECT_ID/TASK_ID/&email_user_to=USER_EMAIL&
&hash=HASH

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

Обязательные параметры:

Необязательные параметры:
  • email_user_to — email ответственного сотрудника по задаче (ANY для "Любой сотрудник", NOONE для "Без ответственного")
  • priority — приоритет (диапазон значений: 0..10)
  • title — наименование задачи
  • datestart — дата, когда задача должна стартовать в формате DD.MM.YYYY
  • dateend — дата, когда задача должна быть закрыта в формате DD.MM.YYYY 
  • dateclosed — дата закрытия задачи DD.MM.YYYY 
  • max_time — плановые затраты времени
  • max_money — плановые затраты денег

Недоступные к редактированию (изменению/снятию/добавлению) через указанный метод параметры:
  • email_user_from — email автора задания
  • text — описание задачи
  • todo — чек-лист 
  • subscribe — список email сотрудников, разделенных запятой, которые будут подписаны на задачу
  • hidden — список email сотрудников, разделенных запятой, которые будут входить в круг видимости задачи
  • tags — статусы/метки

Пример JSON ответа
При успешном выполнении запроса, ответ будет содержать статус ok и следующие данные:

{
    "status": "ok",
    "data": {
        "id": "TASK_ID",
        "name": "TITLE",
        "page": "/project/PROJECT_ID/TASK_ID/",
        "status": "active",
        "priority": "0..10",
        "user_from": { "id": "USER_ID",
            "email": "USER_EMAIL",
            "name": "USER_NAME"
      },
        "user_to": { "id": "USER_ID",
            "email": "USER_EMAIL",
            "name": "USER_NAME"
        },
        "project": {
            "id": "PROJECT_ID",
            "name": "PROJECT_NAME",
            "page": "/project/PROJECT_ID/"
        },
        "date_added": "YYYY-MM-DD HH:II",
        "date_start": "YYYY-MM-DD",
        "date_end": "YYYY-MM-DD", "max_time": 40, "max_money": 200, "tags": {   "3": "In progress",   "6": "Billable" }
    }
}

Редактирование подзадачи через API: update_subtask

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

https://your-domain.com/api/admin/v2/?action=update_subtask&
page=/project/PROJECT_ID/TASK_ID/SUBTASK_ID/&email_user_to=USER_EMAIL&
&hash=HASH

Редактирует ряд параметров указанной открытой или закрытой подзадачи (вложенной подзадачи) 
Среди необязательных параметров указаны все доступные к редактированию

Обязательные параметры:

Необязательные параметры:
  • email_user_to — email ответственного сотрудника по подзадаче (ANY для "Любой сотрудник", NOONE для "Без ответственного")
  • priority — приоритет (диапазон значений: 0..10)
  • title — наименование подзадачи
  • datestart — дата, когда подзадача должна стартовать в формате DD.MM.YYYY
  • dateend — дата, когда подзадача должна быть закрыта в формате DD.MM.YYYY 
  • dateclosed — дата закрытия подзадачи DD.MM.YYYY 
  • max_time — плановые затраты времени
  • max_money — плановые затраты денег

Недоступные к редактированию (изменению/снятию/добавлению) через указанный метод параметры:
  • email_user_from — email автора подзадачи
  • text — описание подзадачи
  • todo — чек-лист 
  • subscribe — список email сотрудников, разделенных запятой, которые будут подписаны на подзадачу
  • hidden — список email сотрудников, разделенных запятой, которые будут входить в круг видимости подзадачи
  • tags — статусы/метки

Пример JSON ответа
При успешном выполнении запроса, ответ будет содержать статус ok и следующие данные:

{
    "status": "ok",
    "data": {
        "id": "SUBTASK_ID",
        "name": "SUBTASK_NAME",
        "page": "/project/PROJECT_ID/TASK_ID/SUBTASK_ID/",
        "status": "active",
        "priority": "0..10",
        "user_from": { "id": "USER_ID",
            "email": "USER_EMAIL",
            "name": "USER_NAME"
        },
        "user_to": { "id": "USER_ID",
            "email": "USER_EMAIL",
            "name": "USER_NAME"
        },
        "project": {
            "id": "PROJECT_ID",
            "name": "PROJECT_NAME",
            "page": "/project/PROJECT_ID/"
        },
        "parent": {
            "id": "TASK_ID",
            "name": "TASK_NAME",
            "page": "/project/PROJECT_ID/TASK_ID/",
            "status": "active",
            "priority": "0..10"
        },
        "date_added": "YYYY-MM-DD HH:II",
        "date_start": "YYYY-MM-DD",
        "date_end": "YYYY-MM-DD", "max_time": 40, "max_money": 200, "tags": {   "3": "In progress",   "6": "Billable"
    }
}

Поиск задач через API: search_tasks

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

https://your-domain.com/api/admin/v2/?action=search_tasks&hash=HASH
&page=/project/PROJECT_ID/&filter=name has 'API' and dateadd>'2019-05-20' and (dateend>'2019-05-25' and
dateend<'2019-05-31')
Проводит поиск задач по проектам, ответственным сотрудникам, авторам задач.

Как минимум один из следующих параметров обязателен:
  • page – ссылка на проект или родительскую задачу
  • email_user_from – email автора задания
  • email_user_to – email ответственного сотрудника
  • status - done или active
  • filter - поисковый запрос

Пример filter запроса
[name has 'API' and dateadd>'2019-05-20' and (dateend>'2019-05-25' and dateend<'2019-05-31')]

Возможные данные для использования в filter:
  •  id, project, parent – id задачи, проекта или родительской задачи (Integer)
  •  name – наименование задачи (String)
  • dateadd или date_added – дата создания задачи в формате 'DD.MM.YYYY'
  • datestart или date_start – дата, когда задача должна стартовать в формате 'DD.MM.YYYY'
  • dateend или date_end – дата, когда задача должна быть закрыта в формате 'DD.MM.YYYY'
  • dateclose или date_close – дата закрытия задачи в формате 'DD.MM.YYYY'

Операторы равенства для целочисленных полей (Integer):
=, in
project=PROJECT_ID
id in (1234, 1235)

Реляционные операторы для полей даты:
>, <P, >=, <=, !=, =
date_add>'2019-05-01'and date_end<'2019-05-31'
Полное или частичное совпадение для строковых (String) данных:
=, has
name='Task Report' or namehas'Report'
Условия запроса можно объединять логическими AndOr операциями и ( )

Получение истории событий за период времени через API: get_events

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

https://your-domain.com/api/admin/v2/?action=get_events&
period=3d&hash=HASH
Возвращает данные по событиям в проектах, с указанной датой изменений, кем изменено, и версии до и после изменений за указанный период времени
В этом запросе параметр page не требуется

Обязательные параметры:
  • period – период времени (возможные диапазоны: в минутах 1m..360m, в часах 1h..72h, в днях 1d..30d)

Необязательные параметры:
  •  page – возвращает данные указанного проекта

Пример JSON ответа
При успешном выполнении запроса, ответ будет содержать статус ok и следующие данные:

{
    "status": "ok",
    "data": [
        {
            "action": "update",
            "object": {
                "type": "comment",
                "id": "COMMENT_ID",
                "page": "/project/PROJECT_ID/TASK_ID/"
            },
            "date_added": "YYYY-MM-DD HH:II",
            "user_from": {
                "email": "USER_EMAIL",
                "name": "USER_NAME"
            },
            "new": {
                "text": "TEXT"
            },
            "old": {
                "text": "TEXT"
            }
        },
        {
            "action": "update",
            "object": {
                "type": "task",
                "id": "TASK_ID",
                "page": "/project/PROJECT_ID/TASK_ID/"
            },
            "date_added": "YYYY-MM-DD HH:II",
            "user_from": {
                "email": "USER_EMAIL",
                "name": "USER_NAME"
            },
            "new": {
                "date_end": "YYYY-MM-DD"
            },
            "old": {
                "date_end": "YYYY-MM-DD"
            }
        }
    ]
}
esc
или
Распечатать