Skip to main content

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 listing get <slug> (or slideless listing get <slug> --json).

When to use

Inspect one marketplace listing in detail — its README, tags, counters, and the file manifest of the pinned version. Works for both public and unlisted listings: an unlisted listing is reachable here by anyone who knows its slug — the slug is the only secret. This endpoint is public — no API key — and its responses are cached.

Endpoint

GET https://europe-west1-slideless-ai.cloudfunctions.net/getMarketplaceListing?slug={slug}

Auth

None. Do not send an Authorization header.

Query parameters

ParamTypeDescription
slugstringThe listing slug. Required.

Response (200)

{
  "success": true,
  "data": {
    "slug": "q4-pitch-template",
    "title": "Q4 Pitch Template",
    "description": "Investor-ready pitch skeleton — 8 slides, placeholder copy.",
    "readme": "# Q4 Pitch Template\n\nA clean 8-slide skeleton…",
    "kind": "presentation",
    "interactive": false,
    "category": "business",
    "tags": ["pitch", "startup", "investor"],
    "techStack": ["html", "css"],
    "status": "public",
    "version": 3,
    "stars": 128,
    "remixCount": 540,
    "viewCount": 3120,
    "remixedFromSlug": null,
    "remixedFromTitle": null,
    "entry": "index.html",
    "files": [
      { "path": "index.html", "bytes": 24800 },
      { "path": "styles.css", "bytes": 4100 }
    ],
    "totalBytes": 28900,
    "createdAt": "2026-04-15T10:00:00.000Z",
    "updatedAt": "2026-04-18T15:30:00.000Z",
    "marketplaceUrl": "https://slideless.ai/marketplace/q4-pitch-template"
  }
}
FieldTypeDescription
slug, title, descriptionstringDisplay metadata.
readmestring | nullLong-form Markdown shown on the listing page.
kind"presentation" | "app" | "plan"The listing’s purpose. See The three kinds.
interactivebooleanWhether the listing is interactive. A badge, not a category — always true for app.
categorystring | nullCategory bucket.
tagsstring[]Search tags.
techStackstring[]Technologies the listing is built with or built for. Free-form lowercase technology slugs (e.g. nextjs, firebase). May be empty. See Tech stack.
status"public" | "unlisted"Discoverability. See Public vs unlisted.
versionnumberThe pinned source version.
stars, remixCount, viewCountnumberPublic counters — stars, slideless remix runs, and listing-page opens.
remixedFromSlugstring | nullIf this listing was published from a remixed deck, the source listing’s slug; otherwise null. See Remix lineage.
remixedFromTitlestring | nullThe source listing’s title, or null.
entrystringThe deck’s entry HTML file.
filesarrayManifest of the pinned version — path and bytes per file.
totalBytesnumberSum of all file sizes.
createdAt, updatedAtISO 8601 stringTimestamps.
marketplaceUrlstringThe public website URL.

Examples

curl

curl -sS "https://europe-west1-slideless-ai.cloudfunctions.net/getMarketplaceListing?slug=q4-pitch-template"

Node.js

const slug = 'q4-pitch-template';
const res = await fetch(
  `https://europe-west1-slideless-ai.cloudfunctions.net/getMarketplaceListing?slug=${slug}`
);

const { data: listing } = await res.json();
console.log(`${listing.title} (${listing.kind}) — v${listing.version} — ★${listing.stars}`);

Errors

StatusCodeCauseFix
400invalid-argumentMissing slug query parameterAppend ?slug=…
404not-foundNo listing with that slugCheck the slug via listMarketplaceListings
405method-not-allowedUsed POST/PUT/etc.Use GET
500internalBackend errorRetry with backoff

Next