> ## Documentation Index
> Fetch the complete documentation index at: https://api.leadey.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Add a note

> Writes a note on the lead. It appears in the lead's timeline and in the Cockpit immediately, attributed to the workspace member the API key belongs to.

Notes are plain text. Attachments can only be added in the Cockpit.



## OpenAPI

````yaml /openapi.json post /leads/{id}/notes
openapi: 3.1.0
info:
  title: Leadey API
  version: 1.4.0
  description: >-
    The Leadey API gives you programmatic access to your workspace: leads,
    companies, contacts, campaigns, meetings, opportunities and calls, plus the
    reporting metrics behind the Cockpit.


    Every request is authenticated with an organization-scoped API key, and
    every response is JSON. Reads work with any key. Writes — creating leads,
    adding notes, logging calls, managing tasks — need a key with write access,
    and are attributed to the workspace member that key belongs to. See [Writing
    data](/guides/writing-data).
servers:
  - url: https://backend.leadey.ai/v1
    description: Production
  - url: http://localhost:3001/v1
    description: Local development
security:
  - bearerAuth: []
tags:
  - name: Account
    description: The organization behind the API key.
  - name: Leads
    description: People enrolled in your campaigns.
  - name: Notes
    description: >-
      Free-text notes on a lead. Notes appear in the lead's timeline and in the
      Cockpit.
  - name: Tasks
    description: Follow-ups and reminders, each assigned to a workspace member.
  - name: Campaigns
    description: Outreach sequences and their performance.
  - name: Companies
    description: Companies in your workspace.
  - name: Contacts
    description: The canonical person record behind your leads.
  - name: Meetings
    description: Bookings merged across Calendly, Leadey and connected calendars.
  - name: Opportunities
    description: Deals, their value, and the pipelines they sit in.
  - name: Pipelines
    description: Deal pipelines and the stages inside them.
  - name: Calls
    description: Dial history, recordings and transcripts.
  - name: Metrics
    description: >-
      Aggregated reporting — meetings booked, sit rate, dial activity and
      pipeline value.
  - name: Reference
    description: The vocabularies other endpoints return values from.
paths:
  /leads/{id}/notes:
    post:
      tags:
        - Notes
      summary: Add a note
      description: >-
        Writes a note on the lead. It appears in the lead's timeline and in the
        Cockpit immediately, attributed to the workspace member the API key
        belongs to.


        Notes are plain text. Attachments can only be added in the Cockpit.
      operationId: createLeadNote
      parameters:
        - $ref: '#/components/parameters/LeadId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                text:
                  type: string
                  description: The note body.
              required:
                - text
            example:
              text: >-
                Asked for pricing on a 240-vehicle fleet. Sending the sheet
                Thursday.
      responses:
        '201':
          description: The note was created.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Note'
                required:
                  - data
              example:
                data:
                  id: event_6Tk9wRmB
                  type: note
                  outcome: null
                  stepIndex: 0
                  meta:
                    text: Left a voicemail. Trying again Thursday morning.
                    userId: user_2pXn4Rk
                  timestamp: '2026-08-03T11:09:20.000Z'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  parameters:
    LeadId:
      name: id
      in: path
      required: true
      description: The lead id.
      schema:
        type: string
  schemas:
    Note:
      type: object
      properties:
        id:
          type: string
          description: Unique note id.
        type:
          type: string
          description: Always `note`.
          enum:
            - note
        outcome:
          type:
            - string
            - 'null'
          description: >-
            Always null for notes. Present so a note has the same shape as any
            other timeline event.
        stepIndex:
          type: integer
          description: Always 0 for notes.
        meta:
          description: The note body and its author.
          type: object
          properties:
            text:
              type: string
              description: The note body.
            userId:
              type:
                - string
                - 'null'
              description: >-
                The workspace member who wrote it. For a note created through
                the API this is the member the key belongs to.
            attachments:
              type: array
              description: >-
                Documents attached to the note. Attachments are uploaded in the
                Cockpit; the API does not accept file uploads.
              items:
                type: object
                properties:
                  id:
                    type: string
                    description: Document id.
                  fileName:
                    type: string
                    description: Original file name.
                  mimeType:
                    type: string
                    description: Content type.
                  size:
                    type: integer
                    description: Size in bytes.
                required:
                  - id
                  - fileName
                  - mimeType
                  - size
          required:
            - text
        timestamp:
          type: string
          description: When the note was written.
          format: date-time
      required:
        - id
        - type
        - meta
        - timestamp
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
              description: Human-readable error message.
            details:
              type:
                - object
                - array
                - string
                - 'null'
              description: Optional structured detail.
          required:
            - message
  responses:
    BadRequest:
      description: The request was malformed, or a required field was missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              message: One of email, phone or linkedinUrl is required
              details: null
    Unauthorized:
      description: The API key is missing, invalid, or revoked.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              message: Invalid or revoked API key.
              details: null
    Forbidden:
      description: >-
        The key is read-only, or the workspace is not currently allowed to write
        (payment method missing, trial expired, payment overdue, or subscription
        cancelled).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              message: >-
                This API key is read-only. Create a key with write access in
                Settings → API Keys.
              details: null
    NotFound:
      description: The resource does not exist or is not in your workspace.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              message: Lead not found
              details: null
    RateLimited:
      description: Too many requests. Retry after the period in the `Retry-After` header.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              message: Rate limit exceeded. Retry in 42s.
              details: null
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Your API key, created in the Leadey dashboard under Settings → API Keys.
        Send it as `Authorization: Bearer leadey_sk_live_…`.

````