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

# Breeze API

Breeze is a kanban-style project management tool whose API exposes 61 endpoints across workspaces, projects, cards, stages, swimlanes, todo lists, time entries, comments, and activity feeds. Teams use the API to mirror the UI's workflow: create projects, add people, push cards through stages, log comments and todos against a card, and track time. Activity, notifications, and reports endpoints support standups, weekly reviews, and external dashboards. Authentication is HTTP Basic, either with a Breeze username and password or with an API token used as the basic-auth username.

## For AI agents

Create projects, move cards through kanban stages, post comments, and log time in Breeze project management through 61 REST endpoints behind HTTP Basic auth.

## Scope

Does not handle source control, CI/CD, or document storage - use for managing kanban projects, cards, comments, and time entries in Breeze only.

## Capabilities

- Create and update projects via POST /projects.json and PUT /projects/{id}.json, with archive/reactivate via /projects/{id}/archive.json and /reactivate.json
- Add or remove people on a project via POST /projects/{id}/people.json and DELETE /projects/{id}/people/{user_id}.json
- Create cards in a project and move them between stages via POST /projects/{project_id}/cards.json and POST /projects/{project_id}/cards/{id}/move.json
- Comment on cards via POST /projects/{project_id}/cards/{card_id}/comments.json and edit or delete previous comments
- Manage todo lists and todo items inside a card for granular task tracking
- Log time entries against a card via POST /projects/{project_id}/cards/{card_id}/time_entry.json and read running timers via GET /running_timers.json
- Pull activity feeds and notifications via GET /activities.json and GET /notifications.json

## Use cases

### Sync external tickets into Breeze cards

Mirror tickets from a support tool or issue tracker as Breeze cards so the engineering team works from a single board. The integration calls POST /projects/{project_id}/cards.json on inbound tickets and POST /projects/{project_id}/cards/{id}/move.json when status changes upstream. Comments stay in sync via POST /projects/{project_id}/cards/{card_id}/comments.json so context is preserved.

Example prompt: On every new support ticket, POST /projects/{project_id}/cards.json with title and description, then on status change POST /projects/{project_id}/cards/{id}/move.json with the matching stage_id.

### Time tracking for client billing

Capture time spent on each card and roll it up into invoices. Team members start a timer, the integration lists running timers via GET /running_timers.json, and at end of week pulls per-card and per-user time via GET /projects/{project_id}/cards/{card_id}/time_entry.json. The data feeds an invoicing system without manual time-entry exports.

Example prompt: GET /running_timers.json for an as-of snapshot, then for each project iterate cards and GET /projects/{project_id}/cards/{card_id}/time_entry.json to assemble the weekly billable-hours report.

### Project status reports for stakeholders

Produce weekly status updates by reading project activity, card movements, and notifications through the API. GET /projects/{project_id}/activities.json gives a chronological feed; combined with GET /projects/{project_id}/cards.json and stage filtering it becomes the basis for an automated 'what shipped this week' email or Slack post.

Example prompt: GET /projects/{project_id}/activities.json filtered to the last 7 days, group by stage, and send a summary listing cards that moved into the Done stage.

### AI agent integration via Jentic

An agent that triages incoming work into a Breeze board can discover the API through Jentic, load the create-card and move-card operations, and execute them without holding the user's Breeze API token in prompt context. Jentic injects HTTP Basic credentials at execution time and returns typed card responses.

Example prompt: Through Jentic, search 'create a kanban card', load the operation that targets POST /projects/{project_id}/cards.json, and execute with project_id, title, and assignee from the inbound request.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /projects/{project_id}/cards.json | Create a new card in a project |
| POST | /projects/{project_id}/cards/{id}/move.json | Move a card to a different stage |
| GET | /projects/{project_id}/cards.json | List cards in a project |
| POST | /projects/{project_id}/cards/{card_id}/comments.json | Comment on a card |
| POST | /projects/{project_id}/cards/{card_id}/time_entry.json | Log a time entry against a card |
| GET | /running_timers.json | List timers currently running across the workspace |
| GET | /projects/{project_id}/activities.json | Project activity feed |
| POST | /projects.json | Create a new project |

