Manage projects within your companies. Projects are containers for tasks, phases, and deliverables, organized by client and company.
{
"id": 123,
"title": "Website Redesign",
"description": "Complete redesign of the company website",
"is_client": true,
"is_internal": false,
"client_project_type": "Process",
"internal_project_type": "Board",
"created_at": "2023-01-01T12:00:00.000000Z",
"updated_at": "2023-01-01T12:00:00.000000Z",
"client_id": 456,
"client": {
"id": 456,
"title": "Acme Corporation"
},
"company": {
"id": 789,
"title": "Design Studio Inc"
},
"members": [
{ "id": 18, "name": "Ben Johnston" }
]
}
| Attribute | Type | Description |
|---|---|---|
| id | integer | Unique identifier for the project |
| title | string | The project's name |
| description | string | Description of the project (empty string when not set) |
| is_client | boolean | Whether the project has a client-facing space |
| is_internal | boolean | Whether the project has an internal space |
| client_project_type | string | Layout of the client space: "Process" or "Board" |
| internal_project_type | string | Layout of the internal space: "Process" or "Board" |
| client_id | integer | ID of the client this project belongs to |
| client | object | The client this project belongs to (id, title) |
| company | object | The agency company that owns the project (id, title) |
| members | object[] | Users with access to the project (id, name) |
Retrieves a list of projects the authenticated user has access to.
/api/v1/projects
| Parameter | Type | Description |
|---|---|---|
| company_id | integer | Filter projects by specific company ID |
| client_id | integer | Filter projects by specific client ID |
| title | string | Filter projects by title (partial match) |
| per_page | integer | Number of results per page (max 1000) |
GET /api/v1/projects?company_id=789&per_page=25
Authorization: Bearer YOUR_ACCESS_TOKEN
Accept: application/json
[
{
"id": 123,
"title": "Website Redesign",
"description": "Complete redesign of the company website",
"is_client": true,
"is_internal": false,
"client_project_type": "Process",
"internal_project_type": "Board",
"created_at": "2023-01-01T12:00:00.000000Z",
"updated_at": "2023-01-01T12:00:00.000000Z",
"client_id": 456,
"client": { "id": 456, "title": "Acme Corporation" },
"company": { "id": 789, "title": "Design Studio Inc" },
"members": [ { "id": 18, "name": "Ben Johnston" } ]
}
]
Retrieves a specific project by ID.
/api/v1/projects/{id}
GET /api/v1/projects/123
Authorization: Bearer YOUR_ACCESS_TOKEN
Accept: application/json
{
"id": 123,
"title": "Website Redesign",
"description": "Complete redesign of the company website",
"is_client": true,
"is_internal": false,
"client_project_type": "Process",
"internal_project_type": "Board",
"created_at": "2023-01-01T12:00:00.000000Z",
"updated_at": "2023-01-01T12:00:00.000000Z",
"client_id": 456,
"client": { "id": 456, "title": "Acme Corporation" },
"company": { "id": 789, "title": "Design Studio Inc" },
"members": [ { "id": 18, "name": "Ben Johnston" } ]
}
Creates a new project. Can be created from scratch or from a template.
/api/v1/projects
| Parameter | Type | Required | Description |
|---|---|---|---|
| title | string | Yes | The project's name |
| client_id | integer | Yes | ID of the client this project belongs to |
| description | string | No | Detailed description of the project |
| template_id | integer | No | ID of a template project to create this project from |
| is_client | boolean | No | Whether to create a client-facing space |
| is_internal | boolean | No | Whether to create an internal space |
| client_project_type | string | No | Client space layout: process or todos |
| internal_project_type | string | No | Internal space layout: process or todos |
POST /api/v1/projects
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json
Accept: application/json
{
"title": "Acme Website Redesign",
"client_id": 456,
"template_id": 789
}
{
"id": 124,
"title": "Acme Website Redesign",
"description": "",
"is_client": true,
"is_internal": false,
"client_project_type": "Process",
"internal_project_type": "Board",
"created_at": "2023-02-01T10:00:00.000000Z",
"updated_at": "2023-02-01T10:00:00.000000Z",
"client_id": 456,
"client": { "id": 456, "title": "Acme Corporation" },
"company": { "id": 789, "title": "Design Studio Inc" },
"members": [ { "id": 18, "name": "Ben Johnston" } ]
}
Updates an existing project's information.
/api/v1/projects/{id}
PUT /api/v1/projects/123
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json
Accept: application/json
{
"title": "Updated Website Redesign",
"description": "Now includes a blog and careers section"
}
Accepted fields: title, description, and status
(active, completed, on_hold, cancelled). Company
members may additionally update client_id, is_client,
is_internal, client_project_type, and internal_project_type.
{
"id": 123,
"title": "Updated Website Redesign",
"description": "Now includes a blog and careers section",
"is_client": true,
"is_internal": false,
"client_project_type": "Process",
"internal_project_type": "Board",
"created_at": "2023-01-01T12:00:00.000000Z",
"updated_at": "2023-02-01T14:30:00.000000Z",
"client_id": 456,
"client": { "id": 456, "title": "Acme Corporation" },
"company": { "id": 789, "title": "Design Studio Inc" },
"members": [ { "id": 18, "name": "Ben Johnston" } ]
}
Permanently deletes a project. Only company members can delete projects.
/api/v1/projects/{id}
Warning: Deleting a project will permanently remove it along with all associated tasks and phases. This action cannot be undone and requires company member permissions.
DELETE /api/v1/projects/123
Authorization: Bearer YOUR_ACCESS_TOKEN
Accept: application/json
204 No Content