Forethought Conversations API

Start and continue Solve conversations.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

forethought-conversations-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Forethought Solve Conversations API
  description: 'The Forethought Solve API is a headless interface to the Solve generative AI

    customer support agent. Embed Solve into any application by starting a

    conversation with a free-form customer query, then continuing the

    conversation with additional turns or context variables. The metadata

    endpoint returns the workspace''s configured context variables so clients

    can pass the correct values when triggering Autoflows and workflows.


    The Solve API is part of Forethought''s Headless channel and is available on

    the Enterprise plan. SupportGPT, Forethought''s generative AI engine, powers

    response generation, Autoflows, knowledge-base gap detection, and

    article-creation behind the API.

    '
  version: '2025-11-01'
  contact:
    name: Forethought Support
    url: https://support.forethought.ai
  x-logo:
    url: https://forethought.ai/favicon.ico
servers:
- url: https://app.forethought.ai
  description: Production Server
security:
- BearerAuth: []
tags:
- name: Conversations
  description: Start and continue Solve conversations.
paths:
  /solve/api/v1/conversation:
    post:
      summary: Start A Solve Conversation
      description: 'Start a new Solve conversation with a free-form customer query.

        Returns a `conversation_id` that subsequent turns must reference and the

        first assistant response. Optionally accepts a map of context variables

        whose IDs are discoverable via the `/metadata` endpoint.

        '
      operationId: startConversation
      tags:
      - Conversations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StartConversationRequest'
      responses:
        '200':
          description: Conversation started successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConversationResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /solve/api/v1/conversation/{conversation_id}:
    put:
      summary: Continue A Solve Conversation
      description: 'Continue an existing Solve conversation by sending an additional query

        and/or updated context variables. The Solve agent returns the next

        assistant response, surface workflow state, and any escalation

        instructions.

        '
      operationId: continueConversation
      tags:
      - Conversations
      parameters:
      - name: conversation_id
        in: path
        required: true
        schema:
          type: string
        description: The conversation_id returned by the initial start call.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContinueConversationRequest'
      responses:
        '200':
          description: Conversation continued successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConversationResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: Conversation not found.
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  schemas:
    ConversationResponse:
      type: object
      properties:
        conversation_id:
          type: string
        response:
          type: string
          description: The Solve agent response text.
        is_solved:
          type: boolean
        should_escalate:
          type: boolean
        workflow_id:
          type: string
        intent:
          type: string
    ContinueConversationRequest:
      type: object
      properties:
        query:
          type: string
          description: The customer's next free-form query.
        context_variables:
          type: object
          additionalProperties: true
          description: Updated context variables for the conversation.
    StartConversationRequest:
      type: object
      required:
      - query
      properties:
        query:
          type: string
          description: The customer's free-form query.
        context_variables:
          type: object
          additionalProperties: true
          description: Map of context_variable_id to value.
        channel:
          type: string
          description: Origin channel (chat, email, voice, slack, headless).
        user_id:
          type: string
          description: Stable identifier for the end user.
  responses:
    RateLimited:
      description: Request rate limit exceeded.
    Unauthorized:
      description: Missing or invalid bearer token.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Solve API token