# Entity API - **Base URL:** `https://entity.sls.epilot.io` - **Full API Docs:** [https://docs.epilot.io/api/entity](https://docs.epilot.io/api/entity) ## Usage ```ts import { epilot } from '@epilot/sdk' epilot.authorize(() => '') const { data } = await epilot.entity.listSchemas(...) ``` ### Tree-shakeable import ```ts import { getClient, authorize } from '@epilot/sdk/entity' const entityClient = getClient() authorize(entityClient, () => '') const { data } = await entityClient.listSchemas(...) ``` ## Operations **Schemas** - [`listSchemas`](#listschemas) - [`listSchemasV2`](#listschemasv2) - [`getSchema`](#getschema) - [`putSchema`](#putschema) - [`deleteSchema`](#deleteschema) - [`getJsonSchema`](#getjsonschema) - [`getSchemaExample`](#getschemaexample) - [`getSchemaVersions`](#getschemaversions) - [`freezeSchema`](#freezeschema) - [`unfreezeSchema`](#unfreezeschema) - [`listAvailableCapabilities`](#listavailablecapabilities) - [`listSchemaBlueprints`](#listschemablueprints) - [`listTaxonomyClassificationsForSchema`](#listtaxonomyclassificationsforschema) - [`createSchemaAttribute`](#createschemaattribute) - [`getSchemaAttribute`](#getschemaattribute) - [`putSchemaAttribute`](#putschemaattribute) - [`deleteSchemaAttribute`](#deleteschemaattribute) - [`createSchemaCapability`](#createschemacapability) - [`getSchemaCapability`](#getschemacapability) - [`putSchemaCapability`](#putschemacapability) - [`deleteSchemaCapability`](#deleteschemacapability) - [`createSchemaGroup`](#createschemagroup) - [`getSchemaGroup`](#getschemagroup) - [`putSchemaGroup`](#putschemagroup) - [`deleteSchemaGroup`](#deleteschemagroup) - [`createSchemaGroupHeadline`](#createschemagroupheadline) - [`getSchemaGroupHeadline`](#getschemagroupheadline) - [`putSchemaGroupHeadline`](#putschemagroupheadline) - [`deleteSchemaGroupHeadline`](#deleteschemagroupheadline) **Entities** - [`searchEntities`](#searchentities) - [`listEntities`](#listentities) - [`queryEntityGraph`](#queryentitygraph) - [`createEntity`](#createentity) - [`validateEntity`](#validateentity) - [`validateEntityV2`](#validateentityv2) - [`upsertEntity`](#upsertentity) - [`getEntityV2`](#getentityv2) - [`restoreEntity`](#restoreentity) - [`reindexEntity`](#reindexentity) - [`getEntity`](#getentity) - [`updateEntity`](#updateentity) - [`patchEntity`](#patchentity) - [`deleteEntity`](#deleteentity) - [`autocomplete`](#autocomplete) - [`wipeAllEntities`](#wipeallentities) - [`applyChangeset`](#applychangeset) - [`dismissChangeset`](#dismisschangeset) - [`listChangesets`](#listchangesets) **Activity** - [`createActivity`](#createactivity) - [`getActivity`](#getactivity) - [`attachActivity`](#attachactivity) - [`getEntityActivityFeed`](#getentityactivityfeed) **Relations** - [`getRelations`](#getrelations) - [`addRelations`](#addrelations) - [`removeRelations`](#removerelations) - [`getRelationsV2`](#getrelationsv2) - [`getRelationsV3`](#getrelationsv3) - [`getRelatedEntitiesCount`](#getrelatedentitiescount) - [`updateRelation`](#updaterelation) - [`deleteRelation`](#deleterelation) **Import-Export** - [`exportEntities`](#exportentities) - [`importEntities`](#importentities) **Saved Views** - [`listSavedViews`](#listsavedviews) - [`createSavedView`](#createsavedview) - [`getSavedView`](#getsavedview) - [`updateSavedView`](#updatesavedview) - [`patchSavedView`](#patchsavedview) - [`deleteSavedView`](#deletesavedview) - [`listFavoriteViewsForUser`](#listfavoriteviewsforuser) **Taxonomy** - [`listTaxonomies`](#listtaxonomies) - [`createTaxonomy`](#createtaxonomy) - [`getTaxonomy`](#gettaxonomy) - [`updateTaxonomy`](#updatetaxonomy) - [`deleteTaxonomy`](#deletetaxonomy) - [`updateClassificationsForTaxonomy`](#updateclassificationsfortaxonomy) - [`createTaxonomyClassification`](#createtaxonomyclassification) - [`getTaxonomyClassification`](#gettaxonomyclassification) - [`updateTaxonomyClassification`](#updatetaxonomyclassification) - [`deleteTaxonomyClassification`](#deletetaxonomyclassification) - [`taxonomyAutocomplete`](#taxonomyautocomplete) - [`taxonomiesClassificationsSearch`](#taxonomiesclassificationssearch) - [`getTaxonomyBulkActionJobs`](#gettaxonomybulkactionjobs) - [`getTaxonomyBulkActionJobById`](#gettaxonomybulkactionjobbyid) - [`cancelBulkAction`](#cancelbulkaction) - [`bulkMoveClassifications`](#bulkmoveclassifications) - [`bulkMergeClassifications`](#bulkmergeclassifications) - [`bulkDeleteClassifications`](#bulkdeleteclassifications) **Schemas** - [`ExportJobId`](#exportjobid) - [`Language`](#language) - [`IsTemplate`](#istemplate) - [`SchemaId`](#schemaid) - [`EntitySchema`](#entityschema) - [`EntitySchemaItem`](#entityschemaitem) - [`GenerateEntityTableAIFiltersRequest`](#generateentitytableaifiltersrequest) - [`GenerateEntityTableAIFiltersResponse`](#generateentitytableaifiltersresponse) - [`EntityTableFilterSearch`](#entitytablefiltersearch) - [`EntityTableFilterOption`](#entitytablefilteroption) - [`EntitySchemaGroup`](#entityschemagroup) - [`EntitySchemaGroupWithCompositeID`](#entityschemagroupwithcompositeid) - [`Attribute`](#attribute) - [`AttributeWithCompositeID`](#attributewithcompositeid) - [`BaseAttribute`](#baseattribute) - [`TextAttribute`](#textattribute) - [`LinkAttribute`](#linkattribute) - [`InternalAttribute`](#internalattribute) - [`BooleanAttribute`](#booleanattribute) - [`DateAttribute`](#dateattribute) - [`CountryAttribute`](#countryattribute) - [`SelectAttribute`](#selectattribute) - [`MultiSelectAttribute`](#multiselectattribute) - [`StatusAttribute`](#statusattribute) - [`SequenceAttribute`](#sequenceattribute) - [`FileAttribute`](#fileattribute) - [`CurrencyAttribute`](#currencyattribute) - [`SummaryField`](#summaryfield) - [`EntityAction`](#entityaction) - [`RelationAttribute`](#relationattribute) - [`UserRelationAttribute`](#userrelationattribute) - [`PartnerOrganisationAttribute`](#partnerorganisationattribute) - [`PortalAccessAttribute`](#portalaccessattribute) - [`DefaultAddressFields`](#defaultaddressfields) - [`AddressAttribute`](#addressattribute) - [`AddressRelationAttribute`](#addressrelationattribute) - [`PaymentMethodRelationAttribute`](#paymentmethodrelationattribute) - [`InvitationEmailAttribute`](#invitationemailattribute) - [`AutomationAttribute`](#automationattribute) - [`InternalUserAttribute`](#internaluserattribute) - [`PurposeAttribute`](#purposeattribute) - [`RepeatableAttribute`](#repeatableattribute) - [`TagsAttribute`](#tagsattribute) - [`MessageEmailAddressAttribute`](#messageemailaddressattribute) - [`NumberAttribute`](#numberattribute) - [`TableAttribute`](#tableattribute) - [`ConsentAttribute`](#consentattribute) - [`OrderedListAttribute`](#orderedlistattribute) - [`EmailAttribute`](#emailattribute) - [`PhoneAttribute`](#phoneattribute) - [`PaymentAttribute`](#paymentattribute) - [`PriceComponentAttribute`](#pricecomponentattribute) - [`ComputedAttribute`](#computedattribute) - [`PartnerStatusAttribute`](#partnerstatusattribute) - [`SummaryAttribute`](#summaryattribute) - [`GroupHeadline`](#groupheadline) - [`GroupHeadlineWithCompositeID`](#groupheadlinewithcompositeid) - [`EntitySlug`](#entityslug) - [`EntityCapability`](#entitycapability) - [`EntityCapabilityWithCompositeID`](#entitycapabilitywithcompositeid) - [`EntityViewDisabled`](#entityviewdisabled) - [`EntityDefaultTable`](#entitydefaulttable) - [`EntityDefaultCreate`](#entitydefaultcreate) - [`EntityDefaultEdit`](#entitydefaultedit) - [`RedirectEntityView`](#redirectentityview) - [`EntityId`](#entityid) - [`BaseEntity`](#baseentity) - [`Entity`](#entity) - [`NullableEntity`](#nullableentity) - [`EntityOwner`](#entityowner) - [`EntityAcl`](#entityacl) - [`HydratedEntity`](#hydratedentity) - [`EntityItem`](#entityitem) - [`EntityValidationError`](#entityvalidationerror) - [`EntityValidationResultSuccess`](#entityvalidationresultsuccess) - [`EntityValidationResultError`](#entityvalidationresulterror) - [`EntityValidationResult`](#entityvalidationresult) - [`EntityValidationV2Error`](#entityvalidationv2error) - [`EntityValidationV2ResultSuccess`](#entityvalidationv2resultsuccess) - [`EntityValidationV2ResultError`](#entityvalidationv2resulterror) - [`EntityValidationV2Result`](#entityvalidationv2result) - [`HydratedEntityItem`](#hydratedentityitem) - [`GetRelationsResp`](#getrelationsresp) - [`GetRelationsRespWithPagination`](#getrelationsrespwithpagination) - [`GetRelatedEntitiesCount`](#getrelatedentitiescount) - [`RelationEntity`](#relationentity) - [`RelationItem`](#relationitem) - [`EntitySearchIncludeDeletedParam`](#entitysearchincludedeletedparam) - [`EntitySearchParams`](#entitysearchparams) - [`EntityListParams`](#entitylistparams) - [`SearchFilter`](#searchfilter) - [`SearchFilterValue`](#searchfiltervalue) - [`EntitySearchOptions`](#entitysearchoptions) - [`FieldsParam`](#fieldsparam) - [`EntityImportParams`](#entityimportparams) - [`GraphQueryRequest`](#graphqueryrequest) - [`GraphSeed`](#graphseed) - [`GraphDefinition`](#graphdefinition) - [`GraphNode`](#graphnode) - [`GraphEdge`](#graphedge) - [`GraphQueryResponse`](#graphqueryresponse) - [`EntitySearchResults`](#entitysearchresults) - [`SearchMappings`](#searchmappings) - [`ActivityId`](#activityid) - [`ActivityCallerContext`](#activitycallercontext) - [`ActivityType`](#activitytype) - [`Activity`](#activity) - [`EntityOperation`](#entityoperation) - [`BaseActivityItem`](#baseactivityitem) - [`ActivityItem`](#activityitem) - [`BlueprintEntityId`](#blueprintentityid) - [`ListSavedViewsResults`](#listsavedviewsresults) - [`SavedViewId`](#savedviewid) - [`SavedViewItem`](#savedviewitem) - [`SavedViewPartial`](#savedviewpartial) - [`SavedView`](#savedview) - [`Taxonomy`](#taxonomy) - [`TaxonomyLocationId`](#taxonomylocationid) - [`TaxonomySearchIncludeArchivedParam`](#taxonomysearchincludearchivedparam) - [`TaxonomyClassification`](#taxonomyclassification) - [`ClassificationId`](#classificationid) - [`ClassificationIdOrPattern`](#classificationidorpattern) - [`ClassificationSlug`](#classificationslug) - [`TaxonomySlug`](#taxonomyslug) - [`ClassificationsUpdate`](#classificationsupdate) - [`TaxonomyBulkJobTriggerResponse`](#taxonomybulkjobtriggerresponse) - [`TaxonomyBulkJobStatus`](#taxonomybulkjobstatus) - [`TaxonomyBulkJobActionType`](#taxonomybulkjobactiontype) - [`TaxonomyBulkJob`](#taxonomybulkjob) - [`ESClusterAssignment`](#esclusterassignment) - [`SettingFlag`](#settingflag) - [`ErrorObject`](#errorobject) - [`ChangesetCreator`](#changesetcreator) - [`Changeset`](#changeset) - [`ChangesetMap`](#changesetmap) - [`MeterReadingChangesetEntry`](#meterreadingchangesetentry) - [`EditMode`](#editmode) - [`EditModeConfig`](#editmodeconfig) - [`FuzzyConfig`](#fuzzyconfig) - [`MatchStrategy`](#matchstrategy) ### `listSchemas` Get the latest versions of all schemas `GET /v1/entity/schemas` ```ts const { data } = await client.listSchemas({ unpublished: true, latest: true, exclude: ['...'], include: ['...'], }) ```
Response ```json { "results": [ { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "created_at": "string", "updated_at": "string", "comment": "string", "source": {}, "frozen": true, "latest": true, "_summary": true, "slug": "contact", "version": 1, "blueprint": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "feature_flag": "FF_MY_FEATURE_FLAG", "enable_setting": ["360_features"], "name": "Contact", "plural": "Contacts", "description": "Example description", "docs_url": "https://docs.epilot.io/docs/pricing/entities", "category": "customer_relations", "published": false, "draft": false, "icon": "person", "title_template": "{{first_name}} {{last_name}}", "ui_config": {}, "capabilities": [], "group_settings": [], "layout_settings": {}, "dialog_config": {}, "attributes": [], "_purpose": ["string"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "explicit_search_mappings": {}, "group_headlines": [] } ] } ```
--- ### `listSchemasV2` Get the latest versions of all schemas. Returns summary schemas by default (only summary attributes, no capabilities). Use ?full=true for complete schemas. `GET /v2/entity/schemas` ```ts const { data } = await client.listSchemasV2({ full: true, unpublished: true, latest: true, exclude: ['...'], include: ['...'], }) ```
Response ```json { "results": [ { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "created_at": "string", "updated_at": "string", "comment": "string", "source": {}, "frozen": true, "latest": true, "_summary": true, "slug": "contact", "version": 1, "blueprint": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "feature_flag": "FF_MY_FEATURE_FLAG", "enable_setting": ["360_features"], "name": "Contact", "plural": "Contacts", "description": "Example description", "docs_url": "https://docs.epilot.io/docs/pricing/entities", "category": "customer_relations", "published": false, "draft": false, "icon": "person", "title_template": "{{first_name}} {{last_name}}", "ui_config": {}, "capabilities": [], "group_settings": [], "layout_settings": {}, "dialog_config": {}, "attributes": [], "_purpose": ["string"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "explicit_search_mappings": {}, "group_headlines": [] } ] } ```
--- ### `getSchema` By default gets the current version of the Schema (frozen version if frozen, otherwise latest). Pass ?latest=true to get the latest version when the schema is frozen. Pass ?id= to get a specific versi `GET /v1/entity/schemas/{slug}` ```ts const { data } = await client.getSchema({ slug: 'example', id: '123e4567-e89b-12d3-a456-426614174000', latest: true, }) ```
Response ```json { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "created_at": "string", "updated_at": "string", "comment": "string", "source": { "id": "string", "type": "string" }, "frozen": true, "latest": true, "_summary": true, "slug": "contact", "version": 1, "blueprint": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "feature_flag": "FF_MY_FEATURE_FLAG", "enable_setting": ["360_features"], "name": "Contact", "plural": "Contacts", "description": "Example description", "docs_url": "https://docs.epilot.io/docs/pricing/entities", "category": "customer_relations", "published": false, "draft": false, "icon": "person", "title_template": "{{first_name}} {{last_name}}", "ui_config": { "table_view": { "view_type": "default", "row_actions": ["string"], "bulk_actions": ["string"], "navbar_actions": [], "enable_thumbnails": false }, "create_view": { "view_type": "default", "search_params": {} }, "edit_view": { "view_type": "default", "search_params": {}, "summary_attributes": ["email"] }, "single_view": { "view_type": "default", "search_params": {}, "summary_attributes": ["email"] }, "list_item": { "summary_attributes": [], "quick_actions": [], "ui_config": {} }, "sharing": { "show_sharing_button": true } }, "capabilities": [ { "id": "d5839b94-ba20-4225-a78e-76951d352bd6", "name": "customer_messaging", "title": "Messaging", "attributes": [], "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "app_id": "123e4567-e89b-12d3-a456-426614174000", "ui_config": {}, "ui_hooks": [], "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [], "schemas": [] } ], "group_settings": [ { "id": "e18a532b-ae79-4d86-a6a5-e5dbfb579d14", "label": "Contact Details", "expanded": true, "order": 1 }, { "id": "e9a1ae28-27ba-4fa0-a79c-e279cc5c4a6e", "label": "Address Details", "expanded": false, "order": 2, "info_tooltip_title": {} } ], "layout_settings": { "grid_gap": "string", "grid_template_columns": "string" }, "dialog_config": {}, "attributes": [ { "name": "email", "type": "email", "label": "Email", "required": true }, { "name": "first_name", "type": "string", "label": "First Name" } ], "_purpose": ["string"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "explicit_search_mappings": { "image": { "type": "keyword", "index": false } }, "group_headlines": [ { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "name": "string", "label": "string", "layout": "string", "group": "string", "order": 0, "type": "headline", "enable_divider": false, "divider": "top_divider", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ] } ```
--- ### `putSchema` Create or update a schema with a new version. When the schema is frozen, writes update the latest version without affecting the frozen version. `PUT /v1/entity/schemas/{slug}` ```ts const { data } = await client.putSchema( { slug: 'example', draft: true, }, { slug: 'contact', version: 1, blueprint: '3fa85f64-5717-4562-b3fc-2c963f66afa6', feature_flag: 'FF_MY_FEATURE_FLAG', enable_setting: ['360_features'], name: 'Contact', plural: 'Contacts', description: 'Example description', docs_url: 'https://docs.epilot.io/docs/pricing/entities', category: 'customer_relations', published: false, draft: false, icon: 'person', title_template: '{{first_name}} {{last_name}}', ui_config: { table_view: { view_type: 'default', row_actions: ['string'], bulk_actions: ['string'], navbar_actions: [ /* ... */ ], enable_thumbnails: false }, create_view: { view_type: 'default', search_params: {} }, edit_view: { view_type: 'default', search_params: {}, summary_attributes: ['email'] }, single_view: { view_type: 'default', search_params: {}, summary_attributes: ['email'] }, list_item: { summary_attributes: [ /* ... */ ], quick_actions: [ /* ... */ ], ui_config: { /* ... */ } }, sharing: { show_sharing_button: true } }, capabilities: [ { id: 'd5839b94-ba20-4225-a78e-76951d352bd6', name: 'customer_messaging', title: 'Messaging', attributes: [ /* ... */ ], _purpose: ['taxonomy-slug:classification-slug'], _manifest: ['123e4567-e89b-12d3-a456-426614174000'], app_id: '123e4567-e89b-12d3-a456-426614174000', ui_config: { /* ... */ }, ui_hooks: [ /* ... */ ], feature_flag: 'FF_MY_FEATURE_FLAG', settings_flag: [ /* ... */ ], schemas: [ /* ... */ ] } ], group_settings: [ { id: 'e18a532b-ae79-4d86-a6a5-e5dbfb579d14', label: 'Contact Details', expanded: true, order: 1 }, { id: 'e9a1ae28-27ba-4fa0-a79c-e279cc5c4a6e', label: 'Address Details', expanded: false, order: 2, info_tooltip_title: { /* ... */ } } ], layout_settings: { grid_gap: 'string', grid_template_columns: 'string' }, dialog_config: {}, attributes: [ { name: 'email', type: 'email', label: 'Email', required: true }, { name: 'first_name', type: 'string', label: 'First Name' }, /* ... 5 more */ ], _purpose: ['string'], _manifest: ['123e4567-e89b-12d3-a456-426614174000'], explicit_search_mappings: { image: { type: 'keyword', index: false } }, group_headlines: [ { id: '3fa85f64-5717-4562-b3fc-2c963f66afa6', name: 'string', label: 'string', layout: 'string', group: 'string', order: 0, type: 'headline', enable_divider: false, divider: 'top_divider', _purpose: ['taxonomy-slug:classification-slug'], _manifest: ['123e4567-e89b-12d3-a456-426614174000'] } ] }, ) ```
Response ```json { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "created_at": "string", "updated_at": "string", "comment": "string", "source": { "id": "string", "type": "string" }, "frozen": true, "latest": true, "_summary": true, "slug": "contact", "version": 1, "blueprint": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "feature_flag": "FF_MY_FEATURE_FLAG", "enable_setting": ["360_features"], "name": "Contact", "plural": "Contacts", "description": "Example description", "docs_url": "https://docs.epilot.io/docs/pricing/entities", "category": "customer_relations", "published": false, "draft": false, "icon": "person", "title_template": "{{first_name}} {{last_name}}", "ui_config": { "table_view": { "view_type": "default", "row_actions": ["string"], "bulk_actions": ["string"], "navbar_actions": [], "enable_thumbnails": false }, "create_view": { "view_type": "default", "search_params": {} }, "edit_view": { "view_type": "default", "search_params": {}, "summary_attributes": ["email"] }, "single_view": { "view_type": "default", "search_params": {}, "summary_attributes": ["email"] }, "list_item": { "summary_attributes": [], "quick_actions": [], "ui_config": {} }, "sharing": { "show_sharing_button": true } }, "capabilities": [ { "id": "d5839b94-ba20-4225-a78e-76951d352bd6", "name": "customer_messaging", "title": "Messaging", "attributes": [], "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "app_id": "123e4567-e89b-12d3-a456-426614174000", "ui_config": {}, "ui_hooks": [], "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [], "schemas": [] } ], "group_settings": [ { "id": "e18a532b-ae79-4d86-a6a5-e5dbfb579d14", "label": "Contact Details", "expanded": true, "order": 1 }, { "id": "e9a1ae28-27ba-4fa0-a79c-e279cc5c4a6e", "label": "Address Details", "expanded": false, "order": 2, "info_tooltip_title": {} } ], "layout_settings": { "grid_gap": "string", "grid_template_columns": "string" }, "dialog_config": {}, "attributes": [ { "name": "email", "type": "email", "label": "Email", "required": true }, { "name": "first_name", "type": "string", "label": "First Name" } ], "_purpose": ["string"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "explicit_search_mappings": { "image": { "type": "keyword", "index": false } }, "group_headlines": [ { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "name": "string", "label": "string", "layout": "string", "group": "string", "order": 0, "type": "headline", "enable_divider": false, "divider": "top_divider", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ] } ```
--- ### `deleteSchema` Delete a schema, or a specific version of a schema `DELETE /v1/entity/schemas/{slug}` ```ts const { data } = await client.deleteSchema({ slug: 'example', }) ``` --- ### `getJsonSchema` Get formal JSON schema definition draft 2020-12 for the given epilot schema `GET /v1/entity/schemas/{slug}/json/schema` ```ts const { data } = await client.getJsonSchema({ slug: 'example', dereference: true, }) ```
Response ```json { "$schema": "http://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "_id": { "type": "string", "format": "uuid", "example": "123e4567-e89b-12d3-a456-426614174000" }, "_org": { "type": "string", "description": "Organization Id the entity belongs to", "readOnly": true }, "_owners": { "type": "array", "readOnly": true, "items": {} }, "_schema": { "readOnly": true, "type": "string" }, "_title": { "readOnly": true, "type": "string" }, "_tags": { "type": "array", "nullable": true, "items": {} }, "_manifest": { "type": "array", "description": "Manifest ID used to create/update the entity", "items": {} }, "_created_at": { "readOnly": true, "type": "string", "format": "date-time" }, "_updated_at": { "readOnly": true, "type": "string", "format": "date-time" }, "_acl": { "readOnly": true, "type": "object", "description": "Access control list (ACL) for an entity. Defines sharing access to external orgs or users.", "additionalProperties": true, "properties": {} }, "title": { "type": "string", "nullable": true, "enum": ["Dr.", "Prof.", "Prof. Dr.", null] }, "salutation": { "type": "string", "nullable": true, "enum": ["Mr.", "Ms. / Mrs.", "Company", "Contact Person", "Company/Contact Person", "Spouse", "Family", "Ownership", "Assembly", "Other", null] }, "first_name": { "type": "string" }, "last_name": { "type": "string" }, "customer_number": { "type": "string", "nullable": true }, "birthdate": { "type": "string", "format": "date", "nullable": true }, "account": { "type": "object", "nullable": true, "properties": {}, "additionalProperties": true }, "address": { "type": "array", "nullable": true, "description": "Addresses as a list of object, the element with index 0 is treated as the primary one.\n", "items": {} }, "email": { "type": "array", "nullable": true, "description": "Email addresses as a list of object, the element with index 0 is treated as the primary one.\n", "items": {} }, "phone": { "type": "array", "description": "Phone numbers as a list of object, the element with index 0 is treated as the primary one.\n", "items": {} } }, "required": ["first_name", "last_name", "_id", "_org", "_owners", "_schema", "_title", "_tags", "_created_at", "_updated_at", "_acl"] } ```
--- ### `getSchemaExample` Get a full example entity for the given schema `GET /v1/entity/schemas/{slug}/json/example` ```ts const { data } = await client.getSchemaExample({ slug: 'example', }) ```
Response ```json {} ```
--- ### `getSchemaVersions` Get all versions of this schema ordered by the latest versions including drafts. `GET /v1/entity/schemas/{slug}/versions` ```ts const { data } = await client.getSchemaVersions({ slug: 'example', versions_from: 1, versions_size: 1, drafts_from: 1, drafts_size: 1, fields: ['...'], }) ```
Response ```json { "versions": [ { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "created_at": "string", "updated_at": "string", "comment": "string", "source": {}, "frozen": true, "latest": true, "_summary": true, "slug": "contact", "version": 1, "blueprint": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "feature_flag": "FF_MY_FEATURE_FLAG", "enable_setting": ["360_features"], "name": "Contact", "plural": "Contacts", "description": "Example description", "docs_url": "https://docs.epilot.io/docs/pricing/entities", "category": "customer_relations", "published": false, "draft": false, "icon": "person", "title_template": "{{first_name}} {{last_name}}", "ui_config": {}, "capabilities": [], "group_settings": [], "layout_settings": {}, "dialog_config": {}, "attributes": [], "_purpose": ["string"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "explicit_search_mappings": {}, "group_headlines": [] } ], "drafts": [ { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "created_at": "string", "updated_at": "string", "comment": "string", "source": {}, "frozen": true, "latest": true, "_summary": true, "slug": "contact", "version": 1, "blueprint": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "feature_flag": "FF_MY_FEATURE_FLAG", "enable_setting": ["360_features"], "name": "Contact", "plural": "Contacts", "description": "Example description", "docs_url": "https://docs.epilot.io/docs/pricing/entities", "category": "customer_relations", "published": false, "draft": false, "icon": "person", "title_template": "{{first_name}} {{last_name}}", "ui_config": {}, "capabilities": [], "group_settings": [], "layout_settings": {}, "dialog_config": {}, "attributes": [], "_purpose": ["string"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "explicit_search_mappings": {}, "group_headlines": [] } ], "versions_more": true, "drafts_more": true, "frozen_version": "3fa85f64-5717-4562-b3fc-2c963f66afa6" } ```
--- ### `freezeSchema` Freeze a schema at its current version, or at a specific version. When frozen, getSchema returns the frozen version by default. New edits via putSchema update the latest version without affecting the `POST /v1/entity/schemas/{slug}/freeze` ```ts const { data } = await client.freezeSchema( { slug: 'example', }, { version_id: '3fa85f64-5717-4562-b3fc-2c963f66afa6' }, ) ```
Response ```json { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "created_at": "string", "updated_at": "string", "comment": "string", "source": { "id": "string", "type": "string" }, "frozen": true, "latest": true, "_summary": true, "slug": "contact", "version": 1, "blueprint": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "feature_flag": "FF_MY_FEATURE_FLAG", "enable_setting": ["360_features"], "name": "Contact", "plural": "Contacts", "description": "Example description", "docs_url": "https://docs.epilot.io/docs/pricing/entities", "category": "customer_relations", "published": false, "draft": false, "icon": "person", "title_template": "{{first_name}} {{last_name}}", "ui_config": { "table_view": { "view_type": "default", "row_actions": ["string"], "bulk_actions": ["string"], "navbar_actions": [], "enable_thumbnails": false }, "create_view": { "view_type": "default", "search_params": {} }, "edit_view": { "view_type": "default", "search_params": {}, "summary_attributes": ["email"] }, "single_view": { "view_type": "default", "search_params": {}, "summary_attributes": ["email"] }, "list_item": { "summary_attributes": [], "quick_actions": [], "ui_config": {} }, "sharing": { "show_sharing_button": true } }, "capabilities": [ { "id": "d5839b94-ba20-4225-a78e-76951d352bd6", "name": "customer_messaging", "title": "Messaging", "attributes": [], "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "app_id": "123e4567-e89b-12d3-a456-426614174000", "ui_config": {}, "ui_hooks": [], "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [], "schemas": [] } ], "group_settings": [ { "id": "e18a532b-ae79-4d86-a6a5-e5dbfb579d14", "label": "Contact Details", "expanded": true, "order": 1 }, { "id": "e9a1ae28-27ba-4fa0-a79c-e279cc5c4a6e", "label": "Address Details", "expanded": false, "order": 2, "info_tooltip_title": {} } ], "layout_settings": { "grid_gap": "string", "grid_template_columns": "string" }, "dialog_config": {}, "attributes": [ { "name": "email", "type": "email", "label": "Email", "required": true }, { "name": "first_name", "type": "string", "label": "First Name" } ], "_purpose": ["string"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "explicit_search_mappings": { "image": { "type": "keyword", "index": false } }, "group_headlines": [ { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "name": "string", "label": "string", "layout": "string", "group": "string", "order": 0, "type": "headline", "enable_divider": false, "divider": "top_divider", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ] } ```
--- ### `unfreezeSchema` Unfreeze a schema. Promotes the latest version to the current version for all users. `POST /v1/entity/schemas/{slug}/unfreeze` ```ts const { data } = await client.unfreezeSchema({ slug: 'example', }) ```
Response ```json { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "created_at": "string", "updated_at": "string", "comment": "string", "source": { "id": "string", "type": "string" }, "frozen": true, "latest": true, "_summary": true, "slug": "contact", "version": 1, "blueprint": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "feature_flag": "FF_MY_FEATURE_FLAG", "enable_setting": ["360_features"], "name": "Contact", "plural": "Contacts", "description": "Example description", "docs_url": "https://docs.epilot.io/docs/pricing/entities", "category": "customer_relations", "published": false, "draft": false, "icon": "person", "title_template": "{{first_name}} {{last_name}}", "ui_config": { "table_view": { "view_type": "default", "row_actions": ["string"], "bulk_actions": ["string"], "navbar_actions": [], "enable_thumbnails": false }, "create_view": { "view_type": "default", "search_params": {} }, "edit_view": { "view_type": "default", "search_params": {}, "summary_attributes": ["email"] }, "single_view": { "view_type": "default", "search_params": {}, "summary_attributes": ["email"] }, "list_item": { "summary_attributes": [], "quick_actions": [], "ui_config": {} }, "sharing": { "show_sharing_button": true } }, "capabilities": [ { "id": "d5839b94-ba20-4225-a78e-76951d352bd6", "name": "customer_messaging", "title": "Messaging", "attributes": [], "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "app_id": "123e4567-e89b-12d3-a456-426614174000", "ui_config": {}, "ui_hooks": [], "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [], "schemas": [] } ], "group_settings": [ { "id": "e18a532b-ae79-4d86-a6a5-e5dbfb579d14", "label": "Contact Details", "expanded": true, "order": 1 }, { "id": "e9a1ae28-27ba-4fa0-a79c-e279cc5c4a6e", "label": "Address Details", "expanded": false, "order": 2, "info_tooltip_title": {} } ], "layout_settings": { "grid_gap": "string", "grid_template_columns": "string" }, "dialog_config": {}, "attributes": [ { "name": "email", "type": "email", "label": "Email", "required": true }, { "name": "first_name", "type": "string", "label": "First Name" } ], "_purpose": ["string"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "explicit_search_mappings": { "image": { "type": "keyword", "index": false } }, "group_headlines": [ { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "name": "string", "label": "string", "layout": "string", "group": "string", "order": 0, "type": "headline", "enable_divider": false, "divider": "top_divider", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ] } ```
--- ### `listAvailableCapabilities` List available capabilities for schema `GET /v1/entity/schemas/{slug}/capabilities/available` ```ts const { data } = await client.listAvailableCapabilities({ slug: 'example', }) ```
Response ```json { "results": [ { "id": "d5839b94-ba20-4225-a78e-76951d352bd6", "name": "customer_messaging", "title": "Messaging", "attributes": [], "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "app_id": "123e4567-e89b-12d3-a456-426614174000", "ui_config": {}, "ui_hooks": [], "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [], "schemas": [] } ] } ```
--- ### `listSchemaBlueprints` List canonical versions of all available schemas `GET /v1/entity/schemas/blueprints` ```ts const { data } = await client.listSchemaBlueprints() ```
Response ```json { "results": [ { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "created_at": "string", "updated_at": "string", "comment": "string", "source": {}, "frozen": true, "latest": true, "_summary": true, "slug": "contact", "version": 1, "blueprint": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "feature_flag": "FF_MY_FEATURE_FLAG", "enable_setting": ["360_features"], "name": "Contact", "plural": "Contacts", "description": "Example description", "docs_url": "https://docs.epilot.io/docs/pricing/entities", "category": "customer_relations", "published": false, "draft": false, "icon": "person", "title_template": "{{first_name}} {{last_name}}", "ui_config": {}, "capabilities": [], "group_settings": [], "layout_settings": {}, "dialog_config": {}, "attributes": [], "_purpose": ["string"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "explicit_search_mappings": {}, "group_headlines": [] } ] } ```
--- ### `searchEntities` Search for entities. Supports ordering and pagination. [Lucene query syntax](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#query-string-syntax) supp `POST /v1/entity:search` ```ts const { data } = await client.searchEntities( null, { q: '_schema:contact AND status:active', include_scores: false, sort: 'string', from: 0, size: 10, hydrate: false, fields: ['_id', '_title', 'first_name', 'account', '!account.*._files', '**._product'], aggs: { 'contact-count-per-tag': { terms: { field: '_tags.keyword' } } }, include_deleted: 'false', highlight: {}, stable_for: 0, stable_query_id: 'string', search_after: ['string'] }, ) ```
Response ```json { "hits": 1, "results": [ { "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "_org": "123", "_owners": [ { "org_id": "123", "user_id": "123" } ], "_schema": "contact", "_tags": ["example", "mock"], "_created_at": "2021-02-09T12:41:43.662Z", "_updated_at": "2021-02-09T12:41:43.662Z", "_acl": { "view": ["org:456", "org:789"], "edit": ["org:456"], "delete": ["org:456"] }, "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ], "aggregations": { "contact-count-per-tag": { "doc_count_error_upper_bound": 0, "sum_other_doc_count": 23, "buckets": [ { "key": "automation", "doc_count": 108 }, { "key": "primary", "doc_count": 66 } ] } }, "stable_query_id": "string", "sort_end": [1747905443332, "0.000023312468"] } ```
--- ### `listEntities` List entities that meet the specified conditions. `POST /v1/entity:list` ```ts const { data } = await client.listEntities( null, { query: { query_string: { query: 'status:active', fields: ['_title', '_tags', 'status'], default_operator: 'OR', lenient: true } }, filter: [ { term: { _schema: 'contact' } }, { terms: { status: ['active'] } } ], allow_targeting_all_schemas: false, sort: 'string', from: 0, size: 10, hydrate: false, fields: ['_id', '_title', 'first_name', 'account', '!account.*._files', '**._product'], aggs: { 'contact-count-per-tag': { terms: { field: '_tags.keyword' } } }, include_deleted: 'false', include_scores: false, highlight: {}, stable_for: 0, stable_query_id: 'string', search_after: ['string'] }, ) ```
Response ```json { "hits": 1, "results": [ { "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "_org": "123", "_owners": [ { "org_id": "123", "user_id": "123" } ], "_schema": "contact", "_tags": ["example", "mock"], "_created_at": "2021-02-09T12:41:43.662Z", "_updated_at": "2021-02-09T12:41:43.662Z", "_acl": { "view": ["org:456", "org:789"], "edit": ["org:456"], "delete": ["org:456"] }, "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ], "aggregations": { "contact-count-per-tag": { "doc_count_error_upper_bound": 0, "sum_other_doc_count": 23, "buckets": [ { "key": "automation", "doc_count": 108 }, { "key": "primary", "doc_count": 66 } ] } }, "stable_query_id": "string", "sort_end": [1747905443332, "0.000023312468"] } ```
--- ### `queryEntityGraph` Traverse an entity relationship graph starting from a seed entity. `POST /v1/entity:graph` ```ts const { data } = await client.queryEntityGraph( null, { seed: { entity_id: '3fa85f64-5717-4562-b3fc-2c963f66afa6', node_id: 'contact' }, graph: { nodes: [ { id: 'portal_user', schema: 'portal_user', cardinality: 'one' }, { id: 'contact', schema: 'contact', cardinality: 'one' }, /* ... 1 more */ ], edges: [ { from: 'portal_user', to: 'contact' }, { from: 'contact', to: 'billing_accounts' } ] }, hydrate: false, apply_changesets: false }, ) ```
Response ```json { "nodes": { "portal_user": ["550e8400-e29b-41d4-a716-446655440001"], "contact": ["550e8400-e29b-41d4-a716-446655440002"], "billing_accounts": ["550e8400-e29b-41d4-a716-446655440003", "550e8400-e29b-41d4-a716-446655440004"] }, "entityNodes": { "portal_user": { "_id": "550e8400-e29b-41d4-a716-446655440001", "_schema": "portal_user" }, "contact": { "_id": "550e8400-e29b-41d4-a716-446655440002", "_schema": "contact" }, "billing_accounts": [ { "_id": "550e8400-e29b-41d4-a716-446655440003", "_schema": "billing_account" }, { "_id": "550e8400-e29b-41d4-a716-446655440004", "_schema": "billing_account" } ] }, "edges": [ { "from": "portal_user", "to": "contact" }, { "from": "contact", "to": "billing_accounts" } ] } ```
--- ### `createEntity` Creates a new entity using a key. `POST /v1/entity/{slug}` ```ts const { data } = await client.createEntity( { slug: 'example', activity_id: 'example', fill_activity: true, async: true, validate: true, }, { _id: '3fa85f64-5717-4562-b3fc-2c963f66afa6', _org: '123', _owners: [ { org_id: '123', user_id: '123' } ], _schema: 'contact', _tags: ['example', 'mock'], _created_at: '2021-02-09T12:41:43.662Z', _updated_at: '2021-02-09T12:41:43.662Z', _acl: { view: ['org:456', 'org:789'], edit: ['org:456'], delete: ['org:456'] }, _manifest: ['123e4567-e89b-12d3-a456-426614174000'] }, ) ```
Response ```json { "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "_org": "123", "_owners": [ { "org_id": "123", "user_id": "123" } ], "_schema": "contact", "_tags": ["example", "mock"], "_created_at": "2021-02-09T12:41:43.662Z", "_updated_at": "2021-02-09T12:41:43.662Z", "_acl": { "view": ["org:456", "org:789"], "edit": ["org:456"], "delete": ["org:456"] }, "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ```
--- ### `validateEntity` Validates an entity against the schema. `POST /v1/entity/{slug}:validate` ```ts const { data } = await client.validateEntity( { slug: 'example', }, { _id: '3fa85f64-5717-4562-b3fc-2c963f66afa6', _org: '123', _owners: [ { org_id: '123', user_id: '123' } ], _schema: 'contact', _tags: ['example', 'mock'], _created_at: '2021-02-09T12:41:43.662Z', _updated_at: '2021-02-09T12:41:43.662Z', _acl: { view: ['org:456', 'org:789'], edit: ['org:456'], delete: ['org:456'] }, _manifest: ['123e4567-e89b-12d3-a456-426614174000'] }, ) ```
Response ```json { "status": "success", "errors": [ { "code": "custom", "params": { "type": "missing_field" }, "path": ["first_name"], "message": "Invalid input" } ] } ```
--- ### `validateEntityV2` Validates an entity against the schema. `POST /v2/entity/{slug}:validate` ```ts const { data } = await client.validateEntityV2( { slug: 'example', }, { _id: '3fa85f64-5717-4562-b3fc-2c963f66afa6', _org: '123', _owners: [ { org_id: '123', user_id: '123' } ], _schema: 'contact', _tags: ['example', 'mock'], _created_at: '2021-02-09T12:41:43.662Z', _updated_at: '2021-02-09T12:41:43.662Z', _acl: { view: ['org:456', 'org:789'], edit: ['org:456'], delete: ['org:456'] }, _manifest: ['123e4567-e89b-12d3-a456-426614174000'] }, ) ```
Response ```json { "status": "success", "errors": [ { "keyword": "string", "instance_path": "string", "schema_path": "string", "params": {}, "property_name": "string", "message": "string", "schema": {}, "parent_schema": {}, "data": {} } ] } ```
--- ### `upsertEntity` Create or update an entity using `unique_key` `PATCH /v1/entity/{slug}:upsert` ```ts const { data } = await client.upsertEntity( { slug: 'example', activity_id: 'example', fill_activity: true, dry_run: true, async: true, validate: true, strict: true, }, { unique_key: ['_id'], entity: { _id: '3fa85f64-5717-4562-b3fc-2c963f66afa6', _org: '123', _owners: [ { org_id: '123', user_id: '123' } ], _schema: 'contact', _tags: ['example', 'mock'], _created_at: '2021-02-09T12:41:43.662Z', _updated_at: '2021-02-09T12:41:43.662Z', _acl: { view: ['org:456', 'org:789'], edit: ['org:456'], delete: ['org:456'] }, _manifest: ['123e4567-e89b-12d3-a456-426614174000'] } }, ) ```
Response ```json { "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "_org": "123", "_owners": [ { "org_id": "123", "user_id": "123" } ], "_schema": "contact", "_tags": ["example", "mock"], "_created_at": "2021-02-09T12:41:43.662Z", "_updated_at": "2021-02-09T12:41:43.662Z", "_acl": { "view": ["org:456", "org:789"], "edit": ["org:456"], "delete": ["org:456"] }, "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ```
--- ### `getEntityV2` Gets Entity by id. `GET /v2/entity/{slug}/{id}` ```ts const { data } = await client.getEntityV2({ id: '123e4567-e89b-12d3-a456-426614174000', slug: 'example', hydrate: true, fields: ['...'], apply_changesets: true, }) ```
Response ```json { "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "_org": "123", "_owners": [ { "org_id": "123", "user_id": "123" } ], "_schema": "contact", "_tags": ["example", "mock"], "_created_at": "2021-02-09T12:41:43.662Z", "_updated_at": "2021-02-09T12:41:43.662Z", "_acl": { "view": ["org:456", "org:789"], "edit": ["org:456"], "delete": ["org:456"] }, "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ```
--- ### `restoreEntity` Restores an entity by id `PATCH /v1/entity/{slug}/{id}:restore` ```ts const { data } = await client.restoreEntity( { id: '123e4567-e89b-12d3-a456-426614174000', slug: 'example', activity_id: 'example', }, {}, ) ```
Response ```json { "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "_org": "123", "_owners": [ { "org_id": "123", "user_id": "123" } ], "_schema": "contact", "_tags": ["example", "mock"], "_created_at": "2021-02-09T12:41:43.662Z", "_updated_at": "2021-02-09T12:41:43.662Z", "_acl": { "view": ["org:456", "org:789"], "edit": ["org:456"], "delete": ["org:456"] }, "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ```
--- ### `reindexEntity` Triggers a reindex for the Entity for search. `POST /v1/entity/{slug}/{id}:reindex` ```ts const { data } = await client.reindexEntity( { id: '123e4567-e89b-12d3-a456-426614174000', slug: 'example', }, {}, ) ```
Response ```json { "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "_org": "123", "_owners": [ { "org_id": "123", "user_id": "123" } ], "_schema": "contact", "_tags": ["example", "mock"], "_created_at": "2021-02-09T12:41:43.662Z", "_updated_at": "2021-02-09T12:41:43.662Z", "_acl": { "view": ["org:456", "org:789"], "edit": ["org:456"], "delete": ["org:456"] }, "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ```
--- ### `getEntity` Gets Entity and relations by id. `GET /v1/entity/{slug}/{id}` ```ts const { data } = await client.getEntity({ id: '123e4567-e89b-12d3-a456-426614174000', slug: 'example', hydrate: true, }) ```
Response ```json { "entity": { "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "_org": "123", "_owners": [ { "org_id": "123", "user_id": "123" } ], "_schema": "contact", "_tags": ["example", "mock"], "_created_at": "2021-02-09T12:41:43.662Z", "_updated_at": "2021-02-09T12:41:43.662Z", "_acl": { "view": ["org:456", "org:789"], "edit": ["org:456"], "delete": ["org:456"] }, "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] }, "relations": [ { "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "_org": "123", "_owners": [ { "org_id": "123", "user_id": "123" } ], "_schema": "contact", "_tags": ["example", "mock"], "_created_at": "2021-02-09T12:41:43.662Z", "_updated_at": "2021-02-09T12:41:43.662Z", "_acl": { "view": ["org:456", "org:789"], "edit": ["org:456"], "delete": ["org:456"] }, "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ] } ```
--- ### `updateEntity` Updates an Entity `PUT /v1/entity/{slug}/{id}` ```ts const { data } = await client.updateEntity( { slug: 'example', id: '123e4567-e89b-12d3-a456-426614174000', activity_id: 'example', fill_activity: true, async: true, validate: true, direct: true, }, { _id: '3fa85f64-5717-4562-b3fc-2c963f66afa6', _org: '123', _owners: [ { org_id: '123', user_id: '123' } ], _schema: 'contact', _tags: ['example', 'mock'], _created_at: '2021-02-09T12:41:43.662Z', _updated_at: '2021-02-09T12:41:43.662Z', _acl: { view: ['org:456', 'org:789'], edit: ['org:456'], delete: ['org:456'] }, _manifest: ['123e4567-e89b-12d3-a456-426614174000'] }, ) ```
Response ```json { "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "_org": "123", "_owners": [ { "org_id": "123", "user_id": "123" } ], "_schema": "contact", "_tags": ["example", "mock"], "_created_at": "2021-02-09T12:41:43.662Z", "_updated_at": "2021-02-09T12:41:43.662Z", "_acl": { "view": ["org:456", "org:789"], "edit": ["org:456"], "delete": ["org:456"] }, "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ```
--- ### `patchEntity` Partially updates an entity with the passed in entity data. `PATCH /v1/entity/{slug}/{id}` ```ts const { data } = await client.patchEntity( { slug: 'example', id: '123e4567-e89b-12d3-a456-426614174000', activity_id: 'example', fill_activity: true, dry_run: true, async: true, validate: true, direct: true, }, { _id: '3fa85f64-5717-4562-b3fc-2c963f66afa6', _org: '123', _owners: [ { org_id: '123', user_id: '123' } ], _schema: 'contact', _tags: ['example', 'mock'], _created_at: '2021-02-09T12:41:43.662Z', _updated_at: '2021-02-09T12:41:43.662Z', _acl: { view: ['org:456', 'org:789'], edit: ['org:456'], delete: ['org:456'] }, _manifest: ['123e4567-e89b-12d3-a456-426614174000'] }, ) ```
Response ```json { "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "_org": "123", "_owners": [ { "org_id": "123", "user_id": "123" } ], "_schema": "contact", "_tags": ["example", "mock"], "_created_at": "2021-02-09T12:41:43.662Z", "_updated_at": "2021-02-09T12:41:43.662Z", "_acl": { "view": ["org:456", "org:789"], "edit": ["org:456"], "delete": ["org:456"] }, "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ```
--- ### `deleteEntity` Deletes an Entity `DELETE /v1/entity/{slug}/{id}` ```ts const { data } = await client.deleteEntity({ slug: 'example', id: '123e4567-e89b-12d3-a456-426614174000', activity_id: 'example', purge: true, }) ``` --- ### `autocomplete` Autocomplete entity attributes `GET /v1/entity:autocomplete` ```ts const { data } = await client.autocomplete({ input: 'example', attribute: 'example', slug: 'example', size: 1, }) ```
Response ```json { "hits": 1, "results": ["value"] } ```
--- ### `wipeAllEntities` Creates a request to queue the deletion of all entities in the system. This is a destructive operation and should only be used in sandbox environments. `POST /v1/entity:wipeAllEntities` ```ts const { data } = await client.wipeAllEntities( null, { schemas: ['contact'] }, ) ``` --- ### `createActivity` Create an activity that can be displayed in activity feeds. `POST /v1/entity/activity` ```ts const { data } = await client.createActivity( { entities: ['...'], }, { type: 'string', title: 'My custom activity', message: '{{caller}} did something with {{entity payload.entity.id}}.', payload: { entity: { id: '3fa85f64-5717-4562-b3fc-2c963f66afa6', schema: 'contact' } }, pending: false }, ) ```
Response ```json { "_id": "01F130Q52Q6MWSNS8N2AVXV4JN", "timestamp": "1970-01-01T00:00:00.000Z", "type": "string", "title": "My custom activity", "message": "{{caller}} did something with {{entity payload.entity.id}}.", "payload": { "entity": { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "schema": "contact" } }, "pending": false, "caller": { "EpilotAuth": { "token": { "sub": "476e9b48-42f4-4234-a2b0-4668b34626ce", "cognito:groups": ["Administrator"], "cognito:preferred_role": "arn:aws:iam::912468240823:role/base-administrator-role", "iss": "https://cognito-idp.eu-central-1.amazonaws.com/eu-central-1_6lZSgmU6D", "custom:ivy_org_id": "739224", "cognito:username": "n.ahmad@epilot.cloud", "custom:ivy_user_id": "10006129", "cognito:roles": ["arn:aws:iam::912468240823:role/base-administrator-role"], "aud": "6e0jbdnger7nmoktaaflarue1l", "event_id": "cd5f5583-d90c-4db5-8e99-5f5dd29a4d75", "token_use": "id", "auth_time": 1614333023, "exp": 1614336623, "iat": 1614333023, "email": "n.ahmad@epilot.cloud" } } } } ```
--- ### `getActivity` Get activity by id `GET /v1/entity/activity/{id}` ```ts const { data } = await client.getActivity({ id: '123e4567-e89b-12d3-a456-426614174000', operations_size: 1, operations_from: 1, }) ```
Response ```json { "_id": "01F130Q52Q6MWSNS8N2AVXV4JN", "timestamp": "1970-01-01T00:00:00.000Z", "type": "string", "title": "My custom activity", "message": "{{caller}} did something with {{entity payload.entity.id}}.", "payload": { "entity": { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "schema": "contact" } }, "pending": false, "caller": { "EpilotAuth": { "token": {} } }, "operations_total": 1, "operations": [ { "entity": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "org": "123", "activity_id": "01F130Q52Q6MWSNS8N2AVXV4JN", "activity_type": "string", "operation": "createEntity", "params": {}, "payload": {}, "diff": {}, "_workflow_origin": {} } ] } ```
--- ### `attachActivity` Attach existing activity to entity activity feeds `POST /v1/entity/activity/{id}:attach` ```ts const { data } = await client.attachActivity({ id: '123e4567-e89b-12d3-a456-426614174000', entities: ['...'], }) ```
Response ```json { "_id": "01F130Q52Q6MWSNS8N2AVXV4JN", "timestamp": "1970-01-01T00:00:00.000Z", "type": "string", "title": "My custom activity", "message": "{{caller}} did something with {{entity payload.entity.id}}.", "payload": { "entity": { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "schema": "contact" } }, "pending": false, "caller": { "EpilotAuth": { "token": { "sub": "476e9b48-42f4-4234-a2b0-4668b34626ce", "cognito:groups": ["Administrator"], "cognito:preferred_role": "arn:aws:iam::912468240823:role/base-administrator-role", "iss": "https://cognito-idp.eu-central-1.amazonaws.com/eu-central-1_6lZSgmU6D", "custom:ivy_org_id": "739224", "cognito:username": "n.ahmad@epilot.cloud", "custom:ivy_user_id": "10006129", "cognito:roles": ["arn:aws:iam::912468240823:role/base-administrator-role"], "aud": "6e0jbdnger7nmoktaaflarue1l", "event_id": "cd5f5583-d90c-4db5-8e99-5f5dd29a4d75", "token_use": "id", "auth_time": 1614333023, "exp": 1614336623, "iat": 1614333023, "email": "n.ahmad@epilot.cloud" } } } } ```
--- ### `applyChangeset` Applies the proposed value from a pending changeset to the entity attribute and removes the changeset. Used for human approval of pending changes. `POST /v1/entity/{slug}/{id}/changesets/{attribute}:apply` ```ts const { data } = await client.applyChangeset({ slug: 'example', id: '123e4567-e89b-12d3-a456-426614174000', attribute: 'example', }) ```
Response ```json { "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "_org": "123", "_owners": [ { "org_id": "123", "user_id": "123" } ], "_schema": "contact", "_tags": ["example", "mock"], "_created_at": "2021-02-09T12:41:43.662Z", "_updated_at": "2021-02-09T12:41:43.662Z", "_acl": { "view": ["org:456", "org:789"], "edit": ["org:456"], "delete": ["org:456"] }, "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ```
--- ### `dismissChangeset` Removes a pending changeset without applying it. The attribute value remains unchanged. `POST /v1/entity/{slug}/{id}/changesets/{attribute}:dismiss` ```ts const { data } = await client.dismissChangeset( { slug: 'example', id: '123e4567-e89b-12d3-a456-426614174000', attribute: 'example', }, { reason: 'string' }, ) ```
Response ```json { "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "_org": "123", "_owners": [ { "org_id": "123", "user_id": "123" } ], "_schema": "contact", "_tags": ["example", "mock"], "_created_at": "2021-02-09T12:41:43.662Z", "_updated_at": "2021-02-09T12:41:43.662Z", "_acl": { "view": ["org:456", "org:789"], "edit": ["org:456"], "delete": ["org:456"] }, "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ```
--- ### `listChangesets` Returns all pending changesets for an entity. `GET /v1/entity/{slug}/{id}/changesets` ```ts const { data } = await client.listChangesets({ slug: 'example', id: '123e4567-e89b-12d3-a456-426614174000', }) ```
Response ```json {} ```
--- ### `getEntityActivityFeed` Get activity feed for an entity `GET /v1/entity/{slug}/{id}/activity` ```ts const { data } = await client.getEntityActivityFeed({ slug: 'example', id: '123e4567-e89b-12d3-a456-426614174000', after: 'example', before: 'example', start_date: 'example', end_date: 'example', preset_range: 'example', from: 1, size: 1, type: ['...'], include_relations: true, exclude_activity_groups: 'example', }) ```
Response ```json { "total": 1, "results": [ { "_id": "01F130Q52Q6MWSNS8N2AVXV4JN", "timestamp": "1970-01-01T00:00:00.000Z", "type": "string", "title": "My custom activity", "message": "{{caller}} did something with {{entity payload.entity.id}}.", "payload": {}, "pending": false, "caller": {}, "operations_total": 1, "operations": [] } ] } ```
--- ### `getRelations` Returns 1st level direct relations for an entity. `GET /v1/entity/{slug}/{id}/relations` ```ts const { data } = await client.getRelations({ slug: 'example', id: '123e4567-e89b-12d3-a456-426614174000', hydrate: true, include_reverse: true, from: 1, size: 1, include_schemas: ['...'], exclude_schemas: ['...'], }) ```
Response ```json [ { "entity_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "org_id": "string", "_schema": "contact", "attribute": "string", "_tags": ["string"], "reverse": true }, { "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "_org": "123", "_owners": [ { "org_id": "123", "user_id": "123" } ], "_schema": "contact", "_tags": ["example", "mock"], "_created_at": "2021-02-09T12:41:43.662Z", "_updated_at": "2021-02-09T12:41:43.662Z", "_acl": { "view": ["org:456", "org:789"], "edit": ["org:456"], "delete": ["org:456"] }, "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ] ```
--- ### `addRelations` Relates one or more entities to parent entity by adding items to a relation attribute `POST /v1/entity/{slug}/{id}/relations` ```ts const { data } = await client.addRelations( { slug: 'example', id: '123e4567-e89b-12d3-a456-426614174000', async: true, activity_id: 'example', }, [ { entity_id: '3fa85f64-5717-4562-b3fc-2c963f66afa6', org_id: 'string', _schema: 'contact', attribute: 'string', _tags: ['string'], reverse: true } ], ) ```
Response ```json { "entity_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "org_id": "string", "_schema": "contact", "attribute": "string", "_tags": ["string"], "reverse": true } ```
--- ### `removeRelations` Disassociate one or more entities to parent entity by removing items to a relation attribute `DELETE /v1/entity/{slug}/{id}/relations` ```ts const { data } = await client.removeRelations( { slug: 'example', id: '123e4567-e89b-12d3-a456-426614174000', async: true, activity_id: 'example', }, [ { entity_id: '3fa85f64-5717-4562-b3fc-2c963f66afa6', org_id: 'string', _schema: 'contact', attribute: 'string', _tags: ['string'], reverse: true } ], ) ``` --- ### `getRelationsV2` Returns 1st level direct relations for an entity with pagination. `GET /v2/entity/{slug}/{id}/relations` ```ts const { data } = await client.getRelationsV2({ slug: 'example', id: '123e4567-e89b-12d3-a456-426614174000', hydrate: true, query: 'example', include_reverse: true, from: 1, size: 1, fields: ['...'], }) ```
Response ```json { "hits": 1, "relations": [ { "entity_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "org_id": "string", "_schema": "contact", "attribute": "string", "_tags": ["string"], "reverse": true }, { "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "_org": "123", "_owners": [ { "org_id": "123", "user_id": "123" } ], "_schema": "contact", "_tags": ["example", "mock"], "_created_at": "2021-02-09T12:41:43.662Z", "_updated_at": "2021-02-09T12:41:43.662Z", "_acl": { "view": ["org:456", "org:789"], "edit": ["org:456"], "delete": ["org:456"] }, "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ] } ```
--- ### `getRelationsV3` Returns 1st level direct relations for an entity with pagination. `GET /v3/entity/{slug}/{id}/relations` ```ts const { data } = await client.getRelationsV3({ slug: 'example', id: '123e4567-e89b-12d3-a456-426614174000', hydrate: true, include_reverse: true, from: 1, size: 1, include_schemas: ['...'], exclude_schemas: ['...'], mode: 'example', fields: ['...'], include_deleted: 'example', }) ```
Response ```json { "hits": 1, "relations": [ { "entity_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "org_id": "string", "_schema": "contact", "attribute": "string", "_tags": ["string"], "reverse": true }, { "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "_org": "123", "_owners": [ { "org_id": "123", "user_id": "123" } ], "_schema": "contact", "_tags": ["example", "mock"], "_created_at": "2021-02-09T12:41:43.662Z", "_updated_at": "2021-02-09T12:41:43.662Z", "_acl": { "view": ["org:456", "org:789"], "edit": ["org:456"], "delete": ["org:456"] }, "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ] } ```
--- ### `getRelatedEntitiesCount` Returns the amount of unique related entities for an entity - includes direct and reverse relations. `GET /v2/entity/{slug}/{id}/relations/count` ```ts const { data } = await client.getRelatedEntitiesCount({ slug: 'example', id: '123e4567-e89b-12d3-a456-426614174000', exclude_schemas: ['...'], }) ```
Response ```json { "hits": 1 } ```
--- ### `updateRelation` Updates an existing relation between two entities. `PUT /v1/entity/{slug}/{id}/relations/{attribute}/{entity_id}` ```ts const { data } = await client.updateRelation( { slug: 'example', id: '123e4567-e89b-12d3-a456-426614174000', attribute: 'example', entity_id: 'example', async: true, activity_id: 'example', }, { _tags: ['string'] }, ) ```
Response ```json { "entity_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "org_id": "string", "_schema": "contact", "attribute": "string", "_tags": ["string"], "reverse": true } ```
--- ### `deleteRelation` Removes relation between two entities `DELETE /v1/entity/{slug}/{id}/relations/{attribute}/{entity_id}` ```ts const { data } = await client.deleteRelation({ slug: 'example', id: '123e4567-e89b-12d3-a456-426614174000', attribute: 'example', entity_id: 'example', async: true, activity_id: 'example', }) ``` --- ### `exportEntities` Export entity data in a CSV-format. The export will export data as close as possible to what is visible on Entity UI tables. The values exported as in some cases, transformed to human-readable values. `POST /v1/entity:export` ```ts const { data } = await client.exportEntities( { job_id: 'example', is_template: true, language: 'example', }, { q: '_schema:contact AND status:active', include_scores: false, sort: 'string', from: 0, size: 10, hydrate: false, fields: ['_id', '_title', 'first_name', 'account', '!account.*._files', '**._product'], aggs: { 'contact-count-per-tag': { terms: { field: '_tags.keyword' } } }, include_deleted: 'false', highlight: {}, stable_for: 0, stable_query_id: 'string', search_after: ['string'] }, ) ``` --- ### `importEntities` Import Entities `POST /v1/entity:import` ```ts const { data } = await client.importEntities( { job_id: 'example', }, { S3Reference: { bucket: 'my-bucket', key: 'imports/my-import.json' }, schema: 'contact' }, ) ``` --- ### `listSavedViews` Get the Saved Views based on the schema `GET /v1/entity/views` ```ts const { data } = await client.listSavedViews({ slug: 'example', sort: 'example', from: 1, size: 1, fields: ['...'], }) ```
Response ```json { "hits": 1, "results": [ { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "created_at": "string", "updated_at": "string", "slug": ["contact"], "name": "View listing German", "org": "66", "shared": true, "isFavoritedBy": ["11701"], "created_by": { "user_id": "10598" }, "ui_config": { "filters": { "customer_name": "suresh test", "_tags": "360" }, "table_layout": { "opportunity": { "page": 1, "sort": "_created_at:desc", "pageSize": 25, "columnSettings": [] } } }, "shared_with": ["112233"] } ] } ```
--- ### `createSavedView` Creates a new saved view `POST /v1/entity/view` ```ts const { data } = await client.createSavedView( null, { slug: ['contact'], name: 'View listing German', org: '66', shared: true, isFavoritedBy: ['11701'], created_by: { user_id: '10598' }, ui_config: { filters: { customer_name: 'suresh test', _tags: '360' }, table_layout: { opportunity: { page: 1, sort: '_created_at:desc', pageSize: 25, columnSettings: [] } } }, shared_with: ['112233'] }, ) ```
Response ```json { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "created_at": "string", "updated_at": "string", "slug": ["contact"], "name": "View listing German", "org": "66", "shared": true, "isFavoritedBy": ["11701"], "created_by": { "user_id": "10598" }, "ui_config": { "filters": { "customer_name": "suresh test", "_tags": "360" }, "table_layout": { "opportunity": { "page": 1, "sort": "_created_at:desc", "pageSize": 25, "columnSettings": [] } } }, "shared_with": ["112233"] } ```
--- ### `getSavedView` Gets Saved View configuration by id. `GET /v1/entity/view/{id}` ```ts const { data } = await client.getSavedView({ id: '123e4567-e89b-12d3-a456-426614174000', }) ```
Response ```json { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "created_at": "string", "updated_at": "string", "slug": ["contact"], "name": "View listing German", "org": "66", "shared": true, "isFavoritedBy": ["11701"], "created_by": { "user_id": "10598" }, "ui_config": { "filters": { "customer_name": "suresh test", "_tags": "360" }, "table_layout": { "opportunity": { "page": 1, "sort": "_created_at:desc", "pageSize": 25, "columnSettings": [] } } }, "shared_with": ["112233"] } ```
--- ### `updateSavedView` Updates a saved view `PUT /v1/entity/view/{id}` ```ts const { data } = await client.updateSavedView( { id: '123e4567-e89b-12d3-a456-426614174000', }, { id: '3fa85f64-5717-4562-b3fc-2c963f66afa6', created_at: 'string', updated_at: 'string', slug: ['contact'], name: 'View listing German', org: '66', shared: true, isFavoritedBy: ['11701'], created_by: { user_id: '10598' }, ui_config: { filters: { customer_name: 'suresh test', _tags: '360' }, table_layout: { opportunity: { page: 1, sort: '_created_at:desc', pageSize: 25, columnSettings: [] } } }, shared_with: ['112233'] }, ) ```
Response ```json { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "created_at": "string", "updated_at": "string", "slug": ["contact"], "name": "View listing German", "org": "66", "shared": true, "isFavoritedBy": ["11701"], "created_by": { "user_id": "10598" }, "ui_config": { "filters": { "customer_name": "suresh test", "_tags": "360" }, "table_layout": { "opportunity": { "page": 1, "sort": "_created_at:desc", "pageSize": 25, "columnSettings": [] } } }, "shared_with": ["112233"] } ```
--- ### `patchSavedView` Partially updates a saved view with the provided payload. If an updated_at is passed and the server contains a newer version of the view a `409` error is returned `PATCH /v1/entity/view/{id}` ```ts const { data } = await client.patchSavedView( { id: '123e4567-e89b-12d3-a456-426614174000', }, { slug: ['contact'], name: 'View listing German', org: '66', shared: true, isFavoritedBy: ['11701'], created_by: { user_id: '10598' }, ui_config: { filters: { customer_name: 'suresh test', _tags: '360' }, table_layout: { opportunity: { page: 1, sort: '_created_at:desc', pageSize: 25, columnSettings: [] } } }, shared_with: ['112233'] }, ) ```
Response ```json { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "created_at": "string", "updated_at": "string", "slug": ["contact"], "name": "View listing German", "org": "66", "shared": true, "isFavoritedBy": ["11701"], "created_by": { "user_id": "10598" }, "ui_config": { "filters": { "customer_name": "suresh test", "_tags": "360" }, "table_layout": { "opportunity": { "page": 1, "sort": "_created_at:desc", "pageSize": 25, "columnSettings": [] } } }, "shared_with": ["112233"] } ```
--- ### `deleteSavedView` Deletes a saved view `DELETE /v1/entity/view/{id}` ```ts const { data } = await client.deleteSavedView({ id: '123e4567-e89b-12d3-a456-426614174000', }) ``` --- ### `listFavoriteViewsForUser` Get the Favorite Saved Views for user based on the schema `GET /v1/entity/views/favorites` ```ts const { data } = await client.listFavoriteViewsForUser() ```
Response ```json { "results": [ { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "created_at": "string", "updated_at": "string", "slug": ["contact"], "name": "View listing German", "org": "66", "shared": true, "isFavoritedBy": ["11701"], "created_by": { "user_id": "10598" }, "ui_config": { "filters": { "customer_name": "suresh test", "_tags": "360" }, "table_layout": { "opportunity": { "page": 1, "sort": "_created_at:desc", "pageSize": 25, "columnSettings": [] } } }, "shared_with": ["112233"] } ] } ```
--- ### `listTaxonomies` List taxonomies in an organization `GET /v1/entity/taxonomies` ```ts const { data } = await client.listTaxonomies({ include_disabled: true, type: 'example', }) ```
Response ```json { "results": [ { "slug": "purpose", "name": "Purpose", "plural": "Purposes", "kind": "system", "type": "entity", "icon": "purpose", "color": "#FF5733", "created_at": "1970-01-01T00:00:00.000Z", "updated_at": "1970-01-01T00:00:00.000Z", "deleted_at": "1970-01-01T00:00:00.000Z", "created_by": "10598", "enabled": true, "order": 10, "enabled_locations": ["account", "string"] } ] } ```
--- ### `createTaxonomy` Create a new taxonomy `POST /v1/entity/taxonomies` ```ts const { data } = await client.createTaxonomy( null, { slug: 'purpose', name: 'Purpose', plural: 'Purposes', kind: 'system', type: 'entity', icon: 'purpose', color: '#FF5733', created_at: '1970-01-01T00:00:00.000Z', updated_at: '1970-01-01T00:00:00.000Z', deleted_at: '1970-01-01T00:00:00.000Z', created_by: '10598', enabled: true, order: 10, enabled_locations: ['account', 'string'] }, ) ```
Response ```json { "slug": "purpose", "name": "Purpose", "plural": "Purposes", "kind": "system", "type": "entity", "icon": "purpose", "color": "#FF5733", "created_at": "1970-01-01T00:00:00.000Z", "updated_at": "1970-01-01T00:00:00.000Z", "deleted_at": "1970-01-01T00:00:00.000Z", "created_by": "10598", "enabled": true, "order": 10, "enabled_locations": ["account", "string"] } ```
--- ### `getTaxonomy` Get taxonomy by slug `GET /v1/entity/taxonomies/{taxonomySlug}` ```ts const { data } = await client.getTaxonomy({ taxonomySlug: 'example', }) ```
Response ```json { "slug": "purpose", "name": "Purpose", "plural": "Purposes", "kind": "system", "type": "entity", "icon": "purpose", "color": "#FF5733", "created_at": "1970-01-01T00:00:00.000Z", "updated_at": "1970-01-01T00:00:00.000Z", "deleted_at": "1970-01-01T00:00:00.000Z", "created_by": "10598", "enabled": true, "order": 10, "enabled_locations": ["account", "string"] } ```
--- ### `updateTaxonomy` Update a taxonomy `PUT /v1/entity/taxonomies/{taxonomySlug}` ```ts const { data } = await client.updateTaxonomy( { taxonomySlug: 'example', }, { slug: 'purpose', name: 'Purpose', plural: 'Purposes', kind: 'system', type: 'entity', icon: 'purpose', color: '#FF5733', created_at: '1970-01-01T00:00:00.000Z', updated_at: '1970-01-01T00:00:00.000Z', deleted_at: '1970-01-01T00:00:00.000Z', created_by: '10598', enabled: true, order: 10, enabled_locations: ['account', 'string'] }, ) ```
Response ```json { "slug": "purpose", "name": "Purpose", "plural": "Purposes", "kind": "system", "type": "entity", "icon": "purpose", "color": "#FF5733", "created_at": "1970-01-01T00:00:00.000Z", "updated_at": "1970-01-01T00:00:00.000Z", "deleted_at": "1970-01-01T00:00:00.000Z", "created_by": "10598", "enabled": true, "order": 10, "enabled_locations": ["account", "string"] } ```
--- ### `deleteTaxonomy` Delete a taxonomy `DELETE /v1/entity/taxonomies/{taxonomySlug}` ```ts const { data } = await client.deleteTaxonomy({ taxonomySlug: 'example', permanent: true, }) ``` --- ### `updateClassificationsForTaxonomy` Update the classifications for a taxonomy `POST /v1/entity/taxonomies/{taxonomySlug}/classifications` ```ts const { data } = await client.updateClassificationsForTaxonomy( { taxonomySlug: 'example', }, { create: [ { id: 'taxonomy-slug:classification-slug', slug: 'wallbox-pv', name: 'Wallbox PV', parents: ['taxonomy-slug:classification-slug'], color: '#FF5733', created_at: '1970-01-01T00:00:00.000Z', updated_at: '1970-01-01T00:00:00.000Z', archived: false, starred: false, enabled_locations: ['account', 'string'], enabled_purposes: ['string'], _manifest: ['123e4567-e89b-12d3-a456-426614174000'] } ], update: [ { id: 'taxonomy-slug:classification-slug', slug: 'wallbox-pv', name: 'Wallbox PV', parents: ['taxonomy-slug:classification-slug'], color: '#FF5733', created_at: '1970-01-01T00:00:00.000Z', updated_at: '1970-01-01T00:00:00.000Z', archived: false, starred: false, enabled_locations: ['account', 'string'], enabled_purposes: ['string'], _manifest: ['123e4567-e89b-12d3-a456-426614174000'] } ], delete: ['taxonomy-slug:classification-slug', 'taxonomy-slug:classification-slug'] }, ) ```
Response ```json { "created": [ { "id": "taxonomy-slug:classification-slug", "slug": "wallbox-pv", "name": "Wallbox PV", "parents": ["taxonomy-slug:classification-slug"], "color": "#FF5733", "created_at": "1970-01-01T00:00:00.000Z", "updated_at": "1970-01-01T00:00:00.000Z", "archived": false, "starred": false, "enabled_locations": ["account", "string"], "enabled_purposes": ["string"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ], "updated": [ { "id": "taxonomy-slug:classification-slug", "slug": "wallbox-pv", "name": "Wallbox PV", "parents": ["taxonomy-slug:classification-slug"], "color": "#FF5733", "created_at": "1970-01-01T00:00:00.000Z", "updated_at": "1970-01-01T00:00:00.000Z", "archived": false, "starred": false, "enabled_locations": ["account", "string"], "enabled_purposes": ["string"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ], "deleted": ["taxonomy-slug:classification-slug"] } ```
--- ### `createTaxonomyClassification` Create a new classification for a taxonomy `POST /v2/entity/taxonomies/classifications` ```ts const { data } = await client.createTaxonomyClassification( null, { id: 'taxonomy-slug:classification-slug', slug: 'wallbox-pv', name: 'Wallbox PV', parents: ['taxonomy-slug:classification-slug'], color: '#FF5733', created_at: '1970-01-01T00:00:00.000Z', updated_at: '1970-01-01T00:00:00.000Z', archived: false, starred: false, enabled_locations: ['account', 'string'], enabled_purposes: ['string'], _manifest: ['123e4567-e89b-12d3-a456-426614174000'] }, ) ```
Response ```json { "id": "taxonomy-slug:classification-slug", "slug": "wallbox-pv", "name": "Wallbox PV", "parents": ["taxonomy-slug:classification-slug"], "color": "#FF5733", "created_at": "1970-01-01T00:00:00.000Z", "updated_at": "1970-01-01T00:00:00.000Z", "archived": false, "starred": false, "enabled_locations": ["account", "string"], "enabled_purposes": ["string"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ```
--- ### `getTaxonomyClassification` Get a classification for a taxonomy by slug `GET /v2/entity/taxonomies/classifications/{classificationSlug}` ```ts const { data } = await client.getTaxonomyClassification({ classificationSlug: 'example', }) ```
Response ```json { "id": "taxonomy-slug:classification-slug", "slug": "wallbox-pv", "name": "Wallbox PV", "parents": ["taxonomy-slug:classification-slug"], "color": "#FF5733", "created_at": "1970-01-01T00:00:00.000Z", "updated_at": "1970-01-01T00:00:00.000Z", "archived": false, "starred": false, "enabled_locations": ["account", "string"], "enabled_purposes": ["string"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ```
--- ### `updateTaxonomyClassification` Update a classification for a taxonomy `PUT /v2/entity/taxonomies/classifications/{classificationSlug}` ```ts const { data } = await client.updateTaxonomyClassification( { classificationSlug: 'example', }, { id: 'taxonomy-slug:classification-slug', slug: 'wallbox-pv', name: 'Wallbox PV', parents: ['taxonomy-slug:classification-slug'], color: '#FF5733', created_at: '1970-01-01T00:00:00.000Z', updated_at: '1970-01-01T00:00:00.000Z', archived: false, starred: false, enabled_locations: ['account', 'string'], enabled_purposes: ['string'], _manifest: ['123e4567-e89b-12d3-a456-426614174000'] }, ) ```
Response ```json { "id": "taxonomy-slug:classification-slug", "slug": "wallbox-pv", "name": "Wallbox PV", "parents": ["taxonomy-slug:classification-slug"], "color": "#FF5733", "created_at": "1970-01-01T00:00:00.000Z", "updated_at": "1970-01-01T00:00:00.000Z", "archived": false, "starred": false, "enabled_locations": ["account", "string"], "enabled_purposes": ["string"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ```
--- ### `deleteTaxonomyClassification` Delete a classification for a taxonomy `DELETE /v2/entity/taxonomies/classifications/{classificationSlug}` ```ts const { data } = await client.deleteTaxonomyClassification({ classificationSlug: 'example', }) ```
Response ```json { "id": "taxonomy-slug:classification-slug", "slug": "wallbox-pv", "name": "Wallbox PV", "parents": ["taxonomy-slug:classification-slug"], "color": "#FF5733", "created_at": "1970-01-01T00:00:00.000Z", "updated_at": "1970-01-01T00:00:00.000Z", "archived": false, "starred": false, "enabled_locations": ["account", "string"], "enabled_purposes": ["string"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ```
--- ### `taxonomyAutocomplete` Taxonomies autocomplete `GET /v1/entity/taxonomies/{taxonomySlug}:autocomplete` ```ts const { data } = await client.taxonomyAutocomplete({ taxonomySlug: 'example', query: 'example', size: 1, }) ```
Response ```json { "results": [ { "id": "taxonomy-slug:classification-slug", "slug": "wallbox-pv", "name": "Wallbox PV", "parents": ["taxonomy-slug:classification-slug"], "color": "#FF5733", "created_at": "1970-01-01T00:00:00.000Z", "updated_at": "1970-01-01T00:00:00.000Z", "archived": false, "starred": false, "enabled_locations": ["account", "string"], "enabled_purposes": ["string"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ] } ```
--- ### `taxonomiesClassificationsSearch` List taxonomy classifications in an organization based on taxonomy slug `POST /v1/entity/taxonomies/classifications:search` ```ts const { data } = await client.taxonomiesClassificationsSearch( { taxonomySlug: ['...'], query: 'example', archived: true, include_archived: 'example', exclude_types: ['...'], }, { classificationIds: [ 'taxonomy-slug:classification-slug', { pattern: 'taxonomy-slug:*' } ] }, ) ```
Response ```json { "results": [ { "id": "taxonomy-slug:classification-slug", "slug": "wallbox-pv", "name": "Wallbox PV", "parents": ["taxonomy-slug:classification-slug"], "color": "#FF5733", "created_at": "1970-01-01T00:00:00.000Z", "updated_at": "1970-01-01T00:00:00.000Z", "archived": false, "starred": false, "enabled_locations": ["account", "string"], "enabled_purposes": ["string"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ], "hits": 10 } ```
--- ### `listTaxonomyClassificationsForSchema` List taxonomy classifications for a given schema `GET /v1/entity/schemas/{slug}/taxonomy/{taxonomySlug}` ```ts const { data } = await client.listTaxonomyClassificationsForSchema({ slug: 'example', taxonomySlug: 'example', query: 'example', size: 1, }) ```
Response ```json { "results": [ { "id": "taxonomy-slug:classification-slug", "slug": "wallbox-pv", "name": "Wallbox PV", "parents": ["taxonomy-slug:classification-slug"], "color": "#FF5733", "created_at": "1970-01-01T00:00:00.000Z", "updated_at": "1970-01-01T00:00:00.000Z", "archived": false, "starred": false, "enabled_locations": ["account", "string"], "enabled_purposes": ["string"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"] } ] } ```
--- ### `getTaxonomyBulkActionJobs` Gets bulk actions jobs by job status: - ```` = all active jobs - PENDING = all active jobs - FAILED = all failed jobs - COMPLETED = all completed jobs `GET /v1/entity/taxonomies/bulk-jobs` ```ts const { data } = await client.getTaxonomyBulkActionJobs({ status: ['...'], size: 1, created_after: 'example', sort_pending_first: true, scope: 'example', }) ```
Response ```json [ { "job_id": "123e4567-e89b-12d3-a456-426614174000", "status": "PENDING", "action_type": "MOVE_CLASSIFICATIONS", "created_by": "10598", "created_at": "2024-01-01T00:00:00.000Z", "updated_at": "2024-01-01T00:00:00.000Z", "org": "66" } ] ```
--- ### `getTaxonomyBulkActionJobById` Gets a bulk action job by job id `GET /v1/entity/taxonomies/bulk-jobs/{job_id}` ```ts const { data } = await client.getTaxonomyBulkActionJobById({ job_id: 'example', }) ```
Response ```json { "job_id": "123e4567-e89b-12d3-a456-426614174000", "status": "PENDING", "action_type": "MOVE_CLASSIFICATIONS", "created_by": "10598", "created_at": "2024-01-01T00:00:00.000Z", "updated_at": "2024-01-01T00:00:00.000Z", "org": "66" } ```
--- ### `cancelBulkAction` Cancels a running bulk action job. The job status will be updated to CANCELLED and the job will be stopped. `POST /v1/entity/taxonomies/bulk-jobs/{job_id}/cancel` ```ts const { data } = await client.cancelBulkAction({ job_id: 'example', }) ```
Response ```json { "job_id": "123e4567-e89b-12d3-a456-426614174000", "status": "PENDING", "action_type": "MOVE_CLASSIFICATIONS", "created_by": "10598", "created_at": "2024-01-01T00:00:00.000Z", "updated_at": "2024-01-01T00:00:00.000Z", "org": "66" } ```
--- ### `bulkMoveClassifications` Moves classifications from one taxonomy to another, through a bulk async operation which also updates all references from the old classification to the new one under the target taxonomy. `POST /v1/entity/taxonomies/classifications:move` ```ts const { data } = await client.bulkMoveClassifications( null, { job_id: 'string', target_taxonomy: 'purpose', classification_ids: ['taxonomy-slug:classification-slug'] }, ) ```
Response ```json { "job_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "status": "PENDING" } ```
--- ### `bulkMergeClassifications` Merges classifications from one taxonomy into one individual classification, through a bulk async operation which also updates all references from the old Classifications to the new one. `POST /v1/entity/taxonomies/classifications:merge` ```ts const { data } = await client.bulkMergeClassifications( null, { job_id: 'string', target_classification: 'purpose', classification_ids: ['taxonomy-slug:classification-slug'] }, ) ```
Response ```json { "job_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "status": "PENDING" } ```
--- ### `bulkDeleteClassifications` Permanently deletes taxonomy classifications. The classifications are deleted through a bulk async operation which also deletes all references of the deleted classifications from the entities referenc `POST /v1/entity/taxonomies/classifications:delete` ```ts const { data } = await client.bulkDeleteClassifications( null, { job_id: 'string', classification_ids: ['taxonomy-slug:classification-slug'] }, ) ```
Response ```json { "job_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "status": "PENDING" } ```
--- ### `createSchemaAttribute` Create a schema attribute `POST /v1/entity/schemas/attributes` ```ts const { data } = await client.createSchemaAttribute( null, { id: 'd5839b94-ba20-4225-a78e-76951d352bd6', name: 'string', label: 'string', placeholder: 'string', hidden: false, show_in_table: true, sortable: true, required: false, readonly: false, deprecated: false, default_value: {}, group: 'string', order: 0, layout: 'full_width', hide_label: true, icon: 'string', render_condition: 'string', _purpose: ['taxonomy-slug:classification-slug'], _manifest: ['123e4567-e89b-12d3-a456-426614174000'], constraints: { disablePast: true }, feature_flag: 'FF_MY_FEATURE_FLAG', settings_flag: [ { name: 'string', enabled: true } ], value_formatter: 'string', preview_value_formatter: 'string', entity_builder_disable_edit: false, protected: true, info_helpers: { hint_text: 'string', hint_text_key: 'string', hint_custom_component: 'string', hint_tooltip_placement: 'top' }, explicit_searchable: false, exclude_from_search: false, repeatable: true, has_primary: true, edit_mode: 'direct', edit_mode_config: { match_strategy: 'exact', fuzzy_config: { type: 'suffix', suffix_length: 0, fields_to_ignore: ['string'], regex_flags: 'string', country_code: 'string', match_on: 'string', key: 'string', mode: 'subset', ordered: true, require_tags_match: true, pattern: 'string' } }, type: 'string', multiline: true, rich_text: true, rows: 3 }, ) ```
Response ```json { "id": "d5839b94-ba20-4225-a78e-76951d352bd6", "name": "string", "label": "string", "placeholder": "string", "hidden": false, "show_in_table": true, "sortable": true, "required": false, "readonly": false, "deprecated": false, "default_value": {}, "group": "string", "order": 0, "layout": "full_width", "hide_label": true, "icon": "string", "render_condition": "string", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "constraints": { "disablePast": true }, "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [ { "name": "string", "enabled": true } ], "value_formatter": "string", "preview_value_formatter": "string", "entity_builder_disable_edit": false, "protected": true, "info_helpers": { "hint_text": "string", "hint_text_key": "string", "hint_custom_component": "string", "hint_tooltip_placement": "top" }, "explicit_searchable": false, "exclude_from_search": false, "repeatable": true, "has_primary": true, "edit_mode": "direct", "edit_mode_config": { "match_strategy": "exact", "fuzzy_config": { "type": "suffix", "suffix_length": 0, "fields_to_ignore": ["string"], "regex_flags": "string", "country_code": "string", "match_on": "string", "key": "string", "mode": "subset", "ordered": true, "require_tags_match": true, "pattern": "string" } }, "type": "string", "multiline": true, "rich_text": true, "rows": 3 } ```
--- ### `getSchemaAttribute` Get a schema attribute from given attribute ID `GET /v1/entity/schemas/attributes/{composite_id}` ```ts const { data } = await client.getSchemaAttribute({ composite_id: 'example', }) ```
Response ```json { "id": "d5839b94-ba20-4225-a78e-76951d352bd6", "name": "string", "label": "string", "placeholder": "string", "hidden": false, "show_in_table": true, "sortable": true, "required": false, "readonly": false, "deprecated": false, "default_value": {}, "group": "string", "order": 0, "layout": "full_width", "hide_label": true, "icon": "string", "render_condition": "string", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "constraints": { "disablePast": true }, "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [ { "name": "string", "enabled": true } ], "value_formatter": "string", "preview_value_formatter": "string", "entity_builder_disable_edit": false, "protected": true, "info_helpers": { "hint_text": "string", "hint_text_key": "string", "hint_custom_component": "string", "hint_tooltip_placement": "top" }, "explicit_searchable": false, "exclude_from_search": false, "repeatable": true, "has_primary": true, "edit_mode": "direct", "edit_mode_config": { "match_strategy": "exact", "fuzzy_config": { "type": "suffix", "suffix_length": 0, "fields_to_ignore": ["string"], "regex_flags": "string", "country_code": "string", "match_on": "string", "key": "string", "mode": "subset", "ordered": true, "require_tags_match": true, "pattern": "string" } }, "type": "string", "multiline": true, "rich_text": true, "rows": 3 } ```
--- ### `putSchemaAttribute` Updates an attribute in the schema `PUT /v1/entity/schemas/attributes/{composite_id}` ```ts const { data } = await client.putSchemaAttribute( { composite_id: 'example', }, { id: 'd5839b94-ba20-4225-a78e-76951d352bd6', name: 'string', label: 'string', placeholder: 'string', hidden: false, show_in_table: true, sortable: true, required: false, readonly: false, deprecated: false, default_value: {}, group: 'string', order: 0, layout: 'full_width', hide_label: true, icon: 'string', render_condition: 'string', _purpose: ['taxonomy-slug:classification-slug'], _manifest: ['123e4567-e89b-12d3-a456-426614174000'], constraints: { disablePast: true }, feature_flag: 'FF_MY_FEATURE_FLAG', settings_flag: [ { name: 'string', enabled: true } ], value_formatter: 'string', preview_value_formatter: 'string', entity_builder_disable_edit: false, protected: true, info_helpers: { hint_text: 'string', hint_text_key: 'string', hint_custom_component: 'string', hint_tooltip_placement: 'top' }, explicit_searchable: false, exclude_from_search: false, repeatable: true, has_primary: true, edit_mode: 'direct', edit_mode_config: { match_strategy: 'exact', fuzzy_config: { type: 'suffix', suffix_length: 0, fields_to_ignore: ['string'], regex_flags: 'string', country_code: 'string', match_on: 'string', key: 'string', mode: 'subset', ordered: true, require_tags_match: true, pattern: 'string' } }, type: 'string', multiline: true, rich_text: true, rows: 3 }, ) ```
Response ```json { "id": "d5839b94-ba20-4225-a78e-76951d352bd6", "name": "string", "label": "string", "placeholder": "string", "hidden": false, "show_in_table": true, "sortable": true, "required": false, "readonly": false, "deprecated": false, "default_value": {}, "group": "string", "order": 0, "layout": "full_width", "hide_label": true, "icon": "string", "render_condition": "string", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "constraints": { "disablePast": true }, "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [ { "name": "string", "enabled": true } ], "value_formatter": "string", "preview_value_formatter": "string", "entity_builder_disable_edit": false, "protected": true, "info_helpers": { "hint_text": "string", "hint_text_key": "string", "hint_custom_component": "string", "hint_tooltip_placement": "top" }, "explicit_searchable": false, "exclude_from_search": false, "repeatable": true, "has_primary": true, "edit_mode": "direct", "edit_mode_config": { "match_strategy": "exact", "fuzzy_config": { "type": "suffix", "suffix_length": 0, "fields_to_ignore": ["string"], "regex_flags": "string", "country_code": "string", "match_on": "string", "key": "string", "mode": "subset", "ordered": true, "require_tags_match": true, "pattern": "string" } }, "type": "string", "multiline": true, "rich_text": true, "rows": 3 } ```
--- ### `deleteSchemaAttribute` Deletes an attribute from a schema `DELETE /v1/entity/schemas/attributes/{composite_id}` ```ts const { data } = await client.deleteSchemaAttribute({ composite_id: 'example', }) ```
Response ```json { "id": "d5839b94-ba20-4225-a78e-76951d352bd6", "name": "string", "label": "string", "placeholder": "string", "hidden": false, "show_in_table": true, "sortable": true, "required": false, "readonly": false, "deprecated": false, "default_value": {}, "group": "string", "order": 0, "layout": "full_width", "hide_label": true, "icon": "string", "render_condition": "string", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "constraints": { "disablePast": true }, "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [ { "name": "string", "enabled": true } ], "value_formatter": "string", "preview_value_formatter": "string", "entity_builder_disable_edit": false, "protected": true, "info_helpers": { "hint_text": "string", "hint_text_key": "string", "hint_custom_component": "string", "hint_tooltip_placement": "top" }, "explicit_searchable": false, "exclude_from_search": false, "repeatable": true, "has_primary": true, "edit_mode": "direct", "edit_mode_config": { "match_strategy": "exact", "fuzzy_config": { "type": "suffix", "suffix_length": 0, "fields_to_ignore": ["string"], "regex_flags": "string", "country_code": "string", "match_on": "string", "key": "string", "mode": "subset", "ordered": true, "require_tags_match": true, "pattern": "string" } }, "type": "string", "multiline": true, "rich_text": true, "rows": 3 } ```
--- ### `createSchemaCapability` Create a schema capability `POST /v1/entity/schemas/capabilities` ```ts const { data } = await client.createSchemaCapability( null, { id: 'd5839b94-ba20-4225-a78e-76951d352bd6', name: 'customer_messaging', title: 'Messaging', attributes: [ { id: 'd5839b94-ba20-4225-a78e-76951d352bd6', name: 'string', label: 'string', placeholder: 'string', hidden: false, show_in_table: true, sortable: true, required: false, readonly: false, deprecated: false, default_value: {}, group: 'string', order: 0, layout: 'full_width', hide_label: true, icon: 'string', render_condition: 'string', _purpose: ['taxonomy-slug:classification-slug'], _manifest: ['123e4567-e89b-12d3-a456-426614174000'], constraints: { /* ... */ }, feature_flag: 'FF_MY_FEATURE_FLAG', settings_flag: [ /* ... */ ], value_formatter: 'string', preview_value_formatter: 'string', entity_builder_disable_edit: false, protected: true, info_helpers: { /* ... */ }, explicit_searchable: false, exclude_from_search: false, repeatable: true, has_primary: true, edit_mode: 'direct', edit_mode_config: { /* ... */ }, type: 'string', multiline: true, rich_text: true, rows: 3 }, { id: 'd5839b94-ba20-4225-a78e-76951d352bd6', name: 'string', label: 'string', placeholder: 'string', hidden: false, show_in_table: true, sortable: true, required: false, readonly: false, deprecated: false, default_value: {}, group: 'string', order: 0, layout: 'full_width', hide_label: true, icon: 'string', render_condition: 'string', _purpose: ['taxonomy-slug:classification-slug'], _manifest: ['123e4567-e89b-12d3-a456-426614174000'], constraints: { /* ... */ }, feature_flag: 'FF_MY_FEATURE_FLAG', settings_flag: [ /* ... */ ], value_formatter: 'string', preview_value_formatter: 'string', entity_builder_disable_edit: false, protected: true, info_helpers: { /* ... */ }, explicit_searchable: false, exclude_from_search: false, repeatable: true, has_primary: true, edit_mode: 'direct', edit_mode_config: { /* ... */ }, type: 'link' }, /* ... 33 more */ ], _purpose: ['taxonomy-slug:classification-slug'], _manifest: ['123e4567-e89b-12d3-a456-426614174000'], app_id: '123e4567-e89b-12d3-a456-426614174000', ui_config: { is_filterable: true }, ui_hooks: [ { hook: 'EntityDetailsV2:Tab', render_condition: '_is_composite_price = "false"', order: 10, title: 'Notes', group_expanded: true, import: '@epilot360/notes', component: 'PricingItems', route: 'notes', icon: 'email', disabled: true, header: true, requiredPermission: { /* ... */ } } ], feature_flag: 'FF_MY_FEATURE_FLAG', settings_flag: [ { name: 'string', enabled: true } ], schemas: [ { schema: 'contact' } ], composite_id: 'contact:97644baa-083f-4e49-9188-fcff2ecaad7d', schema: 'contact' }, ) ```
Response ```json { "id": "d5839b94-ba20-4225-a78e-76951d352bd6", "name": "customer_messaging", "title": "Messaging", "attributes": [ { "id": "d5839b94-ba20-4225-a78e-76951d352bd6", "name": "string", "label": "string", "placeholder": "string", "hidden": false, "show_in_table": true, "sortable": true, "required": false, "readonly": false, "deprecated": false, "default_value": {}, "group": "string", "order": 0, "layout": "full_width", "hide_label": true, "icon": "string", "render_condition": "string", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "constraints": {}, "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [], "value_formatter": "string", "preview_value_formatter": "string", "entity_builder_disable_edit": false, "protected": true, "info_helpers": {}, "explicit_searchable": false, "exclude_from_search": false, "repeatable": true, "has_primary": true, "edit_mode": "direct", "edit_mode_config": {}, "type": "string", "multiline": true, "rich_text": true, "rows": 3 }, { "id": "d5839b94-ba20-4225-a78e-76951d352bd6", "name": "string", "label": "string", "placeholder": "string", "hidden": false, "show_in_table": true, "sortable": true, "required": false, "readonly": false, "deprecated": false, "default_value": {}, "group": "string", "order": 0, "layout": "full_width", "hide_label": true, "icon": "string", "render_condition": "string", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "constraints": {}, "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [], "value_formatter": "string", "preview_value_formatter": "string", "entity_builder_disable_edit": false, "protected": true, "info_helpers": {}, "explicit_searchable": false, "exclude_from_search": false, "repeatable": true, "has_primary": true, "edit_mode": "direct", "edit_mode_config": {}, "type": "link" } ], "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "app_id": "123e4567-e89b-12d3-a456-426614174000", "ui_config": { "is_filterable": true }, "ui_hooks": [ { "hook": "EntityDetailsV2:Tab", "render_condition": "_is_composite_price = \"false\"", "order": 10, "title": "Notes", "group_expanded": true, "import": "@epilot360/notes", "component": "PricingItems", "route": "notes", "icon": "email", "disabled": true, "header": true, "requiredPermission": {} } ], "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [ { "name": "string", "enabled": true } ], "schemas": [ { "schema": "contact" } ], "composite_id": "contact:97644baa-083f-4e49-9188-fcff2ecaad7d", "schema": "contact" } ```
--- ### `getSchemaCapability` Get a schema capability from given capability ID `GET /v1/entity/schemas/capabilities/{composite_id}` ```ts const { data } = await client.getSchemaCapability({ composite_id: 'example', }) ```
Response ```json { "id": "d5839b94-ba20-4225-a78e-76951d352bd6", "name": "customer_messaging", "title": "Messaging", "attributes": [ { "id": "d5839b94-ba20-4225-a78e-76951d352bd6", "name": "string", "label": "string", "placeholder": "string", "hidden": false, "show_in_table": true, "sortable": true, "required": false, "readonly": false, "deprecated": false, "default_value": {}, "group": "string", "order": 0, "layout": "full_width", "hide_label": true, "icon": "string", "render_condition": "string", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "constraints": {}, "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [], "value_formatter": "string", "preview_value_formatter": "string", "entity_builder_disable_edit": false, "protected": true, "info_helpers": {}, "explicit_searchable": false, "exclude_from_search": false, "repeatable": true, "has_primary": true, "edit_mode": "direct", "edit_mode_config": {}, "type": "string", "multiline": true, "rich_text": true, "rows": 3 }, { "id": "d5839b94-ba20-4225-a78e-76951d352bd6", "name": "string", "label": "string", "placeholder": "string", "hidden": false, "show_in_table": true, "sortable": true, "required": false, "readonly": false, "deprecated": false, "default_value": {}, "group": "string", "order": 0, "layout": "full_width", "hide_label": true, "icon": "string", "render_condition": "string", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "constraints": {}, "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [], "value_formatter": "string", "preview_value_formatter": "string", "entity_builder_disable_edit": false, "protected": true, "info_helpers": {}, "explicit_searchable": false, "exclude_from_search": false, "repeatable": true, "has_primary": true, "edit_mode": "direct", "edit_mode_config": {}, "type": "link" } ], "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "app_id": "123e4567-e89b-12d3-a456-426614174000", "ui_config": { "is_filterable": true }, "ui_hooks": [ { "hook": "EntityDetailsV2:Tab", "render_condition": "_is_composite_price = \"false\"", "order": 10, "title": "Notes", "group_expanded": true, "import": "@epilot360/notes", "component": "PricingItems", "route": "notes", "icon": "email", "disabled": true, "header": true, "requiredPermission": {} } ], "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [ { "name": "string", "enabled": true } ], "schemas": [ { "schema": "contact" } ], "composite_id": "contact:97644baa-083f-4e49-9188-fcff2ecaad7d", "schema": "contact" } ```
--- ### `putSchemaCapability` Adds or updates an capability in the schema `PUT /v1/entity/schemas/capabilities/{composite_id}` ```ts const { data } = await client.putSchemaCapability( { composite_id: 'example', }, { id: 'd5839b94-ba20-4225-a78e-76951d352bd6', name: 'customer_messaging', title: 'Messaging', attributes: [ { id: 'd5839b94-ba20-4225-a78e-76951d352bd6', name: 'string', label: 'string', placeholder: 'string', hidden: false, show_in_table: true, sortable: true, required: false, readonly: false, deprecated: false, default_value: {}, group: 'string', order: 0, layout: 'full_width', hide_label: true, icon: 'string', render_condition: 'string', _purpose: ['taxonomy-slug:classification-slug'], _manifest: ['123e4567-e89b-12d3-a456-426614174000'], constraints: { /* ... */ }, feature_flag: 'FF_MY_FEATURE_FLAG', settings_flag: [ /* ... */ ], value_formatter: 'string', preview_value_formatter: 'string', entity_builder_disable_edit: false, protected: true, info_helpers: { /* ... */ }, explicit_searchable: false, exclude_from_search: false, repeatable: true, has_primary: true, edit_mode: 'direct', edit_mode_config: { /* ... */ }, type: 'string', multiline: true, rich_text: true, rows: 3 }, { id: 'd5839b94-ba20-4225-a78e-76951d352bd6', name: 'string', label: 'string', placeholder: 'string', hidden: false, show_in_table: true, sortable: true, required: false, readonly: false, deprecated: false, default_value: {}, group: 'string', order: 0, layout: 'full_width', hide_label: true, icon: 'string', render_condition: 'string', _purpose: ['taxonomy-slug:classification-slug'], _manifest: ['123e4567-e89b-12d3-a456-426614174000'], constraints: { /* ... */ }, feature_flag: 'FF_MY_FEATURE_FLAG', settings_flag: [ /* ... */ ], value_formatter: 'string', preview_value_formatter: 'string', entity_builder_disable_edit: false, protected: true, info_helpers: { /* ... */ }, explicit_searchable: false, exclude_from_search: false, repeatable: true, has_primary: true, edit_mode: 'direct', edit_mode_config: { /* ... */ }, type: 'link' }, /* ... 33 more */ ], _purpose: ['taxonomy-slug:classification-slug'], _manifest: ['123e4567-e89b-12d3-a456-426614174000'], app_id: '123e4567-e89b-12d3-a456-426614174000', ui_config: { is_filterable: true }, ui_hooks: [ { hook: 'EntityDetailsV2:Tab', render_condition: '_is_composite_price = "false"', order: 10, title: 'Notes', group_expanded: true, import: '@epilot360/notes', component: 'PricingItems', route: 'notes', icon: 'email', disabled: true, header: true, requiredPermission: { /* ... */ } } ], feature_flag: 'FF_MY_FEATURE_FLAG', settings_flag: [ { name: 'string', enabled: true } ], schemas: [ { schema: 'contact' } ], composite_id: 'contact:97644baa-083f-4e49-9188-fcff2ecaad7d', schema: 'contact' }, ) ```
Response ```json { "id": "d5839b94-ba20-4225-a78e-76951d352bd6", "name": "customer_messaging", "title": "Messaging", "attributes": [ { "id": "d5839b94-ba20-4225-a78e-76951d352bd6", "name": "string", "label": "string", "placeholder": "string", "hidden": false, "show_in_table": true, "sortable": true, "required": false, "readonly": false, "deprecated": false, "default_value": {}, "group": "string", "order": 0, "layout": "full_width", "hide_label": true, "icon": "string", "render_condition": "string", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "constraints": {}, "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [], "value_formatter": "string", "preview_value_formatter": "string", "entity_builder_disable_edit": false, "protected": true, "info_helpers": {}, "explicit_searchable": false, "exclude_from_search": false, "repeatable": true, "has_primary": true, "edit_mode": "direct", "edit_mode_config": {}, "type": "string", "multiline": true, "rich_text": true, "rows": 3 }, { "id": "d5839b94-ba20-4225-a78e-76951d352bd6", "name": "string", "label": "string", "placeholder": "string", "hidden": false, "show_in_table": true, "sortable": true, "required": false, "readonly": false, "deprecated": false, "default_value": {}, "group": "string", "order": 0, "layout": "full_width", "hide_label": true, "icon": "string", "render_condition": "string", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "constraints": {}, "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [], "value_formatter": "string", "preview_value_formatter": "string", "entity_builder_disable_edit": false, "protected": true, "info_helpers": {}, "explicit_searchable": false, "exclude_from_search": false, "repeatable": true, "has_primary": true, "edit_mode": "direct", "edit_mode_config": {}, "type": "link" } ], "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "app_id": "123e4567-e89b-12d3-a456-426614174000", "ui_config": { "is_filterable": true }, "ui_hooks": [ { "hook": "EntityDetailsV2:Tab", "render_condition": "_is_composite_price = \"false\"", "order": 10, "title": "Notes", "group_expanded": true, "import": "@epilot360/notes", "component": "PricingItems", "route": "notes", "icon": "email", "disabled": true, "header": true, "requiredPermission": {} } ], "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [ { "name": "string", "enabled": true } ], "schemas": [ { "schema": "contact" } ], "composite_id": "contact:97644baa-083f-4e49-9188-fcff2ecaad7d", "schema": "contact" } ```
--- ### `deleteSchemaCapability` Deletes a Capability from a schema `DELETE /v1/entity/schemas/capabilities/{composite_id}` ```ts const { data } = await client.deleteSchemaCapability({ composite_id: 'example', }) ```
Response ```json { "id": "d5839b94-ba20-4225-a78e-76951d352bd6", "name": "customer_messaging", "title": "Messaging", "attributes": [ { "id": "d5839b94-ba20-4225-a78e-76951d352bd6", "name": "string", "label": "string", "placeholder": "string", "hidden": false, "show_in_table": true, "sortable": true, "required": false, "readonly": false, "deprecated": false, "default_value": {}, "group": "string", "order": 0, "layout": "full_width", "hide_label": true, "icon": "string", "render_condition": "string", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "constraints": {}, "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [], "value_formatter": "string", "preview_value_formatter": "string", "entity_builder_disable_edit": false, "protected": true, "info_helpers": {}, "explicit_searchable": false, "exclude_from_search": false, "repeatable": true, "has_primary": true, "edit_mode": "direct", "edit_mode_config": {}, "type": "string", "multiline": true, "rich_text": true, "rows": 3 }, { "id": "d5839b94-ba20-4225-a78e-76951d352bd6", "name": "string", "label": "string", "placeholder": "string", "hidden": false, "show_in_table": true, "sortable": true, "required": false, "readonly": false, "deprecated": false, "default_value": {}, "group": "string", "order": 0, "layout": "full_width", "hide_label": true, "icon": "string", "render_condition": "string", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "constraints": {}, "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [], "value_formatter": "string", "preview_value_formatter": "string", "entity_builder_disable_edit": false, "protected": true, "info_helpers": {}, "explicit_searchable": false, "exclude_from_search": false, "repeatable": true, "has_primary": true, "edit_mode": "direct", "edit_mode_config": {}, "type": "link" } ], "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "app_id": "123e4567-e89b-12d3-a456-426614174000", "ui_config": { "is_filterable": true }, "ui_hooks": [ { "hook": "EntityDetailsV2:Tab", "render_condition": "_is_composite_price = \"false\"", "order": 10, "title": "Notes", "group_expanded": true, "import": "@epilot360/notes", "component": "PricingItems", "route": "notes", "icon": "email", "disabled": true, "header": true, "requiredPermission": {} } ], "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [ { "name": "string", "enabled": true } ], "schemas": [ { "schema": "contact" } ], "composite_id": "contact:97644baa-083f-4e49-9188-fcff2ecaad7d", "schema": "contact" } ```
--- ### `createSchemaGroup` Create a schema group `POST /v1/entity/schemas/group` ```ts const { data } = await client.createSchemaGroup( null, { label: 'Contact Details', id: 'e18a532b-ae79-4d86-a6a5-e5dbfb579d14', order: 0, expanded: false, render_condition: '_is_composite_price = "false"', _purpose: ['taxonomy-slug:classification-slug'], _manifest: ['123e4567-e89b-12d3-a456-426614174000'], feature_flag: 'FF_MY_FEATURE_FLAG', settings_flag: [ { name: 'string', enabled: true } ], info_tooltip_title: { key: 'string', default: 'string' }, composite_id: 'contact:e18a532b-ae79-4d86-a6a5-e5dbfb579d14', schema: 'contact' }, ) ```
Response ```json { "label": "Contact Details", "id": "e18a532b-ae79-4d86-a6a5-e5dbfb579d14", "order": 0, "expanded": false, "render_condition": "_is_composite_price = \"false\"", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [ { "name": "string", "enabled": true } ], "info_tooltip_title": { "key": "string", "default": "string" }, "composite_id": "contact:e18a532b-ae79-4d86-a6a5-e5dbfb579d14", "schema": "contact" } ```
--- ### `getSchemaGroup` Get a schema group from given group composite ID `GET /v1/entity/schemas/group/{composite_id}` ```ts const { data } = await client.getSchemaGroup({ composite_id: 'example', }) ```
Response ```json { "label": "Contact Details", "id": "e18a532b-ae79-4d86-a6a5-e5dbfb579d14", "order": 0, "expanded": false, "render_condition": "_is_composite_price = \"false\"", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [ { "name": "string", "enabled": true } ], "info_tooltip_title": { "key": "string", "default": "string" }, "composite_id": "contact:e18a532b-ae79-4d86-a6a5-e5dbfb579d14", "schema": "contact" } ```
--- ### `putSchemaGroup` Adds or updates an capability in the schema `PUT /v1/entity/schemas/group/{composite_id}` ```ts const { data } = await client.putSchemaGroup( { composite_id: 'example', }, { label: 'Contact Details', id: 'e18a532b-ae79-4d86-a6a5-e5dbfb579d14', order: 0, expanded: false, render_condition: '_is_composite_price = "false"', _purpose: ['taxonomy-slug:classification-slug'], _manifest: ['123e4567-e89b-12d3-a456-426614174000'], feature_flag: 'FF_MY_FEATURE_FLAG', settings_flag: [ { name: 'string', enabled: true } ], info_tooltip_title: { key: 'string', default: 'string' }, composite_id: 'contact:e18a532b-ae79-4d86-a6a5-e5dbfb579d14', schema: 'contact' }, ) ```
Response ```json { "label": "Contact Details", "id": "e18a532b-ae79-4d86-a6a5-e5dbfb579d14", "order": 0, "expanded": false, "render_condition": "_is_composite_price = \"false\"", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [ { "name": "string", "enabled": true } ], "info_tooltip_title": { "key": "string", "default": "string" }, "composite_id": "contact:e18a532b-ae79-4d86-a6a5-e5dbfb579d14", "schema": "contact" } ```
--- ### `deleteSchemaGroup` Deletes a Capability from a schema `DELETE /v1/entity/schemas/group/{composite_id}` ```ts const { data } = await client.deleteSchemaGroup({ composite_id: 'example', }) ```
Response ```json { "label": "Contact Details", "id": "e18a532b-ae79-4d86-a6a5-e5dbfb579d14", "order": 0, "expanded": false, "render_condition": "_is_composite_price = \"false\"", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "feature_flag": "FF_MY_FEATURE_FLAG", "settings_flag": [ { "name": "string", "enabled": true } ], "info_tooltip_title": { "key": "string", "default": "string" }, "composite_id": "contact:e18a532b-ae79-4d86-a6a5-e5dbfb579d14", "schema": "contact" } ```
--- ### `createSchemaGroupHeadline` Create a headline in a schema group `POST /v1/entity/schemas/headline` ```ts const { data } = await client.createSchemaGroupHeadline( null, { id: '3fa85f64-5717-4562-b3fc-2c963f66afa6', name: 'string', label: 'string', layout: 'string', group: 'string', order: 0, type: 'headline', enable_divider: false, divider: 'top_divider', _purpose: ['taxonomy-slug:classification-slug'], _manifest: ['123e4567-e89b-12d3-a456-426614174000'], composite_id: 'contact:97644baa-083f-4e49-9188-fcff2ecaad7d', schema: 'contact' }, ) ```
Response ```json { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "name": "string", "label": "string", "layout": "string", "group": "string", "order": 0, "type": "headline", "enable_divider": false, "divider": "top_divider", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "composite_id": "contact:97644baa-083f-4e49-9188-fcff2ecaad7d", "schema": "contact" } ```
--- ### `getSchemaGroupHeadline` Get a group headline from schema from given headline composite ID `GET /v1/entity/schemas/headline/{composite_id}` ```ts const { data } = await client.getSchemaGroupHeadline({ composite_id: 'example', }) ```
Response ```json { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "name": "string", "label": "string", "layout": "string", "group": "string", "order": 0, "type": "headline", "enable_divider": false, "divider": "top_divider", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "composite_id": "contact:97644baa-083f-4e49-9188-fcff2ecaad7d", "schema": "contact" } ```
--- ### `putSchemaGroupHeadline` Adds or updates a group headline in the schema `PUT /v1/entity/schemas/headline/{composite_id}` ```ts const { data } = await client.putSchemaGroupHeadline( { composite_id: 'example', }, { id: '3fa85f64-5717-4562-b3fc-2c963f66afa6', name: 'string', label: 'string', layout: 'string', group: 'string', order: 0, type: 'headline', enable_divider: false, divider: 'top_divider', _purpose: ['taxonomy-slug:classification-slug'], _manifest: ['123e4567-e89b-12d3-a456-426614174000'], composite_id: 'contact:97644baa-083f-4e49-9188-fcff2ecaad7d', schema: 'contact' }, ) ```
Response ```json { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "name": "string", "label": "string", "layout": "string", "group": "string", "order": 0, "type": "headline", "enable_divider": false, "divider": "top_divider", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "composite_id": "contact:97644baa-083f-4e49-9188-fcff2ecaad7d", "schema": "contact" } ```
--- ### `deleteSchemaGroupHeadline` Deletes a group headline from a schema `DELETE /v1/entity/schemas/headline/{composite_id}` ```ts const { data } = await client.deleteSchemaGroupHeadline({ composite_id: 'example', }) ```
Response ```json { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "name": "string", "label": "string", "layout": "string", "group": "string", "order": 0, "type": "headline", "enable_divider": false, "divider": "top_divider", "_purpose": ["taxonomy-slug:classification-slug"], "_manifest": ["123e4567-e89b-12d3-a456-426614174000"], "composite_id": "contact:97644baa-083f-4e49-9188-fcff2ecaad7d", "schema": "contact" } ```
--- ## Schemas ### `ExportJobId` The unique identifier of the import job. ```ts type ExportJobId = string ``` ### `Language` Export headers translation Language ```ts type Language = string ``` ### `IsTemplate` Pass 'true' to generate import template ```ts type IsTemplate = boolean ``` ### `SchemaId` Generated uuid for schema ```ts type SchemaId = string // uuid ``` ### `EntitySchema` The "type" of an Entity. Describes the shape. Includes Entity Attributes, Relations and Capabilities. ```ts type EntitySchema = { slug: string version?: number blueprint?: string // uuid feature_flag?: string enable_setting?: string[] name: string plural: string description?: string docs_url?: string // uri category?: string published?: boolean draft?: boolean icon?: string title_template?: string ui_config?: { table_view?: { view_type?: { ... } row_actions?: { ... } bulk_actions?: { ... } navbar_actions?: { ... } enable_thumbnails?: { ... } } | { view_type?: { ... } route?: { ... } } | { view_type?: { ... } } create_view?: { view_type?: { ... } search_params?: { ... } } | { view_type?: { ... } route?: { ... } } | { view_type?: { ... } } edit_view?: { view_type?: { ... } search_params?: { ... } summary_attributes?: { ... } } | { view_type?: { ... } route?: { ... } } | { view_type?: { ... } } single_view?: { view_type?: { ... } search_params?: { ... } summary_attributes?: { ... } } | { view_type?: { ... } route?: { ... } } | { view_type?: { ... } } list_item?: { summary_attributes?: { ... } quick_actions?: { ... } ui_config?: { ... } } sharing?: { show_sharing_button?: { ... } } } capabilities: Array<{ id?: string name: string title?: string attributes?: Array<{ id?: { ... } name: { ... } label: { ... } placeholder?: { ... } hidden?: { ... } show_in_table?: { ... } sortable?: { ... } required?: { ... } readonly?: { ... } deprecated?: { ... } default_value?: { ... } group?: { ... } order?: { ... } layout?: { ... } hide_label?: { ... } icon?: { ... } render_condition?: { ... } _purpose?: { ... } _manifest?: { ... } constraints?: { ... } feature_flag?: { ... } settings_flag?: { ... } value_formatter?: { ... } preview_value_formatter?: { ... } entity_builder_disable_edit?: { ... } protected?: { ... } info_helpers?: { ... } explicit_searchable?: { ... } exclude_from_search?: { ... } // ... } ``` ### `EntitySchemaItem` ```ts type EntitySchemaItem = { id?: string // uuid created_at?: string updated_at?: string comment?: string source?: { id?: string type?: string } frozen?: boolean latest?: boolean _summary?: boolean slug: string version?: number blueprint?: string // uuid feature_flag?: string enable_setting?: string[] name: string plural: string description?: string docs_url?: string // uri category?: string published?: boolean draft?: boolean icon?: string title_template?: string ui_config?: { table_view?: { view_type?: { ... } row_actions?: { ... } bulk_actions?: { ... } navbar_actions?: { ... } enable_thumbnails?: { ... } } | { view_type?: { ... } route?: { ... } } | { view_type?: { ... } } create_view?: { view_type?: { ... } search_params?: { ... } } | { view_type?: { ... } route?: { ... } } | { view_type?: { ... } } edit_view?: { view_type?: { ... } search_params?: { ... } summary_attributes?: { ... } } | { view_type?: { ... } route?: { ... } } | { view_type?: { ... } } single_view?: { view_type?: { ... } search_params?: { ... } summary_attributes?: { ... } } | { view_type?: { ... } route?: { ... } } | { view_type?: { ... } } list_item?: { summary_attributes?: { ... } quick_actions?: { ... } ui_config?: { ... } } sharing?: { show_sharing_button?: { ... } } } capabilities: Array<{ id?: string name: string title?: string attributes?: Array<{ id?: { ... } name: { ... } label: { ... } placeholder?: { ... } hidden?: { ... } show_in_table?: { ... } sortable?: { ... } required?: { ... } readonly?: { ... } deprecated?: { ... } default_value?: { ... } group?: { ... } order?: { ... } layout?: { ... } hide_label?: { ... } icon?: { ... } render_condition?: { ... } _purpose?: { ... } // ... } ``` ### `GenerateEntityTableAIFiltersRequest` ```ts type GenerateEntityTableAIFiltersRequest = { prompt: string main_entity_slug: string filter_options: Array<{ type?: "search" | "filter" label: string label_type?: string name?: string group?: string allowedSchemas?: string[] relatedOptions?: Array<{ type?: { ... } label: { ... } label_type?: { ... } name?: { ... } group?: { ... } allowedSchemas?: { ... } relatedOptions?: { ... } }> }> } ``` ### `GenerateEntityTableAIFiltersResponse` ```ts type GenerateEntityTableAIFiltersResponse = Array<{ label: string type: string value: string }> ``` ### `EntityTableFilterSearch` ```ts type EntityTableFilterSearch = { label: string type: string value: string } ``` ### `EntityTableFilterOption` ```ts type EntityTableFilterOption = { type?: "search" | "filter" label: string label_type?: string name?: string group?: string allowedSchemas?: string[] relatedOptions?: Array<{ type?: "search" | "filter" label: string label_type?: string name?: string group?: string allowedSchemas?: string[] relatedOptions?: Array<{ type?: { ... } label: { ... } label_type?: { ... } name?: { ... } group?: { ... } allowedSchemas?: { ... } relatedOptions?: { ... } }> }> } ``` ### `EntitySchemaGroup` ```ts type EntitySchemaGroup = { label: string id?: string order?: number expanded?: boolean render_condition?: string _purpose?: string[] _manifest?: string // uuid[] feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> info_tooltip_title?: { key?: string default?: string } } ``` ### `EntitySchemaGroupWithCompositeID` ```ts type EntitySchemaGroupWithCompositeID = { label: string id?: string order?: number expanded?: boolean render_condition?: string _purpose?: string[] _manifest?: string // uuid[] feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> info_tooltip_title?: { key?: string default?: string } composite_id?: string schema?: string } ``` ### `Attribute` ```ts type Attribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "string" multiline?: boolean rich_text?: boolean rows?: number | string } | { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean // ... } ``` ### `AttributeWithCompositeID` ```ts type AttributeWithCompositeID = { composite_id?: string schema?: string } ``` ### `BaseAttribute` ```ts type BaseAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } } ``` ### `TextAttribute` ```ts type TextAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "string" multiline?: boolean rich_text?: boolean rows?: number | string } ``` ### `LinkAttribute` ```ts type LinkAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "link" } ``` ### `InternalAttribute` ```ts type InternalAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "internal" } ``` ### `BooleanAttribute` ```ts type BooleanAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "boolean" display_type?: "switch" | "checkbox" } ``` ### `DateAttribute` ```ts type DateAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "date" | "datetime" } ``` ### `CountryAttribute` ```ts type CountryAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "country" } ``` ### `SelectAttribute` ```ts type SelectAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "select" | "radio" options?: Array<{ value: string title?: string } | string> allow_any?: boolean } ``` ### `MultiSelectAttribute` ```ts type MultiSelectAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "multiselect" | "checkbox" disable_case_sensitive?: boolean allow_extra_options?: boolean options?: Array allow_any?: boolean } ``` ### `StatusAttribute` ```ts type StatusAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "status" options?: Array } ``` ### `SequenceAttribute` ```ts type SequenceAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "sequence" prefix?: string start_number?: number } ``` ### `FileAttribute` ```ts type FileAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "image" | "file" multiple?: boolean allowed_extensions?: string[] display_images_landscaped?: boolean enable_description?: boolean default_access_control?: "public-read" | "private" file_size_bytes?: number } ``` ### `CurrencyAttribute` ```ts type CurrencyAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "currency" currency_selector_only?: boolean currency: Array<{ code: string description: string symbol: string flag?: string }> } ``` ### `SummaryField` Summary Fields are displayed inside list view as a resume of the relation entity. ```ts type SummaryField = { field?: string display_as?: string } ``` ### `EntityAction` An entity action configured from the entity schema ```ts type EntityAction = { action: string label: string icon?: string permission?: string } ``` ### `RelationAttribute` ```ts type RelationAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "list-view" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "relation" relation_type?: "has_many" | "has_one" reverse_attributes?: Record relation_affinity_mode?: "weak" | "strong" enable_relation_picker?: boolean details_view_mode_enabled?: boolean relation_picker_filter?: { q: string } actions?: Array<{ action_type?: "add_existing" | "create_new" | "create_from_existing" label?: string default?: boolean feature_flag?: string settings_flag?: Array<{ name?: { ... } enabled?: { ... } }> new_entity_item?: Record }> drawer_size?: "small" | "medium" | "large" summary_fields?: Array allowedSchemas?: string[] enable_relation_tags?: boolean add_button_label?: string search_placeholder?: string } ``` ### `UserRelationAttribute` ```ts type UserRelationAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "relation_user" multiple?: boolean } ``` ### `PartnerOrganisationAttribute` ```ts type PartnerOrganisationAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "partner_organisation" } ``` ### `PortalAccessAttribute` ```ts type PortalAccessAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "portal_access" } ``` ### `DefaultAddressFields` Default fields visible on addresses Valid values are: - postal_code (default) - city (default) - street (default) - street_number (default) - plot_area - plot_of_land - suburb - country - postbox - additional_info - coordinates - start_date - end_date - salutation - ti ```ts type DefaultAddressFields = string[] ``` ### `AddressAttribute` ```ts type AddressAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "address" default_address_fields?: string[] } ``` ### `AddressRelationAttribute` ```ts type AddressRelationAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "relation_address" default_address_fields?: string[] } ``` ### `PaymentMethodRelationAttribute` ```ts type PaymentMethodRelationAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "relation_payment_method" } ``` ### `InvitationEmailAttribute` ```ts type InvitationEmailAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "invitation_email" } ``` ### `AutomationAttribute` ```ts type AutomationAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "automation" } ``` ### `InternalUserAttribute` ```ts type InternalUserAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "internal_user" } ``` ### `PurposeAttribute` ```ts type PurposeAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "purpose" } ``` ### `RepeatableAttribute` ```ts type RepeatableAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } } ``` ### `TagsAttribute` ```ts type TagsAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "tags" options?: string[] suggestions?: string[] } ``` ### `MessageEmailAddressAttribute` ```ts type MessageEmailAddressAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "message_email_address" address?: string send_status?: string email_type?: string } ``` ### `NumberAttribute` ```ts type NumberAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "number" data_type?: "number" | "string" format?: string show_separator?: boolean } ``` ### `TableAttribute` ```ts type TableAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "table" columns?: Array<{ name: string label: string type?: "string" | "number" | "date" | "boolean" width?: string required?: boolean bold?: boolean }> min_rows?: number max_rows?: number transposed?: boolean column_header?: { template?: string start?: number } } ``` ### `ConsentAttribute` ```ts type ConsentAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "consent" topic: string identifiers?: string[] } ``` ### `OrderedListAttribute` ```ts type OrderedListAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "ordered_list" } ``` ### `EmailAttribute` ```ts type EmailAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "email" } ``` ### `PhoneAttribute` ```ts type PhoneAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "phone" } ``` ### `PaymentAttribute` ```ts type PaymentAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "payment" } ``` ### `PriceComponentAttribute` ```ts type PriceComponentAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "price_component" } ``` ### `ComputedAttribute` ```ts type ComputedAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "computed" computed?: boolean amount_field?: string currency_field?: string } ``` ### `PartnerStatusAttribute` ```ts type PartnerStatusAttribute = { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: string hint_text_key?: string hint_custom_component?: string hint_tooltip_placement?: string } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: { ... } suffix_length?: { ... } fields_to_ignore?: { ... } regex_flags?: { ... } country_code?: { ... } match_on?: { ... } key?: { ... } mode?: { ... } ordered?: { ... } require_tags_match?: { ... } pattern?: { ... } } } type: "partner_status" } ``` ### `SummaryAttribute` Represents an expanded version of an attribute to be displayed in the list item summary. This configuration can be used in the following way: ```js { "label": "Price components" "value": "{{item.prices.length}} price components" "show_as_tag": true "render_condition": "is_composite_price = " ```ts type SummaryAttribute = { label: string value: string show_as_tag?: boolean tag_color?: string render_condition?: string feature_flag?: string settings_flag?: Array<{ name?: string enabled?: boolean }> display_mode?: "inline" | "block" content_line_cap?: number content_wrap?: "normal" | "nowrap" | "pre" | "pre-wrap" hide_label?: boolean highlight_container?: boolean } ``` ### `GroupHeadline` ```ts type GroupHeadline = { id?: string // uuid name: string label: string layout?: string group: string order?: number type: "headline" enable_divider?: boolean divider?: "top_divider" | "bottom_divider" _purpose?: string[] _manifest?: string // uuid[] } ``` ### `GroupHeadlineWithCompositeID` ```ts type GroupHeadlineWithCompositeID = { id?: string // uuid name: string label: string layout?: string group: string order?: number type: "headline" enable_divider?: boolean divider?: "top_divider" | "bottom_divider" _purpose?: string[] _manifest?: string // uuid[] composite_id?: string schema?: string } ``` ### `EntitySlug` URL-friendly identifier for the entity schema ```ts type EntitySlug = string ``` ### `EntityCapability` Capabilities the Entity has. Turn features on/off for entities. ```ts type EntityCapability = { id?: string name: string title?: string attributes?: Array<{ id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: { ... } enabled?: { ... } }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: { ... } hint_text_key?: { ... } hint_custom_component?: { ... } hint_tooltip_placement?: { ... } } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: { ... } fuzzy_config?: { ... } } type: "string" multiline?: boolean rich_text?: boolean rows?: number | string } | { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: { ... } enabled?: { ... } }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: { ... } hint_text_key?: { ... } hint_custom_component?: { ... } hint_tooltip_placement?: { ... } } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: { ... } fuzzy_config?: { ... } } type: "link" } | { // ... } ``` ### `EntityCapabilityWithCompositeID` ```ts type EntityCapabilityWithCompositeID = { id?: string name: string title?: string attributes?: Array<{ id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: { ... } enabled?: { ... } }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: { ... } hint_text_key?: { ... } hint_custom_component?: { ... } hint_tooltip_placement?: { ... } } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: { ... } fuzzy_config?: { ... } } type: "string" multiline?: boolean rich_text?: boolean rows?: number | string } | { id?: string name: string label: string placeholder?: string hidden?: boolean show_in_table?: boolean sortable?: boolean required?: boolean readonly?: boolean deprecated?: boolean default_value?: unknown group?: string order?: number layout?: string hide_label?: boolean icon?: string render_condition?: string _purpose?: string[] _manifest?: string // uuid[] constraints?: object feature_flag?: string settings_flag?: Array<{ name?: { ... } enabled?: { ... } }> value_formatter?: string preview_value_formatter?: string entity_builder_disable_edit?: boolean protected?: boolean info_helpers?: { hint_text?: { ... } hint_text_key?: { ... } hint_custom_component?: { ... } hint_tooltip_placement?: { ... } } explicit_searchable?: boolean exclude_from_search?: boolean repeatable?: boolean has_primary?: boolean edit_mode?: "direct" | "external" | "approval" edit_mode_config?: { match_strategy?: { ... } fuzzy_config?: { ... } } type: "link" } | { // ... } ``` ### `EntityViewDisabled` ```ts type EntityViewDisabled = { view_type?: "disabled" } ``` ### `EntityDefaultTable` ```ts type EntityDefaultTable = { view_type?: "default" row_actions?: Array bulk_actions?: Array navbar_actions?: Array<{ type: string options?: Array<{ label: { ... } params?: { ... } }> }> enable_thumbnails?: boolean } ``` ### `EntityDefaultCreate` ```ts type EntityDefaultCreate = { view_type?: "default" search_params?: Record } ``` ### `EntityDefaultEdit` ```ts type EntityDefaultEdit = { view_type?: "default" search_params?: Record summary_attributes?: string[] } ``` ### `RedirectEntityView` ```ts type RedirectEntityView = { view_type?: "redirect" route?: string } ``` ### `EntityId` ```ts type EntityId = string // uuid ``` ### `BaseEntity` ```ts type BaseEntity = { _id: object _org: string _owners?: Array<{ org_id: string user_id?: string }> _schema: string _title: string _tags?: string[] _created_at: string // date-time _updated_at: string // date-time _deleted_at?: string // date-time _acl?: { view?: string[] edit?: string[] delete?: string[] } _purpose?: string[] _purpose_name?: string[] _manifest?: string // uuid[] _changesets?: Record }> } ``` ### `Entity` ```ts type Entity = { _id?: object _org?: string _owners?: Array<{ org_id: string user_id?: string }> _schema?: string _title?: string _tags?: string[] _created_at?: string // date-time _updated_at?: string // date-time _deleted_at?: string // date-time _acl?: { view?: string[] edit?: string[] delete?: string[] } _purpose?: string[] _purpose_name?: string[] _manifest?: string // uuid[] _changesets?: Record }> } ``` ### `NullableEntity` ```ts type NullableEntity = { _id?: object _org?: string _owners?: Array<{ org_id: string user_id?: string }> _schema?: string _title?: string _tags?: string[] _created_at?: string // date-time _updated_at?: string // date-time _deleted_at?: string // date-time _acl?: { view?: string[] edit?: string[] delete?: string[] } _purpose?: string[] _purpose_name?: string[] _manifest?: string // uuid[] _changesets?: Record }> } ``` ### `EntityOwner` The user / organization owning this entity. Note: Owner implicitly has access to the entity regardless of ACLs. ```ts type EntityOwner = { org_id: string user_id?: string } ``` ### `EntityAcl` Access control list (ACL) for an entity. Defines sharing access to external orgs or users. ```ts type EntityAcl = { view?: string[] edit?: string[] delete?: string[] } ``` ### `HydratedEntity` Entity with relation data resolved into the attribute values ```ts type HydratedEntity = { _relations: Array<{ entity_id: string // uuid }> } ``` ### `EntityItem` ```ts type EntityItem = { _id?: object _org?: string _owners?: Array<{ org_id: string user_id?: string }> _schema?: string _title?: string _tags?: string[] _created_at?: string // date-time _updated_at?: string // date-time _deleted_at?: string // date-time _acl?: { view?: string[] edit?: string[] delete?: string[] } _purpose?: string[] _purpose_name?: string[] _manifest?: string // uuid[] _changesets?: Record }> } ``` ### `EntityValidationError` Validation error for an entity attribute ```ts type EntityValidationError = { code: string params: { type?: string } path: string[] message: string } ``` ### `EntityValidationResultSuccess` Validation result for a successful validation ```ts type EntityValidationResultSuccess = { status: "success" errors: Array<{ code: string params: { type?: { ... } } path: string[] message: string }> } ``` ### `EntityValidationResultError` Validation result for a failed validation ```ts type EntityValidationResultError = { status: "error" errors: Array<{ code: string params: { type?: { ... } } path: string[] message: string }> } ``` ### `EntityValidationResult` ```ts type EntityValidationResult = { status: "success" errors: Array<{ code: string params: { type?: { ... } } path: string[] message: string }> } | { status: "error" errors: Array<{ code: string params: { type?: { ... } } path: string[] message: string }> } ``` ### `EntityValidationV2Error` ```ts type EntityValidationV2Error = { keyword: string instance_path: string schema_path: string params: Record property_name?: string message?: string schema?: object parent_schema?: Record data?: Record } ``` ### `EntityValidationV2ResultSuccess` Validation result for a successful validation ```ts type EntityValidationV2ResultSuccess = { status: "success" errors: Array<{ keyword: string instance_path: string schema_path: string params: Record property_name?: string message?: string schema?: object parent_schema?: Record data?: Record }> } ``` ### `EntityValidationV2ResultError` Validation result for a failed validation ```ts type EntityValidationV2ResultError = { status: "error" errors: Array<{ keyword: string instance_path: string schema_path: string params: Record property_name?: string message?: string schema?: object parent_schema?: Record data?: Record }> } ``` ### `EntityValidationV2Result` ```ts type EntityValidationV2Result = { status: "success" errors: Array<{ keyword: string instance_path: string schema_path: string params: Record property_name?: string message?: string schema?: object parent_schema?: Record data?: Record }> } | { status: "error" errors: Array<{ keyword: string instance_path: string schema_path: string params: Record property_name?: string message?: string schema?: object parent_schema?: Record data?: Record }> } ``` ### `HydratedEntityItem` ```ts type HydratedEntityItem = { _relations: Array<{ entity_id: string // uuid }> } ``` ### `GetRelationsResp` ```ts type GetRelationsResp = Array<{ entity_id: string // uuid org_id?: string _schema?: string attribute: string _tags?: string[] reverse?: boolean } | { $relation?: { entity_id: string // uuid org_id?: string _schema?: string attribute: string _tags?: string[] reverse?: boolean } }> ``` ### `GetRelationsRespWithPagination` ```ts type GetRelationsRespWithPagination = { hits?: number relations?: Array<{ entity_id: string // uuid org_id?: string _schema?: string attribute: string _tags?: string[] reverse?: boolean } | { $relation?: { entity_id: { ... } org_id?: { ... } _schema?: { ... } attribute: { ... } _tags?: { ... } reverse?: { ... } } }> } ``` ### `GetRelatedEntitiesCount` ```ts type GetRelatedEntitiesCount = { hits?: number } ``` ### `RelationEntity` ```ts type RelationEntity = { $relation?: { entity_id: string // uuid org_id?: string _schema?: string attribute: string _tags?: string[] reverse?: boolean } } ``` ### `RelationItem` ```ts type RelationItem = { entity_id: string // uuid org_id?: string _schema?: string attribute: string _tags?: string[] reverse?: boolean } ``` ### `EntitySearchIncludeDeletedParam` Whether to include deleted entities in the search results - `true`: include deleted entities - `false`: exclude deleted entities - `only`: include only deleted entities By default, no deleted entities are included in the search results. ```ts type EntitySearchIncludeDeletedParam = "true" | "false" | "only" ``` ### `EntitySearchParams` ```ts type EntitySearchParams = { q: string include_scores?: boolean sort?: string | string[] from?: number size?: number hydrate?: boolean fields?: string[] aggs?: object include_deleted?: "true" | "false" | "only" highlight?: unknown stable_for?: number stable_query_id?: string search_after?: string | number[] } ``` ### `EntityListParams` ```ts type EntityListParams = { query?: { query_string: { query: { ... } fields?: { ... } default_operator?: { ... } lenient?: { ... } } } filter: Array<{ term?: Record terms?: Record ids?: { values?: { ... } } range?: Record exists?: { field: { ... } } $and?: Array<{ term?: { ... } terms?: { ... } ids?: { ... } range?: { ... } exists?: { ... } $and?: { ... } $or?: { ... } $not?: { ... } }> $or?: Array<{ term?: { ... } terms?: { ... } ids?: { ... } range?: { ... } exists?: { ... } $and?: { ... } $or?: { ... } $not?: { ... } }> $not?: Array<{ term?: { ... } terms?: { ... } ids?: { ... } range?: { ... } exists?: { ... } $and?: { ... } $or?: { ... } $not?: { ... } }> }> allow_targeting_all_schemas?: boolean sort?: string | string[] from?: number size?: number hydrate?: boolean fields?: string[] aggs?: object include_deleted?: "true" | "false" | "only" include_scores?: boolean highlight?: unknown stable_for?: number stable_query_id?: string search_after?: string | number[] } ``` ### `SearchFilter` A subset of simplified Elasticsearch query clauses. The default operator is a logical AND. Use nested $and, $or, $not to combine filters using different logical operators. ```ts type SearchFilter = Array<{ term?: Record terms?: Record ids?: { values?: string[] } range?: Record exists?: { field: string } $and?: Array<{ term?: Record terms?: Record ids?: { values?: { ... } } range?: Record exists?: { field: { ... } } $and?: Array<{ term?: { ... } terms?: { ... } ids?: { ... } range?: { ... } exists?: { ... } $and?: { ... } $or?: { ... } $not?: { ... } }> $or?: Array<{ term?: { ... } terms?: { ... } ids?: { ... } range?: { ... } exists?: { ... } $and?: { ... } $or?: { ... } $not?: { ... } }> $not?: Array<{ term?: { ... } terms?: { ... } ids?: { ... } range?: { ... } exists?: { ... } $and?: { ... } $or?: { ... } $not?: { ... } }> }> $or?: Array<{ term?: Record terms?: Record ids?: { values?: { ... } } range?: Record exists?: { field: { ... } } $and?: Array<{ term?: { ... } terms?: { ... } ids?: { ... } range?: { ... } exists?: { ... } $and?: { ... } $or?: { ... } $not?: { ... } }> $or?: Array<{ term?: { ... } terms?: { ... } ids?: { ... } range?: { ... } // ... } ``` ### `SearchFilterValue` A filter field value. ```ts type SearchFilterValue = string | number | boolean ``` ### `EntitySearchOptions` ```ts type EntitySearchOptions = { sort?: string | string[] from?: number size?: number hydrate?: boolean fields?: string[] aggs?: object include_deleted?: "true" | "false" | "only" include_scores?: boolean stable_for?: number stable_query_id?: string search_after?: string | number[] } ``` ### `FieldsParam` List of entity fields to include or exclude in the response Use ! to exclude fields, e.g. `!_id` to exclude the `_id` field. Globbing and globstart (**) is supported for nested fields. ```ts type FieldsParam = string[] ``` ### `EntityImportParams` The parameters for importing entities. ```ts type EntityImportParams = { S3Reference: { bucket: string key: string } schema: string } ``` ### `GraphQueryRequest` ```ts type GraphQueryRequest = { seed: { entity_id: string // uuid node_id: string } graph: { nodes: Array<{ id: { ... } schema: { ... } cardinality?: { ... } fields?: { ... } }> edges: Array<{ from: { ... } to: { ... } }> } hydrate?: boolean apply_changesets?: boolean } ``` ### `GraphSeed` ```ts type GraphSeed = { entity_id: string // uuid node_id: string } ``` ### `GraphDefinition` ```ts type GraphDefinition = { nodes: Array<{ id: string schema: string cardinality?: "one" | "many" fields?: object }> edges: Array<{ from: string to: string }> } ``` ### `GraphNode` ```ts type GraphNode = { id: string schema: string cardinality?: "one" | "many" fields?: object } ``` ### `GraphEdge` ```ts type GraphEdge = { from: string to: string } ``` ### `GraphQueryResponse` ```ts type GraphQueryResponse = { nodes?: Record entityNodes?: Record _schema?: string _title?: string _tags?: string[] _created_at?: string // date-time _updated_at?: string // date-time _deleted_at?: string // date-time _acl?: { view?: { ... } edit?: { ... } delete?: { ... } } _purpose?: string[] _purpose_name?: string[] _manifest?: string // uuid[] _changesets?: Record } | Array<{ _id?: object _org?: string _owners?: Array<{ org_id: { ... } user_id?: { ... } }> _schema?: string _title?: string _tags?: string[] _created_at?: string // date-time _updated_at?: string // date-time _deleted_at?: string // date-time _acl?: { view?: { ... } edit?: { ... } delete?: { ... } } _purpose?: string[] _purpose_name?: string[] _manifest?: string // uuid[] _changesets?: Record }>> edges: Array<{ from: string to: string }> } ``` ### `EntitySearchResults` ```ts type EntitySearchResults = { hits?: number results?: Array<{ _id?: object _org?: string _owners?: Array<{ org_id: { ... } user_id?: { ... } }> _schema?: string _title?: string _tags?: string[] _created_at?: string // date-time _updated_at?: string // date-time _deleted_at?: string // date-time _acl?: { view?: { ... } edit?: { ... } delete?: { ... } } _purpose?: string[] _purpose_name?: string[] _manifest?: string // uuid[] _changesets?: Record }> aggregations?: object stable_query_id?: string sort_end?: string | number[] } ``` ### `SearchMappings` Advanced: explicit Elasticsearch index mapping definitions for entity data ```ts type SearchMappings = Record ``` ### `ActivityId` See https://github.com/ulid/spec ```ts type ActivityId = string // ulid ``` ### `ActivityCallerContext` ```ts type ActivityCallerContext = { EpilotAuth?: { token?: { sub?: { ... } email?: { ... } cognito:username?: { ... } custom:ivy_user_id?: { ... } } } } ``` ### `ActivityType` A type for the activity. Used to categorize activities in the activity feed and for event subscriptions. Built-in entity activity types (custom activities can be defined as well): - EntityCreated - EntityUpdated - EntityDeleted - EntitySoftDeleted - EntityRestored - RelationsAdded - RelationsRemove ```ts type ActivityType = string ``` ### `Activity` ```ts type Activity = { type: string title: string message: string payload?: Record pending?: boolean } ``` ### `EntityOperation` ```ts type EntityOperation = { entity: string // uuid org: string activity_id?: string // ulid activity_type?: string operation: "createEntity" | "updateEntity" | "deleteEntity" | "softDeleteEntity" | "restoreEntity" | "relationsAdded" | "relationsRemoved" | "relationsSoftDeleted" | "relationsRestored" | "relationsDeleted" params?: { id?: string // uuid slug?: string } payload?: { _id?: object _org?: string _owners?: Array<{ org_id: { ... } user_id?: { ... } }> _schema?: string _title?: string _tags?: string[] _created_at?: string // date-time _updated_at?: string // date-time _deleted_at?: string // date-time _acl?: { view?: { ... } edit?: { ... } delete?: { ... } } _purpose?: string[] _purpose_name?: string[] _manifest?: string // uuid[] _changesets?: Record } diff?: { added?: { _id?: { ... } _org?: { ... } _owners?: { ... } _schema?: { ... } _title?: { ... } _tags?: { ... } _created_at?: { ... } _updated_at?: { ... } _deleted_at?: { ... } _acl?: { ... } _purpose?: { ... } _purpose_name?: { ... } _manifest?: { ... } _changesets?: { ... } } updated?: { _id?: { ... } _org?: { ... } _owners?: { ... } _schema?: { ... } _title?: { ... } _tags?: { ... } _created_at?: { ... } _updated_at?: { ... } _deleted_at?: { ... } _acl?: { ... } _purpose?: { ... } _purpose_name?: { ... } _manifest?: { ... } _changesets?: { ... } } deleted?: { _id?: { ... } _org?: { ... } _owners?: { ... } _schema?: { ... } _title?: { ... } _tags?: { ... } _created_at?: { ... } _updated_at?: { ... } _deleted_at?: { ... } _acl?: { ... } _purpose?: { ... } _purpose_name?: { ... } _manifest?: { ... } _changesets?: { ... } } } _workflow_origin?: { workflow_exec_id?: string flow_template_id?: string } } ``` ### `BaseActivityItem` ```ts type BaseActivityItem = { _id?: string // ulid timestamp?: string // date-time type: string title: string message: string payload?: Record pending?: boolean caller?: { EpilotAuth?: { token?: { ... } } } } ``` ### `ActivityItem` ```ts type ActivityItem = { operations_total?: number operations?: Array<{ entity: string // uuid org: string activity_id?: string // ulid activity_type?: string operation: "createEntity" | "updateEntity" | "deleteEntity" | "softDeleteEntity" | "restoreEntity" | "relationsAdded" | "relationsRemoved" | "relationsSoftDeleted" | "relationsRestored" | "relationsDeleted" params?: { id?: { ... } slug?: { ... } } payload?: { _id?: { ... } _org?: { ... } _owners?: { ... } _schema?: { ... } _title?: { ... } _tags?: { ... } _created_at?: { ... } _updated_at?: { ... } _deleted_at?: { ... } _acl?: { ... } _purpose?: { ... } _purpose_name?: { ... } _manifest?: { ... } _changesets?: { ... } } diff?: { added?: { ... } updated?: { ... } deleted?: { ... } } _workflow_origin?: { workflow_exec_id?: { ... } flow_template_id?: { ... } } }> } ``` ### `BlueprintEntityId` Reference to blueprint ```ts type BlueprintEntityId = string // uuid ``` ### `ListSavedViewsResults` ```ts type ListSavedViewsResults = { hits?: number results?: Array<{ id?: string // uuid created_at?: string updated_at?: string }> } ``` ### `SavedViewId` Generated uuid for a saved view ```ts type SavedViewId = string // uuid ``` ### `SavedViewItem` ```ts type SavedViewItem = { id?: string // uuid created_at?: string updated_at?: string } ``` ### `SavedViewPartial` A saved entity view ```ts type SavedViewPartial = { slug?: string[] name?: string org?: string shared?: boolean isFavoritedBy?: string[] created_by?: { user_id?: string } | { source?: "SYSTEM" | "BLUEPRINT" } ui_config?: Record shared_with?: string[] } ``` ### `SavedView` A saved entity view ```ts type SavedView = { slug: string[] name: string org?: string shared?: boolean isFavoritedBy?: string[] created_by?: { user_id?: string } | { source?: "SYSTEM" | "BLUEPRINT" } ui_config: Record shared_with?: string[] } ``` ### `Taxonomy` ```ts type Taxonomy = { slug?: string name?: string plural?: string kind?: "system" | "user_defined" type?: "entity" | "relation" | "system" | "file_collection" icon?: string color?: string created_at?: string // date-time updated_at?: string // date-time deleted_at?: string // date-time created_by?: string enabled?: boolean order?: number enabled_locations?: "account" | "contact" | "contract" | "email_template" | "file" | "journey" | "meter_counter" | "meter" | "opportunity" | "order" | "partner" | "price" | "product" | "submission" | "tax" | "message" | "portal_user" | "request" | "comment" | string[] } ``` ### `TaxonomyLocationId` ```ts type TaxonomyLocationId = "account" | "contact" | "contract" | "email_template" | "file" | "journey" | "meter_counter" | "meter" | "opportunity" | "order" | "partner" | "price" | "product" | "submission" | "tax" | "message" | "portal_user" | "request" | "comment" ``` ### `TaxonomySearchIncludeArchivedParam` Whether to include archived labels in the search results - `true`: include archived labels - `false`: exclude archived labels - `only`: include only archived labels By default, no archived labels are included in the search results. ```ts type TaxonomySearchIncludeArchivedParam = "true" | "false" | "only" ``` ### `TaxonomyClassification` ```ts type TaxonomyClassification = { id?: string slug: string name: string parents?: string[] color?: string created_at?: string // date-time updated_at?: string // date-time archived?: boolean starred?: boolean enabled_locations?: "account" | "contact" | "contract" | "email_template" | "file" | "journey" | "meter_counter" | "meter" | "opportunity" | "order" | "partner" | "price" | "product" | "submission" | "tax" | "message" | "portal_user" | "request" | "comment" | string[] enabled_purposes?: string[] _manifest?: string // uuid[] } ``` ### `ClassificationId` ```ts type ClassificationId = string ``` ### `ClassificationIdOrPattern` ```ts type ClassificationIdOrPattern = string | { pattern: string } ``` ### `ClassificationSlug` URL-friendly identifier for the classification ```ts type ClassificationSlug = string ``` ### `TaxonomySlug` URL-friendly name for taxonomy ```ts type TaxonomySlug = string ``` ### `ClassificationsUpdate` ```ts type ClassificationsUpdate = { create?: Array<{ id?: string slug: string name: string parents?: string[] color?: string created_at?: string // date-time updated_at?: string // date-time archived?: boolean starred?: boolean enabled_locations?: "account" | "contact" | "contract" | "email_template" | "file" | "journey" | "meter_counter" | "meter" | "opportunity" | "order" | "partner" | "price" | "product" | "submission" | "tax" | "message" | "portal_user" | "request" | "comment" | string[] enabled_purposes?: string[] _manifest?: string // uuid[] }> update?: Array<{ id?: string slug: string name: string parents?: string[] color?: string created_at?: string // date-time updated_at?: string // date-time archived?: boolean starred?: boolean enabled_locations?: "account" | "contact" | "contract" | "email_template" | "file" | "journey" | "meter_counter" | "meter" | "opportunity" | "order" | "partner" | "price" | "product" | "submission" | "tax" | "message" | "portal_user" | "request" | "comment" | string[] enabled_purposes?: string[] _manifest?: string // uuid[] }> delete?: string | string[] } ``` ### `TaxonomyBulkJobTriggerResponse` ```ts type TaxonomyBulkJobTriggerResponse = { job_id?: string // uuid status?: "PENDING" | "FAILED" | "COMPLETED" | "CANCELLED" } ``` ### `TaxonomyBulkJobStatus` The status of the bulk job ```ts type TaxonomyBulkJobStatus = "PENDING" | "FAILED" | "COMPLETED" | "CANCELLED" ``` ### `TaxonomyBulkJobActionType` ```ts type TaxonomyBulkJobActionType = "MOVE_CLASSIFICATIONS" | "MERGE_CLASSIFICATIONS" | "DELETE_CLASSIFICATIONS" ``` ### `TaxonomyBulkJob` ```ts type TaxonomyBulkJob = { job_id?: string // uuid job_status?: "PENDING" | "FAILED" | "COMPLETED" | "CANCELLED" failure_reason?: string action_type?: "MOVE_CLASSIFICATIONS" | "MERGE_CLASSIFICATIONS" | "DELETE_CLASSIFICATIONS" request?: { target_taxonomy?: string target_classification?: string classification_ids?: string[] } output?: { target_entities_count?: number affected_entities_count?: number failures_count?: number failed_entities?: string // uuid[] } created_by?: string created_at?: string // date-time updated_at?: string // date-time org?: string } ``` ### `ESClusterAssignment` ```ts type ESClusterAssignment = { orgId?: string cluster?: string } ``` ### `SettingFlag` ```ts type SettingFlag = { name?: string enabled?: boolean } ``` ### `ErrorObject` A generic error returned by the API ```ts type ErrorObject = { status?: number error?: string } ``` ### `ChangesetCreator` Identifies the actor that created the changeset. ```ts type ChangesetCreator = { type?: "user" | "portal_user" | "api_client" | "automation" id?: string } ``` ### `Changeset` A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. ```ts type Changeset = { proposed_value: unknown previous_value?: unknown created_at: string // date-time created_by?: { type?: "user" | "portal_user" | "api_client" | "automation" id?: string } edit_mode: "external" | "approval" match_strategy?: "exact" | "fuzzy" | "any" source?: string related_values?: Record } ``` ### `ChangesetMap` Map of attribute name to pending changeset. At most one changeset per attribute. ```ts type ChangesetMap = Record }> ``` ### `MeterReadingChangesetEntry` A meter readings changeset entry — service-managed by metering-api. Stored on `Meter._meter_readings_changeset` array attribute. Each entry mirrors a ClickHouse meter reading row plus a changeset metadata overlay. Note: `org_id` is NOT stored on the entry. The entries live on the Meter entity, whic ```ts type MeterReadingChangesetEntry = { value: number direction?: "feed-in" | "feed-out" timestamp?: string // date-time meter_id: string // uuid counter_id: string // uuid source?: string reason?: string read_by?: string status?: "valid" | "in-validation" | "implausible" external_id?: string remark?: string metadata?: Record changeset_id: string edit_mode: "external" | "approval" match_strategy?: "exact" | "fuzzy" timestamp_tolerance?: "exact" | { type: "same-day" timezone?: string } | { type: "within-seconds" seconds: number } fuzzy_config?: { percentage_threshold?: number absolute_threshold?: number } created_at: string // date-time created_by?: { type?: "user" | "portal_user" | "api_client" | "automation" id?: string } previous?: { value?: number direction?: "feed-in" | "feed-out" timestamp?: string // date-time } } ``` ### `EditMode` Controls whether a write goes through immediately or is held as a pending entry on the parent entity's `_changesets` map. - `direct`: write applied immediately. No changeset created. - `external`: write held as a pending changeset; auto-cleared on a matching direct/ERP write. - `approval`: write he ```ts type EditMode = "direct" | "external" | "approval" ``` ### `EditModeConfig` Configuration for `edit_mode: external` auto-clear matching. Fields here (`match_strategy`, `fuzzy_config`) only take effect when `edit_mode` is `external`. They are ignored for `edit_mode: approval`, which never auto-clears and is resolved exclusively via the `:apply` / `:dismiss` changeset endpoin ```ts type EditModeConfig = { match_strategy?: "exact" | "fuzzy" | "any" fuzzy_config?: { type: "suffix" | "digits_only" | "normalize_phone" | "ignore_fields" | "set_equivalent" | "entry_match" | "relation_set" | "regex" suffix_length?: number fields_to_ignore?: string[] regex_flags?: string country_code?: string match_on?: string key?: string | string[] mode?: "subset" | "exact_set" ordered?: boolean require_tags_match?: boolean pattern?: string } } ``` ### `FuzzyConfig` Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes. Not used for `edit_mode: approval`. Type compatibility with attribute shape is enforced at schema save time: - scalar string attributes: `suffix`, `digits_only`, `regex` - repeatable attributes: `set_equivalent`, `entr ```ts type FuzzyConfig = { type: "suffix" | "digits_only" | "normalize_phone" | "ignore_fields" | "set_equivalent" | "entry_match" | "relation_set" | "regex" suffix_length?: number fields_to_ignore?: string[] regex_flags?: string country_code?: string match_on?: string key?: string | string[] mode?: "subset" | "exact_set" ordered?: boolean require_tags_match?: boolean pattern?: string } ``` ### `MatchStrategy` Strategy for auto-clearing a changeset on an `edit_mode: external` attribute when a direct write (`?direct=true`) arrives — typically an ERP inbound sync. Ignored for `edit_mode: approval`, which does not auto-clear and is resolved exclusively via the `:apply` / `:dismiss` changeset endpoints. - `ex ```ts type MatchStrategy = "exact" | "fuzzy" | "any" ```