Create Time Tracking Project

Creates a time tracking project. If a deleted project with the same name exists, that project is restored and updated with the supplied values instead of a new project being created; the response returns the restored project's existing ID. hasTasks in the response is set automatically based on whether tasks were supplied and cannot be set directly on create. Created tasks are not embedded; retrieve them with List Time Tracking Project Tasks (list-project-tasks).

OAuth Scopes: time_tracking:project.write

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Example Request

{
    "name": "Project A",
    "billable": true,
    "allowAllEmployees": true,
    "hasTasks": true,
    "tasks": [
        {
            "name": "Task 1",
            "billable": true
        },
        {
            "name": "Task 2",
            "billable": false
        }
    ]
}

Example Response

{
    "id": 11,
    "name": "Project A",
    "tasks": [
        {
            "id": 19,
            "name": "Task 1"
        },
        {
            "id": 20,
            "name": "Task 2"
        }
    ]
}
Body Params

Request body for creating a time tracking project.

string
required
length between 1 and 50
boolean
Defaults to false
boolean
Defaults to false
boolean
Defaults to false

If true, every time-tracked employee is assigned to the project. Ignored when employeeIds is provided.

employeeIds
array of integers
length ≥ 1

Internal employee IDs to assign. Use Employees > List Employees (list-employees) to find IDs. That operation returns IDs as strings; supply their numeric values here as JSON integers because string values are rejected. When provided, these IDs take precedence over allEmployeesAssigned.

employeeIds
tasks
array of objects
length ≥ 1

Tasks to create alongside the project. Minimum 1 entry required when provided.

tasks
string
required
length between 1 and 50
boolean
Defaults to false
Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

401

Unauthorized. The response body is not JSON.

Language
Credentials
OAuth2
Missing 1 required scope
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
application/problem+json