Vessel Dialer Unified API

The Vessel Dialer Unified API normalizes telephony/dialer objects across Aircall, Dialpad and RingCentral under /api/unifications/dialer, covering calls, call recordings, users and contacts. Published by Vessel as OpenAPI 3.1.0 with 9 operations.

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/dialer-unified-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 email required.

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

OpenAPI Specification

vessel-dialer-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Dialer API Reference
  version: "1.0"
  summary: API
servers:
  - url: "https://api.vessel.dev"
security:
  - VesselAPIToken: []
paths:
  /api/unifications/dialer/users/list:
    post:
      summary: List Users
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                title: responseBody
                type: object
                properties:
                  users:
                    type: array
                    items:
                      $ref: "#/components/schemas/User"
                  nextPageCursor:
                    type: string
              examples:
                example-1:
                  value:
                    users:
                      - id: 56f653659ea9524b9e0fb0ba67e6f8a0
                        firstName: Micheal
                        lastName: Scott
                        email: micheal@dundermifflin.com
                        role: "agent"
                        isAvailable: true
                        availabilityStatus: "available"
                        createdTime: "2019-08-24T14:15:22Z"
                    nextPageCursor: string
      operationId: get-all-users
      parameters:
        - name: x-vessel-access-token
          in: header
          description: Access Token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                include:
                  $ref: "#/components/schemas/IncludeFields"
                cursor:
                  type: string
            examples:
              example-1:
                value:
                  cursor: "123123"
                  include:
                    $native: false
      description: Retrieve all Users
    parameters: []
  /api/unifications/dialer/users/find:
    post:
      summary: Get User
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                title: responseBody
                type: object
                properties:
                  user:
                    $ref: "#/components/schemas/User"
              examples:
                example-1:
                  value:
                    user:
                      id: 56f653659ea9524b9e0fb0ba67e6f8a0
                      firstName: Micheal
                      lastName: Scott
                      email: micheal@dundermifflin.com
                      role: "agent"
                      isAvailable: true
                      availabilityStatus: "available"
                      createdTime: "2019-08-24T14:15:22Z"
      operationId: get-one-user
      parameters:
        - name: x-vessel-access-token
          in: header
          description: Access Token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                include:
                  $ref: "#/components/schemas/IncludeFields"
                id:
                  type: string
              required:
                - id
            examples:
              example-1:
                value:
                  id: "123123"
                  include:
                    $native: false
      description: Retrieve a single User by Id
    parameters: []
  /api/unifications/dialer/contacts/list:
    post:
      summary: List Contacts
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                title: responseBody
                type: object
                properties:
                  contacts:
                    type: array
                    items:
                      $ref: "#/components/schemas/Contact"
                  nextPageCursor:
                    type: string
              examples:
                example-1:
                  value:
                    contacts:
                      - id: e5f32d4fd2115220bd20a2ccf81210ec
                        firstName: Tom
                        lastName: Smith
                        companyName: Dunder Mifflin
                        description: "Tom Smith is a sales rep at Dunder Mifflin"
                        phones:
                          - number: "8192223333"
                            type: "work"
                        createdTime: "2019-08-24T14:15:22Z"
                        modifiedTime: "2019-08-24T14:15:22Z"
                    nextPageCursor: string
      operationId: get-all-contacts
      parameters:
        - name: x-vessel-access-token
          in: header
          description: Access Token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                include:
                  $ref: "#/components/schemas/IncludeFields"
                cursor:
                  type: string
            examples:
              example-1:
                value:
                  cursor: "123123"
                  include:
                    $native: false
      description: Retrieve all Contacts
    parameters: []
  /api/unifications/dialer/contacts/find:
    post:
      summary: Get Contact
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                title: responseBody
                type: object
                properties:
                  contact:
                    $ref: "#/components/schemas/Contact"
              examples:
                example-1:
                  value:
                    contact:
                      id: e5f32d4fd2115220bd20a2ccf81210ec
                      firstName: Tom
                      lastName: Smith
                      companyName: Dunder Mifflin
                      description: "Tom Smith is a sales rep at Dunder Mifflin"
                      phones:
                        - number: "8192223333"
                          type: "work"
                      createdTime: "2019-08-24T14:15:22Z"
                      modifiedTime: "2019-08-24T14:15:22Z"
      operationId: get-one-contact
      parameters:
        - name: x-vessel-access-token
          in: header
          description: Access Token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                include:
                  $ref: "#/components/schemas/IncludeFields"
                id:
                  type: string
              required:
                - id
            examples:
              example-1:
                value:
                  id: "123123"
                  include:
                    $native: false
      description: Retrieve a single Contact by Id
    parameters: []
  /api/unifications/dialer/contacts/create:
    post:
      summary: Create Contact
      operationId: post-contact
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                title: responseBody
                type: object
                properties:
                  id:
                    type: string
              examples:
                example-1:
                  value:
                    id: "0"
      parameters:
        - name: x-vessel-access-token
          in: header
          description: Access Token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                contact:
                  $ref: "#/components/schemas/ContactCreate"
              required:
                - contact
            examples:
              example-1:
                value:
                  contact:
                    firstName: Tom
                    lastName: Smith
                    companyName: Dunder Mifflin
                    description: "Tom Smith is a sales rep at Dunder Mifflin"
                    phones:
                      - number: "8192223333"
                        type: "work"
                    createdTime: "2019-08-24T14:15:22Z"
                    modifiedTime: "2019-08-24T14:15:22Z"
                    $native: {}
      description: Create a Contact
  /api/unifications/dialer/contacts/update:
    post:
      summary: Update Contact
      operationId: put-contact
      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"
      parameters:
        - name: x-vessel-access-token
          in: header
          description: Access Token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: string
                contact:
                  $ref: "#/components/schemas/ContactCreate"
              required:
                - id
                - contact
            examples:
              example-1:
                value:
                  id: string
                  contact:
                    firstName: Tom
                    lastName: Smith
                    companyName: Dunder Mifflin
                    description: "Tom Smith is a sales rep at Dunder Mifflin"
                    phones:
                      - number: "8192223333"
                        type: "work"
                    createdTime: "2019-08-24T14:15:22Z"
                    modifiedTime: "2019-08-24T14:15:22Z"
                    $native: {}
          application/xml:
            schema:
              type: object
              properties: {}
        description: ""
      description: Update an existing Contact
    parameters: []
  /api/unifications/dialer/calls/list:
    post:
      summary: List Calls
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                title: responseBody
                type: object
                properties:
                  calls:
                    type: array
                    items:
                      $ref: "#/components/schemas/Call"
                  nextPageCursor:
                    type: string
              examples:
                example-1:
                  value:
                    calls:
                      - id: e5f32d4fd2115220bd20a2ccf81210ec
                        to:
                          - number: "8192223333"
                        from:
                          - number: "8192223333"
                        startTime: "2019-08-24T14:15:22Z"
                        connectedTime: "2019-08-24T14:15:22Z"
                        endTime: "2019-08-24T14:15:22Z"
                        recordingUrl: "www.example.com/recording.mp3"
                        voicemailUrl: "www.example.com/voicemail.mp3"
                        direction: "outbound"
                        status: "completed"
                        answered: true
                        inProgress: false
                        createdTime: "2019-08-24T14:15:22Z"
                        modifiedTime: "2019-08-24T14:15:22Z"
                        associations:
                          users:
                            - id: 34f5b4b0b6b650c981a174b02753c390
                              number: "8192223333"
                          contacts:
                            - id: 56f653659ea9524b9e0fb0ba67e6f8a0
                              number: "8192223334"
                    nextPageCursor: string
      operationId: get-all-calls
      parameters:
        - name: x-vessel-access-token
          in: header
          description: Access Token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                include:
                  $ref: "#/components/schemas/IncludeFields"
                cursor:
                  type: string
            examples:
              example-1:
                value:
                  cursor: "123123"
                  include:
                    $native: false
      description: Retrieve all Calls
    parameters: []
  /api/unifications/dialer/calls/find:
    post:
      summary: Get Call
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                title: responseBody
                type: object
                properties:
                  call:
                    $ref: "#/components/schemas/Call"
              examples:
                example-1:
                  value:
                    call:
                      id: e5f32d4fd2115220bd20a2ccf81210ec
                      to:
                        - number: "8192223333"
                      from:
                        - number: "8192223333"
                      startTime: "2019-08-24T14:15:22Z"
                      connectedTime: "2019-08-24T14:15:22Z"
                      endTime: "2019-08-24T14:15:22Z"
                      recordingUrl: "www.example.com/recording.mp3"
                      voicemailUrl: "www.example.com/voicemail.mp3"
                      direction: "outbound"
                      status: "completed"
                      answered: true
                      inProgress: false
                      createdTime: "2019-08-24T14:15:22Z"
                      modifiedTime: "2019-08-24T14:15:22Z"
                      associations:
                        users:
                          - id: 34f5b4b0b6b650c981a174b02753c390
                            number: "8192223333"
                        contacts:
                          - id: 56f653659ea9524b9e0fb0ba67e6f8a0
                            number: "8192223334"
      operationId: get-one-call
      parameters:
        - name: x-vessel-access-token
          in: header
          description: Access Token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                include:
                  $ref: "#/components/schemas/IncludeFields"
                id:
                  type: string
              required:
                - id
            examples:
              example-1:
                value:
                  id: "123123"
                  include:
                    $native: false
      description: Retrieve a single Call by Id
    parameters: []
  /api/unifications/dialer/calls/start:
    post:
      summary: Start a Call
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                title: responseBody
                type: object
                properties:
                  call:
                    $ref: "#/components/schemas/Call"
              examples:
                example-1:
                  value:
                    call:
                      id: e5f32d4fd2115220bd20a2ccf81210ec
                      to:
                        - number: "8192223333"
                      from:
                        - number: "8192223333"
                      direction: "outbound"
                      startTime: "2019-08-24T14:15:22Z"
                      connectedTime: "2019-08-24T14:15:22Z"
                      endTime: "2019-08-24T14:15:22Z"
                      createdTime: "2019-08-24T14:15:22Z"
                      modifiedTime: "2019-08-24T14:15:22Z"
                      associations:
                        users:
                          - id: 34f5b4b0b6b650c981a174b02753c390
                            number: "8192223333"
                        contacts:
                          - id: 56f653659ea9524b9e0fb0ba67e6f8a0
                            number: "8192223334"
      parameters:
        - name: x-vessel-access-token
          in: header
          description: Access Token
          required: true
          schema:
            type: string
      operationId: start-call
      description: Start a Call
    parameters: []
