## List contacts

`$ lightfield contact list`

**get** `/v1/contacts`

Returns a paginated list of contacts. Results are sorted by when the record was created in Lightfield (`createdAt`), newest first. Use `offset` and `limit` to paginate through results, and `$field` query parameters to filter. Pass `status=trashed` to list contacts currently in the trash instead of live records. Listing trashed records additionally requires the `contacts:restore` scope. See <u>[List endpoints](/using-the-api/list-endpoints/)</u> for more information about <u>[pagination](/using-the-api/list-endpoints/#pagination)</u> and <u>[filtering](/using-the-api/list-endpoints/#filtering)</u>.

**[Required scope](/using-the-api/scopes/):** `contacts:read`

**[Rate limit category](/using-the-api/rate-limits/):** Search

### Parameters

- `--limit: optional number`

  Maximum number of records to return. Defaults to 25, maximum 25.

- `--offset: optional number`

  Number of records to skip for pagination. Defaults to 0.

- `--status: optional "active" or "trashed"`

  Which records to return by trash state. Defaults to "active". Use "trashed" to list records currently in the trash; this additionally requires this resource's `restore` scope.

### Returns

- `contact_list_response: object { data, object, totalCount }`

  - `data: array of object { id, createdAt, fields, 4 more }`

    Array of entity objects for the current page.

    - `id: string`

      Unique identifier for the entity.

    - `createdAt: string`

      ISO 8601 timestamp of when the entity was created.

    - `fields: map[object { value, valueType } ]`

      Map of field names to their typed values. System fields are prefixed with `$` (e.g. `$name`, `$email`); custom attributes use their bare slug.

      - `value: string or number or boolean or 3 more`

        The field value, or null if unset.

        - `union_member_0: string`

        - `union_member_1: number`

        - `union_member_2: boolean`

        - `union_member_3: array of string`

        - `Address: object { city, country, latitude, 5 more }`

          - `city: optional string`

            City name.

          - `country: optional string`

            2-letter ISO 3166-1 alpha-2 country code.

          - `latitude: optional number`

            Latitude coordinate.

          - `longitude: optional number`

            Longitude coordinate.

          - `postalCode: optional string`

            Postal or ZIP code.

          - `state: optional string`

            State or province.

          - `street: optional string`

            Street address line 1.

          - `street2: optional string`

            Street address line 2.

        - `FullName: object { firstName, lastName }`

          - `firstName: optional string`

            The contact's first name.

          - `lastName: optional string`

            The contact's last name.

      - `valueType: "ADDRESS" or "CHECKBOX" or "CURRENCY" or 12 more`

        The data type of the field.

        - `"ADDRESS"`

        - `"CHECKBOX"`

        - `"CURRENCY"`

        - `"DATETIME"`

        - `"EMAIL"`

        - `"FULL_NAME"`

        - `"MARKDOWN"`

        - `"MULTI_SELECT"`

        - `"NUMBER"`

        - `"SINGLE_SELECT"`

        - `"SOCIAL_HANDLE"`

        - `"TELEPHONE"`

        - `"TEXT"`

        - `"URL"`

        - `"HTML"`

    - `httpLink: string`

      URL to view the entity in the Lightfield web app, or null.

    - `relationships: map[object { cardinality, objectType, values, directions } ]`

      Map of relationship names to their associated entities. System relationships are prefixed with `$` (e.g. `$owner`, `$contact`). A self-referential relationship keeps its merged values and includes optional directional values. List filters select the current record's role with `:asSource` or `:asDestination`, for example `?parent:asSource[contains]=account_id`.

      - `cardinality: string`

        Whether the relationship is `has_one` or `has_many`.

      - `objectType: string`

        The type of the related object (e.g. `account`, `contact`).

      - `values: array of string`

        IDs of the related entities.

      - `directions: optional object { asDestination, asSource }`

        Directional values for a self-referential relationship. List filters use the relationship key with `:asSource` or `:asDestination`; writes continue to use the bare key.

        - `asDestination: object { cardinality, values }`

          The current record is the destination (incoming) endpoint.

          - `cardinality: "HAS_ONE" or "HAS_MANY"`

            Whether this endpoint direction is `HAS_ONE` or `HAS_MANY`.

            - `"HAS_ONE"`

            - `"HAS_MANY"`

          - `values: array of string`

            IDs of the related entities in this direction.

        - `asSource: object { cardinality, values }`

          The current record is the source (outgoing) endpoint.

          - `cardinality: "HAS_ONE" or "HAS_MANY"`

            Whether this endpoint direction is `HAS_ONE` or `HAS_MANY`.

            - `"HAS_ONE"`

            - `"HAS_MANY"`

          - `values: array of string`

            IDs of the related entities in this direction.

    - `updatedAt: string`

      ISO 8601 timestamp of when the entity was last updated, or null.

    - `externalId: optional string`

      External identifier for the entity, or null if unset.

  - `object: string`

    The object type, always `"list"`.

  - `totalCount: number`

    Total number of entities matching the query.

### Example

```cli
lightfield contact list \
  --api-key 'My API Key'
```

#### Response

```json
{
  "data": [
    {
      "id": "id",
      "createdAt": "createdAt",
      "fields": {
        "foo": {
          "value": "string",
          "valueType": "ADDRESS"
        }
      },
      "httpLink": "httpLink",
      "relationships": {
        "foo": {
          "cardinality": "cardinality",
          "objectType": "objectType",
          "values": [
            "string"
          ],
          "directions": {
            "asDestination": {
              "cardinality": "HAS_ONE",
              "values": [
                "string"
              ]
            },
            "asSource": {
              "cardinality": "HAS_ONE",
              "values": [
                "string"
              ]
            }
          }
        }
      },
      "updatedAt": "updatedAt",
      "externalId": "externalId"
    }
  ],
  "object": "object",
  "totalCount": 0
}
```
