Skip to main content

When to use

Fetch the raw HTML of a presentation. This is the endpoint the Slideless share viewer uses internally to load the deck into its iframe. You rarely call this directly — most integrations use the share URL (https://app.slideless.ai/share/{shareId}?token=...), which renders the deck inside the Slideless viewer chrome. Use this raw endpoint only if you’re embedding a deck into a custom iframe and want to skip the viewer.

Endpoint

GET https://europe-west1-slideless-ai.cloudfunctions.net/getSharedPresentation/{shareId}?token={token}

Auth

No header required. Access is gated by the token query parameter — an unguessable 384-bit value created at upload time.

Path / query parameters

ParamWhereDescription
shareIdpathThe presentation ID
tokenquery stringThe share token (URL-safe base64url)

Response

Success (200)

Content-Type: text/html; charset=utf-8 — the raw HTML body. Headers also include:
X-Content-Type-Options: nosniff
Cache-Control: private, no-cache
Side effects (fire-and-forget — do not block the response):
  • Increments the matched token’s accessCount
  • Updates the token’s lastAccessedAt
  • Increments the presentation’s totalViews
  • Updates the presentation’s lastViewedAt

Errors

StatusCodeWhen
400invalid-argumentMissing shareId in path
403revokedThe token has been revoked
404not-foundGeneric — also returned for “share doesn’t exist”, “token wrong”, “presentation archived” (intentionally indistinct to prevent share-ID enumeration)
405method-not-allowedUsed POST/PUT/etc.
410expiredPresentation has an expiration set and it’s past
500internalBackend error

Why the 404s look the same

To prevent attackers from probing share IDs, Slideless returns a generic 404 not-found for any of:
  • The share ID doesn’t exist
  • The share ID exists but the token is wrong
  • The share ID exists but is archived
  • No token query parameter was provided
There’s no way to tell from the response which of these happened. This is intentional.

Example

curl -i "https://europe-west1-slideless-ai.cloudfunctions.net/getSharedPresentation/0192f1c3-...?token=AbCdEf..."
Returns 200 with the HTML body, Content-Type: text/html.

Embedding pattern

If you’re building a custom viewer and want to load the deck into an iframe yourself:
<iframe
  src="https://europe-west1-slideless-ai.cloudfunctions.net/getSharedPresentation/0192f1c3-...?token=AbCdEf..."
  sandbox="allow-scripts"
  width="100%"
  height="600"
></iframe>
For most use cases, don’t do this — share the Slideless viewer URL instead. It includes fullscreen, download, the “Made with Slideless” footer, and proper sandboxing without you having to maintain it.

Next