Skip to content

Custom Object

Custom objects and relationships are available on Pro and Growth plans. Records can be fetched and manipulated via these endpoints, and definitions can be fetched to discover the available custom object types in the system.

Create a custom object record
client.customObject.create(stringentitySlug, CustomObjectCreateParams { fields, relationships } body, RequestOptionsoptions?): ObjectCreateResponse { id, createdAt, fields, 4 more }
POST/v1/objects/{entitySlug}/values
Get a custom object record
client.customObject.retrieve(stringid, CustomObjectRetrieveParams { entitySlug } params, RequestOptionsoptions?): Entity { id, createdAt, fields, 4 more } | Restricted { id, restricted }
GET/v1/objects/{entitySlug}/values/{id}
Update a custom object record
client.customObject.update(stringid, CustomObjectUpdateParams { entitySlug, fields, relationships } params, RequestOptionsoptions?): ObjectUpdateResponse { id, createdAt, fields, 4 more }
POST/v1/objects/{entitySlug}/values/{id}
Delete a custom object record
client.customObject.delete(stringid, CustomObjectDeleteParams { entitySlug, body } params, RequestOptionsoptions?): ObjectDeleteResponse { id, createdAt, fields, 4 more }
DELETE/v1/objects/{entitySlug}/values/{id}
Restore a custom object record
client.customObject.restore(stringid, CustomObjectRestoreParams { entitySlug, body } params, RequestOptionsoptions?): ObjectRestoreResponse { id, createdAt, fields, 4 more }
POST/v1/objects/{entitySlug}/values/{id}/restore
List custom object records
client.customObject.list(stringentitySlug, CustomObjectListParams { limit, offset } query?, RequestOptionsoptions?): ObjectListResponse { data, object, totalCount }
GET/v1/objects/{entitySlug}
Get definitions for a custom object type
client.customObject.definitions(stringentitySlug, RequestOptionsoptions?): ObjectDefinitionsResponse { fieldDefinitions, objectType, relationshipDefinitions }
GET/v1/objects/{entitySlug}/definitions
List custom object types
client.customObject.listDefinitions(RequestOptionsoptions?): ObjectListDefinitionsResponse { data }
GET/v1/objects
Get field value history for a custom object record
client.customObject.fieldHistory(stringfieldKey, CustomObjectFieldHistoryParams { entitySlug, id, after, limit } params, RequestOptionsoptions?): ObjectFieldHistoryResponse { data, hasMore, nextCursor }
GET/v1/objects/{entitySlug}/values/{id}/fields/{fieldKey}/history
ModelsExpand Collapse
CustomObjectCreateResponse { id, createdAt, fields, 4 more }
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.

One of the following:
string
number
boolean
Array<string>
Address { city, country, latitude, 5 more }
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, lastName }
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.

