8x8

8x8 Transcript Summaries API

Retrieve transcript summaries for interactions

Operations 1

GET /v1/public/tenants/{tenantId}/transcript-summaries Get transcript summaries #

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/8x8-transcript-summaries-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

8x8-transcript-summaries-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Customer 360 Transcript Summaries API
  description: 'The Customer 360 API provides unified access to customer interaction history and insights across all 8x8 contact center channels.


    Given a customer identity (email, phone number, contact ID, or account ID), the API returns a list of interactions along with aggregated sentiment and topic insights.


    ## Authentication


    All endpoints require an 8x8 API key obtained from the 8x8 Admin Console. Pass the key in the `x-api-key` request header:


    ```

    x-api-key: <your-api-key>

    ```


    Refer to [How to get API Keys](/analytics/docs/how-to-get-api-keys) for instructions on creating an API key.


    ## Regions


    The API is available in four regions. Use the base URL corresponding to the region where your tenant is provisioned:


    | Region | Base URL |

    |---|---|

    | Phoenix (US) | `https://api.8x8.com/cidp-customer-360/us` |

    | London (UK) | `https://api.8x8.com/cidp-customer-360/uk` |

    | Toronto (Canada) | `https://api.8x8.com/cidp-customer-360/ca` |

    | Sydney (Australia) | `https://api.8x8.com/cidp-customer-360/ap` |


    ## Search Strategies


    The API supports four mutually exclusive search strategies. You must provide exactly one identity field per request:


    | Strategy | Required | Optional | Forbidden |

    |---|---|---|---|

    | Contact ID | `contactId`, `crmId` | — | — |

    | Account ID | `accountId` | `crmId` | — |

    | Email | `email` | — | `crmId` |

    | Phone Number | `phoneNumber` | — | `crmId` |


    Only the native CRM is supported. Set `crmId` to `native`.


    ## Time Range


    If `startTime` and `endTime` are omitted, a default window of 1 year ending at the current time is applied. Times must be in ISO-8601 format with timezone (e.g. `2025-08-15T10:30:00-05:00`).


    ## Response Fields


    ### interactions

    A list of individual interactions matching the search criteria. Each interaction includes:

    - `interactionId` — Unique identifier for the interaction

    - `mediaType` — Channel type: `PHONE`, `EMAIL`, `CHAT`, or `VOICEMAIL`

    - `direction` — `INBOUND` or `OUTBOUND`

    - `productType` — 8x8 product that handled the interaction: `CC` (Contact Center), `UC` (Unified Communications), or `ENGAGE`

    - `startedAt` / `endedAt` — Unix epoch milliseconds

    - `sentiment` — Overall sentiment: `POSITIVE`, `NEUTRAL`, or `NEGATIVE`

    - `topics` — List of topics detected in the interaction, each with a name and match count

    - `wrapUpCodes` — Agent wrap-up codes applied at the end of the interaction

    - `queueName` — Name of the queue that handled the interaction

    - `outcomeLabel` — Outcome label assigned to the interaction

    - `interactionLabels` — Labels applied to the interaction


    ### insights

    Aggregated analysis across all returned interactions:

    - `aggregatedSentiments` — Overall customer, agent, and combined sentiment across all interactions

    - `aggregatedTopics` — Topic frequency breakdown showing which topics appeared most often and in what percentage of interactions


    '
  version: '1'
servers:
- url: https://api.8x8.com/cidp-customer-360/us
  description: Phoenix (US)
- url: https://api.8x8.com/cidp-customer-360/uk
  description: London (UK)
- url: https://api.8x8.com/cidp-customer-360/ca
  description: Toronto (Canada)
- url: https://api.8x8.com/cidp-customer-360/ap
  description: Sydney (Australia)
tags:
- name: transcript-summaries
  description: Retrieve transcript summaries for interactions
