Logo
AlmaConnect API Documentation

100ms API Copy

Number of APIs: 68


Welcome to 100ms server APIs

100ms collection includes API for our video components like rooms, sessions, policies, etc that are packaged and ready to use with Qodex, along with documentation for each API to help you learn about them. You can import/fork these APIs and start using them instantly. The API collection comes with predefined environment variables to help you get started immediately.

Authentication

100ms uses management tokens to authenticate REST APIs. To create the management token, you must use the App Access Key and App Secret from the developer section in your 100ms dashboard.

Simplified token generation

We have simplified the process of management token generation for you within this collection:

  • All you have to do is update the collection variables APP_ACCESS_KEY and APP_SECRET;
  • We have added a pre-request script within the collection, which will generate the management token and set the same as a collection variable (TOKEN) in the forked Qodex collection.
  • Automatically, this will be used as authentication for all the APIs in the 100ms collection.

Note: Refer to the authentication and tokens guide for more generating the management token in your preferred programming language for your development/production environment.

API Reference

You can refer to the detailed API reference to understand better about the request/response structure, request arguments, response variables, webhooks, etc.


1. Room APIs - New Request

GET



2. Room APIs - Get room by id

GET {{HOST}}/v2/rooms/<ROOM_ID>



3. Room APIs - Get rooms created in timerange

GET {{HOST}}/v2/rooms?after=2022-01-01T01:00:00.000Z&before=2022-03-31T01:00:00.000Z&limit=20&start=6284eb3f119d5dbdd03ac068



4. Room APIs - Create room

POST {{HOST}}/v2/rooms



5. Room APIs - Enable room

POST {{HOST}}/v2/rooms/<ROOM_ID>



6. Room code APIs - Get room codes

GET {{HOST}}/v2/room-codes/room/:room_id



7. Room code APIs - Create room codes for all roles

POST {{HOST}}/v2/room-codes/room/:room_id



8. Room code APIs - Create room codes for a role

POST {{HOST}}/v2/room-codes/room/:room_id/role/:role



9. Room code APIs - Update room code

POST https://api.100ms.live/v2/room-codes/code



10. Room code APIs - Get auth token for short code

POST https://auth.100ms.live/v2/token



11. Stream key APIs - Create stream key

POST {{HOST}}/v2/stream-keys/room/:room-id



12. Stream key APIs - Get stream key and RTMP URL

GET {{HOST}}/v2/stream-keys/room/:room-id



13. Stream key APIs - Disable stream key

POST {{HOST}}/v2/stream-keys/room/:room-id/disable



14. Session APIs - Get session by id

GET {{HOST}}/v2/sessions/:session_id



15. Session APIs - Get sessions started in timerange

GET {{HOST}}/v2/sessions?after=2022-01-01T01:00:00.000Z&before=2022-03-31T01:00:00.000Z



16. Recording assets APIs - Get recording asset

GET {{HOST}}/v2/recording-assets/:asset_id



17. Recording assets APIs - Get all recording assets

GET {{HOST}}/v2/recording-assets?status=failed



18. Recording assets APIs - Get presigned URL for recording

GET {{HOST}}/v2/recording-assets/:asset_id/presigned-url



19. Active room APIs - Get Active Room Details

GET {{HOST}}/v2/active-rooms/<room_id>

Retrieves the details of a specific active room. 100ms allows you to retrieve details of an active room with their ID.



20. Active room APIs - Get Peer Details

GET {{HOST}}/v2/active-rooms/:room_id/peers/:peer_id

Retrieves the details of a specific peer in an active room. You can use the peer_id to retrieve the details of the peer. Use retrieve active room state API to get the list of connected peers in an active room.

Note: You can leverage this API to retrieve the details of connected peers in an active room only. To retrieve details of the peers that left the session already, use the Retrieve a specific session API

Why would you use this API?

  • To check if a specific peer has enabled/disabled their audio/video/screen-share at a given time in an active room.
  • To check if a specific peer is on-stage and backstage at a particular time.
  • You can also use this API to store peer metadata in your database and retrieve it for an abruptly disconnected peer once they join the session again. For example, to enable the user to resume playing the multiplayer game.


21. Active room APIs - List Peers

GET {{HOST}}/v2/active-rooms/:room_id/peers



22. Active room APIs - Update Peer

POST {{HOST}}/v2/active-rooms/:room_id/peers/:peer_id

You can use this API to update the details of a connected peer, such as name, role, and metadata (custom/additional information to build real-time interactivity scenarios).

Arguments

Name Type Description Required
room_id
— path param
string Unique identifier of the room where the peer is active.

Example: 627cda81ab4f3b56a077dc33
Yes
peer_id
— path param
string Unique identifier of the peer/participant for which you wish to update details.

