Storm docs logo
Search the docs.../
Explore Storm Products

RESTful Basics - Storm Streaming Cloud

Introduction

Below, you'll find a basic example of how to use our RESTful API to manage your streams on Storm Streaming Cloud. The API provides total control over your streams, allowing for further automation of the stream creation process. A complete API Collection for Postman can be downloaded here.

API Authentication

The Storm Streaming Cloud API endpoint requires the x-api-key header to authenticate and authorize requests. Your personal API key can be acquired from the following webpage: https://cloud.stormstreaming.com/settings/api-key.

Storm Player Cloud API authentication

Basic Stream Create Request

Endpoint used for creating a new stream with minimal parameters.

Request

PropertyValue
MethodPOST
URLhttps://api.stormstreaming.com/api/request/stream
Content-Typemultipart/form-data
Authenticationx-api-key header
Request
Code iconbash
curl -X GET "https://api.example.com/api/applications" \
  -H "x-api-key: YOUR_API_KEY"

Request Body

ParameterTypeRequiredDescription
namestringYesName of the stream
regionIdintegerYesRegion ID for the stream server
Request Body
Code iconjson
{
  "name": "My stream",
  "regionId": 1
}

Response

ParameterTypeDescription
messagestringResponse status message
stream.streamKeystringUnique stream key identifier
stream.namestringName of the stream
stream.descriptionstringStream description (nullable)
stream.regionIdintegerRegion ID
stream.isPublishedbooleanWhether the stream is published
stream.sourceTypestringSource type (PUSH or PULL)
stream.encoderModestringEncoder mode (PASSTHROUGH or TRANSCODE)
stream.credentialsobjectAuthentication credentials for RTMP connection
stream.themeobjectPlayer theme configuration
stream.createdAtstringStream creation timestamp (ISO 8601)
Successful Response (200)
Code iconjson
{
  "message": "Stream has been created.",
  "stream": {
    "streamKey": "9ed8b119f8ed9425a428a47846e55c6b761afc6c",
    "name": "My stream",
    "description": null,
    "regionId": 1,
    "isPublished": true,
    "countdown": {
      "isCountdown": false,
      "startDate": null,
      "timezone": null
    },
    "sourceType": "PUSH",
    "encoderMode": "PASSTHROUGH",
    "credentials": {
      "username": "902aee51",
      "password": "f9aef6eac1d977d"
    },
    "thumbnail": null,
    "splashscreen": null,
    "source": null,
    "targets": [],
    "theme": {
      "id": 54,
      "name": "test",
      "isDefault": 1
    },
    "isCreated": true,
    "createdAt": "2024-01-25T11:10:53.000000Z"
  }
}

Error Response (4xx/5xx)

ParameterTypeDescription
messagestringHuman-readable error message
Code iconjson
{
  "message": "The selected source type is invalid."
}

Possible Response Code Explanation

CodeSample bodyDescription
200{"message": "Stream has been updated."}Request processed successfully.
400{"message": "The selected source type is invalid."}Validation error has occurred.
401{"message": "Unauthenticated."}Provided x-api-key header is incorrect.
403{"message": "You have exceeded the limit of concurrent live streams..."}User has surpassed the allowed number of concurrent live streams. Either terminate an existing stream or upgrade subscription plan.
404{"message": "Stream not found."}The resource was not found.
429{"message": "Too Many Attempts."}Excessive number of requests. The limit is 500 requests per minute.
500{"message": "Internal Server Error."}Internal server error has occurred.

Notes

  • Rate limit: 500 requests per minute.
  • The regionId parameter determines which server will receive the stream.
  • Streams are created with isPublished: true by default.
Support Needed?

Create a free ticket and our support team will provide you necessary assistance.

Blog
Support
About us
Patents
Term of use
Privacy policy
Contact
©2026 Storm Streaming Media. All Rights Reserved.