API reference
Build complete file workflows on the same API used by the SteadyLink dashboard. Start with a scoped key, then work through buckets, files, revisions, delivery, analytics, or conversions.
Base URL
https://api.steadylink.ioCore resources
GETBuckets
/api/assets/GETFiles and folders/api/assets/{bucket_id}/objectsPOSTUploads/api/upload-batchesGETRevisions/api/assets/{asset_id}/versionsPOSTDelivery access/api/assets/{asset_id}/signed-urlGETAnalytics/api/analytics/summaryGETPlatform controls/api/platform/domainsRequest conventions
Headers
NameTypeDescription
X-API-KeystringrequiredA workspace API key. Use this instead of a bearer token for server integrations.
X-Workspace-IduuidSelects a workspace for a user session. API keys are already bound to one workspace.
Content-TypestringUse application/json for API bodies. Presigned byte uploads use the content type declared by the upload session.
Idempotency-KeystringRecommended when completing an upload session. Reuse it when retrying the same completion request.
All authenticated API responses are scoped to the workspace resolved from the key or the
X-Workspace-Id header.Complete examples
curl
curl "https://api.steadylink.io/api/assets/?limit=20" \
-H "X-API-Key: $STEADYLINK_API_KEY"JavaScript
const response = await fetch("https://api.steadylink.io/api/assets/?limit=20", {
headers: { "X-API-Key": process.env.STEADYLINK_API_KEY }
});
if (!response.ok) throw await response.json();
const { items, nextCursor } = await response.json();Python
import os
import requests
response = requests.get(
"https://api.steadylink.io/api/assets/",
params={"limit": 20},
headers={"X-API-Key": os.environ["STEADYLINK_API_KEY"]},
timeout=30,
)
response.raise_for_status()
items = response.json()["items"]Need another path?