Replace an object schema
Replaces the full JSON Schema for an object type with the request body, whose $id must match the object in the path. Only Text and Multiline text, or Number and Currency convert into each other. Any other field type change, or adding or removing a number field's tier bands, is rejected with a 422. A read-only object, such as the Lead Finder people and companies, rejects any change with a 422. The change is applied asynchronously: the response returns a task you can poll to track progress.
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.
The object type: a built-in entity (person, company, deal, …) or a custom object (c_*).
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.
The complete JSON Schema document for the object type. Its $id must match the object in the path.
Response Body
application/json
curl -X PUT "https://example.com/workspaces/string/schemas/objects/string" \ -H "Content-Type: application/json" \ -d '{ "$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" } }, "budget": { "type": [ "number", "null" ], "title": "Budget" } } }'{ "data": { "type": "async-task", "id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d", "attributes": { "_id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d", "user_id": "7d4e2f9a-1b3c-4d5e-8f6a-9c0b2d4e6f81", "type": "schema_modification", "progress": 0, "total": null, "metadata": { "entity": "c_project" }, "queued_at": "2026-01-15T09:30:00.000Z", "started_at": null, "completed_at": null, "failed_at": null, "error_code": null, "_created_at": "2026-01-15T09:30:00.000Z", "_updated_at": "2026-01-15T09:30:00.000Z" } }}Add or remove enum field values
Adds or removes options on enum (single- and multi-select) fields for one object type. The request carries exactly one item in `data`; each field in `meta` names an `append` or `remove` operation. Removing an option also clears it from every record that holds it, and the response returns once the records are updated. To modify several object types, send separate requests.
Reorder object fields
Deprecated: accepts the request and changes nothing. Record pages take field order from their layout. Reorder the Details group with `PATCH /workspaces/{workspace}/layouts/record-page__{entity}` instead.