paths:
  /v1/public/tenants/{tenantId}/transcript-summaries:
    get:
      tags:
      - transcript-summaries
      summary: Get transcript summaries
      description: 'Retrieves transcript summaries for one or more interaction IDs.


        Pass one or more `interactionId` query parameters. The API returns successfully retrieved summaries and lists any IDs that could not be retrieved as partial failures.


        A maximum of 50 interaction IDs can be provided per request.'
      operationId: getTranscriptSummaries
      security:
      - ApiKeyAuth: []
      parameters:
      - name: tenantId
        in: path
        required: true
        description: The tenant identifier. Must belong to the authenticated customer.
        schema:
          type: string
        example: acvcc1652172111112801
      - name: interactionId
        in: query
        required: true
        description: One or more interaction IDs. Repeat the parameter for batch retrieval (e.g. ?interactionId=id1&interactionId=id2).
        schema:
          type: array
          items:
            type: string
        style: form
        explode: true
        example: int-abc123
      responses:
        '200':
          description: Successfully retrieved transcript summaries. Partial failures are included in the response body.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TranscriptSummariesResponse'
              example:
                summaries:
                - interactionId: int-abc123
                  summaryObjectId: obj-xyz789
                  content:
                    id: summary-001
                    result: Customer called about a billing discrepancy. Agent verified the charge and issued a credit. Customer confirmed satisfaction.
                    status: success
                    type: summary
                    duration: 185.5
                  metadata:
                    createdAt: '2025-08-15T14:30:00'
                    sizeBytes: 512
                partialFailures:
                - interactionId: int-def456
                  reason: Summary not found
        '400':
          description: Bad request — missing or invalid interactionId parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
              example:
                status: 400
                title: Bad Request
                detail: Invalid request
        '401':
          description: Unauthorized — missing or invalid API key
        '403':
          description: Forbidden — tenant does not belong to the authenticated customer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail403'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail500'
components:
  schemas:
    TranscriptSummariesResponse:
      type: object
      properties:
        summaries:
          type: array
          description: Successfully retrieved transcript summaries
          items:
            $ref: '#/components/schemas/TranscriptSummary'
        partialFailures:
          type: array
          description: Interaction IDs for which summaries could not be retrieved
          items:
            $ref: '#/components/schemas/PartialFailure'
    SummaryMetadata:
      type: object
      properties:
        createdAt:
          type: string
          description: Timestamp when the summary was created
          example: '2025-08-15T14:30:00'
        sizeBytes:
          type: integer
          format: int64
          description: Size of the summary content in bytes
          example: 512
    TranscriptSummary:
      type: object
      properties:
        interactionId:
          type: string
          description: Interaction identifier
          example: int-abc123
        summaryObjectId:
          type: string
          description: Unique identifier of the summary object
          example: obj-xyz789
        content:
          $ref: '#/components/schemas/SummaryContent'
        metadata:
          $ref: '#/components/schemas/SummaryMetadata'
    PartialFailure:
      type: object
      properties:
        interactionId:
          type: string
          description: Interaction identifier for which the summary could not be retrieved
          example: int-def456
        reason:
          type: string
          description: 'Reason the summary could not be retrieved. Possible values: ''Summary not found'', ''Summary not available''.'
          example: Summary not found
    ProblemDetail:
      type: object
      properties:
        status:
          type: integer
          format: int32
          description: HTTP status code
          example: 400
        title:
          type: string
          description: Short description of the error class
          example: Bad Request
        detail:
          type: string
          description: Human-readable explanation of the error
          example: Invalid search criteria
    SummaryContent:
      type: object
      properties:
        id:
          type: string
          description: Summary content identifier
          example: summary-001
        result:
          type: string
          description: The transcript summary text
          example: Customer called about a billing discrepancy. Agent verified the charge and issued a credit.
        status:
          type: string
          description: Processing status of the summary
          example: success
        type:
          type: string
          description: Content type
          example: summary
        duration:
          type: number
          format: double
          description: Duration of the interaction in seconds
          example: 185.5
    ProblemDetail500:
      type: object
      properties:
        status:
          type: integer
          format: int32
          description: HTTP status code
          example: 500
        title:
          type: string
          description: Short description of the error class
          example: Internal Server Error
        detail:
          type: string
          description: Human-readable explanation of the error
          example: Internal server error
    ProblemDetail403:
      type: object
      properties:
        status:
          type: integer
          format: int32
          description: HTTP status code
          example: 403
        title:
          type: string
          description: Short description of the error class
          example: Forbidden
        detail:
          type: string
          description: Human-readable explanation of the error
          example: Forbidden
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: 8x8 API key obtained from the 8x8 Admin Console.