---
title: "List CRM Users"
method: GET
path: "/v1/crm-users"
tags: ["CRM", "v1"]
---

# List CRM Users

`GET /v1/crm-users`

## Request

- Base URL: `https://api.leadfeeder.com`
- URL: `https://api.leadfeeder.com/v1/crm-users`
- Auth: one of:
  - API key in header `X-Api-Key`
  - OAuth 2
    - Authorization code: `https://api.leadfeeder.com/v1/oauth/authorize`
    - Token URL: `https://api.leadfeeder.com/v1/oauth/token` scopes: `crm_records:read`

List the users of the account's primary CRM, e.g. to pick a `crm_owner_id` for a CRM create job. Each CRM user links to the Leadfeeder user it maps to, if any. Results are cursor-paginated. Returns an empty list when the account has no CRM connected.

Credit Note: Listing CRM users does not consume credits.

:::info
Requires the `crm_records:read` OAuth2 scope.
:::

## Query parameters

- `account_id` string, required
- `page[cursor]` string
- `page[size]` integer

## Response `200`

List of CRM users

- object
  - `data` CRMUserV1[], required
    - `attributes` object, required
      - `email` string
      - `first_name` string: Deprecated and never populated; use `name`. Retained for backward compatibility.
      - `name` string
      - `remote_id` string: The crm user's id in the third-party CRM (distinct from the Leadfeeder uuid `id`).
    - `id` string, required: The Leadfeeder uuid of the crm user
    - `relationships` object, required
      - `user` object, nullable: The Leadfeeder account user this crm user maps to, or null when there is no match.
        - `id` string
        - `type` 'user'
    - `type` 'crm_user', required: The type of the object
  - `meta` object, required
    - `credits` object, required
      - `charged` number, required: How many credits were consumed for this request.
    - `pagination` object, required
      - `next_cursor` string, nullable
      - `total_count` integer, required
    - `request_id` string, required: A unique identifier assigned to each API request for end-to-end traceability.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized. The request was rejected because the credentials are missing, invalid, expired, or have been revoked. The client must re-authenticate before retrying. Clients can differentiate via the `code` value of the first item in `errors`.
- `403`: Forbidden. The credentials are valid but the caller is not authorized to perform the request — typically because the user lacks the required permission, the OAuth scope is insufficient, the subscription plan does not include the required entitlement, the `account_id` does not belong to the authenticated user, or the target list is read-only and its members cannot be modified. Clients can differentiate via the `code` value of the first item in `errors`.
- `429`: Too many requests. Either the per-second rate limit or the monthly quota configured for the API key / OAuth application has been exceeded. Clients can differentiate via the `code` value of the first item in `errors`.
- `500`: Internal server error
- `504`: Server timeout

## Changes

> 46 revisions in range; 1 not diffed.

- **2026-10-28** `0ce28f9eef77`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/leadfeeder/apis/leadfeeder-public-api/changes/v1/crm-users/get.md)

---

[API](https://skmtc.dev/leadfeeder/apis/leadfeeder-public-api.md) - [All operations](https://skmtc.dev/leadfeeder/apis/leadfeeder-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/leadfeeder/apis/leadfeeder-public-api/revisions/686d4e39eb05?raw)
