Vessel Contacts API

The Contacts API from Vessel — 3 operation(s) for contacts.

OpenAPI Specification

vessel-contacts-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Vessel CRM Accounts Contacts API
  description: The Vessel CRM API provides a unified interface for CRM operations across Salesforce, HubSpot, Zoho, Pipedrive, Close, Freshsales, Microsoft Dynamics, Affinity, monday.com, and Freshdesk. Operations are normalized across all CRM systems with consistent object models for contacts, deals, accounts, leads, notes, tasks, emails, calls, events, and users. Authentication uses vessel-api-token header and accessToken query parameter.
  version: '1.0'
  contact:
    name: Vessel Support
    email: support@vessel.dev
    url: https://www.vessel.dev/
  license:
    name: Proprietary
    url: https://www.vessel.dev/
servers:
- url: https://api.vessel.land
  description: Vessel CRM API
security:
- apiToken: []
tags:
- name: Contacts
paths:
  /crm/contacts:
    get:
      operationId: getAllContacts
      summary: Get All Contacts
      description: Returns all contacts from the connected CRM.
      tags:
      - Contacts
      parameters:
      - name: accessToken
        in: query
        required: true
        schema:
          type: string
        description: User connection access token
      - name: cursor
        in: query
        required: false
        schema:
          type: string
        description: Pagination cursor for next page
      responses:
        '200':
          description: List of CRM contacts
          content:
            application/json:
              schema:
                type: object
                properties:
                  contacts:
                    type: array
                    items:
                      $ref: '#/components/schemas/Contact'
                  nextCursor:
                    type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /crm/contacts/create:
    post:
      operationId: createContact
      summary: Create a Contact
      description: Creates a new contact in the connected CRM.
      tags:
      - Contacts
      parameters:
      - name: accessToken
        in: query
        required: true
        schema:
          type: string
        description: User connection access token
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactInput'
      responses:
        '200':
          description: Contact created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /crm/contacts/update:
    post:
      operationId: updateContact
      summary: Update a Contact
      description: Updates an existing contact in the connected CRM.
      tags:
      - Contacts
      parameters:
      - name: accessToken
        in: query
        required: true
        schema:
          type: string
        description: User connection access token
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
              - type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    description: Contact ID to update
              - $ref: '#/components/schemas/ContactInput'
      responses:
        '200':
          description: Contact updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Error:
      type: object
      description: API error response
      properties:
        error:
          type: string
          description: Error message
        code:
          type: string
          description: Error code
    ContactInput:
      type: object
      description: Input for creating or updating a CRM contact
      properties:
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
        phone:
          type: string
        title:
          type: string
        company:
          type: string
    Contact:
      type: object
      description: A CRM contact record
      properties:
        id:
          type: string
          description: Unique contact ID (string-normalized)
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
          format: email
        phone:
          type: string
        title:
          type: string
        company:
          type: string
        createdAt:
          type: string
          format: date-time
          description: ISO 8601 creation timestamp
        updatedAt:
          type: string
          format: date-time
  securitySchemes:
    apiToken:
      type: apiKey
      in: header
      name: vessel-api-token
      description: Your Vessel API token for server-side authentication