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`).
Authorization
apiKey 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 — 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`). 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. Fields that already exist are rejected — this endpoint never overwrites. The change is applied asynchronously and the response body is empty.