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

# Borrowers

> Borrower (customer) master records held for the lender

| Property      | Value                       |
| ------------- | --------------------------- |
| Dataset code  | `D01`                       |
| Section code  | `S1` — Customers & Accounts |
| Endpoint path | `/exports/S1/D01`           |
| Cursor field  | `updated_at`                |
| Page size     | `1`–`1000` (default `500`)  |
| Availability  | Available (v1.2)            |
| Pagination    | Direct (constant page size) |

Each row is one borrower (customer) record we hold for this lender. It includes contact details, masked national/passport identifiers, language preference, the do-not-contact flag, and nested addresses/phones/emails.

## Fields

| Field                | Type            | Description                                          | Notes                                                                    |
| -------------------- | --------------- | ---------------------------------------------------- | ------------------------------------------------------------------------ |
| `public_id`          | string          | Stable per-row identifier (string-cast Mongo `_id`). | Use as the warehouse primary key                                         |
| `first_name`         | string          | Borrower first name.                                 |                                                                          |
| `last_name`          | string          | Borrower last name.                                  |                                                                          |
| `country`            | string          | Country code or name.                                |                                                                          |
| `preferred_language` | string          | Preferred communication language (`en`, `ar`, …).    | Source: `pref_lang`                                                      |
| `do_not_contact`     | boolean         | `true` when contact must be suppressed.              |                                                                          |
| `dispute`            | boolean         | `true` when the borrower has flagged a dispute.      |                                                                          |
| `id_number`          | string          | National ID.                                         | **Masked** — last 4 visible, rest masked with `*`                        |
| `passport_number`    | string          | Passport number.                                     | **Masked** — last 4 visible, rest masked with `*`                        |
| `dob`                | string          | Date of birth.                                       | **Masked** — year only (4 digits)                                        |
| `addresses`          | array of object | Address objects.                                     | Inner keys: `country`, `city`, `area`, `type`                            |
| `phones`             | array of object | Phone objects.                                       | Source array: `phone`. Inner: `key_masked` (phone-middle masked) + `dnc` |
| `email`              | array of object | Email objects.                                       | Inner keys: `key`, `dnc`                                                 |
| `created_at`         | string          | Record creation timestamp (ISO-8601).                |                                                                          |
| `updated_at`         | string          | Last-modified timestamp (ISO-8601).                  | Cursor field                                                             |

### `addresses[]` object

| Field     | Type   | Description                         |
| --------- | ------ | ----------------------------------- |
| `country` | string | Country code or name.               |
| `city`    | string | City.                               |
| `area`    | string | Area or district.                   |
| `type`    | string | Address type (e.g. `home`, `work`). |

### `phones[]` object

| Field        | Type    | Description                                                   |
| ------------ | ------- | ------------------------------------------------------------- |
| `key_masked` | string  | Phone number, phone-middle masked (first 3 + last 4 visible). |
| `dnc`        | boolean | `true` if this number is on the do-not-call list.             |

### `email[]` object

| Field | Type    | Description                           |
| ----- | ------- | ------------------------------------- |
| `key` | string  | Email address.                        |
| `dnc` | boolean | `true` if this address is suppressed. |

## Sample row

```json theme={null}
{
  "public_id": "6981c72d7b92d56a743324cf",
  "first_name": "Ahmed",
  "last_name": "Al-Otaibi",
  "country": "SA",
  "preferred_language": "ar",
  "do_not_contact": false,
  "dispute": false,
  "id_number": "***********5371",
  "passport_number": "****2206",
  "dob": "1990",
  "addresses": [
    { "country": "SA", "city": "Riyadh", "area": "Olaya", "type": "home" }
  ],
  "phones": [
    { "key_masked": "966*****7228", "dnc": false }
  ],
  "email": [
    { "key": "ahmed.al-otaibi@example.com", "dnc": false }
  ],
  "created_at": "2026-01-12T08:42:01.000Z",
  "updated_at": "2026-05-30T14:11:22.000Z"
}
```

<Warning>
  `id_number`, `passport_number`, `dob`, and each phone's `key_masked` are always returned masked. The raw values are never exposed by this endpoint.
</Warning>

## Pagination characteristics

This dataset is **direct** — filtered to your tenant by `lender_id` on the collection itself, so each page returns a constant number of rows until the last page.

## Use cases

* Customer master sync into your warehouse.
* PII-masked enrichment table for analytics.
* Do-not-contact (DNC) suppression upstream of outreach.

***

<Snippet file="snippets/support-info.mdx" />
