> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pinkfish.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# basecamp-projects

> Basecamp Projects & People

**Server path:** `/basecamp-projects` | **Type:** Application | **PCID required:** Yes

## Tools

| Tool                                                                                                | Description                                                                                                                                                                                                       |
| --------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`basecamp_projects_create_project`](#basecamp_projects_create_project)                             | Create a new project                                                                                                                                                                                              |
| [`basecamp_projects_disable_out_of_office`](#basecamp_projects_disable_out_of_office)               | Disable out of office for a person. Admins on Pro Pack accounts can manage others; otherwise self only.                                                                                                           |
| [`basecamp_projects_enable_out_of_office`](#basecamp_projects_enable_out_of_office)                 | Enable or replace out of office for a person. Admins on Pro Pack accounts can manage others; otherwise self only.                                                                                                 |
| [`basecamp_projects_get_account`](#basecamp_projects_get_account)                                   | Get the account for the current access token                                                                                                                                                                      |
| [`basecamp_projects_get_assigned_todos`](#basecamp_projects_get_assigned_todos)                     | Get todos assigned to a specific person                                                                                                                                                                           |
| [`basecamp_projects_get_client_approval`](#basecamp_projects_get_client_approval)                   | Get a single client approval by id                                                                                                                                                                                |
| [`basecamp_projects_get_client_correspondence`](#basecamp_projects_get_client_correspondence)       | Get a single client correspondence by id                                                                                                                                                                          |
| [`basecamp_projects_get_client_reply`](#basecamp_projects_get_client_reply)                         | Get a single client reply by id                                                                                                                                                                                   |
| [`basecamp_projects_get_my_assignments`](#basecamp_projects_get_my_assignments)                     | Get the current user's active assignments grouped into priorities and non\_priorities. Card table steps are normalized to their parent card with steps as children. This endpoint is not paginated.               |
| [`basecamp_projects_get_my_completed_assignments`](#basecamp_projects_get_my_completed_assignments) | Get the current user's completed assignments. Archived and trashed recordings are excluded. This endpoint is not paginated.                                                                                       |
| [`basecamp_projects_get_my_due_assignments`](#basecamp_projects_get_my_due_assignments)             | Get the current user's assignments filtered by due date scope. Defaults to overdue when no scope is provided. This endpoint is not paginated.                                                                     |
| [`basecamp_projects_get_my_notifications`](#basecamp_projects_get_my_notifications)                 | Get the current user's notification inbox (the "Hey!" menu). Notifications are grouped into unreads, reads, and memories. Reads are paginated (50 per page). Unreads are capped at 100.                           |
| [`basecamp_projects_get_my_preferences`](#basecamp_projects_get_my_preferences)                     | Get the current user's preferences                                                                                                                                                                                |
| [`basecamp_projects_get_my_profile`](#basecamp_projects_get_my_profile)                             | Get the current authenticated user's profile                                                                                                                                                                      |
| [`basecamp_projects_get_out_of_office`](#basecamp_projects_get_out_of_office)                       | Get the out of office status for a person                                                                                                                                                                         |
| [`basecamp_projects_get_overdue_todos`](#basecamp_projects_get_overdue_todos)                       | Get overdue todos grouped by lateness                                                                                                                                                                             |
| [`basecamp_projects_get_person`](#basecamp_projects_get_person)                                     | Get a person by ID                                                                                                                                                                                                |
| [`basecamp_projects_get_person_progress`](#basecamp_projects_get_person_progress)                   | Get a person's activity timeline                                                                                                                                                                                  |
| [`basecamp_projects_get_progress_report`](#basecamp_projects_get_progress_report)                   | Get account-wide activity feed (progress report)                                                                                                                                                                  |
| [`basecamp_projects_get_project`](#basecamp_projects_get_project)                                   | Get a single project by id                                                                                                                                                                                        |
| [`basecamp_projects_get_project_timeline`](#basecamp_projects_get_project_timeline)                 | Get project timeline                                                                                                                                                                                              |
| [`basecamp_projects_get_subscription`](#basecamp_projects_get_subscription)                         | Get subscription information for a recording                                                                                                                                                                      |
| [`basecamp_projects_get_upcoming_schedule`](#basecamp_projects_get_upcoming_schedule)               | Get upcoming schedule entries within a date window                                                                                                                                                                |
| [`basecamp_projects_list_assignable_people`](#basecamp_projects_list_assignable_people)             | List people who can be assigned todos                                                                                                                                                                             |
| [`basecamp_projects_list_client_approvals`](#basecamp_projects_list_client_approvals)               | List all client approvals in a project  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count.                               |
| [`basecamp_projects_list_client_correspondences`](#basecamp_projects_list_client_correspondences)   | List all client correspondences in a project  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count.                         |
| [`basecamp_projects_list_client_replies`](#basecamp_projects_list_client_replies)                   | List all client replies for a recording (correspondence or approval)  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count. |
| [`basecamp_projects_list_people`](#basecamp_projects_list_people)                                   | List all people visible to the current user  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count.                          |
| [`basecamp_projects_list_pingable_people`](#basecamp_projects_list_pingable_people)                 | List all account users who can be pinged  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count.                             |
| [`basecamp_projects_list_project_people`](#basecamp_projects_list_project_people)                   | List all active people on a project  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count.                                  |
| [`basecamp_projects_list_projects`](#basecamp_projects_list_projects)                               | List projects (active by default; optionally archived/trashed)  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count.       |
| [`basecamp_projects_mark_as_read`](#basecamp_projects_mark_as_read)                                 | Mark specified items as read                                                                                                                                                                                      |
| [`basecamp_projects_remove_account_logo`](#basecamp_projects_remove_account_logo)                   | Remove the account logo. Only administrators and account owners can use this endpoint.                                                                                                                            |
| [`basecamp_projects_set_client_visibility`](#basecamp_projects_set_client_visibility)               | Set client visibility for a recording                                                                                                                                                                             |
| [`basecamp_projects_subscribe`](#basecamp_projects_subscribe)                                       | Subscribe the current user to a recording                                                                                                                                                                         |
| [`basecamp_projects_trash_project`](#basecamp_projects_trash_project)                               | Trash a project (returns 204 No Content)                                                                                                                                                                          |
| [`basecamp_projects_unsubscribe`](#basecamp_projects_unsubscribe)                                   | Unsubscribe the current user from a recording                                                                                                                                                                     |
| [`basecamp_projects_update_account_logo`](#basecamp_projects_update_account_logo)                   | Upload or replace the account logo. Accepted formats: PNG, JPEG, GIF, WebP, AVIF, HEIC. Maximum 5 MB. Owners and admins only.                                                                                     |
| [`basecamp_projects_update_account_name`](#basecamp_projects_update_account_name)                   | Rename the current account. Only account owners can use this endpoint.                                                                                                                                            |
| [`basecamp_projects_update_my_preferences`](#basecamp_projects_update_my_preferences)               | Update the current user's preferences                                                                                                                                                                             |
| [`basecamp_projects_update_my_profile`](#basecamp_projects_update_my_profile)                       | Update the current authenticated user's profile (returns 204 No Content)                                                                                                                                          |
| [`basecamp_projects_update_project`](#basecamp_projects_update_project)                             | Update an existing project                                                                                                                                                                                        |
| [`basecamp_projects_update_project_access`](#basecamp_projects_update_project_access)               | Update project access (grant/revoke/create people)                                                                                                                                                                |
| [`basecamp_projects_update_subscription`](#basecamp_projects_update_subscription)                   | Update subscriptions by adding or removing specific users                                                                                                                                                         |

***

## basecamp\_projects\_create\_project

Create a new project

**Parameters:**

| Parameter     | Type   | Required | Default | Description           |
| ------------- | ------ | -------- | ------- | --------------------- |
| `description` | string | No       | —       | The description value |
| `name`        | string | Yes      | —       | The name value        |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "description": {
        "type": "string",
        "description": "The description value"
      },
      "name": {
        "type": "string",
        "description": "The name value"
      }
    },
    "required": [
      "PCID",
      "name"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_disable\_out\_of\_office

Disable out of office for a person. Admins on Pro Pack accounts can manage others; otherwise self only.

**Parameters:**

| Parameter  | Type    | Required | Default | Description |
| ---------- | ------- | -------- | ------- | ----------- |
| `personId` | integer | Yes      | —       | Person Id   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "personId": {
        "type": "integer",
        "description": "Person Id"
      }
    },
    "required": [
      "PCID",
      "personId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_enable\_out\_of\_office

Enable or replace out of office for a person. Admins on Pro Pack accounts can manage others; otherwise self only.

**Parameters:**

| Parameter       | Type    | Required | Default | Description   |
| --------------- | ------- | -------- | ------- | ------------- |
| `personId`      | integer | Yes      | —       | Person Id     |
| `out_of_office` | object  | Yes      | —       | Out Of Office |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "personId": {
        "type": "integer",
        "description": "Person Id"
      },
      "out_of_office": {
        "type": "object",
        "description": "Out Of Office",
        "properties": {
          "start_date": {
            "type": "string",
            "description": "Start date in ISO 8601 format (YYYY-MM-DD)"
          },
          "end_date": {
            "type": "string",
            "description": "End date in ISO 8601 format (YYYY-MM-DD)"
          }
        },
        "required": [
          "end_date",
          "start_date"
        ]
      }
    },
    "required": [
      "PCID",
      "personId",
      "out_of_office"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_get\_account

Get the account for the current access token

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_get\_assigned\_todos

Get todos assigned to a specific person

**Parameters:**

| Parameter  | Type    | Required | Default | Description                 |
| ---------- | ------- | -------- | ------- | --------------------------- |
| `personId` | integer | Yes      | —       | Person Id                   |
| `group_by` | string  | No       | —       | Group by "bucket" or "date" |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "personId": {
        "type": "integer",
        "description": "Person Id"
      },
      "group_by": {
        "type": "string",
        "description": "Group by \"bucket\" or \"date\""
      }
    },
    "required": [
      "PCID",
      "personId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_get\_client\_approval

Get a single client approval by id

**Parameters:**

| Parameter    | Type    | Required | Default | Description |
| ------------ | ------- | -------- | ------- | ----------- |
| `approvalId` | integer | Yes      | —       | Approval Id |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "approvalId": {
        "type": "integer",
        "description": "Approval Id"
      }
    },
    "required": [
      "PCID",
      "approvalId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_get\_client\_correspondence

Get a single client correspondence by id

**Parameters:**

| Parameter          | Type    | Required | Default | Description       |
| ------------------ | ------- | -------- | ------- | ----------------- |
| `correspondenceId` | integer | Yes      | —       | Correspondence Id |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "correspondenceId": {
        "type": "integer",
        "description": "Correspondence Id"
      }
    },
    "required": [
      "PCID",
      "correspondenceId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_get\_client\_reply

Get a single client reply by id

**Parameters:**

| Parameter     | Type    | Required | Default | Description  |
| ------------- | ------- | -------- | ------- | ------------ |
| `recordingId` | integer | Yes      | —       | Recording Id |
| `replyId`     | integer | Yes      | —       | Reply Id     |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "recordingId": {
        "type": "integer",
        "description": "Recording Id"
      },
      "replyId": {
        "type": "integer",
        "description": "Reply Id"
      }
    },
    "required": [
      "PCID",
      "recordingId",
      "replyId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_get\_my\_assignments

Get the current user's active assignments grouped into priorities and non\_priorities. Card table steps are normalized to their parent card with steps as children. This endpoint is not paginated.

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_get\_my\_completed\_assignments

Get the current user's completed assignments. Archived and trashed recordings are excluded. This endpoint is not paginated.

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_get\_my\_due\_assignments

Get the current user's assignments filtered by due date scope. Defaults to overdue when no scope is provided. This endpoint is not paginated.

**Parameters:**

| Parameter | Type   | Required | Default | Description                                                                                                       |
| --------- | ------ | -------- | ------- | ----------------------------------------------------------------------------------------------------------------- |
| `scope`   | string | No       | —       | Filter by due date range: overdue, due\_today, due\_tomorrow, due\_later\_this\_week, due\_next\_week, due\_later |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "scope": {
        "type": "string",
        "description": "Filter by due date range: overdue, due_today, due_tomorrow, due_later_this_week, due_next_week, due_later"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_get\_my\_notifications

Get the current user's notification inbox (the "Hey!" menu). Notifications are grouped into unreads, reads, and memories. Reads are paginated (50 per page). Unreads are capped at 100.

**Parameters:**

| Parameter | Type    | Required | Default | Description                                                   |
| --------- | ------- | -------- | ------- | ------------------------------------------------------------- |
| `page`    | integer | No       | —       | Page number for paginating through read items. Defaults to 1. |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "page": {
        "type": "integer",
        "description": "Page number for paginating through read items. Defaults to 1."
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_get\_my\_preferences

Get the current user's preferences

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_get\_my\_profile

Get the current authenticated user's profile

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_get\_out\_of\_office

Get the out of office status for a person

**Parameters:**

| Parameter  | Type    | Required | Default | Description |
| ---------- | ------- | -------- | ------- | ----------- |
| `personId` | integer | Yes      | —       | Person Id   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "personId": {
        "type": "integer",
        "description": "Person Id"
      }
    },
    "required": [
      "PCID",
      "personId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_get\_overdue\_todos

Get overdue todos grouped by lateness

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_get\_person

Get a person by ID

**Parameters:**

| Parameter  | Type    | Required | Default | Description |
| ---------- | ------- | -------- | ------- | ----------- |
| `personId` | integer | Yes      | —       | Person Id   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "personId": {
        "type": "integer",
        "description": "Person Id"
      }
    },
    "required": [
      "PCID",
      "personId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_get\_person\_progress

Get a person's activity timeline

**Parameters:**

| Parameter  | Type    | Required | Default | Description |
| ---------- | ------- | -------- | ------- | ----------- |
| `personId` | integer | Yes      | —       | Person Id   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "personId": {
        "type": "integer",
        "description": "Person Id"
      }
    },
    "required": [
      "PCID",
      "personId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_get\_progress\_report

Get account-wide activity feed (progress report)

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_get\_project

Get a single project by id

**Parameters:**

| Parameter   | Type    | Required | Default | Description |
| ----------- | ------- | -------- | ------- | ----------- |
| `projectId` | integer | Yes      | —       | Project Id  |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "projectId": {
        "type": "integer",
        "description": "Project Id"
      }
    },
    "required": [
      "PCID",
      "projectId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_get\_project\_timeline

Get project timeline

**Parameters:**

| Parameter   | Type    | Required | Default | Description |
| ----------- | ------- | -------- | ------- | ----------- |
| `projectId` | integer | Yes      | —       | Project Id  |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "projectId": {
        "type": "integer",
        "description": "Project Id"
      }
    },
    "required": [
      "PCID",
      "projectId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_get\_subscription

Get subscription information for a recording

**Parameters:**

| Parameter     | Type    | Required | Default | Description  |
| ------------- | ------- | -------- | ------- | ------------ |
| `recordingId` | integer | Yes      | —       | Recording Id |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "recordingId": {
        "type": "integer",
        "description": "Recording Id"
      }
    },
    "required": [
      "PCID",
      "recordingId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_get\_upcoming\_schedule

Get upcoming schedule entries within a date window

**Parameters:**

| Parameter          | Type   | Required | Default | Description      |
| ------------------ | ------ | -------- | ------- | ---------------- |
| `window_starts_on` | string | No       | —       | Window Starts On |
| `window_ends_on`   | string | No       | —       | Window Ends On   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "window_starts_on": {
        "type": "string",
        "description": "Window Starts On"
      },
      "window_ends_on": {
        "type": "string",
        "description": "Window Ends On"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_list\_assignable\_people

List people who can be assigned todos

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_list\_client\_approvals

List all client approvals in a project  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count.

**Parameters:**

| Parameter   | Type   | Required | Default | Description              |
| ----------- | ------ | -------- | ------- | ------------------------ |
| `sort`      | string | No       | —       | created\_at\|updated\_at |
| `direction` | string | No       | —       | asc\|desc                |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "sort": {
        "type": "string",
        "description": "created_at|updated_at"
      },
      "direction": {
        "type": "string",
        "description": "asc|desc"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_list\_client\_correspondences

List all client correspondences in a project  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count.

**Parameters:**

| Parameter   | Type   | Required | Default | Description              |
| ----------- | ------ | -------- | ------- | ------------------------ |
| `sort`      | string | No       | —       | created\_at\|updated\_at |
| `direction` | string | No       | —       | asc\|desc                |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "sort": {
        "type": "string",
        "description": "created_at|updated_at"
      },
      "direction": {
        "type": "string",
        "description": "asc|desc"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_list\_client\_replies

List all client replies for a recording (correspondence or approval)  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count.

**Parameters:**

| Parameter     | Type    | Required | Default | Description  |
| ------------- | ------- | -------- | ------- | ------------ |
| `recordingId` | integer | Yes      | —       | Recording Id |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "recordingId": {
        "type": "integer",
        "description": "Recording Id"
      }
    },
    "required": [
      "PCID",
      "recordingId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_list\_people

List all people visible to the current user  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count.

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_list\_pingable\_people

List all account users who can be pinged  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count.

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_list\_project\_people

List all active people on a project  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count.

**Parameters:**

| Parameter   | Type    | Required | Default | Description |
| ----------- | ------- | -------- | ------- | ----------- |
| `projectId` | integer | Yes      | —       | Project Id  |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "projectId": {
        "type": "integer",
        "description": "Project Id"
      }
    },
    "required": [
      "PCID",
      "projectId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_list\_projects

List projects (active by default; optionally archived/trashed)  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count.

**Parameters:**

| Parameter | Type   | Required | Default | Description               |
| --------- | ------ | -------- | ------- | ------------------------- |
| `status`  | string | No       | —       | active\|archived\|trashed |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "status": {
        "type": "string",
        "description": "active|archived|trashed"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_mark\_as\_read

Mark specified items as read

**Parameters:**

| Parameter   | Type      | Required | Default | Description                                                          |
| ----------- | --------- | -------- | ------- | -------------------------------------------------------------------- |
| `readables` | string\[] | Yes      | —       | Array of readable\_sgid values identifying the items to mark as read |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "readables": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Array of readable_sgid values identifying the items to mark as read"
      }
    },
    "required": [
      "PCID",
      "readables"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_remove\_account\_logo

Remove the account logo. Only administrators and account owners can use this endpoint.

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_set\_client\_visibility

Set client visibility for a recording

**Parameters:**

| Parameter            | Type    | Required | Default | Description        |
| -------------------- | ------- | -------- | ------- | ------------------ |
| `recordingId`        | integer | Yes      | —       | Recording Id       |
| `visible_to_clients` | boolean | Yes      | —       | Visible To Clients |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "recordingId": {
        "type": "integer",
        "description": "Recording Id"
      },
      "visible_to_clients": {
        "type": "boolean",
        "description": "Visible To Clients"
      }
    },
    "required": [
      "PCID",
      "recordingId",
      "visible_to_clients"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_subscribe

Subscribe the current user to a recording

**Parameters:**

| Parameter     | Type    | Required | Default | Description  |
| ------------- | ------- | -------- | ------- | ------------ |
| `recordingId` | integer | Yes      | —       | Recording Id |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "recordingId": {
        "type": "integer",
        "description": "Recording Id"
      }
    },
    "required": [
      "PCID",
      "recordingId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_trash\_project

Trash a project (returns 204 No Content)

**Parameters:**

| Parameter   | Type    | Required | Default | Description |
| ----------- | ------- | -------- | ------- | ----------- |
| `projectId` | integer | Yes      | —       | Project Id  |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "projectId": {
        "type": "integer",
        "description": "Project Id"
      }
    },
    "required": [
      "PCID",
      "projectId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_unsubscribe

Unsubscribe the current user from a recording

**Parameters:**

| Parameter     | Type    | Required | Default | Description  |
| ------------- | ------- | -------- | ------- | ------------ |
| `recordingId` | integer | Yes      | —       | Recording Id |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "recordingId": {
        "type": "integer",
        "description": "Recording Id"
      }
    },
    "required": [
      "PCID",
      "recordingId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_update\_account\_logo

Upload or replace the account logo. Accepted formats: PNG, JPEG, GIF, WebP, AVIF, HEIC. Maximum 5 MB. Owners and admins only.

**Parameters:**

| Parameter | Type   | Required | Default | Description    |
| --------- | ------ | -------- | ------- | -------------- |
| `logo`    | string | No       | —       | The logo value |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "logo": {
        "type": "string",
        "description": "The logo value"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_update\_account\_name

Rename the current account. Only account owners can use this endpoint.

**Parameters:**

| Parameter | Type   | Required | Default | Description    |
| --------- | ------ | -------- | ------- | -------------- |
| `name`    | string | Yes      | —       | The name value |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "name": {
        "type": "string",
        "description": "The name value"
      }
    },
    "required": [
      "PCID",
      "name"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_update\_my\_preferences

Update the current user's preferences

**Parameters:**

| Parameter | Type   | Required | Default | Description      |
| --------- | ------ | -------- | ------- | ---------------- |
| `person`  | object | Yes      | —       | The person value |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "person": {
        "type": "object",
        "description": "The person value",
        "properties": {
          "time_zone_name": {
            "type": "string",
            "description": "Time zone name (e.g. \"America/Chicago\", \"London\", \"UTC\")"
          },
          "first_week_day": {
            "type": "string",
            "description": "First day of the week: Sunday, Monday, Tuesday, etc."
          },
          "time_format": {
            "type": "string",
            "description": "Time display format: twelve_hour or twenty_four_hour"
          }
        }
      }
    },
    "required": [
      "PCID",
      "person"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_update\_my\_profile

Update the current authenticated user's profile (returns 204 No Content)

**Parameters:**

| Parameter        | Type   | Required | Default | Description        |
| ---------------- | ------ | -------- | ------- | ------------------ |
| `bio`            | string | No       | —       | The bio value      |
| `email_address`  | string | No       | —       | Email Address      |
| `first_week_day` | string | No       | —       | First Week Day     |
| `location`       | string | No       | —       | The location value |
| `name`           | string | No       | —       | The name value     |
| `time_format`    | string | No       | —       | Time Format        |
| `time_zone_name` | string | No       | —       | Time Zone Name     |
| `title`          | string | No       | —       | The title value    |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "bio": {
        "type": "string",
        "description": "The bio value"
      },
      "email_address": {
        "type": "string",
        "description": "Email Address"
      },
      "first_week_day": {
        "type": "string",
        "description": "First Week Day",
        "enum": [
          "Sunday",
          "Monday",
          "Tuesday",
          "Wednesday",
          "Thursday",
          "Friday",
          "Saturday"
        ]
      },
      "location": {
        "type": "string",
        "description": "The location value"
      },
      "name": {
        "type": "string",
        "description": "The name value"
      },
      "time_format": {
        "type": "string",
        "description": "Time Format"
      },
      "time_zone_name": {
        "type": "string",
        "description": "Time Zone Name"
      },
      "title": {
        "type": "string",
        "description": "The title value"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_update\_project

Update an existing project

**Parameters:**

| Parameter             | Type    | Required | Default | Description            |
| --------------------- | ------- | -------- | ------- | ---------------------- |
| `projectId`           | integer | Yes      | —       | Project Id             |
| `admissions`          | string  | No       | —       | invite\|employee\|team |
| `description`         | string  | No       | —       | The description value  |
| `name`                | string  | Yes      | —       | The name value         |
| `schedule_attributes` | object  | No       | —       | Schedule Attributes    |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "projectId": {
        "type": "integer",
        "description": "Project Id"
      },
      "admissions": {
        "type": "string",
        "description": "invite|employee|team"
      },
      "description": {
        "type": "string",
        "description": "The description value"
      },
      "name": {
        "type": "string",
        "description": "The name value"
      },
      "schedule_attributes": {
        "type": "object",
        "description": "Schedule Attributes",
        "properties": {
          "start_date": {
            "type": "string",
            "description": "Start date for filtering"
          },
          "end_date": {
            "type": "string",
            "description": "End date for filtering"
          }
        }
      }
    },
    "required": [
      "PCID",
      "projectId",
      "name"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_update\_project\_access

Update project access (grant/revoke/create people)

**Parameters:**

| Parameter   | Type       | Required | Default | Description      |
| ----------- | ---------- | -------- | ------- | ---------------- |
| `projectId` | integer    | Yes      | —       | Project Id       |
| `create`    | object\[]  | No       | —       | The create value |
| `grant`     | integer\[] | No       | —       | The grant value  |
| `revoke`    | integer\[] | No       | —       | The revoke value |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "projectId": {
        "type": "integer",
        "description": "Project Id"
      },
      "create": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "format": "password",
              "description": "The name value"
            },
            "email_address": {
              "type": "string",
              "format": "password",
              "description": "Email Address"
            },
            "title": {
              "type": "string",
              "format": "password",
              "description": "The title value"
            },
            "company_name": {
              "type": "string",
              "format": "password",
              "description": "Company Name"
            }
          },
          "required": [
            "email_address",
            "name"
          ]
        },
        "description": "The create value"
      },
      "grant": {
        "type": "array",
        "items": {
          "type": "integer",
          "format": "int64"
        },
        "description": "The grant value"
      },
      "revoke": {
        "type": "array",
        "items": {
          "type": "integer",
          "format": "int64"
        },
        "description": "The revoke value"
      }
    },
    "required": [
      "PCID",
      "projectId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_projects\_update\_subscription

Update subscriptions by adding or removing specific users

**Parameters:**

| Parameter         | Type       | Required | Default | Description               |
| ----------------- | ---------- | -------- | ------- | ------------------------- |
| `recordingId`     | integer    | Yes      | —       | Recording Id              |
| `subscriptions`   | integer\[] | No       | —       | The subscriptions value   |
| `unsubscriptions` | integer\[] | No       | —       | The unsubscriptions value |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "recordingId": {
        "type": "integer",
        "description": "Recording Id"
      },
      "subscriptions": {
        "type": "array",
        "items": {
          "type": "integer",
          "format": "int64"
        },
        "description": "The subscriptions value"
      },
      "unsubscriptions": {
        "type": "array",
        "items": {
          "type": "integer",
          "format": "int64"
        },
        "description": "The unsubscriptions value"
      }
    },
    "required": [
      "PCID",
      "recordingId"
    ]
  }
  ```
</Expandable>
