---
title: "Load crm records"
method: GET
path: "/api/v1/business/crm-records/load"
tags: ["business"]
---

# Load crm records

`GET /api/v1/business/crm-records/load`

## Request

- Base URL: `https://point11.ai`
- URL: `https://point11.ai/api/v1/business/crm-records/load`
- Auth: OAuth 2 (authorization code, authorization URL `https://auth.point11.ai/oauth2/authorize`, token URL `https://auth.point11.ai/oauth2/token`)

Read a connected CRM record set whole: every record of everything, a HubSpot list or a Salesforce list view, in the provider's stable order, with the values of the named columns (never a locked field). Start with fieldsOnly (no cursor): the object's field catalog, the set's total and starts, cursors that together read every record exactly once. Then read each start's chain chunk by chunk, each read naming its cursor and columns, following nextCursor until it is null, the chains side by side; a chunk carries no catalog, total or starts. mode is audience (the default: only fields an anonymous audience may map) or contacts (the follow picker's: also each contact's name and email), which answers the member's own Point11 dashboard session alone. Nothing is stored.

## Query parameters

- `connectionId` string, uuid, required
- `objectType` 'contacts' | 'companies' | 'leads', required
- `listKind` 'all' | 'list' | 'list_view', required
- `listId` string
- `listLabel` string, required
- `mode` 'audience' | 'contacts'
- `columns` string[]
- `cursor` string
- `fieldsOnly` boolean

## Headers

- `Point11-Organization` string, uuid

## Response `200`

Success.

- BusinessCrmRecordsLoadResponse
  - `properties` object[], nullable, required
    - `key` string, required
    - `label` string, required
    - `type` 'enumeration' | 'date' | 'text' | 'number' | 'other', required
    - `options` object[], nullable, required
      - `value` string, required
      - `label` string, required
    - `relation` 'self' | 'company', required
    - `group` object, nullable, required
      - `key` string, required
      - `label` string, required
      - `order` number, required
      - `custom` boolean, required
    - `custom` boolean, required
    - `tucked` 'hidden' | 'duplicate' | 'record_key' | 'consent' | 'stage_history' | 'not_on_layout', nullable, required
    - `role` 'stage' | 'created' | 'updated', nullable, required
    - `family` object, nullable, required
      - `kind` 'stage_entered' | 'stage_exited', required
      - `stage` string, required
    - `suggested` boolean, required
    - `bookkeeping` boolean, required
    - `identity` boolean, required
  - `rows` object[], required
    - `id` string, required
    - `values` object, required
  - `total` integer, nullable, required
  - `nextCursor` string, nullable, required
  - `starts` string[], nullable, required

## Other responses

- `400`: The input, query, or Idempotency-Key is invalid.
- `401`: The bearer is missing, expired, or not accepted.
- `403`: The credential lacks the operation's scope or role, or the operation needs a different door.
- `404`: The resource or organization does not exist for this caller.
- `405`: This path takes another HTTP method, named in `Allow`.
- `409`: The request conflicts with current state or with prior use of its Idempotency-Key.
- `413`: The request, or the answer it asks for, is too large; narrow it.
- `429`: The credential's rate budget is spent; retry after `Retry-After` seconds.
- `500`: An unexpected server failure; retry later. Only `request_id` identifies it.
- `503`: A dependency is temporarily unavailable; retry after `Retry-After` seconds.
- `default`: Another status a product answers for its own refusal (for example `415` for an unsupported attachment); branch on `code`.

---

[API](https://skmtc.dev/point11/apis/point11-api.md) · [All operations](https://skmtc.dev/point11/apis/point11-api/llms.txt) · [OpenAPI document](https://skmtc.dev/point11/apis/point11-api/revisions/36a84c7aca11?raw)