One of the following:
"ADDRESS"
"CHECKBOX"
"CURRENCY"
"DATETIME"
"EMAIL"
"FULL_NAME"
"MARKDOWN"
"MULTI_SELECT"
"NUMBER"
"SINGLE_SELECT"
"SOCIAL_HANDLE"
"TELEPHONE"
"TEXT"
"URL"
"HTML"
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 { 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: AsDestination { cardinality, values }

The current record is the destination (incoming) endpoint.

cardinality: "HAS_ONE" | "HAS_MANY"

Whether this endpoint direction is HAS_ONE or HAS_MANY.

One of the following:
"HAS_ONE"
"HAS_MANY"
values: Array<string>

IDs of the related entities in this direction.

asSource: AsSource { cardinality, values }

The current record is the source (outgoing) endpoint.

cardinality: "HAS_ONE" | "HAS_MANY"

Whether this endpoint direction is HAS_ONE or HAS_MANY.

One of the following:
"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.

CustomObjectDefinitionsResponse { fieldDefinitions, objectType, relationshipDefinitions }
fieldDefinitions: Record<string, FieldDefinitions>

Map of field keys to their definitions, including both system and custom fields.

description: string | null

Description of the field, or null.

label: string

Human-readable display name of the field.

typeConfiguration: TypeConfiguration { currency, handleService, multipleValues, 3 more }

Type-specific configuration (e.g. select options, currency code).

currency?: string

ISO 4217 3-letter currency code.

handleService?: "TWITTER" | "LINKEDIN" | "FACEBOOK" | "INSTAGRAM"

Social platform associated with this handle field.

One of the following:
"TWITTER"
"LINKEDIN"
"FACEBOOK"
"INSTAGRAM"
multipleValues?: boolean

Whether this field accepts multiple values.

options?: Array<Option>

Available options for select fields.

id: string

Unique identifier of the select option.

label: string

Human-readable display name of the option.

description?: string | null

Description of the option, or null.

parentId?: string

For a dependent select, the ID of the option in the parent field named by typeConfiguration.parentFieldKey that owns this option. Absent for ordinary selects.

parentFieldKey?: string

For a dependent select, the field key whose selected option determines which of this field’s options apply. Absent for ordinary selects.

unique?: boolean

Whether values for this field must be unique.

valueType: "ADDRESS" | "CHECKBOX" | "CURRENCY" | 12 more

Data type of the field.

One of the following:
"ADDRESS"
"CHECKBOX"
"CURRENCY"
"DATETIME"
"EMAIL"
"FULL_NAME"
"MARKDOWN"
"MULTI_SELECT"
"NUMBER"
"SINGLE_SELECT"
"SOCIAL_HANDLE"
"TELEPHONE"
"TEXT"
"URL"
"HTML"
id?: string

Unique identifier of the field definition.

readOnly?: boolean

true for fields that are not writable via the API (e.g. AI-generated summaries). false or absent for writable fields.

objectType: string

The object type these definitions belong to (e.g. account).

relationshipDefinitions: Record<string, RelationshipDefinitions>

Map of relationship keys to their definitions. Self-referential relationships include optional directional metadata on the bare definition.

cardinality: "HAS_ONE" | "HAS_MANY"

Whether this is a has_one or has_many relationship.

One of the following:
"HAS_ONE"
"HAS_MANY"
description: string | null

Description of the relationship, or null.

label: string

Human-readable display name of the relationship.

objectType: string

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

id?: string

Unique identifier of the relationship definition.

directions?: Directions { asDestination, asSource }

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

asDestination: AsDestination { cardinality, label }

The current record is the destination (incoming) endpoint.

cardinality: "HAS_ONE" | "HAS_MANY"

Whether this endpoint direction is HAS_ONE or HAS_MANY.

One of the following:
"HAS_ONE"
"HAS_MANY"
label: string

Human-readable display name for this endpoint direction.

asSource: AsSource { cardinality, label }

The current record is the source (outgoing) endpoint.

cardinality: "HAS_ONE" | "HAS_MANY"

Whether this endpoint direction is HAS_ONE or HAS_MANY.

One of the following:
"HAS_ONE"
"HAS_MANY"
label: string

Human-readable display name for this endpoint direction.

CustomObjectDeleteResponse { id, createdAt, fields, 4 more }
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.

One of the following:
string
number
boolean
Array<string>
Address { city, country, latitude, 5 more }
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, lastName }
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.

One of the following:
"ADDRESS"
"CHECKBOX"
"CURRENCY"
"DATETIME"
"EMAIL"
"FULL_NAME"
"MARKDOWN"
"MULTI_SELECT"
"NUMBER"
"SINGLE_SELECT"
"SOCIAL_HANDLE"
"TELEPHONE"
"TEXT"
"URL"
"HTML"
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 { 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: AsDestination { cardinality, values }

The current record is the destination (incoming) endpoint.

cardinality: "HAS_ONE" | "HAS_MANY"

Whether this endpoint direction is HAS_ONE or HAS_MANY.

One of the following:
"HAS_ONE"
"HAS_MANY"
values: Array<string>

IDs of the related entities in this direction.

asSource: AsSource { cardinality, values }

The current record is the source (outgoing) endpoint.

cardinality: "HAS_ONE" | "HAS_MANY"

Whether this endpoint direction is HAS_ONE or HAS_MANY.

One of the following:
"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.

CustomObjectFieldHistoryResponse { data, hasMore, nextCursor }
data: Array<Data>

Recorded values for the field, newest first.

displayValue: string

Human-readable rendering of the value (e.g. a select option label), suitable for display.

isCreate: boolean

True for the record’s original value. Only set when the full history fits in the response (never on a truncated/paginated page).

recordedAt: string

ISO 8601 timestamp of when this value was recorded.

value: string | number | boolean | 3 more | null

The field value, or null if unset.

One of the following:
string
number
boolean
Array<string>
Address { city, country, latitude, 5 more }
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, lastName }
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.

One of the following:
"ADDRESS"
"CHECKBOX"
"CURRENCY"
"DATETIME"
"EMAIL"
"FULL_NAME"
"MARKDOWN"
"MULTI_SELECT"
"NUMBER"
"SINGLE_SELECT"
"SOCIAL_HANDLE"
"TELEPHONE"
"TEXT"
"URL"
"HTML"
hasMore: boolean

Whether more history exists beyond this page.

nextCursor: string | null

Cursor to pass as after to fetch the next page, or null when there are no more entries.

CustomObjectListDefinitionsResponse { data }
data: Array<Data>

All object types available to the caller.

label: string

Human-readable display name.

objectType: string

The slug used to reference this object type in the API.

CustomObjectListResponse { data, object, totalCount }
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.

One of the following:
string
number
boolean
Array<string>
Address { city, country, latitude, 5 more }
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, lastName }
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.

