canonical: https://jentic.com/apis/hellobonsai.com/hellobonsai

# Hellobonsai Bonsai API

The Bonsai API reads and writes the records behind a freelance or agency business: clients as companies and contacts, deals, projects, tasks, time entries, documents, and invoices. It is organized around REST, takes and returns JSON, and uses standard HTTP verbs and status codes, so an application works with the same records the Bonsai app shows. Clients, project work, and billing all live on one surface, letting you keep a deal, the project it becomes, the hours logged against it, and the invoice that bills it connected.

## For AI agents

Create and update Bonsai clients, deals, projects, tasks, time entries, and invoices over a REST JSON API. Keeps a client, the work done, and the invoice that bills it on one surface.

## Scope

Does not process card payments, run payroll, or send marketing campaigns. Use for managing Bonsai clients, deals, projects, time, and invoices only.

## Capabilities

- Track clients as companies and contacts, tag them, and keep their details current
- Move deals through your pipeline and comment on them
- Create projects with budgets, break work into tasks and subtasks, and comment on tasks
- Log and update time entries against projects
- Create invoices from line items, update them, and stop a recurring invoice
- Generate documents from templates and attach notes to records

## Use cases

### Agent-Managed Client Operations

An AI agent running back-office work for a freelancer or agency uses the Bonsai API through Jentic to keep client records and billing in sync: it creates companies and contacts, moves deals through the pipeline, logs time entries against projects, and raises invoices from line items. Because the API takes and returns JSON over standard REST verbs, the agent reads and writes the same records the Bonsai app shows, acting on the member's behalf. A bearer token scoped to that member bounds everything the agent can touch.

Example prompt: Create a company and contact, open a deal, log a time entry on a project, and generate a draft invoice with line items

### Project and Time Tracking

A services team tracks delivery by creating projects with budgets, breaking them into tasks and subtasks, and logging time entries as work happens. The Bonsai API exposes projects, tasks, task statuses, and time entries, so an application can report hours against budget without manual spreadsheets. Comments on tasks keep the conversation attached to the work.

Example prompt: Create a project with a budget, add tasks, and log a time entry, then list time entries for the project

### Invoicing From Templates

A freelancer bills clients by creating invoices from line items and generating contracts or proposals from templates. The Bonsai API lets an application add and update invoice line items, cancel or delete an invoice, and stop a recurring invoice, as well as create a document from a template category. This turns billing and paperwork into API calls tied to the client record.

Example prompt: Create an invoice for a client, add two line items, then stop its recurrence

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/public-api/v1/contacts` | List contacts |
| POST | `/public-api/v1/contacts` | Create a contact |
| GET | `/public-api/v1/deals` | List deals |
| POST | `/public-api/v1/projects` | Create a project |
| POST | `/public-api/v1/invoices` | Create an invoice |
| POST | `/public-api/v1/time_entries` | Log a time entry |
| GET | `/public-api/v1/companies` | List companies |
| POST | `/public-api/v1/tasks` | Create a task |

## Key resources

- **Clients** — Companies, contacts, and company tags for the people and businesses you work with
- **Deals** — Sales deals with comments, moved through your pipeline
- **Projects and tasks** — Projects with budgets, tasks, subtasks, task statuses, and time entries
- **Invoices** — Invoices, invoice line items, and recurrence controls
- **Documents and notes** — Documents from templates, template categories, and notes linked to records

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 72 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 93 / 100
  - Developer Experience & Jentic Compatibility: 68 / 100
  - AI-Readiness & Agent Experience: 52 / 100
  - Agent Usability: 93 / 100
  - Security: 75 / 100
  - AI Discoverability: 88 / 100
- **View full report:** https://jentic.com/apis/hellobonsai.com/hellobonsai/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring the Bonsai API by hand means handling its bearer token or the OAuth 2.1 authorization-code flow with PKCE, and threading the token through every one of its REST endpoints for clients, projects, and invoices. Through Jentic you install once, import it from the API Directory, store the credential once, and your agent calls it.
- **Permission scoping:** A Bonsai token carries no scopes of its own: it can do whatever the member who granted it can, so the control comes from Jentic. A rule can limit your agent to just the operations it needs, such as reading contacts and deals, and leave write operations like deleting an invoice out unless you add them.
- **Credential handling:** Your Bonsai token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create an invoice' or 'log a time entry', and Jentic returns the matching Bonsai operation with its input schema so the agent fills the right fields without reading the REST reference.

## Related APIs

- **Pipedrive** — A sales-focused CRM with deeper pipeline and activity tracking, versus Bonsai's all-in-one client, project, and invoicing suite.
- **Invoice Ninja** — A dedicated invoicing and billing platform for freelancers, versus Bonsai's combined CRM and project surface.
- **Toggl** — A focused time-tracking service whose hours can feed Bonsai projects and invoices.

## FAQ

### What authentication does the Bonsai API use?

The Bonsai API authenticates with a bearer token sent in the Authorization header, a `bonsai_at_` access token, per its OpenAPI spec. You can get one as a personal API key or through the OAuth 2.1 authorization-code flow with PKCE, and both grant the same access the granting member has. Through Jentic the token is stored encrypted by your own Jentic One instance and injected at call time.

### Can I create invoices and log time with the Bonsai API?

Yes. You create an invoice, add and update its line items, and stop a recurring invoice, and you log time entries against projects and update them later. The same REST surface also covers clients, deals, projects, tasks, and documents, so billing stays linked to the work it came from.

### What are the rate limits for the Bonsai API?

The OpenAPI spec does not specify rate limits. For current limits, see the Bonsai API documentation at https://docs.hellobonsai.com/api.

### How do I create an invoice through Jentic?

Search Jentic with a query like 'create an invoice for a client', add the Bonsai API from the directory, and store your bearer token once. Your agent calls the create-invoice operation, adds line items, and reads the invoice back, all as JSON. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Can I limit what my agent is allowed to do with the Bonsai API?

Yes. A Bonsai token has no scopes of its own, so the limits come from Jentic: write a rule that allows only the operations the agent needs, such as listing contacts and deals or logging time, while leaving destructive ones like deleting an invoice or a task out, and every call it makes is logged. Because record ids travel in the URL path, scoping bounds which operations run across your records.

### Is there a Bonsai API MCP server?

You don't need an MCP server to give your agent the Bonsai API. Jentic connects it directly from the API Directory: import it, store your bearer token once, and your agent calls the operations it needs on demand without loading another server's tool definitions into its context.
