For the complete documentation index, see llms.txt. This page is also available as Markdown.

Custom Fields

Get all custom fields

get
/custom-fields

Returns all custom field definitions for the specified object type.

Rate limit: 300 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Query parameters
object_typestring · enumRequired

The object type of the custom fields. Can be "account", "issue", "contact", "task", "project", "meeting", or "opportunity".

Possible values:
Responses
200Success
application/json
request_idstringOptional

The request ID for tracking.

get/custom-fields
GET /custom-fields?object_type=account HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "data": [
    {
      "created_at": "text",
      "default_value": "text",
      "default_values": [
        "text"
      ],
      "description": "text",
      "id": "text",
      "is_read_only": true,
      "label": "text",
      "number_metadata": {
        "currency": "text",
        "decimal_places": 1,
        "duration_display_format": "text",
        "duration_input_unit": "text",
        "format": "with_commas"
      },
      "object_type": "account",
      "select_metadata": {
        "options": [
          {
            "ai_description": "text",
            "label": "text",
            "slug": "text"
          }
        ]
      },
      "slug": "text",
      "source": "text",
      "type": "text",
      "updated_at": "text"
    }
  ],
  "pagination": {
    "cursor": "text",
    "has_next_page": true
  },
  "request_id": "text"
}

Get a custom field by its ID

get
/custom-fields/{id}

Returns a single custom field definition by ID.

Rate limit: 300 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Path parameters
idstringRequired

The ID of the custom field.

Responses
200Success
application/json
request_idstringOptional

The request ID for tracking.

get/custom-fields/{id}
GET /custom-fields/{id} HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "data": {
    "created_at": "text",
    "default_value": "text",
    "default_values": [
      "text"
    ],
    "description": "text",
    "id": "text",
    "is_read_only": true,
    "label": "text",
    "number_metadata": {
      "currency": "text",
      "decimal_places": 1,
      "duration_display_format": "text",
      "duration_input_unit": "text",
      "format": "with_commas"
    },
    "object_type": "account",
    "select_metadata": {
      "options": [
        {
          "ai_description": "text",
          "label": "text",
          "slug": "text"
        }
      ]
    },
    "slug": "text",
    "source": "text",
    "type": "text",
    "updated_at": "text"
  },
  "request_id": "text"
}

Create a custom field

post
/custom-fields

Creates a new custom field definition for the specified object type.

Rate limit: 120 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Body
default_valuestringOptional

The default value for single-valued custom fields.

default_valuesstring[]Optional

The default values for multi-valued custom fields.

descriptionstringOptional

The description of the custom field.

labelstringRequired

The label of the custom field.

object_typestring · enumRequired

The object type of the custom field. Can be "account", "issue", "contact", "task", "project", "meeting", or "opportunity".

Example: accountPossible values:
slugstringOptional

The slug of the custom field.

typestringRequired

The type of the custom field. Can be one of text, number, decimal, boolean, date, datetime, user, url, select, or multiselect.

Example: text
Responses
200Success
application/json
request_idstringOptional

The request ID for tracking.

post/custom-fields
POST /custom-fields HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 212

{
  "default_value": "text",
  "default_values": [
    "text"
  ],
  "description": "text",
  "label": "text",
  "object_type": "account",
  "select_options": [
    {
      "ai_description": "text",
      "label": "text",
      "slug": "text"
    }
  ],
  "slug": "text",
  "type": "text"
}
{
  "data": {
    "created_at": "text",
    "default_value": "text",
    "default_values": [
      "text"
    ],
    "description": "text",
    "id": "text",
    "is_read_only": true,
    "label": "text",
    "number_metadata": {
      "currency": "text",
      "decimal_places": 1,
      "duration_display_format": "text",
      "duration_input_unit": "text",
      "format": "with_commas"
    },
    "object_type": "account",
    "select_metadata": {
      "options": [
        {
          "ai_description": "text",
          "label": "text",
          "slug": "text"
        }
      ]
    },
    "slug": "text",
    "source": "text",
    "type": "text",
    "updated_at": "text"
  },
  "request_id": "text"
}

