> ## Documentation Index
> Fetch the complete documentation index at: https://docs.firetone.com.au/llms.txt
> Use this file to discover all available pages before exploring further.

# What the virtual agent made of a session

> Served by the AI module. When a virtual agent's extension was a default member and sat in this session: the minutes it wrote when the room closed, the notes it took as things were decided, who said what (each caller turn attributed to who was speaking, approximate), how many of its replies were held back because nobody had addressed it, and where the minutes were sent. 404 when no agent sat in the session, or the module is not on.



## OpenAPI

````yaml /api-reference/openapi-public.json get /conference-rooms/{id}/sessions/{sid}/meeting
openapi: 3.0.3
info:
  description: >-
    The API your own systems use: place and follow calls, have an AI agent call
    someone, run campaigns and get their results, keep contacts in step with
    your CRM, and receive signed webhooks. Authenticate with an integration key
    (Authorization: Bearer ft_...), used only from the IP addresses it allows.
  title: FireTone API
  version: 0.1.0
servers:
  - description: Your platform's API host
    url: https://{host}/api/v1
    variables:
      host:
        default: api.firet.one
security:
  - bearerAuth: []
tags:
  - name: Auth
  - description: >-
      Live calls and what can be done to them: hang up, hold, transfer, park,
      merge, monitor, whisper; the Desk's own call.
    name: Calls
  - description: 'Outbound campaigns: contacts, attempts, outcomes.'
    name: Campaigns
  - description: 'Customers: who called, what is known about them, and their memory.'
    name: Contacts
  - description: What was said on an AI call, and the review of it.
    name: Conversations
  - description: >-
      Your own systems: HTTP connections an IVR calls mid-call, and webhooks for
      call events. Tenant URLs must be public https addresses.
    name: Integrations
  - name: Live
  - name: Provisioning
  - name: Reporting
  - description: Tickets raised by people, agents and the API.
    name: Tickets
  - description: Messages left for an extension or a queue.
    name: Voicemail
paths:
  /conference-rooms/{id}/sessions/{sid}/meeting:
    get:
      tags:
        - Provisioning
      summary: What the virtual agent made of a session
      description: >-
        Served by the AI module. When a virtual agent's extension was a default
        member and sat in this session: the minutes it wrote when the room
        closed, the notes it took as things were decided, who said what (each
        caller turn attributed to who was speaking, approximate), how many of
        its replies were held back because nobody had addressed it, and where
        the minutes were sent. 404 when no agent sat in the session, or the
        module is not on.
      operationId: getConferenceRoomsIdSessionsSidMeeting
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
        - in: path
          name: sid
          required: true
          schema:
            format: uuid
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Meeting'
          description: The seat.
        '404':
          description: No virtual agent sat in this session
components:
  schemas:
    Meeting:
      description: What a virtual member made of one session (AI module).
      properties:
        agent:
          type: string
        delivered_to:
          description: The addresses the minutes were queued to.
          items:
            type: string
          type: array
        minutes:
          type: string
        minutes_at:
          format: date-time
          type: string
        minutes_error:
          description: Why no minutes were written, when none were.
          type: string
        notes:
          items:
            properties:
              at:
                format: date-time
                type: string
              text:
                type: string
            type: object
          type: array
        replies_unheard:
          description: >-
            Replies the model produced that nobody had asked for, held back by
            the floor.
          type: integer
        room_id:
          format: uuid
          type: string
        session_id:
          format: uuid
          type: string
        state:
          enum:
            - joining
            - in_room
            - left
          type: string
        turns:
          items:
            properties:
              at:
                format: date-time
                type: string
              role:
                type: string
              seq:
                type: integer
              speaker:
                type: string
              text:
                type: string
            type: object
          type: array
      required:
        - session_id
        - room_id
        - agent
        - state
        - minutes
        - minutes_error
        - notes
        - replies_unheard
        - delivered_to
        - turns
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT or API key
      description: >-
        Every request sends `Authorization: Bearer <token>`. The token is either
        a panel session (a JWT from /auth/login, 12 hours) or an API key
        `ft_<id>_<secret>`. An API key is accepted only from an address on its
        IP allowlist (403 ip_not_allowed otherwise; 403 ip_allowlist_required
        for an old key that has none), is limited to its rate per minute (429
        rate_limited with Retry-After; X-RateLimit-Limit/Remaining/Reset on
        every response), and at most 60 call placements a minute.
      scheme: bearer
      type: http

````