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 ContentList 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.