Example: 1038fa72-9345-4651-beab-436f9242ebf4
Yes
name
— body param
string The name of the peer used in the active session. No
role
— body param
string You can use this to update the role type of the peer. For example, to take the peer to a breakout room. No
metadata
— body param
object You can use a stringified JSON to update various custom/additional information to a peer such as businessuserid, raisehand/lowerhand info, and more No

Why would you use this API?

  • You can use these APIs to update various properties of the connected peer, such as avatar, BRB status, hand-raise status, etc.
  • Custom Avatar:
    • A user updates their profile information on your app/ongoing session; the data is stored in your data store.
    • Use Update peer API and pass the profile picture data from your data store to your client app to display it as the respective connected peer's avatar (based on user_id mapping).


23. Active room APIs - Send Message

POST {{HOST}}/v2/active-rooms/<room_id>/send-message

You can use this API to send messages to a single peer, a set of peers (a particular role), or all connected peers in the active room. This API supports arguments such as peer_id and role to implement this.

  1. If peer_id is specified -- message will be sent only to the specified connected peer.
  2. If the role is specified -- message will be sent to all the connected peers assigned with that particular role.
  3. If both peer_id and role are specified -- preference will be given to the peer_id and the message will be sent only to the specified connected peer.
  4. If both peer_id and role are not specified -- message(broadcast) will be sent to all the connected peers.

Arguments

Name Type Description Required
room_id
— path param
string Unique identifier of the room where the peer is active.

Example: 627cda81ab4f3b56a077dc33
Yes
message
— body param
string Actual message to be sent. Yes
peer_id
— path param
string Unique identifier of the peer/participant for which you wish to send the message.

Example: 1038fa72-9345-4651-beab-436f9242ebf4
No
role
— body param
string You can use this to send the message to a set of peers (a particular role). No
type
— body param
string Indicates the type of message sent, for example, chat or emoji. No

Why would you use this API?

  • Based on your requirements, you can use this API to send a broadcast message, private message, or reactions like emojis.

Example1 - Inform unavailability of teacher

  • Suppose a teacher cannot attend a virtual classroom session at the last minute; you can inform all the connected peers (students) by sending a broadcast message to inform the teacher's unavailability.

Example2 - Poker handler

  • You can build a handler for a multiplayer game like Poker using this API in conjunction with the peer.join.success webhook event. Let's consider below scenario:
  • Four users join the game and start playing -- your app server stores the user_id for each user.
  • {
    peer_id: 018b84da-0786-48c5-a3a6-02961d9eac03, // will send the data only to peerid specified.
    message: ", type:custom
    event"
    }
  • {
    message: ", // will send the data to all the peers in the active room as peer_id or role is not specified. type:custom_event"
    }


24. Active room APIs - Remove Peer

POST {{HOST}}/v2/active-rooms/:room_id/remove-peers

You can use this API to remove/disconnect a connected peer from an active room. 100ms provides options to disconnect a peer either with their peer_id or role.

  1. If peer_id is specified -- respective connected peer will be disconnected from the active room.
  2. If the role is specified -- all the connected peers assigned with that particular role will be disconnected from the active room.
  3. If both peer_id and role are specified -- preference will be given to the peer_id and the respective peer will be disconnected from the active room.
  4. If both peer_id and role are not specified -- you must specify peer_id or role for this request.

Arguments

Name Type Description Required
room_id
— path param
string Unique identifier of the room to which the peer is connected.

Example: 627cda81ab4f3b56a077dc33
Yes
peer_id
— body param
string Unique identifier of the connected peer/participant you wish to remove from the active room.

Example: fd9e87d8-5c7b-4750-932f-d8d2ff18b70b
Conditional
role
— body param
string You can use this to remove a list of connected peers with the specified role type from the active room. Conditional
reason
— body param
string You can specify the message to be passed to other connected peers in the active room. No

Note: Conditional Arguments

You should define either of these arguments (peer_id or role) in the payload for the request to be successful.

Why would you use this API?

  • Use this API to remove a peer from an active room for misconduct (e.g., abusive chat). This can be combined with custom logic not to generate app tokens for this user to block them from future joins.


25. Active room APIs - End Active Room

POST {{HOST}}/v2/active-rooms/:room_id/end-room

Trigger this request to end an active room.

Arguments

Name Type Description Required
id
— path param
string Unique identifier of the room you wish to disable.

Example: 627cda81ab4f3b56a077dc33
Yes
reason
— body param
string Description to indicate the reason for ending the active room. No
lock
— body param
boolean Status of the room to be set.
Allowed values: true, false.
Default: false (ends the current active session only)
No

Warning: If you set the lock argument to true, it will end the active room and users will not be able to join the room later as well. You can use enable a room API or dashboard to enable the room again.

Why would you use this API?

  • To disconnect all connected peers at a pre-defined timestamp if you wish to add a hard stop for any sessions.
  • Use this to allow peers to join the room only once daily for a respective time slot.
    • Trigger this API at the end of the session with the lock argument as true,
    • The next day, one minute before the schedule - use the enable a room API to enable the room to allow the users to join the session.


