Skip to main content

Projects

The Projects API provides CRUD access to projects, plus ancillary actions for assigning team members and setting a manager.
New to the API? Start with Getting started (base URL, response envelope, errors, pagination) and Authentication (API keys). Those conventions apply to every endpoint below and are not repeated here.
Identifier note: projects are addressed by their numeric project_id. Wherever {id} appears below it is the project_id.

The project object

All endpoints that return a project use this shape:

List / search projects

Query parameters

Example request

Example response — 200 OK


Get a project

{id} is the project’s id.

Example request

Returns the project (200) with message “Project retrieved successfully.”

Create a project

Assignment is not set here — create the project, then use the assign and manager actions below.

Body parameters

Example request

Example response — 201 Created


Update a project

{id} is the project’s id. Same body parameters as Create, except project_clientid cannot be changed. Assignment is managed via the assign/manager actions, not here.

Example request

Example response — 200 OK


Delete a project

Deletes the project and all of its related records (tasks, milestones, files, invoices, estimates, comments, etc.).

Example request

Example response — 200 OK


Assign team members

Sets the project’s assigned team members. The assigned array is the full set — it replaces any existing assignment. Send an empty array to clear all assignees.

Body parameters

Example request

Example response — 200 OK


Set the manager

Sets the project’s manager (a single team user). Replaces any existing manager. Send an empty value to remove the manager.

Body parameters

Example request

Example response — 200 OK


Change status

Returns the project (200) with message “Project status updated successfully.”

Update progress

Sets the project to manual progress mode and applies the given percentage.

Set tags

Sets the project’s tags. The tags array is the full set — it replaces existing tags; an empty array clears them.

Archive / restore

No body. archive sets active_state to archived; restore sets it back to active.

Stop timers

Stops all running timers on the project. No body. Returns { "data": { "id": "..." }, "message": ... }.

Clone a project

Creates a new project from an existing one. Fields not supplied default to the source project.
Returns the new project (201) with message “Project cloned successfully.”

Errors

See Getting started for the shared error format. Project-specific: