ActionStreamer · Authentication Profile

Actionstreamer Authentication

Authentication

ActionStreamer declares 2 security scheme(s) across its OpenAPI definitions.

CompanyVideoLive StreamingWearablesInternet of ThingsDevice ManagementPublic SafetyIndustrialComputer VisionMedia
Methods: Schemes: 2 OAuth flows: API key in:

Security Schemes

signature
· in: header ()
token
· in: header ()

Source

Authentication Profile

Raw ↑
generated: '2026-09-06'
method: searched
source: https://developer.actionstreamer.com/docs/Guides/authentication
docs: https://developer.actionstreamer.com/docs/Guides/authentication
note: >-
  Authored from the provider's own authentication guide, NOT derived from the OpenAPI. The published
  specification declares no components.securitySchemes at all — the developer portal's own overview
  page states "securitySchemes declared: False" — so derive-authentication.py produced nothing for
  this provider. Everything below is read from the human-readable guide. This is the single largest
  contract-quality gap in the ActionStreamer surface: the API is authenticated, the auth is
  documented in prose, and a machine reading only the spec cannot tell.
scheme_count: 2
primary_scheme: hmac-signature
schemes:
- id: hmac-sha256
  type: signature
  http_scheme: HMAC-SHA256
  in: header
  description: >-
    HMAC-SHA256 key/secret request signing, used for headless devices and direct service
    integrations. The caller derives a hex digest over a canonical string built from the method,
    path, sorted headers, sorted parameters and body, keyed with the account secret.
  credentials:
    access_key: created in the ActionStreamer portal under Settings > API Keys
    secret_key: issued alongside the access key; never transmitted
    provisioning_url: https://portal.actionstreamer.com
    provisioning_api: POST /v1/apikey (the API can mint its own keys once authenticated)
  headers_required:
  - name: Authorization
    value: 'HMAC-SHA256 {access_key}'
  - name: X-AccessKey
    value: the access key
  - name: X-Signature
    value: hex-encoded HMAC-SHA256 digest of the canonical string
  - name: X-Timestamp
    value: Unix epoch seconds
  - name: X-Nonce
    value: a UUIDv4, unique per request
  - name: Content-Type
    value: application/json
  canonical_string:
    order:
    - METHOD
    - PATH
    - HEADER_STRING
    - PARAMETER_STRING
    - BODY
    joined_with: newline
    rules:
    - Content-Type is removed from the header set before signing.
    - Header keys are sorted and rendered as 'key: value' lines.
    - Query or form parameters are sorted and rendered the same way.
    - The path is normalized to start with '/' with no trailing slash, except for root.
    - The assembled string is trimmed before signing.
  algorithm: HMAC-SHA256, hex digest
  replay_protection:
    mechanism: X-Nonce (UUIDv4 per request) plus X-Timestamp
    note: >-
      This is anti-replay for the auth envelope. It is NOT request idempotency — a client that
      retries a write with a fresh nonce will execute the write twice. See
      conventions/actionstreamer-conventions.yml.
  reference_implementation: >-
    The guide publishes a Python get_hmac_signature(secret_key, method, path, headers, parameters,
    body) reference function; the first-party PyPI package `actionstreamer` implements it.
- id: session-token
  type: token
  in: header
  description: >-
    Session-token authentication used by the ActionStreamer web portal and browser clients, as an
    alternative to HMAC signing for interactive sessions.
  related_operations:
  - POST /v1/session
  - GET /v1/session
  - POST /v1/token/mediarouter/publish
  - POST /v1/multifactorauth
  expiry_signal: HTTP 419 Session expired
  mfa: >-
    A MultifactorAuth resource area with nine operations is published, so the platform supports MFA
    on interactive sessions.
oauth2: false
openid_connect: false
mutual_tls: false
api_key_header: false
spec_gap:
  securitySchemes_declared: false
  security_applied_to_operations: false
  operations_total: 247
  operations_with_security: 0
  impact: >-
    Every generated client, agent tool wrapper and API-explorer built from this OpenAPI will emit
    unauthenticated requests. Declaring an apiKey-in-header scheme for X-AccessKey/X-Signature (or a
    documented custom scheme) and applying it at the root `security` level would close this without
    changing a single operation.
recommendations:
- Declare components.securitySchemes in the published OpenAPI and apply a root-level security requirement.
- Publish the key rotation and revocation policy; DELETE /v1/apikey/{apiKeyID} exists but no lifecycle guidance accompanies it.
- Document the accepted clock skew for X-Timestamp so clients know how far out of sync they may drift.

Work with this as data

Every security artifact here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for security posture

4 MCP tools reach this
  • find_securityBrowse and filter every security artifact in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This security artifact
curl "https://apis.io/api/v1/security/actionstreamer-authentication"
All security posture
curl "https://apis.io/api/v1/security?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.