26. Recordings APIs - Start recording for a room

POST {{QA_HOST}}/v2/recordings/room/:room_id/start



27. Recordings APIs - Stop recording for a room

POST {{QA_HOST}}/v2/recordings/room/:room_id/stop



28. Recordings APIs - Stop recording by id

POST {{HOST}}/v2/recordings/:recording_id/stop



29. Recordings APIs - Get recording

GET {{HOST}}/v2/recordings/:recording_id



30. Recordings APIs - Get all recordings

GET {{HOST}}/v2/recordings



31. Recordings APIs - Get recording config

GET {{HOST}}/v2/recordings/:recording_id/config



32. Live streams APIs - Get all live streams

GET {{HOST}}/v2/live-streams



33. Live streams APIs - Send timed metadata for a live stream

POST {{HOST}}/v2/live-streams/:stream_id/timed-metadata



34. Live streams APIs - Pause live stream recording

POST {{HOST}}/v2/live-streams/:stream_id/pause-recording



35. Live streams APIs - Resume live stream recording

POST {{HOST}}/v2/live-streams/:stream_id/resume-recording



36. Live streams APIs - Stop all live streams for a room

POST {{HOST}}/v2/live-streams/room/:room_id/stop



37. Live streams APIs - Stop live stream by id

POST {{HOST}}/v2/live-streams/:job_id/stop



38. Live streams APIs - Get live stream

GET {{HOST}}/v2/live-streams/:stream_id



39. Live streams APIs - Start live stream for a room

POST {{HOST}}/v2/live-streams/room/:room_id/start



40. External streams APIs - Start external stream for a room

POST {{HOST}}/v2/external-streams/room/:room_id/start



41. External streams APIs - Stop external stream for a room

POST {{HOST}}/v2/external-streams/room/:room_id/stop



42. External streams APIs - Stop external stream by id

POST {{HOST}}/v2/external-streams/:stream_id/stop



43. External streams APIs - Get all external streams

GET {{HOST}}/v2/external-streams



44. External streams APIs - Get external stream

GET {{HOST}}/v2/external-streams/:stream_id



45. Analytics APIs - Get events

GET https://api.100ms.live/v2/analytics/events



46. Polls APIs - Create Poll

POST {{HOST}}/v2/polls



47. Polls APIs - Get Poll

GET {{HOST}}/v2/polls/:poll_id



48. Polls APIs - Update Polls

POST {{HOST}}/v2/polls/:poll_id



49. Polls APIs - Update Poll Question

POST {{HOST}}/v2/polls/:poll_id/questions/:question_id



50. Polls APIs - Delete Poll Question

DELETE {{HOST}}/v2/polls/:poll_id/questions/:question_id



51. Polls APIs - Update Poll Option

POST {{HOST}}/v2/polls/:poll_id/questions/:question_id/options/:option_id



52. Polls APIs - Delete Poll Option

DELETE {{HOST}}/v2/polls/:poll_id/questions/:question_id/options/:option_id



53. Polls APIs - Get Poll Sessions

GET {{HOST}}/polls/:poll_id/sessions/:session_id



54. Polls APIs - Get Poll Results

GET {{HOST}}/polls/:poll_id/sessions/:session_id/results



55. Polls APIs - Get Poll Result

GET {{HOST}}/polls/:poll_id/sessions/:session_id/results/:result_id



56. Polls APIs - Get Poll Responses

GET {{HOST}}/polls/:poll_id/sessions/:session_id/responses



57. Polls APIs - Get Poll Response

GET {{HOST}}/polls/:poll_id/sessions/:session_id/responses/:response_id



58. Policy APIs - Get templates

GET {{HOST}}/v2/templates



59. Policy APIs - Get template by id

GET {{HOST}}/v2/templates/<TEMPLATE_ID>



60. Policy APIs - Create template

POST {{HOST}}/v2/templates



61. Policy APIs - Update template by id

POST {{HOST}}/v2/templates/<TEMPLATE_ID>



62. Policy APIs - Get role

GET {{HOST}}/v2/templates/<TEMPLATE_ID>/roles/<ROLE_NAME>



63. Policy APIs - Create/update role

POST {{HOST}}/v2/templates/<TEMPLATE_ID>/roles/<ROLE_NAME>



64. Policy APIs - Delete role

DELETE {{HOST}}/v2/templates/<TEMPLATE_ID>/roles/<ROLE_NAME>



65. Policy APIs - Get settings

GET {{HOST}}/v2/templates/<TEMPLATE_ID>/settings



66. Policy APIs - Update settings

POST {{HOST}}/v2/templates/<TEMPLATE_ID>/settings



67. Policy APIs - Configure recordings

POST {{HOST}}/v2/templates/:template_id/recordings



68. Policy APIs - Get recordings

GET {{HOST}}/v2/templates/:template_id/recordings



ENDPOINTS