---
title: "Get Cosigners Paginated Route"
method: POST
path: "/v0/platform/cosigners/search"
tags: ["cosigner"]
---

# Get Cosigners Paginated Route

`POST /v0/platform/cosigners/search`

## Request

- Base URL: `https://api.blockaid.io`
- URL: `https://api.blockaid.io/v0/platform/cosigners/search`
- Auth: one of:
  - API key in header `X-API-Key`
  - API key in header `X-CLIENT-ID`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/blockaid-official/apis/blockaid-api/docs/v0/platform/cosigners/search/post.ts> (a function with typed inputs; its response is checked against the schema)

Returns a paginated list of Cosigners based on the provided search criteria.

## Request body

- CosignerSearchRequest
  - `page` integer
  - `page_size` integer
  - `sort` SortByField[], nullable
    - `field` 'id' | 'created_at', required
    - `operator` 'asc' | 'desc', required

## Response `200`

Successful Response

- CosignerPageCosignerExternalResponse
  - `items` CosignerExternalResponse[], required: The list of Cosigners returned in the page.
    - `tags` string[], required
    - `proposal_actions` union[], required
      - union
        - TelegramExternalAction
          - `type` 'telegram', required
          - `chats` TelegramExternalChannel[], required
            - `chat_id` string, required: Telegram channel ID.
            - `topic_ids` integer[], required: Optional topic IDs within the channel where the message should be posted.
          - `message_format` string, nullable
        - SlackExternalAction
          - `type` 'slack', required
          - `message_format` string, nullable: Customization of the message to send in the Slack notification.
          - `channels` string[], required
        - EmailExternalAction
          - `type` 'email', required
          - `to` string[], required
          - `cc` string[], nullable: Optional CC email addresses.
          - `bcc` string[], nullable: Optional BCC email addresses.
          - `body` string, nullable
    - `rejection_actions` union[], required
      - union
        - TelegramExternalAction
          - `type` 'telegram', required
          - `chats` TelegramExternalChannel[], required
            - `chat_id` string, required: Telegram channel ID.
            - `topic_ids` integer[], required: Optional topic IDs within the channel where the message should be posted.
          - `message_format` string, nullable
        - SlackExternalAction
          - `type` 'slack', required
          - `message_format` string, nullable: Customization of the message to send in the Slack notification.
          - `channels` string[], required
        - EmailExternalAction
          - `type` 'email', required
          - `to` string[], required
          - `cc` string[], nullable: Optional CC email addresses.
          - `bcc` string[], nullable: Optional BCC email addresses.
          - `body` string, nullable
    - `approval_actions` union[], required
      - union
        - TelegramExternalAction
          - `type` 'telegram', required
          - `chats` TelegramExternalChannel[], required
            - `chat_id` string, required: Telegram channel ID.
            - `topic_ids` integer[], required: Optional topic IDs within the channel where the message should be posted.
          - `message_format` string, nullable
        - SlackExternalAction
          - `type` 'slack', required
          - `message_format` string, nullable: Customization of the message to send in the Slack notification.
          - `channels` string[], required
        - EmailExternalAction
          - `type` 'email', required
          - `to` string[], required
          - `cc` string[], nullable: Optional CC email addresses.
          - `bcc` string[], nullable: Optional BCC email addresses.
          - `body` string, nullable
    - `malicious_actions` union[], nullable
      - union
        - TelegramExternalAction
          - `type` 'telegram', required
          - `chats` TelegramExternalChannel[], required
            - `chat_id` string, required: Telegram channel ID.
            - `topic_ids` integer[], required: Optional topic IDs within the channel where the message should be posted.
          - `message_format` string, nullable
        - SlackExternalAction
          - `type` 'slack', required
          - `message_format` string, nullable: Customization of the message to send in the Slack notification.
          - `channels` string[], required
        - EmailExternalAction
          - `type` 'email', required
          - `to` string[], required
          - `cc` string[], nullable: Optional CC email addresses.
          - `bcc` string[], nullable: Optional BCC email addresses.
          - `body` string, nullable
    - `id` string, required: The Cosigner's assigned unique ID.
    - `name` string, nullable, required: The Cosigner name as defined upon creation.
    - `status` 'pending' | 'ok' | 'error', required: The current status of the Cosigner. - `ok` - The Cosigner is active. - `pending` - The Cosigner is waiting for the final activation steps in the multisig wallet to be completed. - `error` - Something went wrong and the Cosigner is not working properly.
    - `fallback_behavior` 'reject' | 'approve' | 'manual_review', required: The outcome when a transaction passes the Blockaid detection engine but no configured policy matches. - `reject` - Rejects the transaction. Default. - `approve` - Approves the transaction. - `manual_review` - Sends the transaction to the Pending Transactions queue for manual review.
    - `error` string, nullable: If the Cosigner status is `error`, this field will show more information about the error.
    - `created_at` string, date-time, required: The timestamp the Cosigner was created.
    - `updated_at` string, date-time, required
    - `updated_by` string, nullable, required: The user who last updated the Cosigner.
    - `data` union, required
      - FireblocksCosignerResponseExternal
        - `type` 'fireblocks', required
        - `integration_instance_id` string, required: The ID of the integration instance used to connect to the Fireblocks workspace. Acquired using the Search Integrations endpoint.
        - `scope` 'specific_vaults'
        - `vaults` union[], required
          - union
            - VaultDetails
              - …
            - VaultError
              - …
        - `chains` string[], nullable
        - `involvement_level` 'active_approval' | 'reporting_only', required: This Cosigner's participation level in transaction approval: - `active_approval` - Cosigner actively approves or rejects transactions. - `reporting_only` - Cosigner approves all transactions.
        - `security_policy` 'blockaid_ootb_policy' | 'advanced_control_policy': [DEPRECATED] External API representation of policy options. OOTB mode has been removed, so the only accepted value is `advanced_control_policy`; `blockaid_ootb_policy` is rejected. Configure fallback behavior via the top-level `fallback_behavior` field instead.
        - `unsupported_chain_behavior` 'approve' | 'reject' | 'pending', required
      - FordefiCosignerResponseExternal
        - `type` 'fordefi', required
        - `integration_instance_id` string, required
        - `scope` 'all_vaults' | 'specific_vaults', required
        - `vaults` union[], required
          - union
            - VaultDetails
              - …
            - VaultError
              - …
        - `chains` string[], nullable
        - `involvement_level` 'active_approval' | 'reporting_only', required: This Cosigner's participation level in transaction approval: - `active_approval` - Cosigner actively approves or rejects transactions. - `reporting_only` - Cosigner reviews transactions without approving or signing.
        - `security_policy` 'blockaid_ootb_policy' | 'advanced_control_policy': [DEPRECATED] External API representation of policy options. OOTB mode has been removed, so the only accepted value is `advanced_control_policy`; `blockaid_ootb_policy` is rejected. Configure fallback behavior via the top-level `fallback_behavior` field instead.
        - `unsupported_chain_behavior` 'approve' | 'reject' | 'pending', required
      - CosignerSafeResponseExternal
        - `chain` string, required
        - `type` 'safe', required
        - `override_address` string, nullable, required
        - `cosigner_address` string, required
        - `involvement_level` 'active_approval' | 'reporting_only', required: This Cosigner's participation level in transaction approval: - `active_approval` - Cosigner actively approves or rejects transactions. - `reporting_only` - Cosigner reviews transactions without approving or signing.
        - `security_policy` 'blockaid_ootb_policy' | 'advanced_control_policy': [DEPRECATED] External API representation of policy options. OOTB mode has been removed, so the only accepted value is `advanced_control_policy`; `blockaid_ootb_policy` is rejected. Configure fallback behavior via the top-level `fallback_behavior` field instead.
        - `wallet_address` string, required
      - CosignerSquadsResponseExternal
        - `chain` 'solana-mainnet', required
        - `type` 'squads', required
        - `cosigner_address` string, required
        - `involvement_level` 'active_approval' | 'reporting_only', required: This Cosigner's participation level in transaction approval: - `active_approval` - Cosigner actively approves or rejects transactions. - `reporting_only` - Cosigner reviews transactions without approving or signing.
        - `security_policy` 'blockaid_ootb_policy' | 'advanced_control_policy': [DEPRECATED] External API representation of policy options. OOTB mode has been removed, so the only accepted value is `advanced_control_policy`; `blockaid_ootb_policy` is rejected. Configure fallback behavior via the top-level `fallback_behavior` field instead.
        - `wallet_address` string, required
      - UtilaCosignerResponseExternal
        - `type` 'utila', required
        - `integration_instance_id` string, required
        - `addresses` AddressDetails[], required
          - `address` string, required
          - `chain` string, required
        - `chains` string[], nullable
        - `involvement_level` 'active_approval' | 'reporting_only', required: This Cosigner's participation level in transaction approval: - `active_approval` - Cosigner actively approves or rejects transactions. - `reporting_only` - Cosigner reviews transactions without approving or signing.
        - `security_policy` 'blockaid_ootb_policy' | 'advanced_control_policy': [DEPRECATED] External API representation of policy options. OOTB mode has been removed, so the only accepted value is `advanced_control_policy`; `blockaid_ootb_policy` is rejected. Configure fallback behavior via the top-level `fallback_behavior` field instead.
        - `unsupported_chain_behavior` 'approve' | 'reject' | 'pending', required
    - `created_by` string, required
    - `selected_chains` string[], nullable
  - `total` integer, nullable, required: The total number of Cosigners across all pages.
  - `page` integer, nullable, required: Current page index (1-based).
  - `size` integer, nullable, required: Number of Cosigners per page.
  - `pages` integer, nullable: Total number of pages available given the current page size and total.
  - `status_summary` SummaryStatus, required
    - `ok` integer, required
    - `pending` integer, required
    - `error` integer, required

