Upload widgets
Create an origin-restricted uploader in the dashboard and place the generated embed on your website.
Embed the widget
Open Share, configure a widget, and copy its embed. The public widget key identifies the configuration. It is not a workspace credential.
<div
data-steadylink-widget="wdg_public_key"
data-api="https://api.steadylink.io"
data-button-text="Send artwork"
data-accept="image/*,.pdf"
data-max-bytes="26214400"
></div>
<script async src="https://steadylink.io/widget/v1.js"></script>Completion callback
Listen for steadylink:complete on the widget element. The event detail includes the status, asset ID, and replacement request ID when applicable.
document.querySelector('[data-steadylink-widget]')
.addEventListener('steadylink:complete', (event) => {
console.log(event.detail)
})Security and upload flow
The browser requests a ten-minute, origin-bound session with one create or replace permission. File bytes upload directly to the returned presigned storage URL. The session is consumed when the upload completes and cannot be replayed. Workspace API keys and storage credentials are never sent to the browser.
Replacement widgets require approval by default. Choose automatic publishing only for a workflow where submitted files are trusted.
Open the example pageNeed another path?