List projects
Lists your projects, a page at a time. Only active projects come back unless you ask for others with filter[status].
Filtering
- filter[title] — searches project titles, matching from the start of any word and ignoring case.
- filter[public_url_token] — one or more URL tokens, for looking up projects you already hold a client link for.
- filter[board_group_id] — one or more pipeline stage ids. Returns the projects whose board card sits in those stages.
- filter[status] — which projects to include:
- active (the default) — neither archived nor completed.
- completed — finished but not archived.
- archived — archived, whether or not they were completed.
- not_archived — everything except archived projects.
- all — every project, whatever its state.
- filter[has_budget] — true for projects that track a budget, false for those that don't. Needs permission to see budgets.
- filter[budget_amount_min] and filter[budget_amount_max] — a range over the project's budget amount. Both bounds are inclusive, and either works alone. Projects that track no budget are left out. Needs permission to see budgets. Combining either bound with filter[has_budget]=false returns 400, since nothing can match both.
The budget key is left out entirely for a token that is not allowed to see budgets. The same token cannot filter on the budget either: that would hand back what the key is hiding, so filter[has_budget], filter[budget_amount_min] and filter[budget_amount_max] return 403 instead.
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
Query parameters
Page to return, starting at 1.
Records per page. Defaults to 25; anything above 100 is reduced to 100.
Searches project titles, matching from the start of any word and ignoring case.
One or more URL tokens, comma-separated or repeated.
One or more pipeline stage ids, comma-separated or repeated. Returns the projects whose board card sits in those stages.
Which projects to include. Defaults to active.
Return only projects that do (true) or do not (false) track a budget. Needs permission to see budgets; without it this filter returns 403.
Return projects whose budget is this amount or more. Needs permission to see budgets; without it this filter returns 403.
Return projects whose budget is this amount or less. Needs permission to see budgets; without it this filter returns 403.
Response
A page of projects.
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",
"pagination": {
"page": 1,
"page_size": 25,
"has_more": true
}
}
}Changes
No recorded changes to this operation across all 1 revision of this API.