Leave a note on a contact
POST
/v1/contacts/{contact_id}/notes
const url = 'https://api.vocapable.com/v1/contacts/example/notes';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"body":"example","call_id":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.vocapable.com/v1/contacts/example/notes \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "body": "example", "call_id": "example" }'Append one working note.
A note is what a rep typed. It is not consent evidence and not a suppression: those
are POST /v1/consents and POST /v1/dnc-entries, both of which write records this
endpoint cannot produce and the dial gate actually reads. Writing “they asked not to
be called” here suppresses nothing.
author_ref is the credential that wrote it - the API key id here, because an API-key
principal names no person and inventing one would put a name in an audit trail that
nobody signed.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”contact_id
required
Contact Id
string
Request Bodyrequired
Section titled “Request Bodyrequired”Responses
Section titled “Responses”Successful Response
Media typeapplication/json
ContactNote
One working note a rep left on a contact.
author_ref is whichever credential wrote it - an API key id, or a user id when a
dashboard session did. It is not a person’s name, and nothing here resolves it to one.
object
Examplegenerated
{ "id": "example", "contact_id": "example", "call_id": "example", "author_ref": "example", "body": "example", "created_at": "2026-04-15T12:00:00Z", "updated_at": "2026-04-15T12:00:00Z"}Validation Error
Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationErrorobject
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Examplegenerated
{ "detail": [ { "loc": [ "example" ], "msg": "example", "type": "example", "input": "example", "ctx": {} } ]}