Общие сведения
Надёжность и безопасность
Покупка лицензии
Начало работы
Роли в системе
Проекты
Концепции
Компоненты
Инструкции
Задачи
Финансы
Ресурсы
Таймшиты
Клиенты
Вики
Затраты
Отчёты и аналитика
FAQ
Типы отчётов
Тип отчёта «Акты»
Тип отчёта «Баланс отсутствий»
Тип отчёта «Бронирование»
Тип отчёта «Биллинг»
Тип отчёта «Версии проектов»
Тип отчёта «Задачи»
Тип отчёта «Задачи проектов»
Тип отчёта «Затраты»
Тип отчёта «Заявки на затраты»
Тип отчёта «Заявки на отсутствия»
Тип отчёта «История ставок пользователей»
Тип отчёта «Запросы ресурсов»
Тип отчёта «Навыки пользователей»
Тип отчёта «Пользователи»
Тип отчёта «Проводки»
Тип отчёта «Ресурсный план»
Тип отчёта «Ресурсный план (по версиям)»
Тип отчёта «Проекты»
Тип отчёта «Сертификаты пользователей»
Тип отчёта «Счета»
Тип отчёта «Счета (строки)»
Тип отчёта «Таймшиты»
Тип отчёта «Таймшиты детально»
Тип отчёта «Финансы»
Тип отчёта «Структура работ»
Тип отчёта «Центры затрат проектов»
Тип отчёта «Задания воркфлоу»
Тип отчета Клиенты
Тип отчета «Контакты»
Тип отчёта «Сделки»
Тип отчёта «История состояний сделок»
Тип отчёта «Взаимодействия»
Использование отчётов
Группировка данных источника
Группировка данных в отчёте
Типы виджетов
Общие отчёты и шаблоны
Настройка отчёта
Экспорт отчётов
Пользовательские настройки отчёта
Вычисляемые поля
Особые колонки отчётов с временными рядами
Использование панелей мониторинга
Публикация панелей
Фильтры источников данных
Настройка и администрирование
Типовой порядок настройки системы
Язык формул и выражений
On-premises
API
История изменений
Термины и определения

Общие сведения об API

Обновлено: 09.08.2025

Назначение

API Timetta может использоваться для создания сторонних интеграций, чтобы управлять данными абонента без входа в веб-интерфейс Timetta.

Использование

Архитектура

  1. Timetta реализует OData v4 API, доступный на конечной точке https://api.timetta.com/odata.
  2. Метаданные API в формате XML доступны по адресу https://api.timetta.com/odata/$metadata.
  3. Описание сущностей можно найти в приложении Настройка -> Менеджер сущностей.

Примечание

Спецификация OData доступна на официальном сайте — https://www.odata.org. Если вы не знакомы с этим протоколом, рекомендуем до разработки интеграции освоить, как минимум, базовые понятия — https://www.odata.org/getting-started/understand-odata-in-6-steps.

Примеры запросов с агрегацией и группировкой данных — https://learn.microsoft.com/en-us/odata/client/grouping-and-aggregation.

Для аутентификации используется отдельный OAuth 2.0 сервис, доступный по адресу https://auth.timetta.com. Подробнее — Аутентификация.

В большинстве случаев любая сущность управляется стандартными методами (POST, GET, PUT, PATCH, DELETE). Поддерживается язык запросов OData. Для отдельных сущностей доступны специализированные действия и функции.

Важно

Timetta — развиваемая система. Версионирования API нет. Мы прилагаем все усилия для недопущения критических изменений, но если они есть — предупреждаем минимум за 14 дней. При разработке интеграций необходимо быть готовым поддерживать их актуальность.

Тестирование и отладка

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

Поля навигации

Сущности могут содержать поля навигации. Например, сущность User содержит навигационное свойство Department. Такое поле всегда идёт в паре с ключом, в данном случае departmentId.

Примечание

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

Поля навигации можно «раскрывать» при запросе, используя параметр expand:

[GET] https://api.timetta.com/odata/Users(a5e16802-23d9-48be-99bb-02d9e34c7409)?
$select=name,departmentId&$expand=department($select=name)

Response:
{
   "name": "Иван Агафонов",
   "departmentId": "9468cd5c-ea04-4adb-a1d7-94b6b910ab2e",
   "department": {
      "name": "Департамент корпоративного аудита 02"
   }
}

Для обновления полей навигации необходимо использовать их ключи, например:

[PATCH] https://api.timetta.com/odata/Users(a5e16802-23d9-48be-99bb-02d9e34c7409)

Payload:
{
   "departmentId": "9468cd5c-ea04-4adb-a1d7-94b6b910ab2e"
}

Обработка ответа

  • В случае успешного выполнения операции возвращается ответ с HTTP кодом 200–204.
  • В случае ошибки аутентификации (чаще всего ввиду не переданного/истекшего Bearer token) возвращается ответ с HTTP кодом 401.
  • В случае ошибки доступа к сущности из-за отсутствия прав (см. статью Как работают права доступа) может вернуться ответ с HTTP кодом 403–404.
  • В случае ошибки в бизнес-логике возвращается ответ с HTTP кодом 500 и телом в формате:
{
    "error": {
        "code": "error code",
        "message": "error description",
        "details": {}
    }
}

Содержание

Назначение Использование Архитектура Тестирование и отладка Поля навигации Обработка ответа
Ничего не найдено

Перейти на русскую версию?