Skip to content

activities

12 endpoints at a glance
MethodPathSummary
GET/activitiesList Activities
POST/activitiesCreate Activity
DELETE/activities/{activity_id}Delete Activity
GET/activities/{activity_id}Get Activity
PATCH/activities/{activity_id}Update Activity
POST/activities/{activity_id}/participantsAdd Participant
DELETE/activities/{activity_id}/participants/{link_id}Remove Participant
GET/activities/for-entityList For Entity
GET/activity-typesList Types
POST/activity-typesCreate Type
DELETE/activity-types/{key}Delete Type
PATCH/activity-types/{key}Update Type

activities


List Activities

GET
/activities

Team-scope activity feed.

Default: everything the viewer can see — their own activities plus
activities logged by anyone against a shareable entity (project /
company / deal) the viewer can read. Pass entity_type +
entity_id to narrow to one record ("involving X").

Returns the standard list envelope plus a by_type breakdown over
the full filtered set (for the summary header).

Parameters

Header Parameters

authorization

Query Parameters

type
date_from
date_to
entity_type
entity_id
page
Type
integer
Default
1
limit
Type
integer
Default
50

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Create Activity

POST
/activities

Parameters

Header Parameters

authorization

Request Body

application/json
JSON
{
  
"type": "string",
  
"subject": "string",
  
"body_md": "string",
  
"occurred_at": "string",
  
"duration_minutes": 0,
  
"outcome": "string",
  
"tag_ids": [
  
  
"string"
  
],
  
"links": [
  
  
{
  
  
  
"type": "string",
  
  
  
"id": "string",
  
  
  
"ref": {
  
  
  
  
"additionalProperties": "string"
  
  
  
}
  
  
}
  
]
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Body

Samples


List For Entity

GET
/activities/for-entity

Activities linked to one entity, newest-first.

Access is gated on the entity: any user who can read it sees all activities
logged for it, regardless of author (members of a shared project see each
other's call notes). For contact/person the timeline is sourced from
the shared person (ACL-filtered) so it survives the contact→person migration.

Parameters

Header Parameters

authorization

Query Parameters

entity_type*
Type
string
Required
entity_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Get Activity

GET
/activities/{activity_id}

Parameters

Header Parameters

authorization

Path Parameters

activity_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Delete Activity

DELETE
/activities/{activity_id}

Parameters

Header Parameters

authorization

Path Parameters

activity_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Update Activity

PATCH
/activities/{activity_id}

Parameters

Header Parameters

authorization

Path Parameters

activity_id*
Type
string
Required

Request Body

application/json
JSON
{
  
"type": "string",
  
"subject": "string",
  
"body_md": "string",
  
"occurred_at": "string",
  
"duration_minutes": 0,
  
"outcome": "string",
  
"tag_ids": [
  
  
"string"
  
]
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value
Body

Samples


Add Participant

POST
/activities/{activity_id}/participants

Link another entity to an existing activity (author only).

Requires read access to the entity being attached — same gate as
create-time linking, so you can't probe for hidden entities.

Parameters

Header Parameters

authorization

Path Parameters

activity_id*
Type
string
Required

Request Body

application/json
JSON
{
  
"type": "string",
  
"id": "string",
  
"ref": {
  
  
"additionalProperties": "string"
  
}
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value
Body

Samples


Remove Participant

DELETE
/activities/{activity_id}/participants/{link_id}

Unlink a participant edge from an activity (author only).

Header Parameters

authorization

Path Parameters

activity_id*
Type
string
Required
link_id*
Type
string
Required

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}
Headers
Variables
Key
Value

List Types

GET
/activity-types

Built-in defaults + the user's custom types.

Parameters

Header Parameters

authorization

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers

Samples


Create Type

POST
/activity-types

Parameters

Header Parameters

authorization

Request Body

application/json
JSON
{
  
"label": "string",
  
"icon": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Body

Samples


Delete Type

DELETE
/activity-types/{key}

Remove a custom type. Activities already using it keep their value.

Parameters

Header Parameters

authorization

Path Parameters

key*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Update Type

PATCH
/activity-types/{key}

Edit a custom type's label and/or icon. The key stays fixed.

Parameters

Header Parameters

authorization

Path Parameters

key*
Type
string
Required

Request Body

application/json
JSON
{
  
"label": "string",
  
"icon": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value
Body

Samples


Kancil — one workspace for contacts, work and money.