Skip to content
Trackr beta
esc
Type to search. Use ↑ ↓ to move, ↵ to open.
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 #

MethodPathDescription
GET/instanceUnauthenticated probe. Returns { name, version, api }.
GET/meUser, capability manifest, organizations and unread count.
GET PATCH/me/preferencesResolved preferences. PATCH merges a partial object.
PATCH/me/profileUpdate name and image.
GET POST/me/viewsSaved views / filters per page, shared with the web app.
GET/eventsServer-sent events stream. Emits invalidation hints (entity, inbox).
GET/search?q=Global search across tickets, tasks, projects, wiki and notes. Optional types, orgId.

Inbox #

MethodPathDescription
GET/inboxCursor-paged notification feed.
GET/inbox/badgeUnread count only.
POST/inbox/readBody { all: true }, { id } or { entityType, entityId }.

Tasks #

MethodPathDescription
GET/tasks?scope=mine\|allList tasks.
POST/tasksCreate. Body: title, projectKey, description, status, priority, type, due, estimate, tags, assigneeIds, plannedFor.
GET/tasks/:idDetail, view model, canEdit, assignee candidates.
PATCH/tasks/:idUpdate any editable field.
DELETE/tasks/:idDelete (requires tasks.delete).
POST/tasks/:id/commentsAdd a comment.
POST/tasks/:id/timeLog time: { minutes, date, note }.
GET/tasks/:id/meetingsMeeting notes linked to the task.

Tickets #

MethodPathDescription
GET/tickets?segment=mine\|watched\|all&status=List tickets by last activity.
POST/ticketsCreate: { orgId, subject, description? }.
GET/tickets/:idDetail with the full message timeline and attachments.
PATCH/tickets/:idAgent-only: status, priority, category, assigneeIds, tags.
DELETE/tickets/:idDelete.
POST/tickets/:id/messagesPublic reply, or { internal: true } for a staff note.
PUT/tickets/:id/checklistReplace the whole checklist array.
POST/tickets/:id/tasksConvert into a linked project task (team only).

Projects #

MethodPathDescription
GET/projectsProjects you can see.
GET/projects/:idProject summary.
GET POST/projects/:id/activityHistory feed as plain text; POST adds a project comment.

Chat, notes, wiki #

MethodPathDescription
GET POST/chat/threads?orgId=Thread feed with tags and unread ids; POST { orgId, title, body }.
GET/chat/threads/:idMessages; marks the thread read.
POST/chat/threads/:id/messagesReply.
POST/notesQuick note (staff only).
GET/notes/listYour quick notes, meeting notes and notes shared with you.
GET/notes/:idRead a note.
GET/wikiFlat tree: id, parentId, title, folder.
GET/wiki/:idRendered HTML of a page.

Devices #

MethodPathDescription
POST DELETE/push/tokensRegister or remove a device token. platform: ios, android, ios-live-activity.
Edit this page on GitHub