Vessel · OpenAPI Overlay 1.0.0

Vessel CRM Unified API — API Evangelist Overlay

141 actions 141 updates documentation extends openapi/vessel-crm-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Vessel's API. It is a proposal applied on top of the contract, not a document Vessel publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

tags400401409500contactdescriptionVesselAPIToken

Targets 141 · first 16 shown; the file carries all of them

$.info
$
$.paths['/api/unifications/crm/info/find'].post
$.paths['/api/unifications/crm/users/list'].post
$.paths['/api/unifications/crm/users/batch-read'].post
$.paths['/api/unifications/crm/users/find'].post
$.paths['/api/unifications/crm/users/details'].post
$.paths['/api/unifications/crm/contacts/list'].post
$.paths['/api/unifications/crm/contacts/batch-read'].post
$.paths['/api/unifications/crm/contacts/find'].post
$.paths['/api/unifications/crm/contacts/create'].post
$.paths['/api/unifications/crm/contacts/update'].post
$.paths['/api/unifications/crm/contacts/details'].post
$.paths['/api/unifications/crm/deals/list'].post
$.paths['/api/unifications/crm/deals/batch-read'].post
$.paths['/api/unifications/crm/deals/find'].post

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: Vessel CRM Unified API — API Evangelist Overlay
  version: 1.0.0
extends: openapi/vessel-crm-openapi.yml
x-provenance:
  generated: '2026-08-13'
  method: generated
  source: API Evangelist enrichment pipeline — enhancements over the verbatim spec harvested from https://github.com/vesselapi/all-api-docs
  note: The underlying OpenAPI is left byte-identical to what Vessel published. Every change below is
    an API Evangelist annotation, not a claim about Vessel's contract. The two substantive additions are
    tags (the published specs declare none, so no generator or catalog can group these operations) and
    the error responses that Vessel documents in prose but never declares in the contract.
actions:
- target: $.info
  update:
    contact:
      name: Vessel Support
      email: support@vessel.dev
      url: https://www.vessel.dev/
    description: 'Unified CRM API (v2). Normalizes contacts, deals, accounts, leads, notes, tasks, events,
      event attendees, emails, calls, lists and users across Salesforce, HubSpot, Zoho, Pipedrive, Close,
      Freshsales, Microsoft Dynamics, Affinity and monday.com. RPC over POST: reads are POSTs because
      filters, includes and synced-cache selectors travel in the body. Cursor pagination via cursor/nextPageCursor.
      Every object carries $native with the untranslated source record.'
- target: $
  update:
    tags:
    - name: Accounts
    - name: Calls
    - name: Connection Info
    - name: Contacts
    - name: Custom Fields
    - name: Deals
    - name: Emails
    - name: Event Attendees
    - name: Events
    - name: Leads
    - name: Lists
    - name: Notes
    - name: Tasks
    - name: Users
- target: $.paths['/api/unifications/crm/info/find'].post
  update:
    tags:
    - Connection Info
- target: $.paths['/api/unifications/crm/users/list'].post
  update:
    tags:
    - Users
- target: $.paths['/api/unifications/crm/users/batch-read'].post
  update:
    tags:
    - Users
- target: $.paths['/api/unifications/crm/users/find'].post
  update:
    tags:
    - Users
- target: $.paths['/api/unifications/crm/users/details'].post
  update:
    tags:
    - Users
- target: $.paths['/api/unifications/crm/contacts/list'].post
  update:
    tags:
    - Contacts
- target: $.paths['/api/unifications/crm/contacts/batch-read'].post
  update:
    tags:
    - Contacts
- target: $.paths['/api/unifications/crm/contacts/find'].post
  update:
    tags:
    - Contacts
- target: $.paths['/api/unifications/crm/contacts/create'].post
  update:
    tags:
    - Contacts
- target: $.paths['/api/unifications/crm/contacts/update'].post
  update:
    tags:
    - Contacts
- target: $.paths['/api/unifications/crm/contacts/details'].post
  update:
    tags:
    - Contacts
- target: $.paths['/api/unifications/crm/deals/list'].post
  update:
    tags:
    - Deals
- target: $.paths['/api/unifications/crm/deals/batch-read'].post
  update:
    tags:
    - Deals
