Qualified Bot Conversations API

(Legacy) A visitor's conversations with a bot, in a self-contained shape. Superseded by the Conversations and Messages endpoints, which are recommended for new integrations, and remains fully supported for existing ones.

Operations 1

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /v1/bot_conversations List legacy bot conversation transcripts · List bot conversations #
Ask an LLM
“Where can I still pull chatbot conversation transcripts through the older v1 reporting endpoint?”
“Does the legacy bot conversations feed include the meetings and AI goals from each chat?”
Tell an agent
Pull the latest bot conversations from the legacy v1 bot report.
Get the next {limit} legacy bot conversations after cursor {starting_after}.

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/qualified-com:qualified-com-bot-conversations-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

qualified-com-bot-conversations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Qualified Enterprise Bot Conversations API
  version: '2.0'
  description: '# Overview


    _Last updated: August 9, 2026_


    The Qualified Enterprise API connects your Qualified data to your warehouse, CDP, and downstream systems.'
servers:
- url: https://api.qualified.com
  description: Production
security:
- bearerToken: []
tags:
- name: Bot Conversations
  description: (Legacy) A visitor's conversations with a bot, in a self-contained shape. Superseded by the Conversations and Messages endpoints, which are recommended for new integrations, and remains fully supported for existing ones.
paths:
  /v1/bot_conversations:
    get:
      summary: List bot conversations
      operationId: listBotConversations
      description: '> **Legacy.** Superseded by the Conversations, Messages, and Meetings endpoints, which cover everything here and more in a richer, more consistent form and are recommended for new integrations. This endpoint remains fully supported for existing integrations.


        Returns a visitor''s bot conversations, each with its nested visitor, bot, messages, meetings, and AI goals. A bot conversation becomes available once the visitor''s website session ends. Requires the reporting API to be enabled for the team.


        Unlike the rest of this API, responses are `snake_case` and page with `starting_after`/`limit` plus a `meta` block (not the cursor `pageInfo` used elsewhere).


        **Scope:** `legacy:view`'
      tags:
      - Bot Conversations
      parameters:
      - name: starting_after
        in: query
        description: Opaque cursor. Pass the `meta.end_cursor` from the previous page. Omit for the first page.
        schema:
          type: string
      - name: limit
        in: query
        description: Maximum number of conversations to return. Defaults to the maximum.
        schema:
          type: integer
          default: 10000
          maximum: 10000
      responses:
        '200':
          description: A page of bot conversations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BotConversationResponse'
        '400':
          $ref: '#/components/responses/LegacyBadRequest'
        '401':
          description: Missing or invalid token, the API is not enabled for the team, or the token lacks `legacy:view`. Unlike the rest of this API, an insufficient scope here returns 401 rather than 403.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CodeErrorResponse'
              example:
                code: invalid_token
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    CodeErrorResponse:
      type: object
      properties:
        code:
          type: string
          description: Machine-readable error code.
        message:
          type: string
          description: Human-readable error message.
    BotConversationResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/BotConversation'
        meta:
          $ref: '#/components/schemas/LegacyPageMeta'
    LegacyBot:
      type: object
      description: A bot, as returned by the legacy reporting endpoints.
      properties:
        id:
          type: string
          description: Encoded bot id.
        name:
          type: string
          description: Bot name.
    LegacyAiGoal:
      type: object
      description: An AI goal within a legacy bot conversation.
      properties:
        id:
          type: string
          description: Encoded AI goal id.
        name:
          type: string
          description: AI goal name.
        completed:
          type: boolean
          description: True if the goal was completed.
    LegacyUser:
      type: object
      description: A rep, as returned by the legacy reporting endpoints.
      properties:
        id:
          type: string
          description: Encoded user id.
        email:
          type: string
          description: Rep email.
        name:
          type: string
          description: Rep name.
    LegacyVisitor:
      type: object
      description: A visitor, as returned by the legacy reporting endpoints.
      properties:
        id:
          type: string
          description: Encoded visitor id.
        email:
          type:
          - string
          - 'null'
          description: Visitor email, or null if unknown.
        salesforce_lead_id:
          type:
          - string
          - 'null'
          description: Salesforce lead id, returned verbatim (not encoded).
        salesforce_contact_id:
          type:
          - string
          - 'null'
          description: Salesforce contact id, returned verbatim (not encoded).
        pardot_prospect_id:
          type:
          - string
          - 'null'
          description: Pardot prospect id, returned verbatim (not encoded).
        marketo_lead_id:
          type:
          - string
          - 'null'
          description: Marketo lead id, returned verbatim (not encoded).
        hubspot_contact_id:
          type:
          - string
          - 'null'
          description: HubSpot contact id, returned verbatim (not encoded).
        eloqua_contact_id:
          type:
          - string
          - 'null'
          description: Eloqua contact id, returned verbatim (not encoded).
    LegacyPageMeta:
      type: object
      description: Pagination metadata for the legacy reporting endpoints.
      properties:
        has_more:
          type: boolean
          description: True if more conversations can be fetched after this page.
        end_cursor:
          type: string
          description: Object id of the last conversation in this page. Pass as `starting_after` to fetch the next page.
    LegacyMeeting:
      type: object
      description: A meeting within a legacy bot or rep conversation.
      properties:
        offer_sent_at:
          type: string
          format: date-time
          description: When the meeting offer was sent.
        ai:
          type: boolean
          description: True if the meeting was offered by AI.
        booked_user:
          type:
          - object
          - 'null'
          allOf:
          - $ref: '#/components/schemas/LegacyUser'
          description: The rep the meeting was booked with, or null if no meeting was booked.
    BotConversation:
      type: object
      description: A visitor's conversation with a bot (legacy reporting).
      properties:
        id:
          type: string
          description: Encoded bot conversation id.
        started_at:
          type: string
          format: date-time
          description: When the bot conversation started.
        ai_started_at:
          type: string
          format: date-time
          description: When the AI portion of the conversation started.
        ai_captured_email:
          type: boolean
          description: True if the AI captured an email address during the conversation.
        visitor:
          $ref: '#/components/schemas/LegacyVisitor'
        bot:
          $ref: '#/components/schemas/LegacyBot'
        rep_conversation_id:
          type:
          - string
          - 'null'
          description: Encoded id of the rep conversation that resulted from this bot conversation, or null.
        salesforce_lead_captured_by_bot:
          type: boolean
          description: True if the bot created a Salesforce lead for the visitor.
        pardot_prospect_captured_by_bot:
          type: boolean
          description: True if the bot created a Pardot prospect for the visitor.
        marketo_lead_captured_by_bot:
          type: boolean
          description: True if the bot created a Marketo lead for the visitor.
        eloqua_contact_captured_by_bot:
          type: boolean
          description: True if the bot created an Eloqua contact for the visitor.
        meetings:
          type: array
          items:
            $ref: '#/components/schemas/LegacyMeeting'
        messages:
          type: array
          items:
            $ref: '#/components/schemas/LegacyMessage'
        ai_goals:
          type: array
          items:
            $ref: '#/components/schemas/LegacyAiGoal'
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Human-readable error message.
    LegacyMessage:
      type: object
      description: A message within a legacy bot or rep conversation.
      properties:
        sent_at:
          type: string
          format: date-time
          description: When the message was sent.
        ai:
          type: boolean
          description: True if the message was sent by AI.
        visitor_id:
          type:
          - string
          - 'null'
          description: Encoded id of the visitor who sent it, or null.
        bot_id:
          type:
          - string
          - 'null'
          description: Encoded id of the bot that sent it, or null.
        user_id:
          type:
          - string
          - 'null'
          description: Encoded id of the rep who sent it, or null.
        text:
          type: string
          description: Message text.
  responses:
    LegacyBadRequest:
      description: Invalid `limit` or `starting_after`. The legacy endpoints return a `code`/`message` body rather than the `error` body used elsewhere.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CodeErrorResponse'
          example:
            code: invalid_limit
            message: ''
    InternalServerError:
      description: Unexpected server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: Internal server error
  securitySchemes:
    bearerToken:
      type: http
      scheme: bearer
      bearerFormat: Token
x-tagGroups:
- name: Write APIs
  tags:
  - Leads
  - Companies
  - Bulk
- name: Activity APIs
  tags:
  - Sessions
  - Conversations
  - Messages
  - Meetings
  - Emails
- name: Utility APIs
  tags:
  - Cancel Meeting
  - GDPR
- name: Legacy Reporting API
  tags:
  - Bot Conversations
  - Rep Conversations