Projects
Create a project
Creates a project for a client you already have. title, company_id and billing_type are required; find the company id with GET /public-api/v1/companies.
billing_fee and billing_cycle have to agree with billing_type, and a mismatch is rejected rather than ignored:
| billing_type | billing_fee | billing_cycle |
|---|---|---|
| fixed_fee | required | must be omitted |
| retainer | required | required |
| time | must be omitted | must be omitted |
| not_billable | must be omitted | must be omitted |
finish_date is optional and has to be on or after start_date.
Bonsai fills in the rest: the project number, its client-facing URL token, its color, and its starting members. currency follows the client's currency and start_date defaults to today.
post/public-api/v1/projects
Request
- Base URLhttps://app.hellobonsai.com
- URLhttps://app.hellobonsai.com/public-api/v1/projects
- Auth
- OAuth 2Authorization code: https://app.hellobonsai.com/oauth/authorizeToken URL: https://app.hellobonsai.com/oauth/token
- or HTTP bearer
Request body
Example request
{
"project": {
"title": "Acme Website",
"company_id": 42,
"currency": "USD",
"start_date": "2026-05-01",
"finish_date": "2026-09-30",
"billing_type": "fixed_fee",
"billing_fee": "5000",
"billing_cycle": "monthly"
}
}Response
The project was created.
Example response
{
"data": {
"id": 51,
"title": "Acme Website",
"public_url_token": "acme-website-x4n2",
"currency": "USD",
"start_date": "2026-05-01",
"finish_date": "2026-09-30",
"sequence": 1,
"number": "ACME-0001",
"board_group_id": "0c8f1e2a-3b4c-4d5e-6f70-8192a3b4c5d6",
"company_name": "Acme Corp",
"client_or_company_name": "Acme Corp",
"billing_type": "fixed_fee",
"billing_cycle": "monthly",
"billing_fee": "5000.0",
"company_id": 42,
"url": "https://app.hellobonsai.com/projects/acme-website-x4n2",
"budget": {
"id": 41,
"amount": "5000.0",
"over_budget_notification_threshold": "80.0",
"calculation_mode": "fee",
"calculation_base": "billable_time_and_expenses",
"expenses_calculation_base": "all",
"reset_frequency": "monthly",
"over_budget_notification": "enabled",
"current_cycle": {
"opening_date": "2026-03-01",
"closing_date": "2026-03-31",
"consumed_amount": "1250.0",
"consumed_percentage": 25
}
}
},
"meta": {
"request_id": "b1f0d2c4-7a9e-4c3b-8d5f-1e2a3b4c5d6e"
}
}Changes
No recorded changes to this operation across all 1 revision of this API.