One of the following:
"ADDRESS"
"CHECKBOX"
"CURRENCY"
"DATETIME"
"EMAIL"
"FULL_NAME"
"MARKDOWN"
"MULTI_SELECT"
"NUMBER"
"SINGLE_SELECT"
"SOCIAL_HANDLE"
"TELEPHONE"
"TEXT"
"URL"
"HTML"
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 { 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: AsDestination { cardinality, values }

The current record is the destination (incoming) endpoint.

cardinality: "HAS_ONE" | "HAS_MANY"

Whether this endpoint direction is HAS_ONE or HAS_MANY.

One of the following:
"HAS_ONE"
"HAS_MANY"
values: Array<string>

IDs of the related entities in this direction.

asSource: AsSource { cardinality, values }

The current record is the source (outgoing) endpoint.

cardinality: "HAS_ONE" | "HAS_MANY"

Whether this endpoint direction is HAS_ONE or HAS_MANY.

One of the following:
"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.

minimum0
maximum9007199254740991
CustomObjectRestoreResponse { id, createdAt, fields, 4 more }
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.

One of the following:
string
number
boolean
Array<string>
Address { city, country, latitude, 5 more }
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, lastName }
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.

One of the following:
"ADDRESS"
"CHECKBOX"
"CURRENCY"
"DATETIME"
"EMAIL"
"FULL_NAME"
"MARKDOWN"
"MULTI_SELECT"
"NUMBER"
"SINGLE_SELECT"
"SOCIAL_HANDLE"
"TELEPHONE"
"TEXT"
"URL"
"HTML"
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 { 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: AsDestination { cardinality, values }

The current record is the destination (incoming) endpoint.

cardinality: "HAS_ONE" | "HAS_MANY"

Whether this endpoint direction is HAS_ONE or HAS_MANY.

One of the following:
"HAS_ONE"
"HAS_MANY"
values: Array<string>

IDs of the related entities in this direction.

asSource: AsSource { cardinality, values }

The current record is the source (outgoing) endpoint.

cardinality: "HAS_ONE" | "HAS_MANY"

Whether this endpoint direction is HAS_ONE or HAS_MANY.

One of the following:
"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.

CustomObjectRetrieveResponse = Entity { id, createdAt, fields, 4 more } | Restricted { id, restricted }
One of the following:
Entity { id, createdAt, fields, 4 more }
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.

One of the following:
string
number
boolean
Array<string>
Address { city, country, latitude, 5 more }
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, lastName }
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.

One of the following:
"ADDRESS"
"CHECKBOX"
"CURRENCY"
"DATETIME"
"EMAIL"
"FULL_NAME"
"MARKDOWN"
"MULTI_SELECT"
"NUMBER"
"SINGLE_SELECT"
"SOCIAL_HANDLE"
"TELEPHONE"
"TEXT"
"URL"
"HTML"
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 { 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: AsDestination { cardinality, values }

The current record is the destination (incoming) endpoint.

cardinality: "HAS_ONE" | "HAS_MANY"

Whether this endpoint direction is HAS_ONE or HAS_MANY.

One of the following:
"HAS_ONE"
"HAS_MANY"
values: Array<string>

IDs of the related entities in this direction.

asSource: AsSource { cardinality, values }

The current record is the source (outgoing) endpoint.

cardinality: "HAS_ONE" | "HAS_MANY"

Whether this endpoint direction is HAS_ONE or HAS_MANY.

One of the following:
"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.

Restricted { id, restricted }
id: string

Unique identifier for the record, the same ID a full response carries.

restricted: Restricted { name, reason }

Present only on a record the caller may see by name only. Check for it before reading fields or relationships, which a restricted record does not carry.

name: string

The record’s display name, or its ID when it has none.

reason: "NO_ACCESS" | "INHERITED"

Why the record is shown by name only.

One of the following:
"NO_ACCESS"
"INHERITED"
CustomObjectUpdateResponse { id, createdAt, fields, 4 more }
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.

One of the following:
string
number
boolean
Array<string>
Address { city, country, latitude, 5 more }
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, lastName }
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.

One of the following:
"ADDRESS"
"CHECKBOX"
"CURRENCY"
"DATETIME"
"EMAIL"
"FULL_NAME"
"MARKDOWN"
"MULTI_SELECT"
"NUMBER"
"SINGLE_SELECT"
"SOCIAL_HANDLE"
"TELEPHONE"
"TEXT"
"URL"
"HTML"
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 { 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: AsDestination { cardinality, values }

The current record is the destination (incoming) endpoint.

cardinality: "HAS_ONE" | "HAS_MANY"

Whether this endpoint direction is HAS_ONE or HAS_MANY.

One of the following:
"HAS_ONE"
"HAS_MANY"
values: Array<string>

IDs of the related entities in this direction.

asSource: AsSource { cardinality, values }

The current record is the source (outgoing) endpoint.

cardinality: "HAS_ONE" | "HAS_MANY"

Whether this endpoint direction is HAS_ONE or HAS_MANY.

One of the following:
"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.