Skip to main content

Goal

By the end of this page you’ll have a public share URL pointing at an HTML presentation you uploaded via the API.

Prerequisites

  • A Google or email account to sign in to the Slideless app
  • A terminal with curl
  • An HTML file you want to share (any self-contained .html works — see the Generate with Claude guide if you need one)

Step 1 — Sign in to the app

Open https://app.slideless.ai and sign in. On first sign-in a personal organization is created for you automatically.

Step 2 — Create an API key

Navigate to Organization → API Keys (in the sidebar) and click Create API key.
FieldValue
Namequickstart
ScopesCheck presentations:write (and presentations:read if you want to list later)
ExpirationOptional — leave blank for no expiration
The key starts with cko_ and is shown once. Copy it now — you can’t view it again.

Step 3 — Upload a presentation

Save your HTML somewhere or use this minimal example. Then upload:
curl -X POST https://europe-west1-slideless-ai.cloudfunctions.net/uploadSharedPresentation \
  -H "X-Process-Manager-Key: cko_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "My first deck",
    "html": "<!doctype html><html><head><title>Hello</title></head><body><h1>Hello, Slideless</h1></body></html>"
  }'
You’ll get back JSON like:
{
  "shareId": "0192f1c3-...",
  "tokenId": "0192f1c3-...",
  "token": "AbCdEf...384-bit-base64url...",
  "shareUrl": "https://app.slideless.ai/share/0192f1c3-...?token=AbCdEf..."
}

Step 4 — Open the share URL

Paste the shareUrl into a new browser tab. You’ll see your HTML rendered inside the Slideless viewer chrome — fullscreen toggle, download menu, “Made with Slideless” footer. Open it on your phone too. The same URL works everywhere.

Step 5 — Watch the view count

Refresh the dashboard’s Presentations page. You’ll see a card for the deck with totalViews ticking up every time the share URL is opened.

What just happened

StepBehind the scenes
Created API keyA cko_… key with presentations:write scope was provisioned for your org
Uploaded HTMLThe HTML was stored in private GCS; a Firestore record was created with one auto-generated share token
Opened share URLSlideless served your HTML inside a sandboxed iframe and incremented the per-token view counter

Next steps