Documentation Index
Fetch the complete documentation index at: https://docs.slideless.ai/llms.txt
Use this file to discover all available pages before exploring further.
For most use cases, the
slideless CLI is easier than calling this endpoint directly. The CLI command equivalent is slideless share-email <presentationId> --to <email>. End-to-end walkthrough: Send a presentation by email.When to use
You already have apresentationId (from POST /commitPresentationVersion or slideless share) and you want to email it to one or more recipients. The endpoint:
- Mints a unique named token per recipient by default (recipient email becomes the token name), so per-recipient open tracking comes for free via the existing
accessCount/lastAccessedAtfields on eachShareToken. - Sends a branded email via Resend (from
noreply@mail.slideless.ai). - Records every send in
shared_presentations/{presentationId}/email_sends/{autoId}as an append-only audit trail.
tokenId.
Endpoint
Auth
| Header | Value |
|---|---|
Authorization | Bearer cko_… (org key) or Bearer cka_… (admin key) |
Content-Type | application/json |
presentations:write. Organization keys must belong to the same org as the presentationId.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
presentationId | string | yes | The presentation to email. Must belong to the caller’s org. |
emails | string[] | yes | 1–20 recipient email addresses. Case-insensitive, de-duplicated. |
message | string | no | Personal note shown in the email body. ≤2000 chars. |
subject | string | no | Custom subject line. Defaults to "<senderEmail> shared: <title>" (or "Shared with you: <title>" if no sender email is known). ≤200 chars. |
tokenId | string | no | If set, reuse this existing token for every recipient instead of minting per-recipient tokens. Must be an active (non-revoked) token on the share. |
Response (200)
data.failed[] contains per-recipient failures inside an otherwise-200 response. The endpoint only returns a non-2xx status when a preflight condition fails (auth, not-found, too-many-recipients, …) — i.e. when no email could be attempted for any recipient.
Error responses
| Status | code | When |
|---|---|---|
| 400 | missing-recipients | emails was empty |
| 400 | too-many-recipients | >20 recipients |
| 400 | message-too-long | message >2000 chars |
| 400 | invalid-argument | Invalid presentationId, subject too long, unknown tokenId |
| 401 | unauthenticated | Missing/invalid API key |
| 403 | permission-denied | Key doesn’t belong to the share’s org |
| 404 | not-found | presentationId doesn’t exist |
| 429 | rate-limited | Too many calls |
| 500 | internal | Backend error |
nextAction string written for consumers (including agents) to act on programmatically.
Examples
curl
Node.js
See also
- Send a presentation by email (guide)
POST /commitPresentationVersion— to create thepresentationIdin the first place- Share tokens — the per-recipient token model