Popular

↑↓ move ↵ open All results →

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

MethodWhat it does
GET /api/v1/meThe token's owner, their role and the token's abilities
GET /api/v1/task-listsTask lists
GET /api/v1/task-fieldsTask custom fields and their options
GET /api/v1/tasksSearch 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/tasksA 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}/commentsA 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.