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 publish --kind <presentation|app|plan> --description "…", run from inside a linked deck folder.When to use
Turn a presentation you own into a public marketplace listing. The listing is pinned to one immutable version of the deck — later pushes do not move it. To re-pin, call this endpoint again or useslideless listing update --republish-version.
Publishing is free and instant — there is no review queue.
Endpoint
Auth
| Header | Value |
|---|---|
Authorization | Bearer cko_… — must belong to the presentation’s owner |
marketplace:publish scope. See API keys.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
presentationId | UUIDv7 string | yes | The deck to publish. Caller must be its owner. |
kind | "presentation" | "app" | "plan" | yes | The listing’s purpose — message, machine, or blueprint. See The three kinds. |
interactive | boolean | no | Whether the listing is interactive. The backend forces true for app; defaults to false for presentation. |
description | string | yes | One- or two-line catalog summary. |
slug | string | no | Permanent listing id. Lowercase, hyphenated, unique. Auto-derived from the title if omitted. |
title | string | no | Listing title. Defaults to the presentation’s title. |
tags | string[] | no | Search tags. |
techStack | string[] | no | Technologies the listing is built with or built for, as free-form lowercase technology slugs (e.g. ["nextjs","firebase","n8n"]). One canonical slug per technology; no display names or versions. Especially useful for plan listings. See Tech stack. |
category | string | no | Category bucket. |
version | number | no | Version to pin. Defaults to the deck’s current version. |
status: "public". Use updateMarketplaceListing to switch it to unlisted.
Response (200)
Examples
curl
Node.js
Errors
| Status | Code | Cause | Fix |
|---|---|---|---|
400 | invalid-argument | Missing kind/description, or bad slug syntax | Supply both required fields; slugs are lowercase/hyphenated |
401 | unauthenticated | Missing or invalid API key | Set Authorization |
403 | permission-denied | Key lacks marketplace:publish, or caller is not the owner | Recreate the key with the scope; publish from the owner’s account |
404 | not-found | presentationId unknown | Verify the ID via listMyPresentations |
409 | conflict | Slug already taken, or the deck already has a listing | Pass a different slug, or use updateMarketplaceListing |
500 | internal | Backend error | Retry with backoff |
Next
- GET /getMarketplaceListing — read back the listing you just published.
- Publishing guide — the full end-to-end flow.