API reference
Notes
Notes are the written record on a contact, company, deal or lead: call summaries, decisions, context for the next person. They appear on the record’s timeline in the app.
- Scopes
- Those of the record type
- Records
- Contacts, companies, deals, leads
- Events
note.created
A note belongs to one record. Create and list notes through the record; read, edit and delete one by its own ID.
Attributes
Unique identifier of the note.
The kind of record the note belongs to.
One of
contactcompanydealleadThe record the note belongs to.
- bodystring
The note: plain text or Markdown.
The user who wrote it. Through the API, the key’s owner.
When the record was created (UTC).
When the record last changed (UTC).
{
"id": "b2d4f6a8-1c3e-4b5d-9f7a-6e8c0a2b4d57",
"record_type": "deal",
"record_id": "8f2d6c1a-4b7e-4f0a-9c3d-2e1b5a6f7c80",
"body": "Call with Ada: budget approved for 40 seats. Legal review of the order form next week.",
"author_id": "0c4f8e2a-7b3d-4a1f-9e6c-5d2b8a1f3e47",
"created_at": "2026-10-09T15:41:03Z",
"updated_at": "2026-10-09T15:41:03Z"
}Notes follow their record. Reading notes on a deal needs deals:read; adding, editing or deleting them needs deals:write. The key’s owner must be able to see the record, and the note’s author_id is the key’s owner.
Notes on deals and leads need the Sales hub in the plan, like the records themselves.
GET/api/v1/{record_type}/{id}/notes
Requires the read scope of the record type: contacts:read, companies:read, deals:read or leads:read.
Returns the notes on one record, newest first.
Path parameters
The kind of record the notes belong to.
One of
contactscompaniesdealsleadsThe record’s ID.
Query parameters
Returns
A list of note objects. 404 not_found when the record does not exist or is not visible.
curl https://acme.nextora.co/api/v1/deals/8f2d6c1a-4b7e-4f0a-9c3d-2e1b5a6f7c80/notes \
-H "Authorization: Bearer $NEXTORA_API_KEY"{
"data": [
{
"id": "b2d4f6a8-1c3e-4b5d-9f7a-6e8c0a2b4d57",
"record_type": "deal",
"record_id": "8f2d6c1a-4b7e-4f0a-9c3d-2e1b5a6f7c80",
"body": "Call with Ada: budget approved for 40 seats. Legal review of the order form next week.",
"author_id": "0c4f8e2a-7b3d-4a1f-9e6c-5d2b8a1f3e47",
"created_at": "2026-10-09T15:41:03Z",
"updated_at": "2026-10-09T15:41:03Z"
},
{
"id": "7e9a1c3e-5b7d-4f9a-8c1e-3d5f7b9a1c40",
"record_type": "deal",
"record_id": "8f2d6c1a-4b7e-4f0a-9c3d-2e1b5a6f7c80",
"body": "Intro call. Interested in the annual plan for about 40 seats; wants a proposal by mid-October.",
"author_id": "6a2d9c4e-1f8b-4e3a-b7d5-9c0e2f4a6b18",
"created_at": "2026-10-02T10:15:44Z",
"updated_at": "2026-10-02T10:15:44Z"
}
],
"meta": {
"limit": 50,
"has_more": false,
"next_cursor": null
}
}POST/api/v1/{record_type}/{id}/notes
Requires the write scope of the record type: contacts:write, companies:write, deals:write or leads:write.
Adds a note to the record’s timeline and sends note.created.
Path parameters
The kind of record the notes belong to.
One of
contactscompaniesdealsleadsThe record’s ID.
Body parameters
The note: plain text or Markdown.
Returns
The new note, with 201 Created.
curl -X POST https://acme.nextora.co/api/v1/deals/8f2d6c1a-4b7e-4f0a-9c3d-2e1b5a6f7c80/notes \
-H "Authorization: Bearer $NEXTORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"body": "Call with Ada: budget approved for 40 seats. Legal review of the order form next week."
}'{
"data": {
"id": "b2d4f6a8-1c3e-4b5d-9f7a-6e8c0a2b4d57",
"record_type": "deal",
"record_id": "8f2d6c1a-4b7e-4f0a-9c3d-2e1b5a6f7c80",
"body": "Call with Ada: budget approved for 40 seats. Legal review of the order form next week.",
"author_id": "0c4f8e2a-7b3d-4a1f-9e6c-5d2b8a1f3e47",
"created_at": "2026-10-09T15:41:03Z",
"updated_at": "2026-10-09T15:41:03Z"
}
}GET/api/v1/notes/{id}
Requires the read scope of the note’s record type, for example deals:read for a note on a deal.
Returns one note by ID.
Path parameters
The note’s ID.
Returns
The note. 404 not_found when it does not exist or its record is not visible.
curl https://acme.nextora.co/api/v1/notes/b2d4f6a8-1c3e-4b5d-9f7a-6e8c0a2b4d57 \
-H "Authorization: Bearer $NEXTORA_API_KEY"{
"data": {
"id": "b2d4f6a8-1c3e-4b5d-9f7a-6e8c0a2b4d57",
"record_type": "deal",
"record_id": "8f2d6c1a-4b7e-4f0a-9c3d-2e1b5a6f7c80",
"body": "Call with Ada: budget approved for 40 seats. Legal review of the order form next week.",
"author_id": "0c4f8e2a-7b3d-4a1f-9e6c-5d2b8a1f3e47",
"created_at": "2026-10-09T15:41:03Z",
"updated_at": "2026-10-09T15:41:03Z"
}
}PATCH/api/v1/notes/{id}
Requires the write scope of the note’s record type, for example deals:write for a note on a deal.
Replaces the note’s text.
Path parameters
The note’s ID.
Body parameters
The new text.
Returns
The updated note.
curl -X PATCH https://acme.nextora.co/api/v1/notes/b2d4f6a8-1c3e-4b5d-9f7a-6e8c0a2b4d57 \
-H "Authorization: Bearer $NEXTORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"body": "Call with Ada: budget approved for 40 seats. Legal reviews the order form on 14 October."
}'{
"data": {
"id": "b2d4f6a8-1c3e-4b5d-9f7a-6e8c0a2b4d57",
"record_type": "deal",
"record_id": "8f2d6c1a-4b7e-4f0a-9c3d-2e1b5a6f7c80",
"body": "Call with Ada: budget approved for 40 seats. Legal reviews the order form on 14 October.",
"author_id": "0c4f8e2a-7b3d-4a1f-9e6c-5d2b8a1f3e47",
"created_at": "2026-10-09T15:41:03Z",
"updated_at": "2026-10-10T09:12:30Z"
}
}DELETE/api/v1/notes/{id}
Requires the write scope of the note’s record type, for example deals:write for a note on a deal.
Deletes the note from the record’s timeline.
Path parameters
The note’s ID.
Returns
{ "data": { "id": "…", "deleted": true } }.
curl -X DELETE https://acme.nextora.co/api/v1/notes/b2d4f6a8-1c3e-4b5d-9f7a-6e8c0a2b4d57 \
-H "Authorization: Bearer $NEXTORA_API_KEY"{
"data": {
"id": "b2d4f6a8-1c3e-4b5d-9f7a-6e8c0a2b4d57",
"deleted": true
}
}