{
 "info": {
  "name": "Todo4you API v1",
  "description": "Official Postman collection for the Todo4you REST API.\n\nAuthenticate with a personal Bearer token from Profile > API Access.\n\nBase URL: https://api.todo4you.com/api/v1",
  "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
 },
 "auth": {
  "type": "bearer",
  "bearer": [
   {
    "key": "token",
    "value": "{{api_token}}",
    "type": "string"
   }
  ]
 },
 "variable": [
  {
   "key": "base_url",
   "value": "https://api.todo4you.com/api/v1"
  },
  {
   "key": "api_token",
   "value": "YOUR_TOKEN_HERE"
  },
  {
   "key": "project_id",
   "value": "1"
  },
  {
   "key": "ticket_number",
   "value": "1"
  },
  {
   "key": "ticket_id",
   "value": "1"
  },
  {
   "key": "automation_id",
   "value": "1"
  },
  {
   "key": "template_id",
   "value": "1"
  },
  {
   "key": "invitation_id",
   "value": "1"
  }
 ],
 "item": [
  {
   "name": "Projects",
   "item": [
    {
     "name": "List projects",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/projects",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects"
       ]
      }
     }
    },
    {
     "name": "Create project",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"name\": \"My Project\",\n  \"prefix\": \"MP\",\n  \"description\": \"\",\n  \"template_id\": null,\n  \"column_set\": \"5\"\n}"
      }
     }
    },
    {
     "name": "Project stats",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/stats",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "stats"
       ]
      }
     }
    },
    {
     "name": "Project statuses",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/statuses",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "statuses"
       ]
      }
     }
    },
    {
     "name": "List members",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/members",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "members"
       ]
      }
     }
    },
    {
     "name": "List pending invitations",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/invitations",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "invitations"
       ]
      }
     }
    },
    {
     "name": "Update invitation role",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/invitations/{{invitation_id}}/role",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "invitations",
        "{{invitation_id}}",
        "role"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"role\": \"contributor\"\n}"
      }
     }
    },
    {
     "name": "Cancel invitation",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/invitations/{{invitation_id}}/delete",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "invitations",
        "{{invitation_id}}",
        "delete"
       ]
      }
     }
    },
    {
     "name": "Transfer status (owner only)",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/transfer",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "transfer"
       ]
      }
     }
    },
    {
     "name": "Initiate ownership transfer",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/transfer",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "transfer"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"to_user_id\": 1\n}"
      }
     }
    },
    {
     "name": "Cancel ownership transfer",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/transfer/cancel",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "transfer",
        "cancel"
       ]
      }
     }
    }
   ]
  },
  {
   "name": "Automations",
   "item": [
    {
     "name": "List automations",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/automations",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "automations"
       ]
      }
     }
    },
    {
     "name": "Create automation",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/automations",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "automations"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"type\": \"move_set_deadline\",\n  \"name\": \"Set deadline on move\",\n  \"enabled\": true,\n  \"config\": {\n    \"target_status\": \"in_progress\",\n    \"deadline_offset_days\": 7\n  }\n}"
      }
     }
    },
    {
     "name": "Update automation",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/automations/{{automation_id}}/update",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "automations",
        "{{automation_id}}",
        "update"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"name\": \"Set deadline on move\",\n  \"enabled\": true,\n  \"config\": {\n    \"target_status\": \"in_progress\",\n    \"deadline_offset_days\": 7\n  }\n}"
      }
     }
    },
    {
     "name": "Toggle automation",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/automations/{{automation_id}}/toggle",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "automations",
        "{{automation_id}}",
        "toggle"
       ]
      }
     }
    },
    {
     "name": "Delete automation",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/automations/{{automation_id}}/delete",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "automations",
        "{{automation_id}}",
        "delete"
       ]
      }
     }
    },
    {
     "name": "Automation logs",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/automations/{{automation_id}}/logs",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "automations",
        "{{automation_id}}",
        "logs"
       ]
      }
     }
    }
   ]
  },
  {
   "name": "Templates",
   "item": [
    {
     "name": "List ticket templates",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/ticket-templates",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "ticket-templates"
       ]
      }
     }
    },
    {
     "name": "Create ticket template",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/ticket-templates",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "ticket-templates"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"name\": \"Bug report\",\n  \"content\": \"## Steps to reproduce\\n1.\\n\\n## Expected\\n\\n## Actual\"\n}"
      }
     }
    },
    {
     "name": "Update ticket template",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/ticket-templates/{{template_id}}/update",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "ticket-templates",
        "{{template_id}}",
        "update"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"name\": \"Bug report\",\n  \"content\": \"\"\n}"
      }
     }
    },
    {
     "name": "Delete ticket template",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/ticket-templates/{{template_id}}/delete",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "ticket-templates",
        "{{template_id}}",
        "delete"
       ]
      }
     }
    },
    {
     "name": "List checklist templates",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/checklist-templates",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "checklist-templates"
       ]
      }
     }
    },
    {
     "name": "Create checklist template",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/checklist-templates",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "checklist-templates"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"name\": \"QA checklist\",\n  \"items\": [\n    \"Test on Chrome\",\n    \"Test on Safari\",\n    \"Test on mobile\"\n  ]\n}"
      }
     }
    },
    {
     "name": "Update checklist template",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/checklist-templates/{{template_id}}/update",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "checklist-templates",
        "{{template_id}}",
        "update"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"name\": \"QA checklist\",\n  \"items\": [\n    \"Test on Chrome\",\n    \"Test on Safari\"\n  ]\n}"
      }
     }
    },
    {
     "name": "Delete checklist template",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/checklist-templates/{{template_id}}/delete",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "checklist-templates",
        "{{template_id}}",
        "delete"
       ]
      }
     }
    },
    {
     "name": "List project templates",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/project-templates",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "project-templates"
       ]
      }
     }
    },
    {
     "name": "Save project as template",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/save-as-template",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "save-as-template"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"name\": \"My project template\",\n  \"description\": \"\"\n}"
      }
     }
    },
    {
     "name": "Delete project template",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/project-templates/{{template_id}}/delete",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "project-templates",
        "{{template_id}}",
        "delete"
       ]
      }
     }
    }
   ]
  },
  {
   "name": "AI Features",
   "item": [
    {
     "name": "AI status",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/ai-status",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "ai-status"
       ]
      }
     }
    },
    {
     "name": "AI ticket writer",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/ai-ticket/generate",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "ai-ticket",
        "generate"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"description\": \"Users should be able to export time entries to CSV\",\n  \"language\": \"English\"\n}"
      }
     }
    },
    {
     "name": "Translate ticket",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/tickets/{{ticket_number}}/translate",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "tickets",
        "{{ticket_number}}",
        "translate"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"language\": \"Dutch\"\n}"
      }
     }
    }
   ]
  },
  {
   "name": "Tickets",
   "item": [
    {
     "name": "List tickets",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/tickets",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "tickets"
       ],
       "query": [
        {
         "key": "status",
         "value": "",
         "disabled": true
        }
       ]
      }
     }
    },
    {
     "name": "Get ticket",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/tickets/{{ticket_number}}",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "tickets",
        "{{ticket_number}}"
       ]
      }
     }
    },
    {
     "name": "Search tickets",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/tickets/search?q=keyword",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "tickets",
        "search"
       ],
       "query": [
        {
         "key": "q",
         "value": "keyword"
        }
       ]
      }
     }
    },
    {
     "name": "Create ticket",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/tickets",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "tickets"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"title\": \"New ticket\",\n  \"type\": \"task\",\n  \"priority\": \"medium\",\n  \"status\": \"todo\",\n  \"deadline\": \"2026-12-31\",\n  \"story_points\": 3,\n  \"estimated_hours\": 2.5,\n  \"checklist\": [\"Step 1\", \"Step 2\"],\n  \"tags\": [1, 2]\n}"
      }
     }
    },
    {
     "name": "Update ticket",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/tickets/{{ticket_number}}/update",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "tickets",
        "{{ticket_number}}",
        "update"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"title\": \"Updated title\",\n  \"description\": \"Updated description\",\n  \"type\": \"task\",\n  \"priority\": \"high\",\n  \"deadline\": \"2026-12-31\",\n  \"story_points\": 5,\n  \"estimated_hours\": 4,\n  \"tags\": [1, 2]\n}"
      }
     }
    },
    {
     "name": "Add comment",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/tickets/{{ticket_number}}/comments",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "tickets",
        "{{ticket_number}}",
        "comments"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"comment\": \"This is a comment\"\n}"
      }
     }
    },
    {
     "name": "Move ticket",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/tickets/{{ticket_number}}/move",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "tickets",
        "{{ticket_number}}",
        "move"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"status\": \"in_progress\"\n}"
      }
     }
    },
    {
     "name": "Archive ticket",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/tickets/{{ticket_number}}/archive",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "tickets",
        "{{ticket_number}}",
        "archive"
       ]
      }
     }
    },
    {
     "name": "Unarchive ticket (restore)",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/tickets/{{ticket_number}}/unarchive",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "tickets",
        "{{ticket_number}}",
        "unarchive"
       ]
      },
      "description": "Restore a previously archived ticket. Requires manager role."
     }
    },
    {
     "name": "List archived tickets",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/archived-tickets?q=",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "archived-tickets"
       ],
       "query": [
        {
         "key": "q",
         "value": "",
         "description": "Optional title search (min 2 chars)"
        }
       ]
      },
      "description": "Returns up to 100 most-recently archived tickets. Response also includes the calling user's role on the project."
     }
    },
    {
     "name": "Delete ticket",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/tickets/{{ticket_number}}/delete",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "tickets",
        "{{ticket_number}}",
        "delete"
       ]
      }
     }
    },
    {
     "name": "Duplicate ticket",
     "request": {
      "method": "POST",
      "description": "Copies the ticket (tags, checklist unchecked, assignees, blockers) into the same status column. Requires contribute permission.",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/tickets/{{ticket_number}}/duplicate",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "tickets",
        "{{ticket_number}}",
        "duplicate"
       ]
      }
     }
    },
    {
     "name": "Ticket activity",
     "request": {
      "method": "GET",
      "description": "Returns the ticket's activity log (newest first, max 100 entries).",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/tickets/{{ticket_number}}/activity",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "tickets",
        "{{ticket_number}}",
        "activity"
       ]
      }
     }
    },
    {
     "name": "Ticket git activity",
     "request": {
      "method": "GET",
      "description": "Returns git events (commits, pull requests, branches) linked to the ticket via the project's git integrations.",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/tickets/{{ticket_number}}/git",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "tickets",
        "{{ticket_number}}",
        "git"
       ]
      }
     }
    },
    {
     "name": "Assign member",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/tickets/{{ticket_number}}/assign",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "tickets",
        "{{ticket_number}}",
        "assign"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"user_id\": 1\n}"
      }
     }
    },
    {
     "name": "Unassign member",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/tickets/{{ticket_number}}/unassign",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "tickets",
        "{{ticket_number}}",
        "unassign"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"user_id\": 1\n}"
      }
     }
    }
   ]
  },
  {
   "name": "Board",
   "item": [
    {
     "name": "Board data",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/board",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "board"
       ]
      }
     }
    },
    {
     "name": "Sort tickets",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/tickets/sort",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "tickets",
        "sort"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"status\": \"todo\",\n  \"ticket_ids\": [3, 1, 2]\n}"
      }
     }
    }
   ]
  },
  {
   "name": "Checklist",
   "item": [
    {
     "name": "Add checklist item",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/tickets/{{ticket_id}}/checklist",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "tickets",
        "{{ticket_id}}",
        "checklist"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"text\": \"Checklist item\"\n}"
      }
     }
    },
    {
     "name": "Toggle checklist item",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/checklist/1/toggle",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "checklist",
        "1",
        "toggle"
       ]
      }
     }
    },
    {
     "name": "Update checklist item",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/checklist/1/update",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "checklist",
        "1",
        "update"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"text\": \"Updated item text\"\n}"
      }
     }
    },
    {
     "name": "Delete checklist item",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/checklist/1/delete",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "checklist",
        "1",
        "delete"
       ]
      }
     }
    },
    {
     "name": "Sort checklist items",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/tickets/{{ticket_id}}/checklist/sort",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "tickets",
        "{{ticket_id}}",
        "checklist",
        "sort"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"item_ids\": [3, 1, 2]\n}"
      }
     }
    }
   ]
  },
  {
   "name": "Blockers",
   "item": [
    {
     "name": "Add blocker",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/tickets/{{ticket_id}}/blockers",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "tickets",
        "{{ticket_id}}",
        "blockers"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"blocker_ticket_id\": 2\n}"
      }
     }
    },
    {
     "name": "Remove blocker",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/tickets/{{ticket_id}}/blockers/2/delete",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "tickets",
        "{{ticket_id}}",
        "blockers",
        "2",
        "delete"
       ]
      }
     }
    }
   ]
  },
  {
   "name": "Attachments",
   "item": [
    {
     "name": "Upload attachments",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/tickets/{{ticket_id}}/attachments",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "tickets",
        "{{ticket_id}}",
        "attachments"
       ]
      },
      "body": {
       "mode": "formdata",
       "formdata": [
        {
         "key": "files[]",
         "type": "file",
         "src": ""
        }
       ]
      }
     }
    },
    {
     "name": "Get attachment",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/attachments/1",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "attachments",
        "1"
       ]
      }
     }
    },
    {
     "name": "Delete attachment",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/attachments/1/delete",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "attachments",
        "1",
        "delete"
       ]
      }
     }
    }
   ]
  },
  {
   "name": "Documentation",
   "item": [
    {
     "name": "List root (folders + articles)",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/docs",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "docs"
       ]
      },
      "description": "Returns folders and articles at the project's docs root, plus the calling user's role. 404 if docs are not enabled on the project."
     }
    },
    {
     "name": "List folder contents",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/docs/folders/1",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "docs",
        "folders",
        "1"
       ]
      }
     }
    },
    {
     "name": "Get article",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/docs/articles/1",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "docs",
        "articles",
        "1"
       ]
      },
      "description": "Returns the article (markdown), attachments, comments, breadcrumbs, role and current user id."
     }
    },
    {
     "name": "Create folder",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/docs/folders",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "docs",
        "folders"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"title\": \"Onboarding\",\n  \"parent_id\": null\n}"
      }
     }
    },
    {
     "name": "Update folder",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/docs/folders/1",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "docs",
        "folders",
        "1"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"title\": \"New title\",\n  \"parent_id\": null\n}"
      }
     }
    },
    {
     "name": "Delete folder",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/docs/folders/1/delete",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "docs",
        "folders",
        "1",
        "delete"
       ]
      },
      "description": "Children are reparented to this folder's parent."
     }
    },
    {
     "name": "Create article",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/docs/articles",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "docs",
        "articles"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"title\": \"How we deploy\",\n  \"content\": \"## Steps\\n1. Push to main\\n2. CI deploys\",\n  \"folder_id\": null\n}"
      }
     }
    },
    {
     "name": "Update article",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/docs/articles/1",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "docs",
        "articles",
        "1"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"title\": \"How we deploy v2\",\n  \"content\": \"updated content\"\n}"
      }
     }
    },
    {
     "name": "Delete article",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/docs/articles/1/delete",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "docs",
        "articles",
        "1",
        "delete"
       ]
      }
     }
    },
    {
     "name": "Copy article",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/docs/articles/1/copy",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "docs",
        "articles",
        "1",
        "copy"
       ]
      }
     }
    },
    {
     "name": "Add comment",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/docs/articles/1/comments",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "docs",
        "articles",
        "1",
        "comments"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"message\": \"Looks good!\"\n}"
      }
     }
    },
    {
     "name": "Edit comment",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/docs/comments/1",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "docs",
        "comments",
        "1"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"message\": \"updated comment\"\n}"
      }
     }
    },
    {
     "name": "Delete comment",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/docs/comments/1/delete",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "docs",
        "comments",
        "1",
        "delete"
       ]
      }
     }
    },
    {
     "name": "Upload attachments",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/docs/articles/1/attachments",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "docs",
        "articles",
        "1",
        "attachments"
       ]
      },
      "description": "Multipart form-data with files[]. Max 10 MB per file. Same allowed mimes as ticket attachments."
     }
    },
    {
     "name": "Get attachment",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/docs/attachments/1",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "docs",
        "attachments",
        "1"
       ]
      }
     }
    },
    {
     "name": "Delete attachment",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/docs/attachments/1/delete",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "docs",
        "attachments",
        "1",
        "delete"
       ]
      }
     }
    },
    {
     "name": "Sort folders/articles",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/docs/sort",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "docs",
        "sort"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"folders\": [3, 1, 2],\n  \"articles\": [12, 10, 11]\n}"
      }
     }
    }
   ]
  },
  {
   "name": "Comments",
   "item": [
    {
     "name": "Edit comment",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/reactions/1/update",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "reactions",
        "1",
        "update"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"message\": \"Updated comment\"\n}"
      }
     }
    },
    {
     "name": "Delete comment",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/reactions/1/delete",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "reactions",
        "1",
        "delete"
       ]
      }
     }
    },
    {
     "name": "Upload comment attachments",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/reactions/1/attachments",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "reactions",
        "1",
        "attachments"
       ]
      },
      "body": {
       "mode": "formdata",
       "formdata": [
        {
         "key": "files[]",
         "type": "file",
         "src": ""
        }
       ]
      }
     }
    }
   ]
  },
  {
   "name": "Tags",
   "item": [
    {
     "name": "List tags",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/tags",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "tags"
       ]
      }
     }
    },
    {
     "name": "Create tag",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/tags",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "tags"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"name\": \"Bug\",\n  \"color\": \"#ef4444\"\n}"
      }
     }
    },
    {
     "name": "Delete tag",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/projects/{{project_id}}/tags/1/delete",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "projects",
        "{{project_id}}",
        "tags",
        "1",
        "delete"
       ]
      }
     }
    }
   ]
  },
  {
   "name": "Time Tracking",
   "item": [
    {
     "name": "List time entries",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/tickets/{{ticket_id}}/time-entries",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "tickets",
        "{{ticket_id}}",
        "time-entries"
       ]
      }
     }
    },
    {
     "name": "Add manual entry",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/tickets/{{ticket_id}}/time-entries",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "tickets",
        "{{ticket_id}}",
        "time-entries"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"minutes\": 90\n}"
      }
     }
    },
    {
     "name": "Start timer",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/tickets/{{ticket_id}}/time-entries/start",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "tickets",
        "{{ticket_id}}",
        "time-entries",
        "start"
       ]
      }
     }
    },
    {
     "name": "Stop timer",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/time-entries/1/stop",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "time-entries",
        "1",
        "stop"
       ]
      }
     }
    },
    {
     "name": "Pause timer",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/time-entries/1/pause",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "time-entries",
        "1",
        "pause"
       ]
      }
     }
    },
    {
     "name": "Resume timer",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/time-entries/1/resume",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "time-entries",
        "1",
        "resume"
       ]
      }
     }
    },
    {
     "name": "Update time entry",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/time-entries/1/update",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "time-entries",
        "1",
        "update"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"minutes\": 120\n}"
      }
     }
    },
    {
     "name": "Delete time entry",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/time-entries/1/delete",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "time-entries",
        "1",
        "delete"
       ]
      }
     }
    },
    {
     "name": "Running timer",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/time-entries/running",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "time-entries",
        "running"
       ]
      }
     }
    },
    {
     "name": "Active timers",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/time-entries/active",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "time-entries",
        "active"
       ]
      }
     }
    }
   ]
  },
  {
   "name": "Notifications",
   "item": [
    {
     "name": "List notifications",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/notifications?filter=unread",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "notifications"
       ],
       "query": [
        {
         "key": "filter",
         "value": "unread",
         "description": "Optional. Set to 'unread' to return only unread notifications. Omit for all notifications.",
         "disabled": true
        }
       ]
      }
     }
    },
    {
     "name": "Unread count",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/notifications/unread-count",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "notifications",
        "unread-count"
       ]
      }
     }
    },
    {
     "name": "Mark read for ticket",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/notifications/mark-read-for-ticket",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "notifications",
        "mark-read-for-ticket"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"ticket_id\": 1\n}"
      }
     }
    },
    {
     "name": "Mark read for project",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/notifications/mark-read-for-project",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "notifications",
        "mark-read-for-project"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"project_id\": 1\n}"
      }
     }
    },
    {
     "name": "Email notification settings",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/profile/notifications",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "profile",
        "notifications"
       ]
      }
     }
    },
    {
     "name": "Toggle global email notifications",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/profile/notifications/toggle-global",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "profile",
        "notifications",
        "toggle-global"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"enabled\": false\n}"
      }
     }
    },
    {
     "name": "Toggle project email notifications",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/profile/notifications/toggle",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "profile",
        "notifications",
        "toggle"
       ]
      },
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"project_id\": 1,\n  \"enabled\": true\n}"
      }
     }
    }
   ]
  }
 ]
}