Skip to content

Changelog

  • Tighter limits on expanded listings. GET /scheduled-events now accepts a from/to window of at most 31 days (was 92), in every view. Listings that expand repeating series (GET /scheduled-events, GET /tasks?view=by_date) expand at most 500 series per request and reject a larger scope with 422 instead of silently dropping series. A repeating series created through the API cannot start more than 730 days in the past. Under heavy load the API may answer 503 service_overloaded with Retry-After. See rate limits, recurrence and errors.
  • Trash for tasks and events. DELETE was never permanent; now you can see what is in the trash (GET /tasks/trash, GET /scheduled-events/trash) and bring a record back (POST /tasks/{id}/restore, POST /scheduled-events/{id}/restore). Records leave the trash after 30 days. There is no API for permanent deletion.
  • Archiving projects. POST /projects/{id}/archive and POST /projects/{id}/unarchive, under projects:write, plus an archived filter on GET /projects. Projects still cannot be created or deleted through the API.
  • The same operations are available to assistants over MCP. See deleting and restoring.

The first public release. The API covers:

  • Tasks & subtasks — full CRUD, with assignees, reporters, tags, due dates, custom fields, and an optional date to schedule a task (or leave it in the waiting list).
  • Time logs — read-only GET /time_logs for completed time entries, filterable by task, project, assignee, billable, entry type and date range.
  • Scheduled events — full CRUD, with participants (workspace members and email guests).
  • Recurring tasks & events and repeat-after-completion for tasks.
  • Chat messages, projects, members, tags, and definitions (task statuses, task types, event types, project statuses and custom fields).
  • Workspace — GET /workspace returns the workspace your credentials belong to, including its time zone.
  • Scoped API-key authentication, idempotent writes, separate read/write rate limits, and ETag caching.