- target: $.paths['/api/unifications/crm/deals/find'].post
  update:
    tags:
    - Deals
- target: $.paths['/api/unifications/crm/deals/create'].post
  update:
    tags:
    - Deals
- target: $.paths['/api/unifications/crm/deals/update'].post
  update:
    tags:
    - Deals
- target: $.paths['/api/unifications/crm/deals/details'].post
  update:
    tags:
    - Deals
- target: $.paths['/api/unifications/crm/accounts/list'].post
  update:
    tags:
    - Accounts
- target: $.paths['/api/unifications/crm/accounts/batch-read'].post
  update:
    tags:
    - Accounts
- target: $.paths['/api/unifications/crm/accounts/find'].post
  update:
    tags:
    - Accounts
- target: $.paths['/api/unifications/crm/accounts/create'].post
  update:
    tags:
    - Accounts
- target: $.paths['/api/unifications/crm/accounts/update'].post
  update:
    tags:
    - Accounts
- target: $.paths['/api/unifications/crm/accounts/details'].post
  update:
    tags:
    - Accounts
- target: $.paths['/api/unifications/crm/leads/list'].post
  update:
    tags:
    - Leads
- target: $.paths['/api/unifications/crm/leads/batch-read'].post
  update:
    tags:
    - Leads
- target: $.paths['/api/unifications/crm/leads/find'].post
  update:
    tags:
    - Leads
- target: $.paths['/api/unifications/crm/leads/create'].post
  update:
    tags:
    - Leads
- target: $.paths['/api/unifications/crm/leads/update'].post
  update:
    tags:
    - Leads
- target: $.paths['/api/unifications/crm/custom-fields/create'].post
  update:
    tags:
    - Custom Fields
- target: $.paths['/api/unifications/crm/leads/details'].post
  update:
    tags:
    - Leads
- target: $.paths['/api/unifications/crm/notes/list'].post
  update:
    tags:
    - Notes
- target: $.paths['/api/unifications/crm/notes/batch-read'].post
  update:
    tags:
    - Notes
- target: $.paths['/api/unifications/crm/notes/find'].post
  update:
    tags:
    - Notes
- target: $.paths['/api/unifications/crm/notes/create'].post
  update:
    tags:
    - Notes
- target: $.paths['/api/unifications/crm/notes/update'].post
  update:
    tags:
    - Notes
- target: $.paths['/api/unifications/crm/notes/details'].post
  update:
    tags:
    - Notes
- target: $.paths['/api/unifications/crm/tasks/list'].post
  update:
    tags:
    - Tasks
- target: $.paths['/api/unifications/crm/tasks/batch-read'].post
  update:
    tags:
    - Tasks
- target: $.paths['/api/unifications/crm/tasks/find'].post
  update:
    tags:
    - Tasks
- target: $.paths['/api/unifications/crm/tasks/create'].post
  update:
    tags:
    - Tasks
- target: $.paths['/api/unifications/crm/tasks/update'].post
  update:
    tags:
    - Tasks
- target: $.paths['/api/unifications/crm/tasks/details'].post
  update:
    tags:
    - Tasks
- target: $.paths['/api/unifications/crm/events/list'].post
  update:
    tags:
    - Events
- target: $.paths['/api/unifications/crm/events/batch-read'].post
  update:
    tags:
    - Events
- target: $.paths['/api/unifications/crm/events/find'].post
  update:
    tags:
    - Events
- target: $.paths['/api/unifications/crm/events/create'].post
  update:
    tags:
    - Events
- target: $.paths['/api/unifications/crm/events/update'].post
  update:
    tags:
    - Events
- target: $.paths['/api/unifications/crm/events/details'].post
  update:
    tags:
    - Events
- target: $.paths['/api/unifications/crm/attendees/list'].post
  update:
    tags:
    - Event Attendees
- target: $.paths['/api/unifications/crm/attendees/batch-read'].post
  update:
    tags:
    - Event Attendees
- target: $.paths['/api/unifications/crm/attendees/find'].post
  update:
    tags:
    - Event Attendees
- target: $.paths['/api/unifications/crm/attendees/create'].post
  update:
    tags:
    - Event Attendees
