ActionStreamer Platform
This guide covers both sides of the developer experience:
- The Python SDK and helper functions
- The raw HTTP API reference
If you are integrating a backend, device, or partner system directly against HTTP endpoints, start with the guides and HTTP API reference rather than the Python function pages.
Platform Overview
What can you do with the ActionStreamer platform and API?
- Build smart camera and video workflows with the ActionStreamer platform.
- Manage your fleet of cameras through the ActionStreamer portal, or design your own.
- Configure cameras to record even when offline, and get access to those clips when the device comes back online.
- Monitor device status: battery percentage, network quality, temperature, and much more.
- Manage the wireless networks your cameras can connect to.
- Watch live feeds and review past video clips.
- Direct any smart camera to join a video conference for remote monitoring and assistance.
- Share camera access and control with collaborators.
- Combine your analytics and collected data with an ActionStreamer powered video and device management system.
- Use your business logic to trigger camera streams and pull video clips from the device.
- Share video clips with collaborators and external audiences.
- Receive alerts about device health and online/offline status.
- Get alerted with AI tagging for object detection.
- Search through past clips for specific tags.
Documentation Map
- HTTP API Quickstart: fastest path for direct API integrations
- Authentication: HMAC signing flow and required headers
- Errors and Response Handling: status handling guidance
- HTTP API Overview: generated raw endpoint reference
- API Reference: Python library and raw Web API reference
Getting Started
If you don't already have an ActionStreamer account, please contact us at developer@actionstreamer.com.
Get started by creating a new API key and secret key.
Sign in to the portal at https://portal.actionstreamer.com and go to Settings > API Keys to create an access key and secret key.
For example:
Access Key: it7qeDTfwUmhxxxxxxxxxx==
Secret Key: xyZdLAdWpyRh1kEVSdvf9VzPHoXNAg8c84EPfrjxxxxxxxxxxxxxxxxxxxxxxxxx
Our API uses HMAC SHA256 authentication for most endpoints. You can call the endpoints directly if you implement the signature method below, or use the Python library (pip install actionstreamer) for higher-level API access.
def get_hmac_signature(secret_key: str, method: str, path: str, headers, parameters: dict, body: str = None)-> tuple[str, str] | None:
if 'Content-Type' in headers:
del headers['Content-Type']
header_string = dictionary_to_string(headers)
parameter_string = dictionary_to_string(parameters)
# Path should be in the format /v1/event
if not path.startswith('/'):
path = '/' + path
if path.endswith('/') and len(path) > 1:
path = path[:-1]
string_to_sign = '\n'.join([method, path, header_string, parameter_string, body if body else ''])
string_to_sign = string_to_sign.strip()
# Generate the HMAC SHA256 signature
hmac_signature = hmac.new(secret_key.encode('utf-8'), string_to_sign.encode('utf-8'), hashlib.sha256)
# Convert the HMAC signature to hexadecimal
return hmac_signature.hexdigest()
def dictionary_to_string(dictionary: dict) -> str:
result = ''
sorted_keys = sorted(dictionary.keys())
for key in sorted_keys:
result += f"{key}: {dictionary[key]}\n"
return result