## Key resources

- **Workspaces** — Top-level containers for projects via /workspaces.json endpoints
- **Projects** — Project CRUD plus archive/reactivate and people management via /projects/{id} endpoints
- **Cards** — Kanban cards with create, move, assign, and delete via /projects/{project_id}/cards endpoints
- **Stages and swimlanes** — Board structure via /projects/{project_id}/stages and /swimlanes endpoints
- **Comments and todos** — Per-card comments and todo lists/items for granular tracking
- **Time entries** — Per-card time entries and a running-timers feed via /running_timers.json
- **Activity and notifications** — Activity feeds and notifications via /activities.json and /notifications.json
- **Reports** — Generated reports via POST /reports.json

## Why Jentic

- **Setup:** Wiring Breeze by hand means setting HTTP Basic auth with your API token or username and password and coordinating the project, card, comment, and time-entry calls yourself. Through Jentic you install once, import the Breeze API from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** Breeze puts the resource id in the URL path (/projects/{project_id}/cards/{id}/move.json, /projects/{project_id}/cards/{card_id}/comments.json), so a rule can pin your agent to one project or card. You choose the operations it may call, so writes like creating projects or moving cards are only included if you add them, and a reporting agent can be held to the activity and timer reads.
- **Credential handling:** Your Breeze HTTP Basic credentials are stored once, encrypted, by your own Jentic One instance and injected as the Authorization header at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a kanban card' or 'move a card to done', and Jentic returns the matching Breeze operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Breezy HR API** — Create Breeze cards for new-hire onboarding tasks fired from Breezy HR pipeline events
- **Braze Endpoints** — Trigger Braze customer messages when a Breeze card moves into the 'Delivered' stage
- **Brandfolder API** — Attach approved Brandfolder assets to Breeze cards for creative review workflows

## FAQ

### What authentication does the Breeze API use?

The API uses HTTP Basic auth - either a Breeze username and password or an API token passed as the basic-auth username with a blank password. Through Jentic, the credentials are stored in the encrypted vault and attached to the Authorization header at execution time.

### Can I move a card between kanban stages with the Breeze API?

Yes. POST /projects/{project_id}/cards/{id}/move.json accepts a target stage_id (and optionally swimlane_id and position) and returns the updated card. Use this to mirror status changes from external systems into the Breeze board.

### How do I log time against a Breeze card?

POST /projects/{project_id}/cards/{card_id}/time_entry.json with duration and optional notes creates a time entry on the card. GET /running_timers.json shows timers currently in progress across the workspace, useful for end-of-day reconciliation.

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

Breeze does not publish numeric rate limits in the OpenAPI spec - quotas are tied to plan tier. For activity feed polling and bulk card operations, throttle client-side and back off on 429 responses against /projects/{project_id}/activities.json or /v2/cards.json.

### How do I create a Breeze card with the Breeze API through Jentic?

Install with pip install jentic, then await client.search('create a kanban card'), await client.load on the POST /projects/{project_id}/cards.json operation, and await client.execute with project_id, title, and assignee. Jentic attaches the basic-auth credentials automatically.

### Does the Breeze API support comments and todo lists on cards?

Yes. POST /projects/{project_id}/cards/{card_id}/comments.json adds a comment, and the /todo_lists and /todos endpoints under a card create checklists with individual checkable items. Both are versioned per card so progress can be tracked independently of stage moves.

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

Yes. Because you run Jentic One yourself, your own rules decide which Breeze operations and credentials the agent may use, and it can only call what you include. Breeze puts the resource id in the URL path, so you can pin an agent to a single project or card on calls like POST /projects/{project_id}/cards/{id}/move.json and POST /projects/{project_id}/cards/{card_id}/comments.json. Writes such as creating projects or moving cards are only available if you add them, so a reporting agent can be held to reads like GET /projects/{project_id}/activities.json and GET /running_timers.json.
