Clarify API
Record Attachments

Request an attachment upload URL

Returns a pre-signed URL for uploading a file. Upload the file contents to `signedUrl` via HTTP PUT, then attach it to the record by POSTing the returned `key` and `attachmentId` to the attachments endpoint.

PUT
/workspaces/{workspace}/objects/{object}/records/{id}/attachments
Authorization<token>

API key authentication. Send your key in the Authorization header as: api-key <your-api-key>.

In: header

Path Parameters

workspace*string

The workspace slug — the {slug} segment of your Clarify workspace URL.

object*string

The object type: a built-in entity (person, company, deal, …) or a custom object (c_*).

id*string

The unique ID of the record.

Query Parameters

silent?boolean

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 PUT "https://example.com/workspaces/string/objects/string/records/string/attachments" \  -H "Content-Type: application/json" \  -d '{    "name": "proposal.pdf"  }'
{
  "data": {
    "signedUrl": "https://storage.clarify.ai/attachments/acme/person/3b9f5c7d-6e2a-4f8b-9d1c-0a7e5b3f9d24/proposal.pdf?signature=...",
    "key": "attachments/acme/person/3b9f5c7d-6e2a-4f8b-9d1c-0a7e5b3f9d24/proposal.pdf",
    "attachmentId": "3b9f5c7d-6e2a-4f8b-9d1c-0a7e5b3f9d24",
    "entity": "person",
    "_id": "5f8b7d2e-9c4a-4e1b-8f3d-2a6c9e0b4d71"
  }
}