Developer API
PathPro provides a RESTful API that lets you programmatically manage tasks, read project data, and integrate PathPro with your existing development workflow. Whether you're syncing tasks with an internal tool or building custom dashboards, the API gives you full access to your project's data.
Generating API Tokens
Before you can make API requests, you need to generate an API token. Navigate to your project's Settings page and click the "API" tab. From there, click "Create New Token" to generate a personal access token.
Each token should be given a descriptive name that reflects its purpose — for example, "CI/CD Pipeline" or "Jira Sync." Naming tokens clearly makes it easy to identify which integrations are using which credentials, and allows you to revoke specific tokens without disrupting other integrations.
Tokens are shown only once at creation time. Copy your token immediately and store it securely — in an environment variable, a secrets manager, or your CI/CD platform's encrypted storage. If you lose a token, you'll need to revoke it and create a new one.
Only project admins can create and manage API tokens. Team members and community members do not have access to the API settings.
Authentication
All API requests must include your token in the Authorization header using the Bearer scheme. Requests without a valid token will receive a 401 Unauthorized response.
GET /api/v1/tasks HTTP/1.1
Host: your-project.app.pathpro.co
Authorization: Bearer YOUR_API_TOKEN
Accept: application/jsonAll API responses are returned in JSON format. Make sure to include the Accept: application/json header in your requests to ensure consistent response formatting. For requests that send data (POST, PUT), also include Content-Type: application/json.
Task Endpoints
The Tasks API allows you to create, read, update, and delete tasks within your project. All task endpoints are scoped to the project associated with your API token.
List Tasks
Retrieve a paginated list of all tasks in your project. Results are returned in reverse chronological order by default, with 25 tasks per page. You can filter by task group, status, or assignee using query parameters.
GET /api/v1/tasks HTTP/1.1
Host: your-project.app.pathpro.co
Authorization: Bearer YOUR_API_TOKEN
Accept: application/json{
"data": [
{
"id": 1,
"title": "Implement dark mode",
"description": "Add dark mode support across all pages",
"status": "in_progress",
"task_group_id": 3,
"assigned_to": 12,
"position": 1,
"created_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-02-10T14:22:00Z"
}
],
"meta": {
"current_page": 1,
"last_page": 4,
"per_page": 25,
"total": 87
}
}Get Single Task
Retrieve detailed information about a specific task, including its subtasks, comments count, and full description.
GET /api/v1/tasks/1 HTTP/1.1
Host: your-project.app.pathpro.co
Authorization: Bearer YOUR_API_TOKEN
Accept: application/json{
"data": {
"id": 1,
"title": "Implement dark mode",
"description": "Add dark mode support across all pages",
"status": "in_progress",
"task_group_id": 3,
"assigned_to": 12,
"position": 1,
"subtasks_count": 4,
"comments_count": 7,
"created_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-02-10T14:22:00Z"
}
}Create Task
Create a new task in your project. The title and task_group_id fields are required. All other fields are optional and will use sensible defaults if omitted.
POST /api/v1/tasks HTTP/1.1
Host: your-project.app.pathpro.co
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json
Accept: application/json
{
"title": "Add export to CSV",
"description": "Allow users to export task lists as CSV files",
"task_group_id": 3,
"status": "planned",
"assigned_to": 12
}{
"data": {
"id": 88,
"title": "Add export to CSV",
"description": "Allow users to export task lists as CSV files",
"status": "planned",
"task_group_id": 3,
"assigned_to": 12,
"position": 15,
"created_at": "2026-02-17T09:15:00Z",
"updated_at": "2026-02-17T09:15:00Z"
}
}Update Task
Update an existing task. You only need to include the fields you want to change — omitted fields will retain their current values. This is a partial update (PATCH-style behavior on a PUT endpoint).
PUT /api/v1/tasks/88 HTTP/1.1
Host: your-project.app.pathpro.co
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json
Accept: application/json
{
"status": "in_progress",
"assigned_to": 5
}{
"data": {
"id": 88,
"title": "Add export to CSV",
"description": "Allow users to export task lists as CSV files",
"status": "in_progress",
"task_group_id": 3,
"assigned_to": 5,
"position": 15,
"created_at": "2026-02-17T09:15:00Z",
"updated_at": "2026-02-17T11:42:00Z"
}
}Delete Task
Permanently delete a task and all of its associated subtasks and comments. This action cannot be undone, so use it with caution. The API returns a 204 No Content response on successful deletion.
DELETE /api/v1/tasks/88 HTTP/1.1
Host: your-project.app.pathpro.co
Authorization: Bearer YOUR_API_TOKEN
Accept: application/json(empty response body)Rate Limiting
To ensure fair usage and platform stability, the PathPro API enforces rate limits on all endpoints. The default limit is 60 requests per minute per API token. If you exceed this limit, the API returns a 429 Too Many Requests response.
Every API response includes rate limit headers so you can monitor your usage programmatically:
X-RateLimit-Limit— Your maximum requests per minute (e.g., 60).X-RateLimit-Remaining— How many requests you have left in the current window.X-RateLimit-Reset— Unix timestamp indicating when the rate limit window resets.
If you need higher rate limits for a specific integration, contact PathPro support. Higher-tier plans may include increased API rate limits as part of the subscription.
Revoking Tokens
You can revoke any API token at any time from the Settings > API page. Click the revoke button next to the token you want to disable. Revocation is immediate — any requests using that token will start receiving 401 Unauthorized responses right away.
It's good practice to rotate tokens periodically, especially if team members who had access to a token leave the organization. To rotate a token, create a new one, update your integration to use the new token, verify that everything works, and then revoke the old token.
If you suspect a token has been compromised, revoke it immediately and create a replacement. There is no limit to the number of tokens you can create per project, so you can maintain separate tokens for each integration and rotate them independently.