## Create a custom object record

`client.customObject.create(stringentitySlug, CustomObjectCreateParamsbody, RequestOptionsoptions?): ObjectCreateResponse`

**post** `/v1/objects/{entitySlug}/values`

Creates a new record for the specified custom object type.

### Parameters

- `entitySlug: string`

  The slug of the custom object type.

- `body: CustomObjectCreateParams`

  - `fields: Record<string, string | number | boolean | 3 more | null>`

    Field names to values for the new record.

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

  - `relationships?: Record<string, string | Array<string>>`

    Relationship names to entity ID(s) to associate.

    - `string`

    - `Array<string>`

### Returns

- `ObjectCreateResponse`

  - `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`).

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

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

### Example

```typescript
import Lightfield from 'lightfield';

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

const customObject = await client.customObject.create('entitySlug', { fields: { foo: 'string' } });

console.log(customObject.id);
```

#### Response

```json
{
  "id": "id",
  "createdAt": "createdAt",
  "fields": {
    "foo": {
      "value": "string",
      "valueType": "ADDRESS"
    }
  },
  "httpLink": "httpLink",
  "relationships": {
    "foo": {
      "cardinality": "cardinality",
      "objectType": "objectType",
      "values": [
        "string"
      ]
    }
  },
  "updatedAt": "updatedAt",
  "externalId": "externalId"
}
```
