Skip to main content

100ms Destination

Nexla's bi-directional connectors allow data to flow both to and from any location, making it simple to create a FlexFlow data flow that sends data to a 100ms location.
onezerozero_ms_api.png

100ms

Create a 100ms Destination

  1. Click the + icon on the Nexset that will be sent to the 100ms destination, and select the Send to Destination option from the menu.

  2. Select the 100ms connector from the list of available destination connectors. Then, select the credential that will be used to connect to the 100ms organization, and click Next; or, create a new 100ms credential for use in this flow.

  3. In Nexla, 100ms destinations can be created using pre-built endpoint templates, which expedite destination setup for common 100ms endpoints. Each template is designed specifically for the corresponding 100ms endpoint, making destination configuration easy and efficient.
    • To configure this destination using a template, follow the instructions in Configure Using a Template.

    100ms destinations can also be configured manually, allowing you to send data to 100ms endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this destination manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common 100ms endpoints. Each template is designed specifically for the corresponding 100ms endpoint, making destination setup easy and efficient.

  • To configure this destination using a template, 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.

Configure Manually

100ms destinations can be manually configured to send data to any valid 100ms API endpoint.

Using manual configuration, you can also configure Nexla to automatically send the response received from the 100ms API after each call to a new Nexla webhook data source.

API Method

  1. To manually configure this destination, select the Advanced tab at the top of the configuration screen.

  2. Select the API method that will be used for calls to the 100ms API from the Method pulldown menu. Common methods used with 100ms write endpoints include:

    • POST: For creating new resources (rooms, messages, live streams, timed metadata, roles)
    • PUT: For fully replacing an existing resource configuration

Data Format

  1. Select the format in which the Nexset data will be sent to the 100ms API from the Content Format pulldown menu. 100ms REST APIs accept JSON as the request body format. Nexla will automatically convert the Nexset data to JSON for each API call.

API Endpoint URL

  1. Enter the URL of the 100ms API endpoint to which you want to send the Nexset data in the URL field. This should be the complete URL including the protocol (https://) and any required path parameters. 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.

Request Headers

Optional
  • If Nexla should include any additional request headers in API calls to this destination, enter the headers & corresponding values as comma-separated pairs in the Request Headers field (e.g., header1:value1,header2:value2).

    You do not need to include the Authorization header here. The Bearer token from your 100ms credential is automatically included by Nexla in all API requests to the 100ms API. The Content-Type: application/json header is also set automatically based on the selected data format.

Exclude Attributes from the Call

Optional
  • If any record attributes in the Nexset should be omitted when sending data to this 100ms destination, select the attributes from the Exclude Attributes pulldown menu.

  • Any number of attributes can be selected for exclusion, and all excluded attributes will be shown in the field. To remove an attribute from the list, click the X icon next to the attribute name.

Record Batching

Optional
  1. If records should be sent to this destination in batched API calls, check the box next to Would you like to batch your records together? to enable record batching.

  2. Enter the maximum number of records that should be batched together in a single API call in the Batch Size field. By default, this value is set to 100.

  3. Select the algorithm that will be used to group records into batches from the Grouping Algorithm pulldown menu. The sample request shown in the panel on the right will be updated to reflect the current batching settings. Some algorithms require additional settings—click on an algorithm listed below to view instructions for configuring these settings.

Property Inside JSON Object

  1. Enter the name of the JSON property that should contain the batched records in the Property Name field.
  2. If any additional properties should be included in the request, enter the properties in the Other Props field in JSON format.

Code

  1. Enter the code that will be used to create the batched request in the code editor below the Grouping Algorithm field.

Response Webhook

Optional

Nexla can automatically send the response received from the 100ms API after each call to a new Nexla webhook data source. This option allows you to keep track of the status of each API call and any additional information returned after each call — for example, capturing the room ID or stream ID returned by 100ms after a Create Room or Start Live Stream call.

  • To enable this option, check the box next to Would you like to process the API response as a Nexla Webhook source?.

Sample Request Payload

Sample request payloads containing a portion of the Nexset data that will be sent to the 100ms API endpoint based on the current settings are shown in the Sample Payload panel on the right. These samples can be referenced to ensure that the destination and request settings are correctly configured.

  • Click on a sample request payload to expand it and view the complete payload content.
  • Sample payloads are automatically updated with each setting change, making it easy to verify that changes achieve the desired effect.

Endpoint Testing (Manual Configuration)

After all endpoint settings have been configured, Nexla can send a test payload to the 100ms API to ensure that the destination is configured correctly.

  1. To send a test payload, select the Test button at the top of the Sample Payload panel, and click on a listed sample payload to expand it.

  2. If any modifications to the sample payload are needed, make the necessary changes directly within the sample window.

  3. Click the Send Test Data button at the top of a sample payload to send the test payload to the 100ms API using the current settings.

Save & Activate the Destination

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