KasarKasar Docs
API Reference

Activity

Retrieve the activity feed for any CRM record, including interactions, tasks, and notes in a single request.

The activity endpoint returns a unified feed of everything that happened on a record. It aggregates interactions (emails, calls, meetings), tasks, and notes into a single response.

Get Activity Feed

GET /api/v1/activity/{object}/{id}

Returns the activity feed for a specific record.

Path Parameters

ParameterTypeDescription
objectstringThe object name (e.g. contacts, companies)
idUUIDThe record ID

Query Parameters

ParameterTypeDefaultDescription
includestringinteractions,tasks,notesComma-separated list of sections to include. Accepted values: interactions, tasks, notes.
channelstringFilter interactions by channel (e.g. email, call, linkedin, whatsapp)
cursorstringPagination cursor from a previous response
limitinteger20Number of items per section (max 100)

Example Request

curl -X GET "https://kasar.app/api/v1/activity/contacts/550e8400-e29b-41d4-a716-446655440000?include=interactions,tasks&channel=email&limit=10" \
  -H "Authorization: Bearer ksr_a1b2c3d4e5f6..."

Response

Each included section returns a normalized { data, total } object:

{
  "interactions": {
    "data": [
      {
        "id": "a1b2c3d4-...",
        "channel": "email",
        "direction": "inbound",
        "subject": "Follow-up on proposal",
        "snippet": "Hi Alice, I wanted to circle back on...",
        "created_at": "2025-03-10T14:22:00Z"
      }
    ],
    "total": 34
  },
  "tasks": {
    "data": [
      {
        "id": "e5f6a7b8-...",
        "title": "Send updated contract",
        "status": "pending",
        "due_date": "2025-03-15",
        "assigned_to": "Bob Dupont",
        "created_at": "2025-03-08T09:00:00Z"
      }
    ],
    "total": 5
  },
  "nextCursor": "eyJpZCI6ImUxZjJhM2I0..."
}

Sections that are not included in the include parameter are omitted from the response entirely.

Filtering by Channel

Use the channel parameter to narrow down interactions. This only affects the interactions section; tasks and notes are returned unfiltered.

curl -X GET "https://kasar.app/api/v1/activity/companies/99aabb00-...?include=interactions&channel=call" \
  -H "Authorization: Bearer ksr_a1b2c3d4e5f6..."

Pagination

When more items exist beyond the current page, the response includes a nextCursor value. Pass it as the cursor query parameter to fetch the next page:

curl -X GET "https://kasar.app/api/v1/activity/contacts/550e8400-...?cursor=eyJpZCI6ImUxZjJhM2I0..." \
  -H "Authorization: Bearer ksr_a1b2c3d4e5f6..."

When nextCursor is null, you have reached the last page.

Error Responses

StatusCodeDescription
400INVALID_OBJECTThe object name does not exist
404RECORD_NOT_FOUNDNo record found with the given ID
403PERMISSION_DENIEDToken lacks permission to read this record

On this page