Vessel Notes API

The notes API from Vessel — 5 operation(s) for notes.

Operations 7

GET /crm/notes Get All Notes #
POST /crm/notes/search Search Notes #
GET /crm/note Get Note #
POST /crm/note Create Note #
PATCH /crm/note Update Note #
GET /crm/note/details Get Note Details #
GET /crm/note/batch Get Batch Notes #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/vessel-notes-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

vessel-notes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: CRM API Reference Notes API
  version: '2.0'
  summary: API
servers:
- url: https://api.vessel.dev
security:
- VesselAPIToken: []
tags:
- name: notes
paths:
  /crm/notes:
    get:
      summary: Get All Notes
      tags:
      - notes
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                title: responseBody
                type: object
                properties:
                  notes:
                    type: array
                    items:
                      $ref: '#/components/schemas/Note'
                  nextPageCursor:
                    type: string
              examples:
                example-1:
                  value:
                    notes:
                    - id: v.note.006b4db16b6b50c981a174b02753c390
                      nativeId: '34'
                      content: This note has some interesting content in it!
                      modifiedTime: '2019-08-24T14:15:22Z'
                      createdTime: '2019-08-24T14:15:22Z'
                      associations:
                        dealIds:
                        - v.deal.497fb529e6805351b5dc8057c74a4a52
                        contactIds:
                        - v.contact.e5f32d4fd2115220bd20a2ccf81210ec
                        accountIds:
                        - v.account.0dcb45e051315a6ea63b0f16e73689d9
                        leadIds:
                        - v.lead.d08f345ace24509e911a0ea8e3d2203c
                        ownerUserId: v.user.56f653659ea9524b9e0fb0ba67e6f8a0
                      additional: {}
                    nextPageCursor: string
      operationId: get-all-crm-notes
      description: Retrieve all Notes
      parameters:
      - schema:
          type: string
        in: query
        name: accessToken
        description: The token for the customer's CRM account. This was generated when they connected their account.
        required: true
      - schema:
          type: string
        in: query
        name: cursor
      - schema:
          type: number
        in: query
        name: limit
        description: The number of records to return per page.
      - schema:
          type: boolean
        in: query
        name: allFields
        description: Returns all fields including non-unifiable and custom fields under the "additional" property in the response
  /crm/notes/search:
    post:
      summary: Search Notes
      tags:
      - notes
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                filters:
                  type: object
                  properties:
                    id:
                      $ref: '#/components/schemas/StringFilter'
                    nativeId:
                      $ref: '#/components/schemas/StringFilter'
                    content:
                      $ref: '#/components/schemas/StringFilter'
                    contentText:
                      $ref: '#/components/schemas/StringFilter'
                    contentHtml:
                      $ref: '#/components/schemas/StringFilter'
                    createdTime:
                      $ref: '#/components/schemas/DateFilter'
                    modifiedTime:
                      $ref: '#/components/schemas/DateFilter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  notes:
                    type: array
                    items:
                      $ref: '#/components/schemas/Note'
                  nextPageCursor:
                    type: string
                title: responseBody
              examples:
                example-1:
                  value:
                    notes:
                    - id: v.note.006b4db16b6b50c981a174b02753c390
                      nativeId: '34'
                      content: This note has some interesting content in it!
                      modifiedTime: '2019-08-24T14:15:22Z'
                      createdTime: '2019-08-24T14:15:22Z'
                      associations:
                        dealIds:
                        - v.deal.497fb529e6805351b5dc8057c74a4a52
                        contactIds:
                        - v.contact.e5f32d4fd2115220bd20a2ccf81210ec
                        accountIds:
                        - v.account.0dcb45e051315a6ea63b0f16e73689d9
                        leadIds:
                        - v.lead.d08f345ace24509e911a0ea8e3d2203c
                        ownerUserId: v.user.56f653659ea9524b9e0fb0ba67e6f8a0
                      additional: {}
                    nextPageCursor: string
      operationId: search-crm-notes
      description: Search all Notes using filters
      parameters:
      - $ref: '#/components/parameters/accessToken'
      - $ref: '#/components/parameters/cursor'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/allFields'
  /crm/note:
    get:
      summary: Get Note
      tags:
      - notes
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                title: responseBody
                type: object
                properties:
                  note:
                    $ref: '#/components/schemas/Note'
              examples:
                example-1:
                  value:
                    note:
                      id: v.note.006b4db16b6b50c981a174b02753c390
                      nativeId: '34'
                      content: This note has some interesting content in it!
                      modifiedTime: '2019-08-24T14:15:22Z'
                      createdTime: '2019-08-24T14:15:22Z'
                      associations:
                        dealIds:
                        - v.deal.497fb529e6805351b5dc8057c74a4a52
                        contactIds:
                        - v.contact.e5f32d4fd2115220bd20a2ccf81210ec
                        accountIds:
                        - v.account.0dcb45e051315a6ea63b0f16e73689d9
                        leadIds:
                        - v.lead.d08f345ace24509e911a0ea8e3d2203c
                        ownerUserId: v.user.56f653659ea9524b9e0fb0ba67e6f8a0
                      additional: {}
      operationId: get-one-crm-note
      parameters:
      - schema:
          type: string
        in: query
        name: accessToken
        description: The token for the customer's CRM account. This was generated when they connected their account.
        required: true
      - schema:
          type: string
        in: query
        name: id
        required: true
      - schema:
          type: boolean
        in: query
        name: allFields
        description: Returns all fields including non-unifiable and custom fields under the "additional" property in the response
      description: Retrieve a single Note by Id
    post:
      summary: Create Note
      tags:
      - notes
      operationId: post-crm-note
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                title: responseBody
                description: ''
                type: object
                x-examples:
                  example-1:
                    id: '0'
                properties:
                  id:
                    type: string
                required:
                - id
              examples:
                example-1:
                  value:
                    id: '0'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                accessToken:
                  type: string
                note:
                  $ref: '#/components/schemas/NoteCreate'
              required:
              - accessToken
              - note
            examples:
              example-1:
                value:
                  accessToken: string
                  note:
                    content: This note has some interesting content in it!
                    ownerUserId: v.user.79d154aa0c7a571295a157369d448e65
                    dealId: v.deal.497fb529e6805351b5dc8057c74a4a52
                    leadId: v.lead.d08f345ace24509e911a0ea8e3d2203c
                    accountId: v.account.0dcb45e051315a6ea63b0f16e73689d9
                    contactId: v.contact.e5f32d4fd2115220bd20a2ccf81210ec
        description: ''
      description: 'Create a new Note.

        *CRM Caveats*:

        - Salesforce: You may only associate a Note with one entity.'
    patch:
      summary: Update Note
      tags:
      - notes
      operationId: put-crm-note
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                title: responseBody
                description: ''
                type: object
                x-examples:
                  example-1:
                    id: '0'
                properties:
                  id:
                    type: string
                required:
                - id
              examples:
                example-1:
                  value:
                    id: '0'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                accessToken:
                  type: string
                id:
                  type: string
                note:
                  $ref: '#/components/schemas/NoteUpdate'
              required:
              - accessToken
              - id
              - note
            examples:
              example-1:
                value:
                  accessToken: string
                  id: string
                  note:
                    content: This note has some interesting content in it!
                    ownerUserId: v.user.79d154aa0c7a571295a157369d448e65
      description: Update an existing Note by Id
  /crm/note/details:
    get:
      summary: Get Note Details
      tags:
      - notes
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                title: responseBody
                type: object
                properties:
                  fields:
                    type: array
                    items:
                      $ref: '#/components/schemas/Field'
                  nextPageCursor:
                    type: string
              examples:
                example-1:
                  value:
                    fields:
                    - key: content
                      name: Content
                      type: string
                      options: null
                      isArray: false
                      custom: false
                      universal: true
                      required: true
                      creatable: true
                      updatable: true
                    nextPageCursor: string
      operationId: get-details-crm-note
      description: 'Get details about all notes.

        Details include the type, possible values, and other meta data about the fields.'
      parameters:
      - schema:
          type: string
        in: query
        name: accessToken
        description: The token for the customer's CRM account. This was generated when they connected their account.
        required: true
      - schema:
          type: string
        in: query
        name: cursor
      - schema:
          type: boolean
        in: query
        name: allFields
        description: Returns details about native fields.
  /crm/note/batch:
    parameters: []
    get:
      summary: Get Batch Notes
      tags:
      - notes
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                title: responseBody
                type: object
                properties:
                  notes:
                    type: array
                    items:
                      $ref: '#/components/schemas/Note'
                  invalidIds:
                    $ref: '#/components/schemas/InvalidIds'
              examples:
                example-1:
                  value:
                    notes:
                    - id: v.note.006b4db16b6b50c981a174b02753c390
                      nativeId: '34'
                      content: This note has some interesting content in it!
                      modifiedTime: '2019-08-24T14:15:22Z'
                      createdTime: '2019-08-24T14:15:22Z'
                      associations:
                        dealIds:
                        - v.deal.497fb529e6805351b5dc8057c74a4a52
                        contactIds:
                        - v.contact.e5f32d4fd2115220bd20a2ccf81210ec
                        accountIds:
                        - v.account.0dcb45e051315a6ea63b0f16e73689d9
                        leadIds:
                        - v.lead.d08f345ace24509e911a0ea8e3d2203c
                        ownerUserId: v.user.56f653659ea9524b9e0fb0ba67e6f8a0
                      additional: {}
      operationId: get-batch-crm-note
      parameters:
      - schema:
          type: string
        in: query
        name: accessToken
        required: true
        description: The token for the customer's CRM account. This was generated when they connected their account.
      - schema:
          type: string
        in: query
        name: ids
        description: Comma separated list of Note Id's.
      - schema:
          type: boolean
        in: query
        name: allFields
        description: Returns all fields including non-unifiable and custom fields under the "additional" property in the response
      description: Retrieve Notes by a set of Id's
