100ms is a cloud video conferencing infrastructure platform that lets developers embed real-time audio and video into web, Android, and iOS apps. It provides REST APIs, client SDKs, and a management dashboard for building live streaming, virtual meetings, webinars, and collaboration tools. Features include room management, role-based access control, HLS and RTMP streaming, session recording, and real-time analytics.
Power end-to-end data operations for your 100ms API with Nexla. Our bi-directional 100ms connector is purpose-built for 100ms, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to 100ms or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your 100ms workflows fast, secure, and fully governed.
Features
Type: API
SourceDestination
Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
Request optimization with intelligent batching, retry, and caching to minimize API calls and costs
To authenticate Nexla with the 100ms API, you need a Management Token — a server-side JWT (JSON Web Token) that 100ms uses to authorize all REST API calls. The Management Token is distinct from the client-side App Token used by 100ms SDKs; it is intended exclusively for server-to-server communication and must never be exposed in client-side code.
The Management Token is generated by signing a JWT payload using your App Access Key and App Secret, both of which are available in the 100ms Dashboard.
Navigate to the Developer section in the left-hand navigation menu.
Locate your App Access Key and App Secret in the Developer section. These credentials uniquely identify your 100ms workspace and are required to generate a Management Token.
The App Access Key and App Secret are sensitive credentials. Each workspace has a unique set of credentials, so ensure you are viewing the correct workspace before copying these values. Do not expose them in client-side code or public repositories.
The Management Token is a signed JWT that must be created server-side using your App Access Key and App Secret. 100ms provides two options for obtaining a Management Token:
Option A: Use the Pre-Generated Token from the Dashboard (for testing)
In the Developer section of your 100ms Dashboard, locate the Management Token field.
Copy the displayed token. This pre-generated token has a default validity of 7 days and can be used immediately for testing with Nexla.
Pre-generated tokens from the dashboard are intended for development and testing purposes. For production use, 100ms recommends generating tokens programmatically on your own server so that you can control token validity and avoid long-lived, static tokens.
Option B: Generate a Token Programmatically (recommended for production)
100ms provides code examples in Node.js, Python, Java, Go, PHP, and Ruby for generating Management Tokens. Tokens can be generated with a custom validity period up to a maximum of 14 days. For complete implementation details and code samples, refer to the 100ms Authentication and Tokens documentation.
Authenticate with 100ms using an API key provided in the Authorization header as a Bearer token.
Field
Required
Secret
Description
API Key Value
Yes
Yes
100ms Management Token (server-side JWT) used to authenticate API requests. Note: this is the Management Token, not the App Access Key used by client SDKs.
After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.
Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.
Enter your 100ms Management Token in the API Key Value field. This is the server-side JWT you obtained or generated in Prerequisites. Nexla will automatically include this token as Bearer <token> in the Authorization header of every API request made to the 100ms API.
The value entered here must be your server-side Management Token — not the App Access Key or App Secret themselves, and not the client-side App Token used by 100ms browser or mobile SDKs. If your Management Token expires (default validity is 7 days, maximum is 14 days), generate a new token and update this credential to maintain uninterrupted access.
Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.
To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the 100ms connector tile from the list of available connectors, then select the credential that will be used to connect to your 100ms workspace, and click Next; or, create a new 100ms credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common 100ms endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.
List All Rooms
Retrieves a list of all rooms in your 100ms workspace. Use this endpoint to get an inventory of your rooms, monitor their enabled or disabled status, or identify rooms by name or template. This endpoint supports pagination using a next-token cursor and returns results in the data array of the response.
Select List All Rooms from the Endpoint pulldown menu.
Optionally, configure any of the following filter parameters to narrow the results returned by this endpoint:
Enabled: Set to true to return only enabled (active) rooms, or false to return only disabled rooms. Leave blank to return rooms regardless of their enabled status.
After: Enter a room ID to return only rooms created after the specified room. This is useful for cursor-based pagination or incremental data loads.
Before: Enter a room ID to return only rooms created before the specified room.
Name: Enter the exact name of a room to filter results to that specific room.
Limit: Enter the maximum number of rooms to return per page. 100ms accepts values between 1 and 100; the default is 10.
Template Id: Enter the unique identifier of a template to return only rooms associated with that template. You can retrieve template IDs using the List Templates endpoint.
This endpoint uses token-based pagination. Nexla automatically handles pagination by following the cursor token in the last field of each response, continuing until all matching rooms have been retrieved. For the complete 100ms Rooms API reference, see the 100ms List Rooms documentation.
Get Template Settings
Retrieves the detailed settings and configuration for a specific room template. A template in 100ms is a collection of roles, room settings, and recording/streaming configurations that governs how rooms associated with it behave. Use this endpoint to inspect the current configuration of a template for auditing, reporting, or downstream processing.
Select Get Template Settings from the Endpoint pulldown menu.
Enter the unique identifier of the template in the Template ID field. This is a required field. Template IDs can be obtained from the 100ms Dashboard under Templates, or by first using the List Templates endpoint to retrieve the IDs of all templates in your workspace.
Each 100ms room is associated with exactly one template. Templates control key behaviors such as which roles can publish audio and video, whether recording starts automatically, and which geographic region is used for the room. For the complete reference, see the 100ms Get Template Settings documentation.
List Active Room Peers
Retrieves a list of peers (participants) currently active in a specific room session. A peer represents a participant who has joined a 100ms room. Use this endpoint to monitor live room participants, build attendance tracking, or trigger server-side actions based on who is present in a room.
Select List Active Room Peers from the Endpoint pulldown menu.
Enter the unique identifier of the room in the Room ID field. This is a required field. Room IDs can be found in the 100ms Dashboard under Rooms, or by first using the List All Rooms endpoint. Only one room can be queried per data source configuration.
This endpoint queries the active room state — it returns only peers who are currently in the room at the time of the API call. Sessions that have already ended will not have active peers. For building historical attendance records, use the List Sessions endpoint instead. For the complete reference, see the 100ms List Active Peers documentation.
List Analytics Events
Retrieves analytics events and metrics generated by your 100ms sessions. Analytics events capture granular data about what happened during a session, such as peer join/leave events, track events, recording events, and errors. Event data can be queried for up to the last 30 days. Use this endpoint to build usage dashboards, monitor quality of service, or analyze participant behavior across sessions.
Select List Analytics Events from the Endpoint pulldown menu.
No additional parameters are required for this endpoint. Nexla will retrieve available analytics events from your 100ms workspace automatically. This endpoint uses offset-based pagination and Nexla handles pagination automatically.
100ms analytics event data is available for up to the last 30 days. Events are returned from the events array in the response. For full details on supported event types and their schemas, see the 100ms Analytics Events documentation.
List Recordings
Retrieves a list of all recordings from your 100ms sessions. Recordings capture audio, video, and screen-share content from rooms that have recording enabled. Use this endpoint to build a library of recorded sessions, generate download links, or track recording status across your workspace.
Select List Recordings from the Endpoint pulldown menu.
No additional parameters are required for this endpoint. Nexla will retrieve all recordings from your 100ms workspace. This endpoint uses token-based pagination, and Nexla automatically follows the cursor in the last field of each response to retrieve all pages of results.
Recordings are created when a room session has recording enabled via its associated template or by a server-side API call. For complete details on the recording object and its fields, see the 100ms List Recordings documentation.
List Sessions
Retrieves a list of all sessions in your 100ms workspace. A session is a single continuous call within a room — one room can have multiple sessions over time. Use this endpoint to build historical reports of meetings, track session durations, or analyze usage patterns across your workspace.
Select List Sessions from the Endpoint pulldown menu.
No additional parameters are required for this endpoint. Nexla will retrieve all sessions from your 100ms workspace. This endpoint uses token-based pagination, and Nexla automatically follows the cursor in the last field of each response until all sessions have been retrieved.
Session records include metadata such as the associated room ID, start and end times, and peer counts. For the complete session object schema and filtering options, see the 100ms List Sessions documentation.
List Template Destinations
Retrieves a list of all recording destinations configured for a specific template. Template destinations define where 100ms should send recordings — such as an S3 bucket, Azure Blob Storage, or Google Cloud Storage location. Use this endpoint to audit recording destination configurations across your templates.
Select List Template Destinations from the Endpoint pulldown menu.
Enter the unique identifier of the template in the Template ID field. This is a required field. Template IDs can be obtained from the 100ms Dashboard under Templates, or by first using the List Templates endpoint to retrieve all template IDs in your workspace.
Recording destinations are configured per template and control where completed recordings are delivered after a session ends. For the complete reference, see the 100ms Get Template Destinations documentation.
List Templates
Retrieves a list of all room templates available in your 100ms workspace. Templates define the configuration applied to rooms — including roles, permissions, recording settings, and streaming configuration. Use this endpoint to enumerate your templates for auditing, synchronization, or to obtain template IDs for use in other API calls.
Select List Templates from the Endpoint pulldown menu.
No additional parameters are required for this endpoint. Nexla will retrieve all templates from your 100ms workspace. This endpoint uses token-based pagination, and Nexla automatically follows the cursor in the last field of each response until all templates have been retrieved.
Template records include role definitions, recording settings, and streaming configuration. Template IDs retrieved from this endpoint can be used as input parameters for the Get Template Settings and List Template Destinations endpoints. For the complete reference, see the 100ms List Templates documentation.
Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.
100ms data sources can also be manually configured to ingest data from any valid 100ms API endpoint not covered by the pre-built templates, including sources that use chained API calls or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers. 100ms data retrieval endpoints use the GET method.
All 100ms server-side API endpoints use the base URL https://api.100ms.live/v2/. Common paths for the Set Path to Data in Response field include $.data[*] (rooms, templates, sessions, recordings), $.peers[*] (active room peers), and $.events[*] (analytics events); a $.last metadata path can be used to capture the pagination cursor included in many responses. You do not need to include the Authorization header — the Bearer token from your 100ms credential is automatically included in all API requests.
Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new 100ms data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.
Click the + icon on the Nexset that will be sent to the 100ms destination, and select the Send to Destination option from the menu. Select the 100ms connector from the list of available destination connectors, then select the credential that will be used to connect to your 100ms workspace, and click Next; or, create a new 100ms credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common 100ms endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.
Create Room
Creates a new room in your 100ms workspace with the specified settings. Use this endpoint to programmatically provision rooms as part of an automated workflow — for example, creating a dedicated room for each new meeting, event, or user onboarding session.
Select Create Room from the Endpoint pulldown menu.
Map the relevant fields from your Nexset to the 100ms room creation payload. The 100ms Create Room API accepts the following key fields in the request body:
name: A unique name for the room. Must be 1–100 characters and can contain alphanumeric characters and hyphens.
description: An optional human-readable description for the room.
template_id: The ID of the template to associate with this room. The template controls role definitions, recording settings, and streaming configuration. If omitted, the default template for your workspace will be used.
region: The geographic region in which to host the room (e.g., us, eu, in). Leave blank to use the region defined in the template.
Room names must be unique within a workspace. Attempting to create a room with a name that already exists will return an error. For the complete list of accepted request fields, see the 100ms Create Room documentation.
Update Room
Updates the configuration of an existing room using its Room ID. Use this endpoint to modify room properties such as the description, associated template, or recording configuration after the room has been created.
Select Update Room from the Endpoint pulldown menu.
Enter the unique identifier of the room to update in the Room ID field. This is a required field. Room IDs can be found in the 100ms Dashboard under Rooms, or by using the List All Rooms data source endpoint to retrieve them. The Room ID will be appended to the API URL path automatically.
Map the relevant fields from your Nexset to the 100ms room update payload. The request body can include any of the following updatable fields:
name: A new name for the room (must remain unique within the workspace).
description: An updated description for the room.
recording_info: Updated recording configuration for the room.
Only the fields included in the request body will be updated; all other room properties will remain unchanged. For the complete list of updatable fields, see the 100ms Update Room documentation.
Send Message to Active Room
Sends a chat or custom message to peers in an active room session. Use this endpoint to broadcast server-generated messages to all participants in a live room — for example, to send system notifications, event updates, or automated prompts to meeting participants.
Select Send Message to Active Room from the Endpoint pulldown menu.
Enter the unique identifier of the active room to which the message will be sent in the Room ID field. This is a required field. The room must currently have an active session for the message to be delivered. The Room ID will be appended to the API URL path automatically.
Map the relevant fields from your Nexset to the 100ms message payload. The request body should include:
message: The message content to send to the room.
type: The message type (e.g., chat for a chat message). Leave blank to send as a broadcast message.
roles: An optional array of role names to which the message should be restricted. If omitted, the message is sent to all peers in the room.
peer_id: An optional specific peer ID to send the message to a single participant.
Messages sent via this endpoint are delivered only to peers who are currently active in the room at the time of the API call. For the complete reference, see the 100ms Send Message documentation.
Start Live Stream
Starts an HLS (HTTP Live Streaming) or RTMP live stream for a specific room. Use this endpoint to programmatically initiate a live stream — for example, to automatically begin streaming when a specific trigger condition is met in your data pipeline, or to broadcast a room session to external platforms such as YouTube, Twitch, or Facebook.
Select Start Live Stream from the Endpoint pulldown menu.
Enter the unique identifier of the room for which to start the live stream in the Room ID field. This is a required field. The Room ID will be appended to the API URL path automatically.
Map the relevant fields from your Nexset to the 100ms live stream payload. The request body can include:
meeting_url: The URL of the meeting to be streamed (required for HLS streaming).
rtmp_urls: An array of RTMP destination URLs for streaming to external platforms. Each entry should be a valid RTMP URL provided by the streaming platform.
recording: Configuration for recording the live stream output.
The room must have an active session before a live stream can be started. HLS and RTMP streaming must be enabled in the room's associated template for this endpoint to succeed. For the complete reference, see the 100ms Start Live Stream documentation.
Send Timed Metadata
Sends metadata synchronized with the live stream timeline using the Stream ID. Timed metadata allows you to embed custom data points — such as chapter markers, product highlights, or interactive cues — that are synchronized with specific points in the HLS stream. This data can be consumed by client applications to trigger UI updates or interactive experiences during playback.
Select Send Timed Metadata from the Endpoint pulldown menu.
Enter the unique identifier of the live stream in the Stream ID field. This is a required field. Stream IDs are returned when a live stream is started via the Start Live Stream endpoint. The Stream ID will be appended to the API URL path automatically.
Map the relevant fields from your Nexset to the timed metadata payload. The request body should include:
payload: The metadata content to embed in the stream at the current timeline position. This can be any string data, such as a JSON-encoded object describing the metadata event.
Timed metadata is embedded in the HLS stream at the moment the API call is made, so timing is important. This feature is particularly useful for building interactive live experiences such as polls, product showcases, or live annotations. For the complete reference, see the 100ms Send Timed Metadata documentation.
Create/Update Role
Creates a new role or updates an existing role's permissions and publishing settings within a specific template. In 100ms, a role defines what a participant can do in a room — such as whether they can publish audio and video, which other roles they can subscribe to, and whether they can remove or mute other peers. Use this endpoint to programmatically manage role configurations across your templates.
Select Create/Update Role from the Endpoint pulldown menu.
Enter the unique identifier of the template that owns the role in the Template ID field. This is a required field. Template IDs can be obtained from the 100ms Dashboard under Templates, or by using the List Templates data source endpoint. The Template ID will be appended to the API URL path automatically.
Enter the name of the role to create or update in the Role Name field. This is a required field. If a role with the specified name already exists in the template, it will be updated with the values in the request body. If no role with that name exists, a new role will be created. The Role Name will be appended to the API URL path automatically.
Map the relevant fields from your Nexset to the role configuration payload. The request body can include:
publishParams: Configures what the role is allowed to publish (audio, video, screen share) and at what quality levels.
subscribeParams: Configures which other roles this role can subscribe to, and the maximum number of peers it can subscribe to simultaneously.
permissions: Defines administrative actions this role can perform, such as muting peers, removing peers, or ending the room.
priority: A numeric value that determines the role's priority for bandwidth allocation when the room has limited bandwidth.
Role changes made via this API take effect for new sessions. Peers currently in an active room session may need to rejoin the room for role changes to apply. For the complete list of configurable role properties, see the 100ms Create/Update Role documentation.
100ms destinations can also be manually configured to send data to any valid 100ms API endpoint not covered by the pre-built templates, allowing Nexla to automatically send the response received from the 100ms API after each call to a new Nexla webhook data source. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks. 100ms write endpoints use POST (to create new resources) or PUT (to fully replace an existing resource) with JSON format.
All 100ms server-side API endpoints use the base URL https://api.100ms.live/v2/; for update operations, include the ID of the resource to be updated at the end of the URL path. You do not need to include the Authorization header — the Bearer token from your 100ms credential is automatically included in all API requests, and the Content-Type: application/json header is set automatically.
Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured 100ms endpoint, open the destination resource menu, and select Activate.
The Nexset data will not be sent to the 100ms API until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.