Skip to main content
A project belongs to a client, holds the tasks people log time against, and carries the billing method used when the work is invoiced. For fields and response details, see the API reference.
A project is addressed by its identifier, the short hex string returned by projects list. --client-id is different: it takes the client’s record id, a UUID. See Getting the project ID.
Sample responses on this page show the JSON envelope (--json). Pretty output is the default on a terminal and its columns adapt to width. See Output formats.

projects list

Find a project’s identifier, or list the projects a user is on.
--client-id accepts either the client’s identifier or its record id.

projects show

Show a project with its client, tasks, checklists, and recurring invoice settings. Use it to find the task_id that time-entries create needs.

Required arguments

  • <project-id> - the project’s identifier.

projects create

Create a project under a client. At least one --task is required, because a project must always have a task to log time against.
Billing methods are hourly_project_rate, hourly_person_rate, hourly_task_rate, and fixed_price_project. Use --flat-amount instead of --hourly-rate for a fixed price project.

projects update

Update a project. Only the flags you pass are changed. --user-email identifies the acting organization user and is always required.

Required arguments

  • <project-id> - the project’s identifier.