Skip to main content
Custom Objects let you model anything that isn’t a Person, Company, or Deal — without waiting for us to ship native support. Each custom object has a slug, a display name, and records. Records can have their own schema (the engine works the same way as for native objects — pass the custom object’s id as :object_type when defining attributes).

Endpoints

Define a custom object

Slug rules: lowercase, snake_case, starts with a letter, max 64 chars. Duplicate slug → 409 custom_object_exists.

Add a schema for the new object

The schema endpoints work on custom objects too — pass the custom object’s UUID (not its slug) as :object_type:

Create a record

data is validated against any attribute definitions you’ve created for the custom object’s UUID. Unknown keys pass through (lenient). If you defined status as an enum and try "status": "overdue":

List records

Standard { data, next_cursor } envelope. See Pagination.