Documentation navigation
GET /v1/contacts/{contactId}/notes

List contact notes

Access
Authenticated
contact:read
Cost
Free
Rate limit
120 / minute per account
Quota
None

The notes your account keeps about one person, newest first, each with who wrote it and when, and who last edited it. Page with limit, and pass each nextCursor back as cursor until it is null. A deleted note is left out. The contact list carries noteCount and latestNote for each person, so read this only for the people whose notes you need.

Path parameters

  • contactId string required
    max 16 chars

Query parameters

  • limit integer default: 50

    How many notes to return, 1 to 100.

    min 1, max 100
  • cursor string

    The `nextCursor` from the page before, to read the next, older page. Omit it for the newest notes.

    max 256 chars

Responses

  • 200 A page of notes, newest first
    • notes array of ContactNote required

      This page of notes, newest first.

      • id string required

        The note id.

      • contactId string required

        The contact the note is about.

      • body string required

        The note text, as written.

      • author NoteAuthor required

        Who wrote a note, or who last edited it.

        • kind string required

          What wrote the note: `member` is a person on the account, `key` is an API key, `tool` is an AI tool a person signed in, and `system` is Vamo.

          memberkeytoolsystem
        • id string | null required

          The id of that member, key or tool connection. Null for `system`.

        • name string | null required

          What to call them: the person’s name for a member, the key’s label for a key, the tool’s name for a tool. Null for `system`, and when no name is held.

      • createdAt string required

        When the note was written, as an ISO 8601 instant.

      • updatedAt string | null required

        When the note was last edited, as an ISO 8601 instant. Null when it was never edited.

      • editedBy object required
        • kind string required

          What wrote the note: `member` is a person on the account, `key` is an API key, `tool` is an AI tool a person signed in, and `system` is Vamo.

          memberkeytoolsystem
        • id string | null required

          The id of that member, key or tool connection. Null for `system`.

        • name string | null required

          What to call them: the person’s name for a member, the key’s label for a key, the tool’s name for a tool. Null for `system`, and when no name is held.

    • nextCursor string | null required

      Pass it back as `cursor` to read the next, older page. Null on the last page. Do not parse or construct it.

  • 400 Malformed id or limit, or a cursor this contact did not hand out
    • code string required

      Stable machine-readable error code. Branch on this, never on the numeric status.

      bad_requestunauthorizedsignature_requiredpayment_requiredforbiddennot_foundconflictgonepayload_too_largeunprocessable_entitytoo_many_requestsinternal_errornot_implementedbilling_unavailablenot_contactablemailbox_link_unavailablemailbox_requiredmail_engine_unavailablewebhook_publisher_unavailabledatabase_unavailableclient_errorbuild_failed
    • message string required

      Human-readable explanation of the refusal.

    • status integer required

      The HTTP status code, repeated in the body.

    • remedy object

      A self-serve path forward, when one exists (a 402 points at how to restore access).

      • kind string required

        What kind of remedy this is, so a client can route it: whether the caller can clear the condition through the API, or a person must act in the web app.

        topupconnect_mailbox
      • url string required

        Where to go to clear the condition: an API path, or a web app page when only a person can.

  • 401 No or invalid credential
    • code string required

      Stable machine-readable error code. Branch on this, never on the numeric status.

      bad_requestunauthorizedsignature_requiredpayment_requiredforbiddennot_foundconflictgonepayload_too_largeunprocessable_entitytoo_many_requestsinternal_errornot_implementedbilling_unavailablenot_contactablemailbox_link_unavailablemailbox_requiredmail_engine_unavailablewebhook_publisher_unavailabledatabase_unavailableclient_errorbuild_failed
    • message string required

      Human-readable explanation of the refusal.

    • status integer required

      The HTTP status code, repeated in the body.

    • remedy object

      A self-serve path forward, when one exists (a 402 points at how to restore access).

      • kind string required

        What kind of remedy this is, so a client can route it: whether the caller can clear the condition through the API, or a person must act in the web app.

        topupconnect_mailbox
      • url string required

        Where to go to clear the condition: an API path, or a web app page when only a person can.

  • 403 Missing contact:read
    • code string required

      Stable machine-readable error code. Branch on this, never on the numeric status.

      bad_requestunauthorizedsignature_requiredpayment_requiredforbiddennot_foundconflictgonepayload_too_largeunprocessable_entitytoo_many_requestsinternal_errornot_implementedbilling_unavailablenot_contactablemailbox_link_unavailablemailbox_requiredmail_engine_unavailablewebhook_publisher_unavailabledatabase_unavailableclient_errorbuild_failed
    • message string required

      Human-readable explanation of the refusal.

    • status integer required

      The HTTP status code, repeated in the body.

    • remedy object

      A self-serve path forward, when one exists (a 402 points at how to restore access).

      • kind string required

        What kind of remedy this is, so a client can route it: whether the caller can clear the condition through the API, or a person must act in the web app.

        topupconnect_mailbox
      • url string required

        Where to go to clear the condition: an API path, or a web app page when only a person can.

  • 404 No such contact in this account
    • code string required

      Stable machine-readable error code. Branch on this, never on the numeric status.

      bad_requestunauthorizedsignature_requiredpayment_requiredforbiddennot_foundconflictgonepayload_too_largeunprocessable_entitytoo_many_requestsinternal_errornot_implementedbilling_unavailablenot_contactablemailbox_link_unavailablemailbox_requiredmail_engine_unavailablewebhook_publisher_unavailabledatabase_unavailableclient_errorbuild_failed
    • message string required

      Human-readable explanation of the refusal.

    • status integer required

      The HTTP status code, repeated in the body.

    • remedy object

      A self-serve path forward, when one exists (a 402 points at how to restore access).

      • kind string required

        What kind of remedy this is, so a client can route it: whether the caller can clear the condition through the API, or a person must act in the web app.

        topupconnect_mailbox
      • url string required

        Where to go to clear the condition: an API path, or a web app page when only a person can.

  • 429 A rate limit or a usage quota is exhausted. Back off and retry; the `x-quota-*` response headers report the remaining allowance.
    • code string required

      Stable machine-readable error code. Branch on this, never on the numeric status.

      bad_requestunauthorizedsignature_requiredpayment_requiredforbiddennot_foundconflictgonepayload_too_largeunprocessable_entitytoo_many_requestsinternal_errornot_implementedbilling_unavailablenot_contactablemailbox_link_unavailablemailbox_requiredmail_engine_unavailablewebhook_publisher_unavailabledatabase_unavailableclient_errorbuild_failed
    • message string required

      Human-readable explanation of the refusal.

    • status integer required

      The HTTP status code, repeated in the body.

    • remedy object

      A self-serve path forward, when one exists (a 402 points at how to restore access).

      • kind string required

        What kind of remedy this is, so a client can route it: whether the caller can clear the condition through the API, or a person must act in the web app.

        topupconnect_mailbox
      • url string required

        Where to go to clear the condition: an API path, or a web app page when only a person can.