Platform controls

Configure delivery, media behavior, automation, migration, and company access through workspace-scoped APIs.

Delivery domains

Add a hostname and publish the returned TXT record to prove ownership. Managed TLS and edge activation are not connected yet, so verification alone does not make the hostname ready for traffic.

POST/api/platform/domains
201 Created

Claim a custom delivery hostname and receive DNS instructions.

Required scopeworkspace:admin
Request body
{ "hostname": "media.example.com" }
POST/api/platform/domains/{domain_id}/verify
200 OK

Check the DNS TXT record and record ownership of the hostname.

Required scopeworkspace:admin

Regional policy

PUT/api/platform/delivery-policy
200 OK

Allow or deny delivery countries and read the workspace's active storage region.

Required scopeworkspace:admin
Request body
{
  "mode": "deny",
  "countries": ["KP", "RU"]
}
Country rules fail closed unless requests come through a trusted edge carrying SteadyLink country and policy headers.

Focal points and migration

PUT/api/platform/assets/{asset_id}/focal-point
200 OK

Set the default crop position for cover transforms.

Required scopeassets:write
Request body
{ "x": 0.42, "y": 0.31 }
POST/api/platform/migrations
201 Created

Create up to 100 presigned upload sessions while retaining each manifest path.

Required scopeassets:write

Webhooks and channel notifications

POST/api/platform/webhooks
201 Created

Register a custom HTTPS receiver or a Discord, Slack, or Teams destination.

Required scopeworkspace:admin
Custom receiver
{
  "url": "https://app.example.com/hooks/steadylink",
  "destinationType": "generic",
  "events": ["asset.revision.published", "asset.scan.completed"]
}
Discord destination
{
  "url": "https://discord.com/api/webhooks/...",
  "destinationType": "discord",
  "events": ["asset.scan.completed"]
}
Custom receivers get the original JSON and HMAC headers. Native channel URLs are encrypted and receive provider-specific message payloads instead. SteadyLink retries failed deliveries without creating duplicate event IDs.

Encrypted originals and SSO

Workspace encryption protects newly committed originals before storage. Existing revisions are unchanged when the setting changes.

PUT/api/platform/sso
200 OK

Configure an OpenID Connect issuer, allowed email domains, and workspace enforcement.

Required scopeworkspace:admin
Save and enable the connection, use its test login URL, then enforce it. The API rejects enforcement until that provider completes a valid login.