For AI agents: markdown of this page — /docs-content-en/entities/activities/list.md documentation index — /llms.txt

List activities

GET /v1/activities

Returns a list of CRM activities with support for filtering, sorting and auto-pagination. A filter by ownerId + ownerTypeId returns the activities of a specific deal, lead or contact.

Parameters

Parameter Type Default Description
limit number 50 Number of records (up to 5000). With limit > 50 — auto-pagination
offset number 0 Skip N records. With offset > 0, limit ≤ 500 is recommended
select string Field selection: ?select=id,subject,typeId,completed
order object Sorting: ?order[deadline]=asc
filter object Filter by GET /v1/activities/fields fields.
Filter syntax. Example: ?filter[ownerTypeId]=2&filter[ownerId]=741

Examples

curl — personal key

Terminal
curl "https://vibecode.bitrix24.com/v1/activities?filter[ownerTypeId]=2&filter[ownerId]=741&limit=10&select=id,subject,typeId,completed" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth application

Terminal
curl "https://vibecode.bitrix24.com/v1/activities?filter[ownerTypeId]=2&filter[ownerId]=741&limit=10&select=id,subject,typeId,completed" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/activities?filter[ownerTypeId]=2&filter[ownerId]=741&limit=10&select=id,subject,typeId,completed', {
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
  },
})

const { success, data, meta } = await res.json()
console.log(`Found ${meta.total} activities`)

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/activities?filter[ownerTypeId]=2&filter[ownerId]=741&limit=10&select=id,subject,typeId,completed', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const { success, data, meta } = await res.json()

Response fields

Field Type Description
data array Array of activities (fields — see Fields)
meta.total number Total number of records
meta.hasMore boolean More records available

Response example

JSON
{
  "success": true,
  "data": [
    {
      "id": 3894,
      "typeId": 1,
      "ownerTypeId": 2,
      "ownerId": 741,
      "subject": "Project meeting",
      "responsibleId": 1,
      "priority": 2,
      "direction": 2,
      "completed": false,
      "deadline": "2026-04-16T11:00:00+00:00",
      "createdAt": "2026-04-15T14:30:00+00:00",
      "updatedAt": "2026-04-15T14:30:00+00:00"
    }
  ],
  "meta": {
    "total": 84,
    "hasMore": true
  }
}

Error response example

403 — no scope:

JSON
{
  "success": false,
  "error": {
    "code": "SCOPE_DENIED",
    "message": "This endpoint requires 'crm' scope"
  }
}

Errors

HTTP Code Description
403 SCOPE_DENIED The API key lacks the crm scope
401 TOKEN_MISSING The API key has no configured tokens

Full list of common API errors — Errors.

Known specifics

Auto-pagination: with limit > 50, Vibecode automatically requests several pages.

Filter by entity: to get the activities of a specific deal, use filter[ownerTypeId]=2&filter[ownerId]=741. The ownerTypeId values: 1 — lead, 2 — deal, 3 — contact, 4 — company.

Fields for grouping and aggregation: typeId, ownerTypeId, responsibleId, authorId, editorId, completed, status, direction, providerId, providerTypeId. Used in POST /v1/activities/aggregate (see Aggregate).

Activities without a deadline: for activities with no deadline set, the field returns the sentinel value 9999-12-30T21:00:00.000Z — not a real date. A filter by an earlier date, for example filter[<deadline]=2027-01-01T00:00:00, does not match such activities, so they do not appear in a list of overdue activities.

See also