components:
  schemas:
    DateFilter:
      type: object
      properties:
        equals:
          type: string
        gt:
          type: string
        lt:
          type: string
        lte:
          type: string
        gte:
          type: string
        not:
          type: string
        in:
          type: array
          items:
            type: string
        notIn:
          type: array
          items:
            type: string
    InvalidIds:
      type: array
      items:
        type: string
      description: Ids that didn't return anything. Will be an empty array if all Ids are valid.
    NoteCreate:
      title: NoteCreate
      type: object
      description: Create a new Note. You may only associate a note with at most one entity of each type upon creation.
      examples:
      - content: This note has some interesting content in it!
        ownerUserId: v.user.79d154aa0c7a571295a157369d448e65
        dealId: v.deal.497fb529e6805351b5dc8057c74a4a52
        leadId: v.lead.d08f345ace24509e911a0ea8e3d2203c
        accountId: v.account.0dcb45e051315a6ea63b0f16e73689d9
        contactId: v.contact.e5f32d4fd2115220bd20a2ccf81210ec
      properties:
        content:
          type: string
          description: The body of the note
        ownerUserId:
          type: string
          description: The user to assign this note to. If there is no ownerUserId provided, the behavior is defined by the downstream system (either assigned to no user or to the user that installed the app).
        dealId:
          type: string
          description: Required unless leadId/accountId/contactId are specified.
        leadId:
          type: string
          description: Required unless dealId/accountId/contactId are specified.
        accountId:
          type: string
          description: Required unless leadId/dealId/contactId are specified.
        contactId:
          type: string
          description: Required unless leadId/accountId/dealId are specified.
        additional:
          type: object
          description: Create any property in the downstream CRM, such as a custom or native property. For a list of all properties see /details.
    NoteUpdate:
      title: NoteUpdate
      type: object
      description: Update an existing Note. Please note that updating associations is not currently supported.
      examples:
      - content: This note has some interesting content in it!
        ownerUserId: v.user.79d154aa0c7a571295a157369d448e65
      properties:
        content:
          type: string
          description: The body of the note
        ownerUserId:
          type: string
          description: Only Admins can change this property
        additional:
          type: object
          description: Create any property in the downstream CRM, such as a custom or native property. For a list of all properties see /details.
    Field:
      title: Field
      type: object
      description: '(Alias: property) A field is a key-value pair on a CRM Object that provides information about that object.'
      properties:
        key:
          type: string
          description: 'The key in the CRM object (ex: annualRevenue, numberOfEmployees, etc)'
        name:
          type: string
          description: 'The display name of this field (ex: number of employees, annual revenue, etc)'
        type:
          type: string
          enum:
          - string
          - number
          - datetime
          - date
          - boolean
          - reference
          - phone
          - url
          - id
          - email
          - percent
          - singleselect
          - multiselect
          - address
          - decimal
          - time
          - daterange
          - object
        options:
          type: array
          description: Possible options for this field
          items:
            type: object
            properties:
              key:
                oneOf:
                - type: string
                - type: number
              name:
                type: string
        isArray:
          type: boolean
          description: If this field is an array
        custom:
          type: boolean
          description: If this field is a custom field
        universal:
          type: boolean
          description: If this is a field we've unified across CRMs
        required:
          type: boolean
          description: If this field is required when creating the object
        creatable:
          type: boolean
          description: If this field can be used when creating the object
        updatable:
          type: boolean
          description: If this field can be updated
      required:
      - key
      - name
      - type
      - custom
      - universal
      - required
      - creatable
      - updatable
      examples:
      - key: numberOfEmployees
        name: number of employees
        type: number
        options: null
        isArray: false
        custom: false
        universal: true
        required: false
        creatable: true
        updatable: true
    StringFilter:
      type: object
      properties:
        equals:
          type: string
        contains:
          type: string
        startsWith:
          type: string
        endsWith:
          type: string
        not:
          type: string
        in:
          type: array
          items:
            type: string
        notIn:
          type: array
          items:
            type: string
        mode:
          type: string
          enum:
          - insensitive
    Note:
      title: Note
      type: object
      description: 'A Note attached to some CRM Object. '
      examples:
      - id: v.note.006b4db16b6b50c981a174b02753c390
        nativeId: '34'
        content: This note has some interesting content in it!
        modifiedTime: '2019-08-24T14:15:22Z'
        createdTime: '2019-08-24T14:15:22Z'
        associations:
          dealIds:
          - v.deal.497fb529e6805351b5dc8057c74a4a52
          contactIds:
          - v.contact.e5f32d4fd2115220bd20a2ccf81210ec
          accountIds:
          - v.account.0dcb45e051315a6ea63b0f16e73689d9
          leadIds:
          - v.lead.d08f345ace24509e911a0ea8e3d2203c
          ownerUserId: v.user.56f653659ea9524b9e0fb0ba67e6f8a0
        additional: {}
      properties:
        id:
          type: string
          description: Unique Vessel Id.
        nativeId:
          type: string
          description: Id of the object in the connected CRM.
        contentHtml:
          type: string
          description: The body of the note (populated if CRM notes support html)
        contentText:
          type: string
          description: The body of the note (populated if CRM notes only support plaintext)
        createdTime:
          type: string
          description: The timestamp that the note was created
        modifiedTime:
          type: string
          description: The timestamp the note was last modified
        associations:
          type: object
          required:
          - dealIds
          - contactIds
          - accountIds
          - leadIds
          - ownerUserId
          properties:
            dealIds:
              type: array
              items:
                type: string
            contactIds:
              type: array
              items:
                type: string
            accountIds:
              type: array
              items:
                type: string
            leadIds:
              type: array
              items:
                type: string
            ownerUserId:
              type: string
              description: The Id of the User that owns this note
        additional:
          type: object
          description: Returned when `allFields` is set in the query params. Includes all data, untransformed, we received from the downstream CRM
      required:
      - id
      - nativeId
      - createdTime
      - modifiedTime
      - associations
  parameters:
    cursor:
      name: cursor
      in: query
      description: The cursor to use for pagination
      schema:
        type: string
    accessToken:
      name: accessToken
      in: query
      description: The token for the customer's account. This was generated when they connected their account.
      required: true
      schema:
        type: string
    allFields:
      name: allFields
      in: query
      description: Returns all fields including non-unifiable and custom fields under the "additional" property in the response
      schema:
        type: boolean
    limit:
      name: limit
      in: query
      description: The number of records to return per page.
      schema:
        type: number
  securitySchemes:
    VesselAPIToken:
      name: vessel-api-token
      type: apiKey
      in: header