Skip to main content
Use the Cloud API to create a temporary presentation URL, then load that URL in an iframe. This lets people view, edit, or export a specific presentation inside your application without exposing your Presenton API key or account session in browser code.
The integration endpoint is available in the Presenton Cloud API v3. Create the iframe URL on your server, not directly in the browser.

How the integration works

  1. Your browser asks your application server for a presentation preview.
  2. Your server verifies that the signed-in application user may access the presentation.
  3. Your server calls POST /api/v3/presentation/integrate with its Presenton API key.
  4. Presenton returns a scoped, expiring frontend_url containing a presentation token.
  5. Your server returns that URL to the browser, which uses it as the iframe src.
The presentation token can access only the selected presentation and only the capabilities listed in scopes. It does not expose your main API key.

Before you begin

You need:
  • A Presenton Cloud API key stored in a server-side secret such as PRESENTON_API_KEY.
  • The UUID of a presentation owned by the same Presenton account.
  • A backend route in your application that authenticates your users before creating preview URLs.
If you generate the presentation through the API, use the returned presentation_id. You can also retrieve presentation IDs with List presentations.

1. Choose the iframe permissions

Every request must include presentation:read. Add only the capabilities your embedded experience needs. For a preview, use only:
For an embedded editor that can also export, request all three scopes:
Anyone who obtains the generated URL can use its granted capabilities until it expires. Keep the scope set narrow and the lifetime short.

2. Create an integration URL

Call the integrate endpoint from your server with your Presenton API key:

Request fields

To set a shorter lifetime, calculate a future UTC timestamp when your server makes the request and send it as expires_at. The server example in the next section creates a one-hour link.
Presenton returns the token metadata and a ready-to-use URL:
Use frontend_url exactly as returned. It already includes the presentation ID, presentation type, and scoped token; you do not need to construct the URL yourself.

3. Add a server endpoint

The following Express route creates a one-hour, read-only preview URL. Replace requireUser and userCanViewPresentation with your application’s authentication and authorization checks.
Do not return your Presenton API key or place it in a public environment variable. The browser needs only the temporary frontend_url.

4. Render the iframe

Use the URL returned by your backend as the iframe source.
Add responsive sizing in your application stylesheet:
Always provide a descriptive title for assistive technology. If the presentation is essential content, also provide a visible fallback link or explanation outside the iframe.

Refresh expired previews

An expired token cannot be extended. Request a new integration URL from your backend and replace the iframe src. A practical pattern is to keep the returned expiresAt value in memory and request a replacement shortly before it expires. Do not persist integration URLs in local storage, analytics events, logs, or shared caches.

Security checklist

  • Call the integrate endpoint only from trusted server-side code.
  • Authorize the current application user before creating a URL for a presentation.
  • Use presentation:read alone for preview-only experiences.
  • Choose the shortest useful expiry; the maximum is three days.
  • Send Cache-Control: no-store when your backend returns the URL.
  • Treat frontend_url as a temporary credential because it contains the token.
  • Create a new URL when permissions change instead of reusing an older URL.

Troubleshooting

Create a presentation integration token

Review the complete request and response schema in the API reference.