## Other responses

- `422`: Validation Error

## Changes

> 120 revisions in range; 1 not diffed.

- **2026-08-03** `6941029c0ca9`: 10 breaking, 21 info
  - the response property `items/items/data/oneOf[subschema #1: FireblocksCosignerResponseExternal]/security_policy` became optional for the status `200`
  - the response property `items/items/data/oneOf[subschema #2: FordefiCosignerResponseExternal]/security_policy` became optional for the status `200`
  - the response property `items/items/data/oneOf[subschema #3: CosignerSafeResponseExternal]/security_policy` became optional for the status `200`
  - the response property `items/items/data/oneOf[subschema #4: CosignerSquadsResponseExternal]/security_policy` became optional for the status `200`
  - …27 more
- **2026-06-22** `187d6a5259c6`: 1 info
  - the endpoint scheme security `JWT` was added to the API
- **2026-06-22** `03ea93e2f608`: 21 breaking, 1 warning, 26 info
  - response property `items/items/updated_by` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - removed the required property `items/items/added_by` from the response with the `200` status
  - removed the required property `items/items/approval_actions/items/oneOf[subschema #2: SlackExternalAction]/channel_ids` from the response with the `200` status
  - removed the required property `items/items/data/oneOf[subschema #1: FireblocksCosignerResponseExternal]/security_mode` from the response with the `200` status
  - …44 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/blockaid-official/apis/blockaid-api/changes/v0/platform/cosigners/search/post.md)

---

[API](https://skmtc.dev/blockaid-official/apis/blockaid-api.md) - [All operations](https://skmtc.dev/blockaid-official/apis/blockaid-api/llms.txt) - [OpenAPI document](https://skmtc.dev/blockaid-official/apis/blockaid-api/revisions/104550c9d3f1?raw)
