Skip to content

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

The note object

A note belongs to one record. Create and list notes through the record; read, edit and delete one by its own ID.

Attributes

  • iduuidRead-only

    Unique identifier of the note.

  • record_typeenumRead-only

    The kind of record the note belongs to.

    One ofcontactcompanydeallead

  • record_iduuidRead-only

    The record the note belongs to.

  • bodystring

    The note: plain text or Markdown.

  • author_iduuidRead-only

    The user who wrote it. Through the API, the key’s owner.

  • created_atdate-timeRead-only

    When the record was created (UTC).

  • updated_atdate-timeRead-only

    When the record last changed (UTC).

The note object
{
  "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"
}

Who can read and write notes

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.

List notes on a record

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

  • record_typeenumRequired

    The kind of record the notes belong to.

    One ofcontactscompaniesdealsleads

  • iduuidRequired

    The record’s ID.

Query parameters

  • limitinteger

    Page size, from 1 to 100.

    Default50

  • cursorstring

    The meta.next_cursor of the previous page.

Returns

A list of note objects. 404 not_found when the record does not exist or is not visible.

GET/api/v1/{record_type}/{id}/notes
curl https://acme.nextora.co/api/v1/deals/8f2d6c1a-4b7e-4f0a-9c3d-2e1b5a6f7c80/notes \
  -H "Authorization: Bearer $NEXTORA_API_KEY"
Response200 OK
{
  "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
  }
}

Add a note to a record

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

  • record_typeenumRequired

    The kind of record the notes belong to.

    One ofcontactscompaniesdealsleads

  • iduuidRequired

    The record’s ID.

Body parameters

  • bodystringRequired

    The note: plain text or Markdown.

Returns

The new note, with 201 Created.

POST/api/v1/{record_type}/{id}/notes
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."
  }'
Response201 Created
{
  "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"
  }
}

Retrieve a note

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

  • iduuidRequired

    The note’s ID.

Returns

The note. 404 not_found when it does not exist or its record is not visible.

GET/api/v1/notes/{id}
curl https://acme.nextora.co/api/v1/notes/b2d4f6a8-1c3e-4b5d-9f7a-6e8c0a2b4d57 \
  -H "Authorization: Bearer $NEXTORA_API_KEY"
Response200 OK
{
  "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"
  }
}

Update a note

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

  • iduuidRequired

    The note’s ID.

Body parameters

  • bodystringRequired

    The new text.

Returns

The updated note.

PATCH/api/v1/notes/{id}
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."
  }'
Response200 OK
{
  "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 a note

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

  • iduuidRequired

    The note’s ID.

Returns

{ "data": { "id": "…", "deleted": true } }.

DEL/api/v1/notes/{id}
curl -X DELETE https://acme.nextora.co/api/v1/notes/b2d4f6a8-1c3e-4b5d-9f7a-6e8c0a2b4d57 \
  -H "Authorization: Bearer $NEXTORA_API_KEY"
Response200 OK
{
  "data": {
    "id": "b2d4f6a8-1c3e-4b5d-9f7a-6e8c0a2b4d57",
    "deleted": true
  }
}