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.

HTML
<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.

JavaScript
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 page