# ActionStreamer > ActionStreamer is a Cincinnati, Ohio IoT video platform company (founded 2016) building wearable and > connected-device live streaming for industrial, public-safety, defense, aerospace/MRO and sports > operations. Its ActionSync platform manages fleets of smart cameras and body-worn devices over Wi-Fi, > private 5G, cellular and Starlink; its IRIS product adds AI object detection and alerting. > ActionStreamer publishes a public HTTP Web API with 247 operations and a first-party Python library. Generated: 2026-09-06 Method: generated Source: api-evangelist profile of publicly documented ActionStreamer surfaces Note: ActionStreamer does not publish its own /llms.txt. https://actionstreamer.com/llms.txt returns 404; https://developer.actionstreamer.com/llms.txt returns HTTP 200 but serves the Docusaurus HTML shell rather than a document. This file is generated by API Evangelist from the provider's public documentation and is not authored or endorsed by ActionStreamer. ## API at a glance - Base URL: https://api.actionstreamer.com/v1 (also documented as https://api.actionstreamer.com/) - Contract: OpenAPI 3.0.1, 186 paths, 247 operations, 107 schemas, published 2026-07-07 - Spec URL: https://api.actionstreamer.com/swagger/v1/swagger.json - Auth: HMAC-SHA256 request signing (headless) or session token (portal). No OAuth, no OpenID Connect. - Credentials: created in the portal at Settings > API Keys - Media transport: SRT for publish, WebRTC for playback, on media.actionstreamer.com - Idempotency: none published. 161 of 247 operations mutate state. - Rate limits: none published. No RateLimit-* headers, no 429 declared. - Pricing: none published. Contact sales. - Status page: none. ## Documentation - [Developer portal](https://developer.actionstreamer.com/): entry point for all API documentation. - [Getting started](https://developer.actionstreamer.com/docs/intro): platform overview and Python library install. - [HTTP API quickstart](https://developer.actionstreamer.com/docs/Guides/http-api-quickstart): five-step path from portal credentials to a first read call. - [Authentication guide](https://developer.actionstreamer.com/docs/Guides/authentication): HMAC-SHA256 canonical string, the six required headers, and a Python reference implementation. - [Errors and response handling](https://developer.actionstreamer.com/docs/Guides/errors): the documented status codes and client guidance. - [Web API overview](https://developer.actionstreamer.com/docs/API_Reference/WebAPI/overview): the raw REST surface by resource area. - [Full API reference](https://developer.actionstreamer.com/docs/category/api-reference): per-operation reference pages. - [Python library reference](https://developer.actionstreamer.com/docs/category/python-library): WebService modules plus on-device helper functions. - [Sample code](https://developer.actionstreamer.com/docs/category/sample-code): get_device and run_event_preset walkthroughs. ## Authentication Sign every request with HMAC-SHA256 and send six headers: `Authorization: HMAC-SHA256 {access_key}`, `X-AccessKey`, `X-Signature`, `X-Timestamp` (Unix epoch seconds), `X-Nonce` (a UUIDv4 per request), and `Content-Type: application/json`. Build the string to sign as METHOD, PATH, HEADER_STRING, PARAMETER_STRING, BODY joined by newlines, then trimmed. Remove Content-Type from the header set before signing. Sort header keys and render them as `key: value` lines. Sort query or form parameters the same way. Normalize the path to start with `/` with no trailing slash. Sign with your secret key and send the hex digest. `X-Nonce` is anti-replay for the auth envelope; it is NOT write idempotency. A retry with a fresh nonce executes the write a second time. ## Resource areas Devices and fleet: Device, DeviceGroup, DeviceHealth, DeviceComment, DeviceWifiConnection, WifiConnection, Agent, AgentType. Media: VideoClip, AudioClip, Image, File, Stream, Caption, Package. Commands and events: Event, EventPreset, EventType, EventStatus, LogMessage, Notification. Access and identity: User, UserGroup, UserBrowser, Session, SessionVariable, Token, Password, APIKey, MultifactorAuth, SignInHistory, Register, Verify, PermissionType, SharedItem, MediaRouterAuth. Organization: Project, Setting, Tag, CollectionItem, TimeZone, Test, Version. ## Common flows - Read a device: `GET /v1/device/{deviceID}`; list everything visible with `GET /v1/device/list/all`. - Check device health: `GET /v1/devicehealth/getlatest/{deviceID}` for the latest record, `GET /v1/device/list/health` for the fleet, `POST /v1/device/{deviceID}/health/linechart` for a time series. - Find clips: `POST /v1/videoclip/list` with a filter body, or `POST /v1/videoclip/devices/tag/list` for a tag-and-time-range search across devices. - Get a live stream: `GET /v1/device/{deviceID}/stream/mostrecent` returns the SRT publishURL and the WebRTC readURL. - Actuate a camera: `POST /v1/eventpreset/run/{eventPresetID}` queues a command; the device agent picks it up via `POST /v1/event/dequeue` or long-poll at `POST /v1/event/list/pending/longpoll`. Clear an unstarted queue with `DELETE /v1/event/list/pending/{deviceID}`; stop a running one with `POST /v1/event/endprocess/{eventID}`. Note the list convention: reads are frequently issued as POST to `//list` with a JSON filter body rather than as GET with query parameters. ## SDK - Python: `pip install actionstreamer` — version 1.4.8, published 2026-09-01, 251 releases. It wraps the HMAC signing scheme and additionally ships on-device helpers (battery, CPU temperature, Wi-Fi link quality, camera activity) with no HTTP equivalent. https://pypi.org/project/actionstreamer/ There is no JavaScript, Go, Java, Ruby, .NET or Rust client. Non-Python integrators implement the signing scheme themselves. ## Company - [Website](https://actionstreamer.com/) - [Company](https://actionstreamer.com/company) - [Blog](https://actionstreamer.com/blog) — 106 posts, including several on using the API - [Glossary](https://actionstreamer.com/glossary) — 142 terms on video transport, codecs and connectivity - [Portal](https://portal.actionstreamer.com/) - [GitHub](https://github.com/ActionStreamer) - [Terms of use](https://actionstreamer.com/terms-of-use) - [Privacy policy](https://actionstreamer.com/privacy-policy) - [Contact](https://actionstreamer.com/contact) — developer@actionstreamer.com ## Known gaps An agent or client generator reading the published OpenAPI should be aware that the contract omits things the human documentation covers: - No `servers` block. The base URL is documented only in the guides. - No `components.securitySchemes` and no `security` requirement on any of the 247 operations, so generated clients emit unauthenticated requests even though every endpoint requires HMAC signing. - No `operationId` on any operation. Operations must be referenced by method and path. - Only one operation declares a non-2xx response; 246 declare only a 200. - No pagination convention on any of the list operations. - No idempotency mechanism on a 161-operation write surface that actuates physical cameras.