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

Custom Objects

List custom objects

get

Returns paginated custom objects of the given type.

Rate limit: 60 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Path parameters
typestringRequired

The type slug of the custom object (e.g. "companies").

Query parameters
cursorstringOptional

Pagination cursor for the next page.

limitinteger · int64Optional

Number of results per page. Defaults to 25, max 100.

Responses
200Success
application/json
request_idstringOptional
get/custom-objects/{type}
GET /custom-objects/{type} HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "data": [
    {
      "created_at": "text",
      "custom_fields": {
        "priority": {
          "value": "high"
        }
      },
      "id": "text",
      "name": "text",
      "relations": [
        {
          "object_id": "text",
          "object_type": "text"
        }
      ],
      "type": "text",
      "updated_at": "text"
    }
  ],
  "pagination": {
    "cursor": "text",
    "has_next_page": true
  },
  "request_id": "text"
}

Get a custom object

get

Returns a single custom object by ID, including its custom field values.

Rate limit: 60 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Path parameters
typestringRequired

The type slug of the custom object (e.g. "companies").

idstringRequired

The ID of the custom object.

Responses
200Success
application/json
request_idstringOptional
get/custom-objects/{type}/{id}
GET /custom-objects/{type}/{id} HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "data": {
    "created_at": "text",
    "custom_fields": {
      "priority": {
        "value": "high"
      }
    },
    "id": "text",
    "name": "text",
    "relations": [
      {
        "object_id": "text",
        "object_type": "text"
      }
    ],
    "type": "text",
    "updated_at": "text"
  },
  "request_id": "text"
}

Search for custom objects by a given filter

post

Filterable fields and their allowed operators:

Field
Allowed operators

name

equals, in, not_in, string_contains, string_does_not_contain, is_set, is_unset

created_at

time_is_after, time_is_before, time_range

updated_at

time_is_after, time_is_before, time_range

Timestamp values use RFC3339 format. For custom fields, pass the field slug as field.

Rate limit: 20 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Path parameters
typestringRequired

The type slug of the custom object (e.g. "companies").

Body
cursorstringOptional

The cursor to use for pagination.

limitinteger · int64Optional

The number of results to fetch. Defaults to 25, max 100.

Responses
200Success
application/json
request_idstringOptional
post/custom-objects/{type}/search
POST /custom-objects/{type}/search HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 173

{
  "cursor": "text",
  "filter": {
    "field": "text",
    "operator": "equals",
    "subfilters": [
      {
        "field": "state",
        "operator": "equals",
        "value": "new"
      }
    ],
    "value": "text",
    "values": [
      "text"
    ]
  },
  "limit": 1
}
{
  "data": [
    {
      "created_at": "text",
      "custom_fields": {
        "priority": {
          "value": "high"
        }
      },
      "id": "text",
      "name": "text",
      "relations": [
        {
          "object_id": "text",
          "object_type": "text"
        }
      ],
      "type": "text",
      "updated_at": "text"
    }
  ],
  "pagination": {
    "cursor": "text",
    "has_next_page": true
  },
  "request_id": "text"
}

Create a custom object

post

Creates a new custom object instance of the given type. To link the object to an account, pass the built-in Account relationship field in custom_fields: {"name":"Example","custom_fields":{"account":{"value":"account_uuid"}}}.

Rate limit: 20 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Path parameters
typestringRequired

The type slug of the custom object (e.g. "companies").

Body
namestringRequired

The name of the custom object.

Responses
200Success
application/json
request_idstringOptional
post/custom-objects/{type}
POST /custom-objects/{type} HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 68

{
  "custom_fields": {
    "account": {
      "value": "account_uuid"
    }
  },
  "name": "text"
}
{
  "data": {
    "created_at": "text",
    "custom_fields": {
      "priority": {
        "value": "high"
      }
    },
    "id": "text",
    "name": "text",
    "relations": [
      {
        "object_id": "text",
        "object_type": "text"
      }
    ],
    "type": "text",
    "updated_at": "text"
  },
  "request_id": "text"
}

Update a custom object

patch

Updates a custom object. Only provided fields are modified. To update the linked account, pass the built-in Account relationship field in custom_fields: {"custom_fields":{"account":{"value":"account_uuid"}}}.

Rate limit: 20 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Path parameters
typestringRequired

The type slug of the custom object (e.g. "companies").

idstringRequired

The ID of the custom object.

Body
namestringOptional

The name of the custom object.

Responses
200Success
application/json
request_idstringOptional
patch/custom-objects/{type}/{id}
PATCH /custom-objects/{type}/{id} HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 68

{
  "custom_fields": {
    "account": {
      "value": "account_uuid"
    }
  },
  "name": "text"
}
{
  "data": {
    "created_at": "text",
    "custom_fields": {
      "priority": {
        "value": "high"
      }
    },
    "id": "text",
    "name": "text",
    "relations": [
      {
        "object_id": "text",
        "object_type": "text"
      }
    ],
    "type": "text",
    "updated_at": "text"
  },
  "request_id": "text"
}

Bulk update custom objects

patch

Applies the same update to multiple custom objects of the given type in a single request. Pass between 1 and 100 IDs and the custom field values to set; only the provided fields are modified on each object. To update the linked account, pass the built-in Account relationship field in custom_fields: {"ids":["object_uuid"],"custom_fields":{"account":{"value":"account_uuid"}}}. To unset a field, pass its slug with an empty value.

Rate limit: 20 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Path parameters
typestringRequired

The type slug of the custom object (e.g. "opportunity").

Body
idsstring[]Required

The IDs of the custom objects to update. Must be between 1 and 100 IDs.

Responses
200Success
application/json
request_idstringOptional
successbooleanOptional
updated_idsstring[]Optional
patch/custom-objects/{type}
PATCH /custom-objects/{type} HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 62

{
  "custom_fields": {
    "priority": {
      "value": "high"
    }
  },
  "ids": [
    "text"
  ]
}
{
  "request_id": "text",
  "success": true,
  "updated_ids": [
    "text"
  ]
}

Delete a custom object

delete

Deletes a custom object instance.

Rate limit: 20 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Path parameters
typestringRequired

The type slug of the custom object (e.g. "companies").

idstringRequired

The ID of the custom object.

Responses
200Success
application/json
request_idstringOptional
delete/custom-objects/{type}/{id}
DELETE /custom-objects/{type}/{id} HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "request_id": "text"
}

Last updated

Was this helpful?