100ms Policy API

Templates, roles, and recording configuration.

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/100ms-live-policy-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

100ms-live-policy-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: 100ms Server-Side Active Rooms Policy API
  description: 'REST control plane for the 100ms live video and audio platform. Manage rooms, templates and roles (policy), active in-session control, recordings, live streams (HLS), external streams (RTMP push to YouTube/Twitch/Facebook), RTMP stream keys, room codes, polls, sessions, and analytics. All endpoints are authenticated with a short-lived management JWT signed with the app access key/secret pair from the dashboard.

    '
  version: v2
  contact:
    name: 100ms Support
    url: https://www.100ms.live/contact-sales
  license:
    name: 100ms Terms of Service
    url: https://www.100ms.live/legal/terms-and-conditions
servers:
- url: https://api.100ms.live/v2
  description: Production
security:
- ManagementToken: []
tags:
- name: Policy
  description: Templates, roles, and recording configuration.
paths:
  /templates:
    get:
      summary: List Templates
      operationId: listTemplates
      tags:
      - Policy
      responses:
        '200':
          $ref: '#/components/responses/TemplateList'
    post:
      summary: Create Template
      operationId: createTemplate
      tags:
      - Policy
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TemplateCreate'
      responses:
        '200':
          $ref: '#/components/responses/Template'
  /templates/{template_id}:
    parameters:
    - $ref: '#/components/parameters/TemplateId'
    get:
      summary: Retrieve A Template
      operationId: retrieveTemplate
      tags:
      - Policy
      responses:
        '200':
          $ref: '#/components/responses/Template'
    post:
      summary: Update A Template
      operationId: updateTemplate
      tags:
      - Policy
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TemplateCreate'
      responses:
        '200':
          $ref: '#/components/responses/Template'
  /templates/{template_id}/roles/{role_name}:
    parameters:
    - $ref: '#/components/parameters/TemplateId'
    - in: path
      name: role_name
      required: true
      schema:
        type: string
    get:
      summary: Retrieve A Role
      operationId: retrieveRole
      tags:
      - Policy
      responses:
        '200':
          $ref: '#/components/responses/Role'
    post:
      summary: Create Or Update A Role
      operationId: upsertRole
      tags:
      - Policy
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Role'
      responses:
        '200':
          $ref: '#/components/responses/Role'
    delete:
      summary: Delete A Role
      operationId: deleteRole
      tags:
      - Policy
      responses:
        '200':
          $ref: '#/components/responses/Empty'
  /templates/{template_id}/destinations:
    parameters:
    - $ref: '#/components/parameters/TemplateId'
    get:
      summary: Retrieve Destinations
      operationId: retrieveDestinations
      tags:
      - Policy
      responses:
        '200':
          description: Destinations object
          content:
            application/json:
              schema:
                type: object
    post:
      summary: Update Destinations
      operationId: updateDestinations
      tags:
      - Policy
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Updated destinations
          content:
            application/json:
              schema:
                type: object
  /templates/{template_id}/settings:
    parameters:
    - $ref: '#/components/parameters/TemplateId'
    get:
      summary: Retrieve Settings
      operationId: retrieveSettings
      tags:
      - Policy
      responses:
        '200':
          description: Settings object
          content:
            application/json:
              schema:
                type: object
    post:
      summary: Update Settings
      operationId: updateSettings
      tags:
      - Policy
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Updated settings
          content:
            application/json:
              schema:
                type: object
components:
  schemas:
    Template:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        customer_id:
          type: string
        roles:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Role'
        settings:
          type: object
        destinations:
          type: object
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    Role:
      type: object
      properties:
        name:
          type: string
        publishParams:
          type: object
          properties:
            allowed:
              type: array
              items:
                type: string
                enum:
                - audio
                - video
                - screen
            audio:
              type: object
            video:
              type: object
            screen:
              type: object
        subscribeParams:
          type: object
          properties:
            subscribeToRoles:
              type: array
              items:
                type: string
            maxSubsBitRate:
              type: integer
        permissions:
          type: object
          properties:
            endRoom:
              type: boolean
            removeOthers:
              type: boolean
            mute:
              type: boolean
            unmute:
              type: boolean
            changeRole:
              type: boolean
            sendRoomState:
              type: boolean
            hlsStreaming:
              type: boolean
            rtmpStreaming:
              type: boolean
            browserRecording:
              type: boolean
            pollWrite:
              type: boolean
            pollRead:
              type: boolean
            sendMessage:
              type: boolean
        priority:
          type: integer
        maxPeerCount:
          type: integer
    TemplateCreate:
      type: object
      properties:
        name:
          type: string
        roles:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Role'
        settings:
          type: object
        destinations:
          type: object
  parameters:
    TemplateId:
      in: path
      name: template_id
      required: true
      schema:
        type: string
  responses:
    TemplateList:
      description: Page of templates
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/components/schemas/Template'
              last:
                type: string
              limit:
                type: integer
    Template:
      description: Template
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Template'
    Role:
      description: Role
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Role'
    Empty:
      description: Successful empty response
      content:
        application/json:
          schema:
            type: object
  securitySchemes:
    ManagementToken:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'Short-lived HS256 JWT generated server-side from the app access key/secret downloaded from the 100ms dashboard. Include as `Authorization: Bearer <token>`.

        '