> ## 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.

# Start or stop recording a room

> Body {on: true|false}. Records the MIX into conf-<session>.wav in the recordings directory (conference <room> record <path>); stopping is norecord. The file belongs to the session, not to any participant's call, and is checked, uploaded and aged as a call recording is. A room whose `record` flag is on records from its first member without this.



## OpenAPI

````yaml /api-reference/openapi-public.json post /conferences/{room}/record
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:
  /conferences/{room}/record:
    post:
      tags:
        - Calls
      summary: Start or stop recording a room
      description: >-
        Body {on: true|false}. Records the MIX into conf-<session>.wav in the
        recordings directory (conference <room> record <path>); stopping is
        norecord. The file belongs to the session, not to any participant's
        call, and is checked, uploaded and aged as a call recording is. A room
        whose `record` flag is on records from its first member without this.
      operationId: postConferencesRoomRecord
      parameters:
        - in: path
          name: room
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                'on':
                  type: boolean
              required:
                - 'on'
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  recording:
                    type: boolean
                type: object
          description: Whether the room is recording now.
        '404':
          description: No such live room in scope, or you may not control it.
        '409':
          description: This node has no recordings directory.
        '502':
          description: The switch refused.
components:
  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

````