nodestash
Activities

List activities

Returns a paginated list of activities in the authenticated workspace. Supports cursor-based pagination and filtering by type, linked resources, and completion status.

GET
/activities
AuthorizationBearer <token>

API key from your nodestash dashboard. Pass as a Bearer token in the Authorization header.

In: header

Query Parameters

cursor?string

Opaque pagination cursor returned as next_cursor in a previous response. Pass this to fetch the next page.

limit?string

Maximum number of activities to return per page.

Default"25"
type?string

Filter by activity type (exact match).

Value in"note" | "task" | "email" | "call" | "meeting" | "custom"
contact_id?string

Filter by linked contact ID (exact match).

Match^ct_
company_id?string

Filter by linked company ID (exact match).

Match^co_
deal_id?string

Filter by linked deal ID (exact match).

Match^dl_
is_done?string

Filter by completion status.

Value in"true" | "false"
sort?string

Comma-separated sort fields. Prefix with - for descending order. Supported fields: created_at, updated_at, due_date. Default: -created_at.

Response Body

application/json

application/json

application/json

curl -X GET "https://api.nodestash.io/v1/activities?type=task&contact_id=ct_5hJ3kM9pQrVwXyZaB2cD4&company_id=co_7rT4mK9pQsVwXyZaB2cD4&deal_id=dl_3xK8nM2qTsYvAzCeB2cD4&is_done=false&sort=-created_at"
{
  "data": [
    {
      "id": "act_5hJ3kM9pQrVwXyZaB2cD4",
      "type": "activity",
      "attributes": {
        "id": "act_5hJ3kM9pQrVwXyZaB2cD4",
        "type": "task",
        "subject": "Follow up on proposal",
        "body": "Discuss pricing and timeline with the client",
        "contact_id": "ct_5hJ3kM9pQrVwXyZaB2cD4",
        "company_id": "co_7rT4mK9pQsVwXyZaB2cD4",
        "deal_id": "dl_3xK8nM2qTsYvAzCeB2cD4",
        "owner_id": null,
        "is_done": false,
        "due_date": "2026-03-01T09:00:00Z",
        "completed_at": null,
        "metadata": {
          "priority": "high"
        },
        "tags": [
          "follow-up",
          "important"
        ],
        "created_at": "2026-02-15T10:00:00Z",
        "updated_at": "2026-02-15T10:00:00Z"
      }
    },
    {
      "id": "act_9xK7mN2qTsYvAzCe4fG6",
      "type": "activity",
      "attributes": {
        "id": "act_9xK7mN2qTsYvAzCe4fG6",
        "type": "note",
        "subject": "Initial contact",
        "body": "Met at conference, interested in enterprise plan",
        "contact_id": "ct_9xK7mN2qTsYvAzCe4fG6",
        "company_id": null,
        "deal_id": null,
        "owner_id": null,
        "is_done": false,
        "due_date": null,
        "completed_at": null,
        "metadata": {},
        "tags": [
          "conference"
        ],
        "created_at": "2026-02-14T08:00:00Z",
        "updated_at": "2026-02-14T08:00:00Z"
      }
    }
  ],
  "meta": {
    "request_id": "req_abc123def456",
    "pagination": {
      "next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNi0wMi0xNFQwODowMDowMFoiLCJpZCI6ImFjdF85eEs3bU4ycVRzWXZBekNlNGZHNiJ9",
      "has_more": true
    }
  }
}
{
  "error": {
    "code": "INVALID_API_KEY",
    "message": "Missing or invalid Authorization header"
  },
  "meta": {
    "request_id": "req_abc123def456"
  }
}
{
  "error": {
    "code": "RATE_LIMITED",
    "message": "Rate limit exceeded"
  },
  "meta": {
    "request_id": "req_abc123def456"
  }
}