---
title: "Search activities"
method: POST
path: "/activities/search"
tags: ["Activities"]
---

# Search activities

`POST /activities/search`

## Request

- Base URL: `https://api.copper.com/developer_api/v1`
- URL: `https://api.copper.com/developer_api/v1/activities/search`
- Auth: HTTP bearer

Search activities (use min/max_activity_date for ranges). Response uses pagination envelope (`page_number`,`total`,`data`) so ChatGPT can read pagination info; the X-PW-TOTAL header still exists. Paginate with page_number/page_size (max 200) until received records equal total. Limit to 100K results.

## Request body

- object
  - `parent` object: Filter activities by parent resource
    - `id` integer: The ID of the parent resource
    - `type` 'lead' | 'person' | 'company' | 'opportunity': The type of the parent resource
  - `activity_types` object[]: An array of activity type objects to filter by
    - `id` integer: The activity type ID
    - `category` 'user' | 'system': The activity type category
  - `user_ids` integer[]: An array of user IDs to filter by
  - `minimum_activity_date` integer: Unix timestamp for the minimum activity date to filter by
  - `maximum_activity_date` integer: Unix timestamp for the maximum activity date to filter by
  - `full_result` boolean: When true, returns all activities matching the criteria (pagination still applies)
  - `sort_by` string: The field on which to sort the results
  - `sort_direction` 'asc' | 'desc': The direction in which to sort the results
  - `page_number` integer: The page number (starting with 1) that you would like to view
  - `page_size` integer: The number of entries included in a page of results

## Response `200`

Activities retrieved successfully

- object: Standard paginated response envelope returned for ChatGPT-only requests. Mirrors the previous pagination headers by surfacing totals inside the response body while keeping the original headers available.
  - `page_number` integer, required: Current page number (defaults to 1 when not provided in the request).
  - `total` integer, required: Total number of records that match the request filters (equivalent to the X-PW-TOTAL header).
  - `data` Activity[], required: Records returned for the requested page. The item schema depends on the endpoint using this envelope.
    - `id` integer, required: Unique identifier for the activity
    - `parent` object, required: The identifier of the resource to which this activity belongs
      - `id` integer, required: The ID of the parent resource
      - `type` 'lead' | 'person' | 'company' | 'opportunity', required: The type of the parent resource
    - `type` object, required: The activity type of this activity
      - `id` integer, required: The ID of the activity type
      - `category` 'user' | 'system', required: The category of the activity type
    - `user_id` integer, nullable: When applicable, the id of the user who performed this activity
    - `details` string, nullable, required: When applicable, the text body of this activity
    - `activity_date` integer, nullable: A Unix timestamp representing the time at which this activity took place
    - `old_value` unknown
    - `new_value` unknown
    - `date_created` integer: A Unix timestamp representing the time at which this activity was created
    - `date_modified` integer: A Unix timestamp representing the time at which this activity was last modified

## Other responses

- `400`: Bad Request - The request was invalid or cannot be served
- `401`: Unauthorized - Authentication credentials were missing or incorrect
- `429`: Too Many Requests - Rate limit exceeded
- `500`: Internal Server Error - An unexpected error occurred

---

[API](https://skmtc.dev/copper/apis/copper-crm-read-only-api.md) - [All operations](https://skmtc.dev/copper/apis/copper-crm-read-only-api/llms.txt) - [OpenAPI document](https://skmtc.dev/copper/apis/copper-crm-read-only-api/revisions/96adc8557a40?raw)
