Tenfold Calls API

Originate, query, control, and update calls

OpenAPI Specification

tenfold-calls-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Tenfold Analytics Calls API
  version: '2.0'
  description: Tenfold (a LivePerson company) is a computer-telephony integration (CTI) platform — the "Customer Experience Cloud" — that connects phone systems and contact-center platforms with CRM and support systems. The REST API lets you originate and query calls, control call recording, manage users and organizations, read and write CRM records, pull call analytics and transcripts, and manage contact lists. This specification was generated by the API Evangelist enrichment pipeline from the public documented endpoint reference at https://apidocs.tenfold.com/ — paths, methods, and summaries are transcribed from the docs; request/response schemas are intentionally generic (the provider does not publish an OpenAPI document).
  contact:
    name: Tenfold Support
    url: https://docs.tenfold.com/
  x-api-evangelist:
    generated: true
    source: https://apidocs.tenfold.com/
servers:
- url: https://api.tenfold.com
  description: Production
- url: https://api-canary.tenfold.com
  description: Beta / canary (subject to change without backward compatibility)
security:
- bearerJWT: []
- oauth2Password: []
tags:
- name: Calls
  description: Originate, query, control, and update calls
paths:
  /api/v1/calls/originate:
    post:
      tags:
      - Calls
      operationId: originateCallV1
      summary: Initiate an outbound call (v1)
      responses:
        '200':
          description: Call originated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /api/v1/calls:
    get:
      tags:
      - Calls
      operationId: listCallsV1
      summary: List all calls, paginated (v1)
      parameters:
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          description: A page of calls
        '401':
          $ref: '#/components/responses/Unauthorized'
  /api/v1/calls/{callId}:
    get:
      tags:
      - Calls
      operationId: getCallV1
      summary: Retrieve a specific call (v1)
      parameters:
      - name: callId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Call details
        '404':
          $ref: '#/components/responses/NotFound'
  /api/v1/calls/{callId}/startRecording:
    post:
      tags:
      - Calls
      operationId: startRecordingV1
      summary: Enable call recording (v1)
      parameters:
      - name: callId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Recording started
        '404':
          $ref: '#/components/responses/NotFound'
  /api/v1/calls/{callId}/stopRecording:
    post:
      tags:
      - Calls
      operationId: stopRecordingV1
      summary: Disable call recording (v1)
      parameters:
      - name: callId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Recording stopped
        '404':
          $ref: '#/components/responses/NotFound'
  /api/v1/calls/{callId}/hangup:
    post:
      tags:
      - Calls
      operationId: hangupCallV1
      summary: Terminate an active call (v1)
      parameters:
      - name: callId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Call terminated
        '404':
          $ref: '#/components/responses/NotFound'
  /v2/calls:
    get:
      tags:
      - Calls
      operationId: listCalls
      summary: List calls with enhanced filtering (v2)
      parameters:
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          description: A page of calls
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v2/calls/{callId}:
    get:
      tags:
      - Calls
      operationId: getCall
      summary: Get call details (v2)
      parameters:
      - name: callId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Call details
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      tags:
      - Calls
      operationId: updateCall
      summary: Update a call (notes, CRM record)
      parameters:
      - name: callId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Call updated
        '404':
          $ref: '#/components/responses/NotFound'
  /v2/calls/{callId}/set-matching-record:
    put:
      tags:
      - Calls
      operationId: setMatchingRecord
      summary: Link a CRM record to a call
      parameters:
      - name: callId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Record linked
        '404':
          $ref: '#/components/responses/NotFound'
  /v2/calls/{callId}/transfer-history:
    get:
      tags:
      - Calls
      operationId: getCallTransferHistory
      summary: Retrieve call transfer history
      parameters:
      - name: callId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Transfer history
        '404':
          $ref: '#/components/responses/NotFound'
components:
  responses:
    NotFound:
      description: Not Found – The specified path or resource does not exist
    BadRequest:
      description: Bad Request – Your request failed
    Unauthorized:
      description: Unauthorized – Your OAuth/JWT token is missing or incorrect
  parameters:
    page:
      name: page
      in: query
      required: false
      description: Zero-based page index.
      schema:
        type: integer
        default: 0
    pageSize:
      name: pageSize
      in: query
      required: false
      description: Page size (v2 max 500).
      schema:
        type: integer
        default: 50
        maximum: 500
  securitySchemes:
    oauth2Password:
      type: oauth2
      description: OAuth 2.0 Resource Owner Password Credentials grant (v1/v2)
      flows:
        password:
          tokenUrl: https://api.tenfold.com/v2/oauth/token
          scopes: {}
    oauth2ClientCredentials:
      type: oauth2
      description: OAuth 2.0 Client Credentials grant
      flows:
        clientCredentials:
          tokenUrl: https://api.tenfold.com/v2/oauth/token
          scopes: {}
    bearerJWT:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'JWT access token obtained from /v2/users/login, presented as "Authorization: Bearer JWT <token>".'