---
title: "List relationships"
method: GET
path: "/api/v1/cdp/relationships"
tags: ["CDP Relationships"]
---

# List relationships

`GET /api/v1/cdp/relationships`

List relationship edges of one kind, anchored on a person or custom object, newest first.

## Query parameters

- `kind` 'person_to_co' | 'co_to_co', required — Which edge set to list.
- `personExternalId` string — Anchor: person externalId (kind 'person_to_co').
- `customObjectType` string — Anchor: custom object type name. Required with customObjectExternalId.
- `customObjectExternalId` string — Anchor: custom object externalId (scoped by customObjectType).
- `direction` 'children' | 'parents' — For kind 'co_to_co': list the anchor's children (default) or parents.
- `include_removed` boolean — Include soft-deleted (unlinked) edges. Defaults to false.
- `relationshipTypeId` string — Filter by relationship type id.
- `role` string — Filter by edge role.
- `limit` integer — Max items to return, 1-1000 (default 100).
- `cursor` string — Opaque pagination token from a previous response's `next_cursor`. Omit for the first page.

## Response `200`

Success

- object
  - `data` union[], required
    - union
      - object
        - `kind` 'person_to_co', required
        - `personExternalId` string, required
        - `customObjectType` string, required
        - `customObjectExternalId` string, required
        - `relationshipTypeId` string, nullable, required
        - `role` string, nullable, required
        - `attributes` object, required
        - `createdAt` string, required — ISO 8601 timestamp.
        - `updatedAt` string, required — ISO 8601 timestamp.
      - object
        - `kind` 'co_to_co', required
        - `parentCustomObjectType` string, required
        - `parentExternalId` string, required
        - `childCustomObjectType` string, required
        - `childExternalId` string, required
        - `relationshipTypeId` string, nullable, required
        - `role` string, nullable, required
        - `attributes` object, required
        - `createdAt` string, required — ISO 8601 timestamp.
        - `updatedAt` string, required — ISO 8601 timestamp.
  - `next_cursor` string, nullable, required

## Other responses

- `400` — Validation failed or the request cannot proceed.
- `401` — Missing, malformed, or revoked API key.
- `404` — The resource does not exist in this organization.
- `409` — Conflicts with the current state (duplicates, wrong lifecycle state).
- `422` — The request is well-formed but semantically invalid.
- `429` — Rate limit exceeded — retry after `Retry-After`.
- `500` — Internal server error.
- `503` — Transient error — retry with a narrower request.

---

[API](https://skmtc.net/useboom/apis/boom-api.md) · [All operations](https://skmtc.net/useboom/apis/boom-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/useboom/boom-api/revisions/00f873e07076/schema)