components:
  schemas:
    IncludeFields:
      title: Include Fields
      type: object
      examples:
        - $native: true
      properties:
        $native:
          type: boolean
          description: Set to true if you want to include all native fields.
    NativeData:
      title: Native Data
      type: object
      description:
        Native fields for the connected platform. For reads, this object
        is only returned if the include.$native field is set to true in the request
        body.
    Phone:
      title: Phone
      type: object
      properties:
        number:
          type: string
          description: The phone number
        type:
          type: string
      example:
        number: "555-555-5555"
        type: "work"
    User:
      title: User
      type: object
      description: "Users of the connected Dialer. These are *not* the contacts, but rather the user accounts from the connected Dialer."
      examples:
        - id: 56f653659ea9524b9e0fb0ba67e6f8a0
          firstName: Micheal
          lastName: Scott
          email: micheal@dundermifflin.com
          role: "agent"
          isAvailable: true
          availabilityStatus: "available"
          createdTime: "2019-08-24T14:15:22Z"
      properties:
        id:
          type: string
          description: Id of the object in the connected Dialer.
        firstName:
          type: string
        lastName:
          type: string
        email:
          format: email
          type: string
        role:
          type: string
          enum:
            - agent
            - admin
        isAvailable:
          type: boolean
        availabilityStatus:
          type: string
        createdTime:
          type: string
          description: The timestamp that the user was created
        $native:
          $ref: "#/components/schemas/NativeData"
      required:
        - id
        - createdTime
    ContactCreate:
      title: ContactCreate
      type: object
      examples:
        - firstName: Tom
          lastName: Smith
          companyName: Dunder Mifflin
          description: "Tom Smith is a sales rep at Dunder Mifflin"
          phones:
            - number: "8192223333"
              type: "work"
          createdTime: "2019-08-24T14:15:22Z"
          modifiedTime: "2019-08-24T14:15:22Z"
      properties:
        firstName:
          type: string
        lastName:
          type: string
        companyName:
          type: string
        description:
          type: string
        phones:
          type: array
          items:
            $ref: "#/components/schemas/Phone"
        createdTime:
          type: string
          description: The timestamp that the contact was created
        modifiedTime:
          type: string
          description: The timestamp the contact was last modified
        $native:
          $ref: "#/components/schemas/NativeData"
      required:
        - createdTime
        - modifiedTime
    Contact:
      title: Contact
      type: object
      examples:
        - id: e5f32d4fd2115220bd20a2ccf81210ec
          firstName: Tom
          lastName: Smith
          companyName: Dunder Mifflin
          description: "Tom Smith is a sales rep at Dunder Mifflin"
          phones:
            - number: "8192223333"
              type: "work"
          createdTime: "2019-08-24T14:15:22Z"
          modifiedTime: "2019-08-24T14:15:22Z"
      properties:
        id:
          type: string
          description: Id of the object in the connected Dialer.
        firstName:
          type: string
        lastName:
          type: string
        companyName:
          type: string
        description:
          type: string
        phones:
          type: array
          items:
            $ref: "#/components/schemas/Phone"
        createdTime:
          type: string
          description: The timestamp that the contact was created
        modifiedTime:
          type: string
          description: The timestamp the contact was last modified
        $native:
          $ref: "#/components/schemas/NativeData"
      required:
        - id
        - createdTime
        - modifiedTime
    Call:
      title: Call
      type: object
      examples:
        - id: e5f32d4fd2115220bd20a2ccf81210ec
          to:
            - number: "8192223333"
          from:
            - number: "8192223333"
          startTime: "2019-08-24T14:15:22Z"
          connectedTime: "2019-08-24T14:15:22Z"
          endTime: "2019-08-24T14:15:22Z"
          recordingUrl: "www.example.com/recording.mp3"
          voicemailUrl: "www.example.com/voicemail.mp3"
          direction: "outbound"
          status: "completed"
          answered: true
          inProgress: false
          createdTime: "2019-08-24T14:15:22Z"
          modifiedTime: "2019-08-24T14:15:22Z"
          associations:
            users:
              - id: 34f5b4b0b6b650c981a174b02753c390
                number: "8192223333"
            contacts:
              - id: 56f653659ea9524b9e0fb0ba67e6f8a0
                number: "8192223334"
      properties:
        id:
          type: string
          description: Id of the object in the connected Dialer.
        to:
          type: array
          items:
            - number:
                type: string
        from:
          type: array
          items:
            - number:
                type: string
        startTime:
          type: string
        connectedTime:
          type: string
        endTime:
          type: string
        createdTime:
          type: string
          description: The timestamp that the contact was created
        modifiedTime:
          type: string
          description: The timestamp the contact was last modified
        recordingUrl:
          type: string
          description: The URL of the recording. Only supported for Aircall and Dialpad.
        voicemailUrl:
          type: string
          description: The URL of the voicemail. Only supported for Aircall and Dialpad.
        direction:
          type: string
          enum:
            - inbound
            - outbound
        status:
          type: string
          description: The status of the call.
        answered:
          type: boolean
        inProgress:
          type: boolean
        associations:
          type: object
          properties:
            users:
              type: array
              items:
                - id:
                    type: string
                  number:
                    type: string
            contacts:
              type: array
              items:
                - id:
                    type: string
                  number:
                    type: string
        $native:
          $ref: "#/components/schemas/NativeData"
      required:
        - id
        - createdTime
        - modifiedTime