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_typebilling_feebilling_cycle
fixed_feerequiredmust be omitted
retainerrequiredrequired
timemust be omittedmust be omitted
not_billablemust be omittedmust 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 URL
    https://app.hellobonsai.com
  • URL
    https://app.hellobonsai.com/public-api/v1/projects
  • Auth
    • OAuth 2
      Authorization code: https://app.hellobonsai.com/oauth/authorize
      Token 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.