Developers · REST API
REST API and tokens
How to issue an access token, call the Bordee REST API, which task methods exist and where webhooks stand.
Access tokens
Account menu (your avatar at the bottom of the sidebar) → Access tokens → New token:
- Name: what it is for, such as "Task sync" or "Claude Code on my laptop";
- Access: Read only, or Read and write;
- Valid for: 30 days, 90 days, a year or no expiry.
The token is shown once, so copy it right away. Revoke switches it off instantly. An administrator sees and revokes everyone's tokens.
Requests
The address is https://acme.bord.ee/api/v1/…, where acme is your workspace address. The token goes in the Authorization: Bearer header; responses are JSON. The limit is 120 requests a minute per token. Every client's first call is who am I:
curl https://acme.bord.ee/api/v1/me \
-H "Authorization: Bearer $BORDEE_TOKEN" \
-H "Accept: application/json"Methods
| Method | What it does |
|---|---|
| GET /api/v1/me | The token's owner, their role and the token's abilities |
| GET /api/v1/task-lists | Task lists |
| GET /api/v1/task-fields | Task custom fields and their options |
| GET /api/v1/tasks | Search tasks: list, status, assignee, contact, due (overdue, today, week), parent, external_ref, q, updated_since; per_page up to 100 |
| GET /api/v1/tasks/{id} | A task with its subtasks |
| POST /api/v1/tasks | A new task |
| PATCH /api/v1/tasks/{id} | Change a task |
| PUT /api/v1/task-lists/{list}/tasks/{ref} | Create or update a task by external key |
| GET, POST /api/v1/tasks/{id}/comments | A task's comments |
Only a Read and write token can change data. A module's methods answer while the module is on. Contacts, deals, conversations, funnels and broadcasts are already available through the MCP server.
Examples
A new task about a contact:
curl -X POST https://acme.bord.ee/api/v1/tasks \
-H "Authorization: Bearer $BORDEE_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"title": "Call Iryna Koval back",
"due_at": "2026-11-03T10:00:00+02:00",
"priority": "high",
"contact_id": 42
}'The response:
{
"data": {
"id": 128,
"title": "Call Iryna Koval back",
"status": "open",
"priority": "high",
"due_at": "2026-11-03T08:00:00+00:00",
"list": null,
"contact": {"id": 42, "name": "Iryna Koval"},
"assignee": {"id": 3, "name": "Name"},
"external_ref": null,
"custom": {},
"url": "https://acme.bord.ee/manage/tasks/128"
}
}Syncing with another system: PUT by external key creates the task if it does not exist (201) or updates it (200). A subtask is attached with parent_ref, the parent's key in the same list.
curl -X PUT https://acme.bord.ee/api/v1/task-lists/3/tasks/site-redesign \
-H "Authorization: Bearer $BORDEE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title": "New site design", "status": "open"}'Changes made through the API appear in the task's timeline marked with the token that made them.
Webhooks
Outgoing webhooks on CRM events (a deal won, a contact changed) are not available yet; they are planned. Bordee already accepts incoming data: site and Tilda forms post to an entry's address, see Sites, UTM and Conversions API.