Add object relationships
Creates relationship fields between object types. The attributes map is keyed first by object type, then by field name, and both sides of each relationship must be supplied together so the pairing is consistent. On one-to-many and many-to-many sides, the field must declare "oneOf": [{ "$ref": "https://getclarify.ai/schemas/core/collectionOfIds" }, { "type": "null" }] — the exact $ref string is required. The change is applied asynchronously and the response body is empty.
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.
Response Body
application/json
curl -X POST "https://example.com/workspaces/string/schemas/string/relationships" \ -H "Content-Type: application/json" \ -d '{ "data": { "type": "relationship", "attributes": { "c_project": { "company_id": { "title": "Company", "type": [ "string", "null" ], "xClarifyRelationship": { "kind": "many-to-one", "entity": "company", "field": "projects" } } }, "company": { "projects": { "title": "Projects", "oneOf": [ { "x-ref": "https://getclarify.ai/schemas/core/collectionOfIds" }, { "type": "null" } ], "xClarifyRelationship": { "kind": "one-to-many", "entity": "c_project", "field": "company_id" } } } } } }'{}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.
Delete a custom object
Deletes a custom object type and all of its records. The deletion runs asynchronously: the response returns a task you can poll to track progress. Only custom (`c_*`) objects can be deleted. This cannot be undone.