Operations 11
Documentation
Documentation
https://www.100ms.live/docs/server-side/v2/foundation/basics
Documentation
https://www.100ms.live/docs/server-side/v2/foundation/authentication-and-tokens
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/100ms-live-policy-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: 100ms Server-Side 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:
TemplateCreate:
type: object
properties:
name:
type: string
roles:
type: object
additionalProperties:
$ref: '#/components/schemas/Role'
settings:
type: object
destinations:
type: object
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
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'
Empty:
description: Successful empty response
content:
application/json:
schema:
type: object
Role:
description: Role
content:
application/json:
schema:
$ref: '#/components/schemas/Role'
parameters:
TemplateId:
in: path
name: template_id
required: true
schema:
type: string
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>`.
'