Base URL
Authentication
All endpoints under/api/v1/ require authentication via Bearer API key or x402 payment receipt. See Authentication.
OpenAPI spec
The full OpenAPI 3.1 specification is available at:Available endpoints
Auth & Tenant
| Method | Endpoint | Description |
|---|---|---|
POST | /api/v1/api-keys | Create an API key |
GET | /api/v1/api-keys | List API keys |
GET | /api/v1/api-keys/{id} | Get an API key |
POST | /api/v1/api-keys/{id}/rotate | Rotate an API key |
DELETE | /api/v1/api-keys/{id} | Revoke an API key |
GET | /api/v1/tenant | Get tenant info |
PATCH | /api/v1/tenant | Update tenant info |
GET | /api/v1/audit-log | List audit log |
POST | /api/v1/checkout | Create Stripe checkout session |
GET | /api/v1/provisioning/key | Retrieve API key after checkout |
Contacts
| Method | Endpoint | Description |
|---|---|---|
GET | /api/v1/contacts | List contacts |
POST | /api/v1/contacts | Create a contact |
GET | /api/v1/contacts/{id} | Get a contact |
PUT | /api/v1/contacts/{id} | Update a contact |
DELETE | /api/v1/contacts/{id} | Delete a contact |
GET | /api/v1/contacts/find-by-channel | Find contact by email or phone |
POST | /api/v1/contacts/{id}/channels | Add a communication channel |
DELETE | /api/v1/contacts/{id}/channels/{channel_id} | Remove a channel |
POST | /api/v1/contacts/{id}/addresses | Add an address |
PUT | /api/v1/contacts/{id}/addresses/{address_id} | Update an address |
DELETE | /api/v1/contacts/{id}/addresses/{address_id} | Remove an address |
POST | /api/v1/contacts/{id}/dates | Add a date |
PUT | /api/v1/contacts/{id}/dates/{date_id} | Update a date |
DELETE | /api/v1/contacts/{id}/dates/{date_id} | Remove a date |
GET | /api/v1/contacts/{id}/relationships | List relationships |
POST | /api/v1/contacts/{id}/relationships | Add a relationship |
DELETE | /api/v1/contacts/{id}/relationships/{rel_id} | Remove a relationship |
GET | /api/v1/contacts/{id}/affiliations | List affiliations |
POST | /api/v1/contacts/{id}/affiliations | Add an affiliation |
DELETE | /api/v1/contacts/{id}/affiliations/{aff_id} | Remove an affiliation |
GET | /api/v1/contacts/{id}/interactions | List interactions |
POST | /api/v1/contacts/{id}/interactions | Log an interaction |
POST | /api/v1/contacts/{id}/tags | Add a tag |
DELETE | /api/v1/contacts/{id}/tags/{tag_id} | Remove a tag |
GET | /api/v1/contact-tags | List tag definitions |
POST | /api/v1/contact-tags | Create a tag definition |
GET | /api/v1/contact-groups | List groups |
POST | /api/v1/contact-groups | Create a group |
DELETE | /api/v1/contact-groups/{group_id} | Delete a group |
GET | /api/v1/contact-groups/{group_id}/members | List group members |
POST | /api/v1/contact-groups/{group_id}/members | Add to group |
DELETE | /api/v1/contact-groups/{group_id}/members/{contact_id} | Remove from group |
GET | /api/v1/relationship-types | List relationship types |
CRM
| Method | Endpoint | Description |
|---|---|---|
GET | /api/v1/pipelines | List pipelines |
POST | /api/v1/pipelines | Create a pipeline |
GET | /api/v1/pipelines/{id} | Get a pipeline |
PUT | /api/v1/pipelines/{id} | Update a pipeline |
DELETE | /api/v1/pipelines/{id} | Delete a pipeline |
POST | /api/v1/pipelines/{id}/default | Set default pipeline |
GET | /api/v1/pipelines/{id}/stages | List stages |
POST | /api/v1/pipelines/{id}/stages | Create a stage |
PUT | /api/v1/pipelines/{id}/stages/reorder | Reorder stages |
PUT | /api/v1/pipelines/{id}/stages/{stage_id} | Update a stage |
DELETE | /api/v1/pipelines/{id}/stages/{stage_id} | Delete a stage |
GET | /api/v1/pipelines/{id}/summary | Pipeline analytics |
GET | /api/v1/deals | List deals |
POST | /api/v1/deals | Create a deal |
GET | /api/v1/deals/{id} | Get a deal |
PUT | /api/v1/deals/{id} | Update a deal |
DELETE | /api/v1/deals/{id} | Delete a deal |
POST | /api/v1/deals/{id}/move | Move deal to stage |
GET | /api/v1/deals/{id}/history | Deal stage history |
GET | /api/v1/deals/{id}/contacts | List deal contacts |
POST | /api/v1/deals/{id}/contacts | Add deal contact |
DELETE | /api/v1/deals/{id}/contacts/{contact_id} | Remove deal contact |
POST | /api/v1/deals/{id}/tags | Add deal tag |
DELETE | /api/v1/deals/{id}/tags/{tag_id} | Remove deal tag |
GET | /api/v1/crm/tags | List CRM tags |
POST | /api/v1/crm/tags | Create CRM tag |
Tasks & Projects
| Method | Endpoint | Description |
|---|---|---|
GET | /api/v1/projects | List projects |
POST | /api/v1/projects | Create a project |
GET | /api/v1/projects/{id} | Get a project |
PUT | /api/v1/projects/{id} | Update a project |
DELETE | /api/v1/projects/{id} | Delete a project |
GET | /api/v1/projects/{id}/statuses | List project statuses |
POST | /api/v1/projects/{id}/statuses | Add a status |
PUT | /api/v1/projects/{id}/statuses/{status_id} | Update a status |
DELETE | /api/v1/projects/{id}/statuses/{status_id} | Remove a status |
GET | /api/v1/projects/{id}/sections | List sections |
POST | /api/v1/projects/{id}/sections | Add a section |
PUT | /api/v1/projects/{id}/sections/{section_id} | Update a section |
DELETE | /api/v1/projects/{id}/sections/{section_id} | Remove a section |
GET | /api/v1/projects/{id}/milestones | List milestones |
POST | /api/v1/projects/{id}/milestones | Add a milestone |
PUT | /api/v1/projects/{id}/milestones/{milestone_id} | Update a milestone |
DELETE | /api/v1/projects/{id}/milestones/{milestone_id} | Remove a milestone |
GET | /api/v1/projects/{id}/members | List members |
POST | /api/v1/projects/{id}/members | Add a member |
DELETE | /api/v1/projects/{id}/members/{member_id} | Remove a member |
GET | /api/v1/tasks | List tasks |
POST | /api/v1/tasks | Create a task |
GET | /api/v1/tasks/{id} | Get a task |
PUT | /api/v1/tasks/{id} | Update a task |
DELETE | /api/v1/tasks/{id} | Delete a task |
POST | /api/v1/tasks/{id}/complete | Complete a task |
POST | /api/v1/tasks/{id}/cancel | Cancel a task |
GET | /api/v1/tasks/overdue | List overdue tasks |
GET | /api/v1/tasks/by-identifier/{identifier} | Get task by identifier |
GET | /api/v1/tasks/{id}/subtasks | List subtasks |
GET | /api/v1/tasks/{id}/dependencies | List dependencies |
POST | /api/v1/tasks/{id}/dependencies | Add a dependency |
DELETE | /api/v1/tasks/{id}/dependencies/{dep_id} | Remove a dependency |
GET | /api/v1/tasks/{id}/comments | List comments |
POST | /api/v1/tasks/{id}/comments | Add a comment |
PUT | /api/v1/tasks/{id}/comments/{comment_id} | Update a comment |
POST | /api/v1/tasks/{id}/labels | Add a label |
DELETE | /api/v1/tasks/{id}/labels/{label_id} | Remove a label |
GET | /api/v1/tasks/{id}/links | List links |
POST | /api/v1/tasks/{id}/links | Add a link |
DELETE | /api/v1/tasks/{id}/links/{link_id} | Remove a link |
GET | /api/v1/task-labels | List label definitions |
POST | /api/v1/task-labels | Create label definition |
Calendar
| Method | Endpoint | Description |
|---|---|---|
GET | /api/v1/calendars | List calendars |
POST | /api/v1/calendars | Create a calendar |
GET | /api/v1/calendars/{id} | Get a calendar |
PUT | /api/v1/calendars/{id} | Update a calendar |
DELETE | /api/v1/calendars/{id} | Delete a calendar |
GET | /api/v1/events | List events |
POST | /api/v1/events | Create an event |
GET | /api/v1/events/{id} | Get an event |
PUT | /api/v1/events/{id} | Update an event |
DELETE | /api/v1/events/{id} | Delete an event |
GET | /api/v1/events/search | Search events |
POST | /api/v1/events/{id}/attendees | Add attendee |
PUT | /api/v1/events/{id}/attendees/{attendee_id} | Update attendee RSVP |
DELETE | /api/v1/events/{id}/attendees/{attendee_id} | Remove attendee |
POST | /api/v1/events/{id}/links | Add event link |
DELETE | /api/v1/events/{id}/links/{link_id} | Remove event link |
Notes
| Method | Endpoint | Description |
|---|---|---|
GET | /api/v1/notebooks | List notebooks |
POST | /api/v1/notebooks | Create a notebook |
GET | /api/v1/notebooks/{id} | Get a notebook |
PUT | /api/v1/notebooks/{id} | Update a notebook |
DELETE | /api/v1/notebooks/{id} | Delete a notebook |
GET | /api/v1/notes | List notes |
POST | /api/v1/notes | Create a note |
GET | /api/v1/notes/{id} | Get a note |
PUT | /api/v1/notes/{id} | Update a note |
DELETE | /api/v1/notes/{id} | Delete a note |
GET | /api/v1/notes/{id}/links | List note links |
POST | /api/v1/notes/{id}/links | Add a note link |
DELETE | /api/v1/notes/{id}/links/{link_id} | Remove a note link |
GET | /api/v1/notes/{id}/backlinks | List backlinks |
GET | /api/v1/backlinks/{entity_type}/{entity_id} | Cross-domain backlinks |
POST | /api/v1/notes/{id}/tags | Add a tag |
DELETE | /api/v1/notes/{id}/tags/{tag_id} | Remove a tag |
GET | /api/v1/notes/{id}/attachments | List attachments |
POST | /api/v1/notes/{id}/attachments | Add an attachment |
DELETE | /api/v1/notes/{id}/attachments/{attachment_id} | Remove an attachment |
GET | /api/v1/note-tags | List tag definitions |
POST | /api/v1/note-tags | Create tag definition |
Payments & Usage
| Method | Endpoint | Description |
|---|---|---|
GET | /api/v1/usage | Get usage stats |
POST | /api/v1/billing/portal | Create Stripe portal session |
Health
| Method | Endpoint | Description |
|---|---|---|
GET | /health | Health check (no auth) |
GET | /ready | Readiness check (no auth) |
