Vessel Aircall Actions API

The Vessel Actions API for Aircall — typed, validated wrappers over Aircall's native API served under /api/actions/aircall. Actions add request/response schema validation, standardized data types and normalized error handling on top of the downstream provider, so callers do not have to absorb that provider's quirks directly. 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/aircall-actions-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-aircall-actions-openapi.yml Raw ↑

openapi: 3.1.0
info:
  title: Aircall API Reference
  version: "1.0"
  summary: API
servers:
  - url: "https://api.vessel.dev"
security:
  - VesselAPIToken: []
paths:
  /api/actions/aircall/users/list:
    post:
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                   users:
                     type: array
                     items:
                       type: object
                       properties:
                         id:
                           type: number
                         directLink:
                           type:
                             - string
                             - 'null'
                         name:
                           type: string
                         email:
                           type:
                             - string
                             - 'null'
                         available:
                           type:
                             - boolean
                             - 'null'
                         availabilityStatus:
                           type:
                             - string
                             - 'null'
                         timeZone:
                           type:
                             - string
                             - 'null'
                         language:
                           type:
                             - string
                             - 'null'
                         wrapUpTime:
                           type:
                             - number
                             - 'null'
                         createdAt:
                           type: string
                           format: date-time
                       required:
                         - id
                         - direct_link
                         - name
                         - email
                         - available
                         - availability_status
                         - time_zone
                         - language
                         - wrap_up_time
                         - created_at
                   meta:
                     type: object
                     properties:
                       count:
                         type:
                           - number
                           - 'null'
                       total:
                         type:
                           - number
                           - 'null'
                       currentPage:
                         type:
                           - number
                           - 'null'
                       perPage:
                         type:
                           - number
                           - 'null'
                       nextPageLink:
                         anyOf:
                           - type: string
                           - type: 'null'
                       previousPageLink:
                         anyOf:
                           - type: string
                           - type: 'null'
                     required:
                       - count
                       - total
                       - current_page
                       - per_page
                       - next_page_link
                       - previous_page_link
              examples:
                example-1:
                  value:
                     users:
                       - id: -89270352.46227905
                         name: Ut
                         email: consequat fugiat dolor ut
                         available: null
                         language: null
                         wrapUpTime: 77299649.46462867
                         timeZone: esse ea et nostrud elit
                         createdAt: '2018-10-13T10:10:16.0Z'
                         directLink: null
                         availabilityStatus: esse ex
                     meta:
                       count: -84061575.0836465
                       total: null
                       previousPageLink: in veniam mollit fugiat
                       currentPage: -57299537.317396656
                       perPage: null
                       nextPageLink: ut
      requestBody: 
        content:
          application/json:
            schema:
              type: object
              properties:
                 from:
                   type: string
                 perPage:
                   type: number
                 nextPageLink:
                   type: string
            examples:
              example-1:
                value:
                     from: dolore fugiat
                     perPage: -62917728.630286396
                     nextPageLink: aliqua
      operationId: list-users
      parameters:
      - name: x-vessel-access-token
        in: header
        description: Access Token
        required: true
        schema:
          type: string
    parameters: []
  /api/actions/aircall/users/find:
    post:
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                   user:
                     type: object
                     properties:
                       id:
                         type: number
                       directLink:
                         type:
                           - string
                           - 'null'
                       name:
                         type: string
                       email:
                         type:
                           - string
                           - 'null'
                       available:
                         type:
                           - boolean
                           - 'null'
                       availabilityStatus:
                         type:
                           - string
                           - 'null'
                       timeZone:
                         type:
                           - string
                           - 'null'
                       language:
                         type:
                           - string
                           - 'null'
                       wrapUpTime:
                         type:
                           - number
                           - 'null'
                       createdAt:
                         type: string
                         format: date-time
                     required:
                       - id
                       - direct_link
                       - name
                       - email
                       - available
                       - availability_status
                       - time_zone
                       - language
                       - wrap_up_time
                       - created_at
              examples:
                example-1:
                  value:
                     user:
                       id: -55279769.4802079
                       name: ipsum nulla sit qui
                       email: null
                       available: null
                       language: null
                       availabilityStatus: Excepteur eu minim irure cillum
                       directLink: nostrud do exercitation in in
                       wrapUpTime: null
                       timeZone: ullamco ut ex
                       createdAt: '1961-04-23T09:09:34.0Z'
      requestBody: 
        content:
          application/json:
            schema:
              type: object
              properties:
                 id:
                   type:
                     - number
                     - string
            examples:
              example-1:
                value:
                     id: dolore
      operationId: find-user
      parameters:
      - name: x-vessel-access-token
        in: header
        description: Access Token
        required: true
        schema:
          type: string
    parameters: []
  /api/actions/aircall/users/start-call:
    post:
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                   {}
              examples:
                example-1:
                  value:
                     {}
      requestBody: 
        content:
          application/json:
            schema:
              type: object
              properties:
                 id:
                   type:
                     - number
                     - string
                 numberId:
                   type:
                     - number
                     - string
                 to:
                   type: string
            examples:
              example-1:
                value:
                     id: consequat
                     numberId: enim
                     to: labore id ut eu officia
      operationId: start-user-call
      parameters:
      - name: x-vessel-access-token
        in: header
        description: Access Token
        required: true
        schema:
          type: string
    parameters: []
  /api/actions/aircall/contacts/create:
    post:
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                   contact:
                     type: object
                     properties:
                       id:
                         type: number
                       directLink:
                         type:
                           - string
                           - 'null'
                       firstName:
                         type:
                           - string
                           - 'null'
                       lastName:
                         type:
                           - string
                           - 'null'
                       companyName:
                         type:
                           - string
                           - 'null'
                       information:
                         type:
                           - string
                           - 'null'
                       isShared:
                         type:
                           - boolean
                           - 'null'
                       createdAt:
                         type: number
                       updatedAt:
                         type: number
                       emails:
                         anyOf:
                           - type: array
                             items:
                               type: object
                               properties:
                                 id:
                                   type: number
                                 label:
                                   type:
                                     - string
                                     - 'null'
                                 value:
                                   type: string
                               required:
                                 - id
                                 - label
                                 - value
                           - type: 'null'
                       phoneNumbers:
                         anyOf:
                           - type: array
                             items:
                               type: object
                               properties:
                                 id:
                                   type: number
                                 label:
                                   type:
                                     - string
                                     - 'null'
                                 value:
                                   type: string
                               required:
                                 - id
                                 - label
                                 - value
                           - type: 'null'
                     required:
                       - id
                       - direct_link
                       - first_name
                       - last_name
                       - company_name
                       - information
                       - is_shared
                       - created_at
                       - updated_at
                       - emails
                       - phone_numbers
              examples:
                example-1:
                  value:
                     contact:
                       id: -4310924.4277355075
                       information: consectetur
                       emails:
                         - id: -64046885.245729744
                           label: null
                           value: commodo
                           aute66: 49947290
                           velit_40: false
                       phoneNumbers: null
                       directLink: null
                       isShared: null
                       updatedAt: 2237749.0678489953
                       createdAt: 51588572.78623724
                       firstName: irure aliqua consequat
                       lastName: null
                       companyName: null
      requestBody: 
        content:
          application/json:
            schema:
              type: object
              properties:
                 firstName:
                   type: string
                 lastName:
                   type: string
                 companyName:
                   type: string
                 information:
                   type: string
                 emails:
                   type: array
                   items:
                     type: object
                     properties:
                       label:
                         type: string
                       value:
                         type: string
                     required:
                       - value
                 phoneNumbers:
                   type: array
                   items:
                     type: object
                     properties:
                       label:
                         type: string
                       value:
                         type: string
                     required:
                       - value
            examples:
              example-1:
                value:
                     firstName: adipisicing sed dolor Lorem officia
                     lastName: Lorem
                     companyName: laboris nulla ex mollit
                     information: tempor
                     emails:
                       - value: occaecat eu sint
                         label: non occaecat incididunt
                     phoneNumbers:
                       - value: ex exercitation
                         label: in
      operationId: create-contact
      parameters:
      - name: x-vessel-access-token
        in: header
        description: Access Token
        required: true
        schema:
          type: string
    parameters: []
  /api/actions/aircall/contacts/find:
    post:
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                   contact:
                     type: object
                     properties:
                       id:
                         type: number
                       directLink:
                         type:
                           - string
                           - 'null'
                       firstName:
                         type:
                           - string
                           - 'null'
                       lastName:
                         type:
                           - string
                           - 'null'
                       companyName:
                         type:
                           - string
                           - 'null'
                       information:
                         type:
                           - string
                           - 'null'
                       isShared:
                         type:
                           - boolean
                           - 'null'
                       createdAt:
                         type: number
                       updatedAt:
                         type: number
                       emails:
                         anyOf:
                           - type: array
                             items:
                               type: object
                               properties:
                                 id:
                                   type: number
                                 label:
                                   type:
                                     - string
                                     - 'null'
                                 value:
                                   type: string
                               required:
                                 - id
                                 - label
                                 - value
                           - type: 'null'
                       phoneNumbers:
                         anyOf:
                           - type: array
                             items:
                               type: object
                               properties:
                                 id:
                                   type: number
                                 label:
                                   type:
                                     - string
                                     - 'null'
                                 value:
                                   type: string
                               required:
                                 - id
                                 - label
                                 - value
                           - type: 'null'
                     required:
                       - id
                       - direct_link
                       - first_name
                       - last_name
                       - company_name
                       - information
                       - is_shared
                       - created_at
                       - updated_at
                       - emails
                       - phone_numbers
              examples:
                example-1:
                  value:
                     contact:
                       id: 99345447.36392054
                       information: anim magna
                       emails: null
                       directLink: null
                       firstName: null
                       lastName: esse dolor elit
                       phoneNumbers: null
                       updatedAt: 68223509.77328452
                       createdAt: 80664193.9649893
                       isShared: false
                       companyName: Lorem et
      requestBody: 
        content:
          application/json:
            schema:
              type: object
              properties:
                 id:
                   type:
                     - number
                     - string
            examples:
              example-1:
                value:
                     id: -36096015.86504509
      operationId: find-contact
      parameters:
      - name: x-vessel-access-token
        in: header
        description: Access Token
        required: true
        schema:
          type: string
    parameters: []
  /api/actions/aircall/contacts/list:
    post:
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                   contacts:
                     type: array
                     items:
                       type: object
                       properties:
                         id:
                           type: number
                         directLink:
                           type:
                             - string
                             - 'null'
                         firstName:
                           type:
                             - string
                             - 'null'
                         lastName:
                           type:
                             - string
                             - 'null'
                         companyName:
                           type:
                             - string
                             - 'null'
                         information:
                           type:
                             - string
                             - 'null'
                         isShared:
                           type:
                             - boolean
                             - 'null'
                         createdAt:
                           type: number
                         updatedAt:
                           type: number
                         emails:
                           anyOf:
                             - type: array
                               items:
                                 type: object
                                 properties:
                                   id:
                                     type: number
                                   label:
                                     type:
                                       - string
                                       - 'null'
                                   value:
                                     type: string
                                 required:
                                   - id
                                   - label
                                   - value
                             - type: 'null'
                         phoneNumbers:
                           anyOf:
                             - type: array
                               items:
                                 type: object
                                 properties:
                                   id:
                                     type: number
                                   label:
                                     type:
                                       - string
                                       - 'null'
                                   value:
                                     type: string
                                 required:
                                   - id
                                   - label
                                   - value
                             - type: 'null'
                       required:
                         - id
                         - direct_link
                         - first_name
                         - last_name
                         - company_name
                         - information
                         - is_shared
                         - created_at
                         - updated_at
                         - emails
                         - phone_numbers
                   meta:
                     type: object
                     properties:
                       count:
                         type:
                           - number
                           - 'null'
                       total:
                         type:
                           - number
                           - 'null'
                       currentPage:
                         type:
                           - number
                           - 'null'
                       perPage:
                         type:
                           - number
                           - 'null'
                       nextPageLink:
                         anyOf:
                           - type: string
                           - type: 'null'
                       previousPageLink:
                         anyOf:
                           - type: string
                           - type: 'null'
                     required:
                       - count
                       - total
                       - current_page
                       - per_page
                       - next_page_link
                       - previous_page_link
              examples:
                example-1:
                  value:
                     contacts:
                       - id: 57434312.2139124
                         information: null
                         emails:
                           - id: -30375498.88328086
                             label: null
                             value: proident in occaecat quis cillum
                             cupidatat__: false
                             Ut6b4: est laboris
                             irure__: est mollit
                             dolor_28: veniam exercitation Excepteur
                         companyName: Ut eiusmod pariatur dolore
                         isShared: true
                         phoneNumbers:
                           - id: 27001835.037813306
                             label: Excepteur ea cillum amet mollit
                             value: id ipsum sit est anim
                         updatedAt: 41043219.67213011
                         firstName: null
                         directLink: aliqua
                         lastName: null
                         createdAt: 29886562.004416466
                     meta:
                       count: 79154511.47519681
                       total: null
                       nextPageLink: velit dolor commodo
                       previousPageLink: nisi aliqua
                       perPage: null
                       currentPage: null
      requestBody: 
        content:
          application/json:
            schema:
              type: object
              properties:
                 from:
                   type: string
                 perPage:
                   type: number
                 nextPageLink:
                   type: string
            examples:
              example-1:
                value:
                     from: ad
                     perPage: -7016389.1691586375
                     nextPageLink: sed adipisicing ad culpa
      operationId: list-contacts
      parameters:
      - name: x-vessel-access-token
        in: header
        description: Access Token
        required: true
        schema:
          type: string
    parameters: []
  /api/actions/aircall/contacts/update:
    post:
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                   contact:
                     type: object
                     properties:
                       id:
                         type: number
                       directLink:
                         type:
                           - string
                           - 'null'
                       firstName:
                         type:
                           - string
                           - 'null'
                       lastName:
                         type:
                           - string
                           - 'null'
                       companyName:
                         type:
                           - string
                           - 'null'
                       information:
                         type:
                           - string
                           - 'null'
                       isShared:
                         type:
                           - boolean
                           - 'null'
                       createdAt:
                         type: number
                       updatedAt:
                         type: number
                       emails:
                         anyOf:
                           - type: array
                             items:
                               type: object
                               properties:
                                 id:
                                   type: number
                                 label:
                                   type:
                                     - string
                                     - 'null'
                                 value:
                                   type: string
                               required:
                                 - id
                                 - label
                                 - value
                           - type: 'null'
                       phoneNumbers:
                         anyOf:
                           - type: array
                             items:
                               type: object
                               properties:
                                 id:
                                   type: number
                                 label:
                                   type:
                                     - string
                                     - 'null'
                                 value:
                                   type: string
                               required:
                                 - id
                                 - label
                                 - value
                           - type: 'null'
                     required:
                       - id
                       - direct_link
                       - first_name
                       - last_name
                       - company_name
                       - information
                       - is_shared
                       - created_at
                       - updated_at
                       - emails
                       - phone_numbers
              examples:
                example-1:
                  value:
                     contact:
                       id: -89158428.57605143
                       information: id
                       emails: null
                       createdAt: -74604828.86311862
                       updatedAt: 99775715.99888128
                       directLink: ad
                       companyName: magna dolor
                       isShared: null
                       phoneNumbers:
                         - id: -20111456.690393314
                           label: null
                           value: Excepteur Ut nisi
                       firstName: null
                       lastName: null
      requestBody: 
        content:
          application/json:
            schema:
              type: object
              properties:
                 id:
                   type:
                     - number
                     - string
                 firstName:
                   type: string
                 lastName:
                   type: string
                 companyName:
                   type: string
                 information:
                   type: string
            examples:
              example-1:
                value:
                     id: -57164264.11440763
                     firstName: proident
                     lastName: anim
                     companyName: exercitation
                     information: et
      operationId: update-contact
      parameters:
      - name: x-vessel-access-token
        in: header
        description: Access Token
        required: true
        schema:
          type: string
    parameters: []
  /api/actions/aircall/calls/find:
    post:
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                   call:
                     type: object
                     properties:
                       id:
                         type: number
                       directLink:
                         type:
                           - string
                           - 'null'
                       direction:
                         anyOf:
                           - type: string
                             enum:
                               - inbound
                               - outbound
                           - type: 'null'
                       status:
                         type:
                           - string
                           - 'null'
                 

# --- truncated at 32 KB (57 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vessel/refs/heads/main/openapi/vessel-aircall-actions-openapi.yml