Projects API
General notes
Enumerators
BillingsFrequencyEnum:
This enumerator value is used in field billings_frequency.
| Name | Type | Value |
|---|---|---|
MONTHLY | int | 1 |
QUARTERLY | int | 2 |
YEARLY | int | 3 |
Embeddable fields
| Name | Type | Description |
|---|---|---|
tasks | Task[] | Array of tasks for project Task. |
users | User[] | Array of users assigned to project User. |
client | Client | Client of project Client. |
hourly_pays | HourlyPay | Hourly pays of project HourlyPay. |
fixed_pays | HourlyPay | Hourly pays of project HourlyPay. |
responsible_user | User | Project's responsible User. |
favorite | bool | is project favorited by authenticated User. |
costs | array | Costs of project |
billings | array | Estimated time of project |
estimate | array | Billings of project |
profit | array | Profit in percentage |
work_time | array | Worktimes of project |
billable_statuses | Status[] | Collection of statuses |
Content
Projects collection:
Single project:
Projects collection
Projects index
This method needs permission
readonprojects.
Request
| Index behaviour | Definition |
|---|---|
| Paginated by default | No |
| Sorting | id, name, goodday_id parent_id, client_id, status_id, status_comment, responsible_user_id, active, description, start_date, end_date, priority, estimate, progress, billable, billing_type billing_time_type, estmiated_price, goodday_created_at, is_client,automatically_create_report,billings_frequency, created_at, updated_at |
| Filters | id:enum, name:string, goodday_id:bool, parent_id:bool, client_id: int, status_id: int, status_comment: string, responsible_user_id:int, active: bool, description:string, start_date:date, end_date:date, priority:int, estimate:int, progress:int, billable:bool, billing_type:int, billing_time_type:int, estmiated_price:decimal, goodday_created_at:date, is_client: bool, created_at:date, updated_at:date, favorite: bool, automatically_create_report: bool,billings_frequency: int |
| Embedded | - |
GET /api/v0/projects HTTP/1.1
Content-Type: application/json
Response
200 OK
{
"items": [
{
"id": 1,
"name": "kaitrade.cz / grafické práce",
"goodday_id": "n0e2F5",
"parent_id": null,
"client_id": 2,
"status_id": 6,
"status_comment": null,
"responsible_user_id": null,
"active": true,
"description": "Pravideľné grafické práce pre Kaitrade a Holab.",
"start_date": null,
"end_date": null,
"priority": 5,
"progress": null,
"type": null,
"is_client": true,
"google_drive_url": null,
"billable": true,
"billing_type": "1",
"billing_time_type": null,
"billings_frequency": "1",
"billable_statuses": [],
"automatically_create_report": false,
"estimated_price": 0,
"goodday_created_at": "2019-10-08T16:52:40+0200",
"has_signed_sla": false,
"created_at": "2023-02-09T16:20:56+0100",
"updated_at": "2023-02-09T16:20:57+0100",
"_links": [
{
"href": "/api/v0/projects/1",
"rel": "self",
"type": "GET"
}
]
},
{
"id": 2,
"name": "athletebox.cz / právní dokumenty",
"goodday_id": "k8kTXj",
"parent_id": null,
"client_id": 3,
"status_id": 6,
"status_comment": null,
"responsible_user_id": null,
"active": true,
"description": null,
"start_date": null,
"end_date": null,
"priority": 5,
"progress": null,
"type": null,
"is_client": true,
"google_drive_url": null,
"billable": true,
"billing_type": "2",
"billing_time_type": "1",
"billings_frequency": "1",
"billable_statuses": [],
"automatically_create_report": false,
"estimated_price": 0,
"goodday_created_at": "2019-11-01T12:12:31+0100",
"has_signed_sla": false,
"created_at": "2023-02-09T16:20:57+0100",
"updated_at": "2024-02-20T09:04:36+0100",
"_links": [
{
"href": "/api/v0/projects/2",
"rel": "self",
"type": "GET"
}
]
}
]
}
Single project
Project detail
GET /api/v0/projects/{project_id}
This method needs permission
readonprojects.
Get Project detail.
Request
| Index behaviour | Definition |
|---|---|
| Embedded | - |
Request
GET /api/v0/projects/1 HTTP/1.1
Content-Type: application/json
Response
200 OK
{
"id": 1,
"name": "kaitrade.cz / grafické práce",
"goodday_id": "n0e2F5",
"parent_id": null,
"client_id": 2,
"status_id": 6,
"status_comment": null,
"responsible_user_id": null,
"active": true,
"description": "Pravideľné grafické práce pre Kaitrade a Holab.",
"start_date": null,
"end_date": null,
"priority": 5,
"progress": null,
"type": null,
"is_client": true,
"google_drive_url": null,
"billable": true,
"billing_type": "1",
"billing_time_type": null,
"billings_frequency": "1",
"billable_statuses": [],
"automatically_create_report": false,
"estimated_price": 0,
"goodday_created_at": "2019-10-08T16:52:40+0200",
"has_signed_sla": false,
"created_at": "2023-02-09T16:20:56+0100",
"updated_at": "2023-02-09T16:20:57+0100",
"_links": [
{
"href": "/api/v0/projects/1",
"rel": "self",
"type": "GET"
}
]
}
404 NOT FOUND
Project was not found.
GET /api/v0/projects/2 HTTP/1.1
Content-Type: application/json
Status-Code: 404
{
"type": "NotFound",
"message": "Required model was not found.",
"id": "0cd85449-05fe-4866-9802-8192e6785fc7"
}
Update project
PUT/PATCH /api/v0/projects/{project_id}
This method needs permission
updateonprojects.
Method for updating Project data.
Request
For PATCH method any field can be omitted.
PATCH /api/v0/projects/1 HTTP/1.1
Content-Type: application/json
{
"estimated_price": "1005",
}
Response
200 OK
Project successfully updated.
PATCH /api/v0/projects/1 HTTP/1.1
Content-Type: application/json
{
"id": 1,
"name": "Service Project",
"goodday_id": "1r9Gyh",
"parent_id": null,
"client_id": null,
"status_id": 1,
"status_comment": null,
"responsible_user_id": 2,
"active": true,
"description": null,
"start_date": null,
"end_date": null,
"priority": 5,
"progress": null,
"type": null,
"is_client": true,
"priority": 5,
"estimate": null,
"progress": null,
"billable": true,
"billing_type": null,
"billing_time_type": null,
"estimated_price": 1005,
"goodday_created_at": "2021-07-08T10:40:03+0200",
"created_at": "2022-11-23T16:06:56+0100",
"updated_at": "2022-11-25T11:21:16+0100",
"_links": [
{
"href": "/api/v0/projects/1",
"rel": "self",
"type": "GET"
}
]
}
404 NOT FOUND
Project was not found.
PATCH /api/v0/projects/10 HTTP/1.1
Content-Type: application/json
Status-Code: 404
{
"type": "NotFound",
"message": "Required model was not found.",
"id": "0cd85449-05fe-4866-9802-8192e6785fc7"
}
422 UNPROCESSABLE ENTITY
Validation error occurred.
POST /api/v0/projects HTTP/1.1
Content-Type: application/json
{
"type" : "ValidationError",
"message" : "The given data was invalid.",
"id" : "fe1b04de-b347-43b5-8118-864c1eefaccf",
"errors": [
{
"field": "name",
"message": "The name field is required."
}
]
}