Skip to main content
POST
/
custom-fields
Create a custom field definition
curl --request POST \
  --url https://{companyName}.api.joinluminous.com/external/api/v1/custom-fields \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "label": "Industry",
  "type": "dropdown",
  "options": {
    "choices": [
      "Retail",
      "Wholesale",
      "DTC"
    ],
    "minLength": 0,
    "maxLength": 255,
    "helpText": "Choose the primary sales channel"
  },
  "object_types": [
    "companies",
    "products"
  ]
}
'
{
  "data": {
    "id": 123,
    "label": "Industry",
    "type": "dropdown",
    "object_types": [
      "companies",
      "products"
    ],
    "options": {
      "choices": [
        "Retail",
        "Wholesale",
        "DTC"
      ],
      "minLength": 0,
      "maxLength": 255,
      "helpText": "Choose the primary sales channel"
    },
    "created_at": "2026-04-20T14:30:00Z",
    "updated_at": "2026-04-20T14:30:00Z"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.joinluminous.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

Authenticate using a bearer token. To create a token, navigate to /settings/api-tokens and click Create API Token.

Body

application/json
label
string
required

Display label for the custom field. Must be unique across definitions.

Maximum string length: 255
Example:

"Industry"

type
enum<string>
required

Data type of the custom field

Available options:
number,
date,
string,
dropdown
Example:

"dropdown"

options
object

Optional configuration for the field. Required when type is dropdown (must include a non-empty choices array).

object_types
string[]

Entity types this custom field applies to. On update this field is required — pass an empty array to unlink all entity types. Accepted values include logical names like sales-orders, sales-order-items, invoices, products, companies, purchase-orders, etc. (matches the set accepted by the internal morph-type resolver).

Example:
["companies", "products"]

Response

Custom field definition successfully created

data
object