## List custom object records

`client.customObject.list(stringentitySlug, CustomObjectListParamsquery?, RequestOptionsoptions?): ObjectListResponse`

**get** `/v1/objects/{entitySlug}`

Returns a paginated list of records for the specified custom object type. 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. 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>.

### Parameters

- `entitySlug: string`

  The slug of the custom object type.

- `query: CustomObjectListParams`

  - `limit?: number`

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

  - `offset?: number`

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

### Returns

- `ObjectListResponse`

  - `data: Array<Data>`

    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: Record<string, Fields>`

      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 | number | boolean | 3 more | null`

        The field value, or null if unset.

        - `string`

        - `number`

        - `boolean`

        - `Array<string>`

        - `Address`

          - `city?: string | null`

            City name.

          - `country?: string | null`

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

          - `latitude?: number | null`

            Latitude coordinate.

          - `longitude?: number | null`

            Longitude coordinate.

          - `postalCode?: string | null`

            Postal or ZIP code.

          - `state?: string | null`

            State or province.

          - `street?: string | null`

            Street address line 1.

          - `street2?: string | null`

            Street address line 2.

        - `FullName`

          - `firstName?: string | null`

            The contact's first name.

          - `lastName?: string | null`

            The contact's last name.

      - `valueType: "ADDRESS" | "CHECKBOX" | "CURRENCY" | 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 | null`

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

    - `relationships: Record<string, Relationships>`

      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<string>`

        IDs of the related entities.

      - `directions?: Directions`

        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: AsDestination`

          The current record is the destination (incoming) endpoint.

          - `cardinality: "HAS_ONE" | "HAS_MANY"`

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

            - `"HAS_ONE"`

            - `"HAS_MANY"`

          - `values: Array<string>`

            IDs of the related entities in this direction.

        - `asSource: AsSource`

          The current record is the source (outgoing) endpoint.

          - `cardinality: "HAS_ONE" | "HAS_MANY"`

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

            - `"HAS_ONE"`

            - `"HAS_MANY"`

          - `values: Array<string>`

            IDs of the related entities in this direction.

    - `updatedAt: string | null`

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

    - `externalId?: string | null`

      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

```typescript
import Lightfield from 'lightfield';

const client = new Lightfield({
  apiKey: 'My API Key',
});

const customObjects = await client.customObject.list('entitySlug');

console.log(customObjects.data);
```

#### 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
}
```