Update a custom field

patch
/custom-fields/{id}

Updates a custom field definition. Only provided fields are modified.

Rate limit: 120 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Path parameters
idstringRequired

The ID of the custom field.

Body
default_valuestringOptional

The default value for single-valued custom fields.

default_valuesstring[]Optional

The default values for multi-valued custom fields.

descriptionstringOptional

The description of the custom field.

labelstringOptional

The label of the custom field.

slugstringOptional

The slug of the custom field.

Responses
200Success
application/json
request_idstringOptional

The request ID for tracking.

patch/custom-fields/{id}
PATCH /custom-fields/{id} HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 174

{
  "default_value": "text",
  "default_values": [
    "text"
  ],
  "description": "text",
  "label": "text",
  "select_options": [
    {
      "ai_description": "text",
      "label": "text",
      "slug": "text"
    }
  ],
  "slug": "text"
}
{
  "data": {
    "created_at": "text",
    "default_value": "text",
    "default_values": [
      "text"
    ],
    "description": "text",
    "id": "text",
    "is_read_only": true,
    "label": "text",
    "number_metadata": {
      "currency": "text",
      "decimal_places": 1,
      "duration_display_format": "text",
      "duration_input_unit": "text",
      "format": "with_commas"
    },
    "object_type": "account",
    "select_metadata": {
      "options": [
        {
          "ai_description": "text",
          "label": "text",
          "slug": "text"
        }
      ]
    },
    "slug": "text",
    "source": "text",
    "type": "text",
    "updated_at": "text"
  },
  "request_id": "text"
}

Create a custom field select option

post
/custom-fields/{id}/select-options

Create a custom field select option Adds an option to a select or multiselect custom field.

Rate limit: 120 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Path parameters
idstringRequired

The ID of the custom field.

Body
ai_descriptionstringOptional

The AI description used to help AI-enabled fields select this option.

labelstringRequired

The display label of the option.

slugstringRequired

The API slug stored as the option value.

Responses
200Success
application/json
request_idstringOptional

The request ID for tracking.

post/custom-fields/{id}/select-options
POST /custom-fields/{id}/select-options HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 54

{
  "ai_description": "text",
  "label": "text",
  "slug": "text"
}
{
  "data": {
    "ai_description": "text",
    "label": "text",
    "slug": "text"
  },
  "request_id": "text"
}

Update a custom field select option

patch
/custom-fields/{id}/select-options

Update a custom field select option Updates an option's slug, label, or AI description. Slug changes preserve existing values and migrate persisted filters.

Rate limit: 120 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Path parameters
idstringRequired

The ID of the custom field.

Query parameters
current_slugstringRequired

The current option slug.

Body
ai_descriptionstringOptional

A replacement AI description. Pass an empty string to clear it.

labelstringOptional

A replacement display label.

slugstringOptional

A replacement API slug. Existing object values and persisted filters are migrated to this slug.

Responses
200Success
application/json
request_idstringOptional

The request ID for tracking.

patch/custom-fields/{id}/select-options
PATCH /custom-fields/{id}/select-options?current_slug=text HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 54

{
  "ai_description": "text",
  "label": "text",
  "slug": "text"
}
{
  "data": {
    "ai_description": "text",
    "label": "text",
    "slug": "text"
  },
  "request_id": "text"
}

Delete a custom field select option

delete
/custom-fields/{id}/select-options

Delete a custom field select option Deletes an option and asynchronously clears it from affected objects.

Rate limit: 120 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Path parameters
idstringRequired

The ID of the custom field.

Query parameters
current_slugstringRequired

The current option slug.

Responses
200Success
application/json
request_idstringOptional

The request ID for tracking.

delete/custom-fields/{id}/select-options
DELETE /custom-fields/{id}/select-options?current_slug=text HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "data": {
    "success": true
  },
  "request_id": "text"
}

Last updated

Was this helpful?