- target: $.paths['/api/unifications/crm/attendees/update'].post
  update:
    tags:
    - Event Attendees
- target: $.paths['/api/unifications/crm/attendees/details'].post
  update:
    tags:
    - Event Attendees
- target: $.paths['/api/unifications/crm/emails/list'].post
  update:
    tags:
    - Emails
- target: $.paths['/api/unifications/crm/emails/batch-read'].post
  update:
    tags:
    - Emails
- target: $.paths['/api/unifications/crm/emails/find'].post
  update:
    tags:
    - Emails
- target: $.paths['/api/unifications/crm/emails/create'].post
  update:
    tags:
    - Emails
- target: $.paths['/api/unifications/crm/emails/update'].post
  update:
    tags:
    - Emails
- target: $.paths['/api/unifications/crm/emails/details'].post
  update:
    tags:
    - Emails
- target: $.paths['/api/unifications/crm/calls/list'].post
  update:
    tags:
    - Calls
- target: $.paths['/api/unifications/crm/calls/batch-read'].post
  update:
    tags:
    - Calls
- target: $.paths['/api/unifications/crm/calls/find'].post
  update:
    tags:
    - Calls
- target: $.paths['/api/unifications/crm/calls/create'].post
  update:
    tags:
    - Calls
- target: $.paths['/api/unifications/crm/calls/update'].post
  update:
    tags:
    - Calls
- target: $.paths['/api/unifications/crm/calls/details'].post
  update:
    tags:
    - Calls
- target: $.paths['/api/unifications/crm/lists/list'].post
  update:
    tags:
    - Lists
- target: $.paths['/api/unifications/crm/lists/find'].post
  update:
    tags:
    - Lists
- target: $.paths['/api/unifications/crm/lists/details'].post
  update:
    tags:
    - Lists
- target: $.paths['/api/unifications/crm/info/find'].post.responses
  update: &id001
    '400':
      description: Generic Client Error — invalid body parameters, expired public token, or development-connection
        cap reached. Documented at crm/error-handling.mdx; not declared in the published contract.
    '401':
      description: Authorization Error — invalid API token, link token, or access token.
    '409':
      description: Data still syncing — the connection has not reached the INITIAL_SYNC state.
    '500':
      description: 'Internal Server Error. NOTE: Vessel documents that some client-side validation failures
        (missing object, endpoint not implemented for that CRM, expired link token, webhook setup problems)
        are returned as 5xx. Do not treat as automatically retryable.'
- target: $.paths['/api/unifications/crm/users/list'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/users/batch-read'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/users/find'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/users/details'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/contacts/list'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/contacts/batch-read'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/contacts/find'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/contacts/create'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/contacts/update'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/contacts/details'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/deals/list'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/deals/batch-read'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/deals/find'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/deals/create'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/deals/update'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/deals/details'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/accounts/list'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/accounts/batch-read'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/accounts/find'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/accounts/create'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/accounts/update'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/accounts/details'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/leads/list'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/leads/batch-read'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/leads/find'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/leads/create'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/leads/update'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/custom-fields/create'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/leads/details'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/notes/list'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/notes/batch-read'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/notes/find'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/notes/create'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/notes/update'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/notes/details'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/tasks/list'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/tasks/batch-read'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/tasks/find'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/tasks/create'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/tasks/update'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/tasks/details'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/events/list'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/events/batch-read'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/events/find'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/events/create'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/events/update'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/events/details'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/attendees/list'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/attendees/batch-read'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/attendees/find'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/attendees/create'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/attendees/update'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/attendees/details'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/emails/list'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/emails/batch-read'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/emails/find'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/emails/create'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/emails/update'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/emails/details'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/calls/list'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/calls/batch-read'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/calls/find'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/calls/create'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/calls/update'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/calls/details'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/lists/list'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/lists/find'].post.responses
  update: *id001
- target: $.paths['/api/unifications/crm/lists/details'].post.responses
  update: *id001
- target: $.components.securitySchemes
  update:
    VesselAPIToken:
      type: apiKey
      in: header
      name: x-vessel-api-token
      description: Project API token. The published v2 specs declare a security requirement referencing
        VesselAPIToken but never define the scheme; this restores the definition from the provider mint.json
        (api.auth.name).