Developers
API reference
The Trackr API is REST over HTTPS with JSON bodies, under /api/v1 of your instance. It is the same API the iOS app and the CLI use.
Updated 1 Sept 2026 beta 2 min read
Conventions #
- Base URL:
https://<your-instance>/api/v1 (for the hosted product, https://app.trackr.dev/api/v1). - Authentication:
Authorization: Bearer <token>. See Authentication. - Bodies and responses are JSON. Dates are ISO 8601 strings.
- Errors return a JSON object with an
error message and an HTTP status: 400 invalid input, 401 no session, 403 no permission, 404 not visible. - Every endpoint enforces the same permissions as the web app.
list-my-tasks.sh bash curl "https://app.trackr.dev/api/v1/tasks?scope=mine" \
-H "Authorization: Bearer $TRACKR_TOKEN"
response json [
{
"id": "7a4d…",
"ref": "SCM-1",
"title": "Prepare CAD models for the fair",
"status": "todo",
"priority": "high",
"type": "task",
"estimate": 360,
"due": "2026-09-12",
"assignees": [{ "id": "…", "name": "Ertugul Kilic" }]
}
]
Session #
| Method | Path | Description |
GET | /instance | Unauthenticated probe. Returns { name, version, api }. |
GET | /me | User, capability manifest, organizations and unread count. |
GET PATCH | /me/preferences | Resolved preferences. PATCH merges a partial object. |
PATCH | /me/profile | Update name and image. |
GET POST | /me/views | Saved views / filters per page, shared with the web app. |
GET | /events | Server-sent events stream. Emits invalidation hints (entity, inbox). |
GET | /search?q= | Global search across tickets, tasks, projects, wiki and notes. Optional types, orgId. |
Inbox #
| Method | Path | Description |
GET | /inbox | Cursor-paged notification feed. |
GET | /inbox/badge | Unread count only. |
POST | /inbox/read | Body { all: true }, { id } or { entityType, entityId }. |
Tasks #
| Method | Path | Description |
GET | /tasks?scope=mine\|all | List tasks. |
POST | /tasks | Create. Body: title, projectKey, description, status, priority, type, due, estimate, tags, assigneeIds, plannedFor. |
GET | /tasks/:id | Detail, view model, canEdit, assignee candidates. |
PATCH | /tasks/:id | Update any editable field. |
DELETE | /tasks/:id | Delete (requires tasks.delete). |
POST | /tasks/:id/comments | Add a comment. |
POST | /tasks/:id/time | Log time: { minutes, date, note }. |
GET | /tasks/:id/meetings | Meeting notes linked to the task. |
Tickets #
| Method | Path | Description |
GET | /tickets?segment=mine\|watched\|all&status= | List tickets by last activity. |
POST | /tickets | Create: { orgId, subject, description? }. |
GET | /tickets/:id | Detail with the full message timeline and attachments. |
PATCH | /tickets/:id | Agent-only: status, priority, category, assigneeIds, tags. |
DELETE | /tickets/:id | Delete. |
POST | /tickets/:id/messages | Public reply, or { internal: true } for a staff note. |
PUT | /tickets/:id/checklist | Replace the whole checklist array. |
POST | /tickets/:id/tasks | Convert into a linked project task (team only). |
Projects #
| Method | Path | Description |
GET | /projects | Projects you can see. |
GET | /projects/:id | Project summary. |
GET POST | /projects/:id/activity | History feed as plain text; POST adds a project comment. |
Chat, notes, wiki #
| Method | Path | Description |
GET POST | /chat/threads?orgId= | Thread feed with tags and unread ids; POST { orgId, title, body }. |
GET | /chat/threads/:id | Messages; marks the thread read. |
POST | /chat/threads/:id/messages | Reply. |
POST | /notes | Quick note (staff only). |
GET | /notes/list | Your quick notes, meeting notes and notes shared with you. |
GET | /notes/:id | Read a note. |
GET | /wiki | Flat tree: id, parentId, title, folder. |
GET | /wiki/:id | Rendered HTML of a page. |
Devices #
| Method | Path | Description |
POST DELETE | /push/tokens | Register or remove a device token. platform: ios, android, ios-live-activity. |
Edit this page on GitHub