Skip to content

Create Custom Field

POST
/v1/custom-fields/

Register a new custom field definition. If is_searchable=True, enqueues CREATE INDEX CONCURRENTLY on the default worker queue.

max_fields
Any of:
integer

Override plan field limit (admin use)

TenantFieldSchemaCreate

Fields required to register a new custom field for a tenant.

field_key is treated as immutable after creation — renaming requires a data migration to backfill existing JSONB values on entity rows.

object
entity_type
required
Entity Type
string
>= 1 characters <= 100 characters
field_key
required
Field Key

Immutable snake_case key used as JSONB key on entity rows.

string
>= 2 characters <= 64 characters /^[a-z][a-z0-9_]*$/
label
required
Label
string
>= 1 characters <= 255 characters
field_type
required
FieldType

Supported custom field types. These drive both validation logic and frontend component rendering. Adding a new type here requires matching handling in validator.py.

string
Allowed values: text textarea number currency date boolean select multi_select url
options
Any of:
Array<string>
description
Any of:
string
<= 1000 characters
is_required
Is Required
boolean
is_searchable
Is Searchable
boolean
sort_order
Sort Order
integer
0

Successful Response

Response[TenantFieldSchemaRead]
object
data
required
TenantFieldSchemaRead

Full representation of a TenantFieldSchema record.

object
id
required
Id
string format: uuid
created_at
required
Created At
string format: date-time
updated_at
required
Updated At
string format: date-time
workos_org_id
required
Workos Org Id
string
entity_type
required
Entity Type
string
field_key
required
Field Key
string
label
required
Label
string
field_type
required
FieldType

Supported custom field types. These drive both validation logic and frontend component rendering. Adding a new type here requires matching handling in validator.py.

string
Allowed values: text textarea number currency date boolean select multi_select url
options
Any of:
Array<string>
description
Any of:
string
is_required
required
Is Required
boolean
is_searchable
required
Is Searchable
boolean
is_active
required
Is Active
boolean
sort_order
required
Sort Order
integer
version
required
Version
integer
meta
ResponseMeta

Metadata included in every response envelope.

object
request_id
Any of:
string
organization_id
Any of:
string

Validation Error

HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object