Appearance
Project
Allowed query parameters
Filters
Filter | Type | Description |
---|---|---|
search | String | Full-text search |
own | Boolean | Show only own projects (as project leader) |
involved | Boolean | Show only projects where user is involved |
assigned | Boolean | Show only projects assigned to the current user |
contact | Id | Filter by Contact Id |
is_archived | Boolean | Show archived projects (completed) |
is_internal | Boolean | Show only projects without billing |
with_billable_costs | Boolean | Show only projects with billable costs |
company | Id | Filter by Company Id |
billing_type | String | Filter by billing type (flat , hourly ) |
status | String | Filter by status (active , completed ) |
custom_field | Key,String | Filter by Custom Field (eg. my_internal_id,42 ) |
Sorting
name
, created_at
, starts_at
, company
, budget_used
, billable_costs
, last_time_tracked
Includes
company.media
, owner.user
, times.rate
, unbilledTimes.rate
, offers
, approvedOffers
, expenses
, invoices
, rates
, timesCount
, offersCount
, invoicesCount
, expensesCount
, overdueInvoicesCount
, assignedMembers.user.media
Create a project
post
/project
Attribute (* required) | Type | Description |
---|---|---|
name * | String | Project title |
description | String | Project description |
company_id * | String | A Company Id |
member_id * | String | A Member Id |
starts_at * | Date | Start date |
billing_type | String | Billing type (flat , hourly ) |
costs_limit | Number | Cost limit for the project (minimum: 0) |
assigned_member_ids | Array | Array of Member IDs assigned to the project |
custom_fields | Object? | Custom data as Custom Fields |
Example response
json
// HTTP 201 Created
{
// a project object
}
Update a project
put
/project/{id}
Attribute (* required) | Type | Description |
---|---|---|
name | String | Project title |
description | String | Project description |
company_id | String | A Company Id |
member_id | String | A Member Id |
starts_at | Date | Start date |
billing_type | String | Billing type (flat , hourly ) |
costs_limit | Number | Cost limit for the project (minimum: 0) |
assigned_member_ids | Array | Array of Member IDs assigned to the project |
status | String | Status of project (active , completed ) |
custom_fields | Object? | Custom data as Custom Fields |
Example response
json
// HTTP 200 OK
{
// a project object
}
Retrieve a project
get
/project/{id}
Example response
json
// HTTP 200 OK
{
"id": "EO6YGvqMRV",
"name": "CMS Upgrade",
"description": null,
"starts_at": "2022-02-09T08:52:00.000000Z",
"due_at": null,
"billing_type": "flat",
"company_id": "PQYLdqm4wR",
"company": {
// a company object
},
"owner": {
// a member object
},
"involved_members": [
// an array of member objects with user data
],
"assigned_members": [
// an array of assigned member objects
],
"assigned_member_ids": [1, 2, 3],
"times": [
// an array of time objects
],
"invoices": [
// an array of invoice objects
],
"expenses": [
// an array of expense objects
],
"times_count": 45,
"invoices_count": 3,
"expenses_count": 12,
"status": "active",
"is_archived": false,
"is_ongoing": true,
"is_internal": false,
"costs_limit": 5000.0,
"custom_fields": {},
"created_at": "2021-12-09T09:05:28.000000Z",
"updated_at": "2022-02-09T08:52:00.000000Z"
}
Delete a project
delete
/project/{id}
Example response
json
// HTTP 204 No Content
List projects
get
/project
The list endpoint accepts the same parameters as in Retrieve a project and returns a paginated array of the same project object in the data
property.
Read more about Pagination, Filtering, Sorting and Includes on the Introduction page.