Create a custom object
Creates a new custom object type in the workspace and returns its generated JSON Schema. The name is normalized to a c_-prefixed identifier (for example "Sales Order" becomes c_sales_order).
API key authentication. Send your key in the Authorization header as: api-key <your-api-key>.
In: header
Path Parameters
The workspace slug — the {slug} segment of your Clarify workspace URL.
Query Parameters
When true, suppresses in-app and Slack notifications for this mutation.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/workspaces/string/schemas/objects" \ -H "Content-Type: application/json" \ -d '{ "name": "Project", "plural": "Projects", "description": "A customer project tracked alongside deals and companies.", "icon": "Briefcase", "backgroundColor": "blue" }'{ "data": { "type": "schema", "id": "https://getclarify.ai/schemas/entities/c_project", "attributes": { "$schema": "https://json-schema.org/draft/2020-12/clarify", "$id": "https://getclarify.ai/schemas/entities/c_project", "title": "Project", "type": "object", "xClarifyNamespace": "objects", "xClarifyLabel": { "singular": "Project", "plural": "Projects" }, "xClarifyAIDescription": "A customer project tracked alongside deals and companies.", "properties": { "name": { "type": "string", "title": "Name", "xClarifyPrimary": true }, "status": { "type": [ "string", "null" ], "title": "Status", "enum": [ "Planning", "In progress", "Complete" ] }, "company_id": { "type": [ "string", "null" ], "title": "Company", "xClarifyRelationship": { "kind": "many-to-one", "entity": "company", "field": "projects" } } } } }}List resources
Returns a paginated JSON:API collection of an object’s resources. Use `include` to embed related resources and `filter` to narrow results by field — a bare value is an exact match, including on collection fields (`filter[email_addresses]=jane@acme.com`); shorthand operators are parsed from the value (`filter[status]=active,pending`, `filter[amount]=>100`, `filter[name]=*Smith*`, `filter[assigned]=null`), or name them explicitly (`filter[start][Is on or after]=2025-01-01`, `filter[domains][Contains]=acme`). To filter on a relationship field, include that relationship: `filter[author.name]=John&include=author`.
Add object fields
Adds one or more non-relationship fields to an object type. Each key in `attributes` is a new field name mapped to its JSON Schema, and every type except `boolean` must include `"null"` — declare `["string", "null"]` rather than `"string"`, because the column behind such a field is nullable and a non-nullable declaration would reject its own stored values. Fields that already exist are rejected — this endpoint never overwrites. The change is applied asynchronously and the response body is empty.