Skip to main content
POST
Add a note to a contact

Authorizations

Api-Token
string
header
required

Server-to-server authentication. Generate a token in the admin UI at Settings → Developers → API Access. Send the raw token in the Api-Token header — there is no Bearer prefix.

Tokens can be marked read-only at creation time, in which case the API rejects any non-GET request with 403 Forbidden.

Body

application/json

The new ContactNote resource

A single, attributed note left on a Contact. Replaced Contact::$notes (a one-off text blob, dropped 2026-09-01) with an append-style thread where each entry records its author and timestamps. The migrated legacy blobs have no author, so $author is nullable.

Tenant is mapped explicitly (not delegated to the parent contact) because ContactNote is an API Platform resource: the tenant-isolation Doctrine extensions emit WHERE o.tenant = :tenant, which requires a real column.

text
string
required
Maximum string length: 512
contact
string<iri-reference>
Example:

"/api/v1/contacts/1"

action
string | null

Response

ContactNote resource created

A single, attributed note left on a Contact. Replaced Contact::$notes (a one-off text blob, dropped 2026-09-01) with an append-style thread where each entry records its author and timestamps. The migrated legacy blobs have no author, so $author is nullable.

Tenant is mapped explicitly (not delegated to the parent contact) because ContactNote is an API Platform resource: the tenant-isolation Doctrine extensions emit WHERE o.tenant = :tenant, which requires a real column.

text
string
required
Maximum string length: 512
uuid
string | null
action
string | null
dateCreated
string<date-time>
read-only
dateUpdated
string<date-time> | null
read-only
authorName
string | null
read-only
authorId
integer | null
read-only
authorLogo
string | null
read-only