REST API

Projects

Projects, summary, timeline, sprints, people, color, icon, repositories and the wall panel.

  • GET /projects (tracker:read): projects with the project type (kind: software, design, admin or support, and the name in kind_label), issue types (each one's level and, when there is one, the template for the text fields), status workflow, custom fields, labels, modules, the project color (color, #rrggbb) and icon (icon_url, with the same token, or null without an icon: show the prefix in a box in the color) and the planned start and end (start_date, target_date, YYYY-MM-DD or null). Use it before creating issues.
  • GET /projects/{prefix, slug or id} (tracker:read): the project Summary, its first tab on screen. project (as in GET /projects), url, dates (start_date, target_date, days_elapsed since the start, days_remaining to the end, negative once it's passed, and time_progress, the fraction of the planned time already gone, from 0 to 1, with both dates), issues (total, open, done, late), active_sprint (or null, with days_left), next_release (the one with the nearest planned date that hasn't shipped, or null), late and upcoming (up to 5 open issues past due and with a due date ahead: code, title, due_date, assignee, url) and people (name, role). In the MCP: get_project.
  • POST /projects (tracker:write; whoever configures some project, or an admin): creates a project, {"name": "Driver app", "prefix": "MOB", "kind": "software", "workflow": "software_qa", "description": "...", "color": "verde", "library_icon": "carro", "start_date": "2026-11-03", "target_date": "2027-02-26"} (start_date and target_date, planned start and end, optional). kind: software (default), design, admin or support; workflow (software): software_qa (default), software or qa. Name and prefix are unique in the company (422 when they already exist, including in the trash). The creator joins as PO/PM. Returns project as in GET /projects (and warning if the color or icon couldn't be saved; try again with PATCH /projects/{ref}/brand). Creating from another project happens in the app. In the MCP: create_project.
  • PATCH /projects/{prefix, slug or id} (tracker:write; PO/PM or admin in the project): planned start and end, {"start_date": "2026-11-03", "target_date": "2027-02-26"}; only what's sent changes and null clears it. The start can't come after the end (422). Returns project, start_date and target_date. In the MCP: plan_project.
  • PATCH /projects/{prefix, slug or id}/brand (tracker:write, PO/PM or admin in the project): color and icon; only what's sent changes. JSON {"color": "verde", "library_icon": "carro-eletrico"}: color is a palette name, in Portuguese (azul, violeta, rosa, vermelho, laranja, âmbar, verde, turquesa, grafite), or #rrggbb, and null goes back to the automatic color; the icon is one of three: library_icon (a ready-made icon, painted in the project color), image_base64 (your own square icon, PNG, JPG or WebP up to 2 MB; or multipart/form-data with the image in the icon field and the other fields as text) or "remove_icon": true (back to the prefix in the colored box). The ready-made icon is painted when it's set: changing only the color doesn't repaint it, so send library_icon again along with the new color. In multipart, an empty color goes back to automatic. Returns color, color_chosen and icon_url. In the MCP: set_project_brand.
  • GET /project-icons (tracker:read): the library of 108 ready-made icons, by group, with slug, name and url (the drawing in black, transparent background); ?query=eletrico filters by name, slug or group, without accents (the names are in Portuguese). In the MCP: list_project_icons.
  • GET /projects/{prefix, slug or id}/people (tracker:read): the project's active people, with id and role. Use it to pick the assignee.
  • GET /projects/{prefix, slug or id}/sprints (tracker:read): the project's planning: open sprints with their issues and points, the top of the backlog (backlog.total and the first issues, in priority order) and the velocity of the last sprints.
  • GET /projects/{prefix, slug or id}/timeline (tracker:read): the project Timeline. project (with start_date and target_date), url, can_plan (whether the person changes the issues' dates), items (issues with a start or due date, up to 300, open ones and those with the date closest to today first: code, title, status, category, closed, group and group_kind, the row's epic or module, is_epic, sprint, assignee, start_date, due_date, first_day and last_day of the bar, late, estimate_minutes, spent_minutes, url), truncated, dependencies (blocker, blocked and conflict, when the blocking one ends on or after the start of the blocked one), sprints, releases (with a planned date) and unscheduled (total and up to 20 open ones without a start or due date). To change dates: PATCH /issues/{ref}/plan (the issue) and PATCH /projects/{ref} (the project). In the MCP: get_timeline.
  • GET /projects/{prefix, slug or id}/repositories (tracker:read): connected GitHub repositories and GitLab projects, with the status each event applies, the last event received and connection: github_app (the company's GitHub app), gitlab_token (tracker created and maintains the webhook in GitLab) or webhook (set up by hand). Connecting and disconnecting happens in the app.
  • GET /panel?project= (tracker:read): a project's wall panel in one call (board, help desk, releases, the week, charts and aqua.topics, aqua's ready-made questions, or null without AI). GET /panel/aqua?project=&topic= (tracker:read): aqua's answer to one of those questions (overview, the default, attention, week, releases and support, the last one only in a project with a help desk), as bullet points, with generated_at; the same question repeats the answer for 30 minutes.