> ## 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.

# GET /listMyPresentations

> List every presentation the authenticated user can access — decks they own plus decks shared with them

<Note>
  For most use cases, the [`slideless` CLI](/cli/overview) is easier than calling this endpoint directly. The CLI command equivalent is `slideless list` (or `slideless list --json` for machine output).
</Note>

## When to use

Enumerate every presentation the API key's user can access — owned decks plus decks the user has been invited to as a dev collaborator. Returns up to 100 results, ordered by `updatedAt` descending. Each row carries a `role` field (`owner` or `dev`).

For full per-presentation metadata (token list, per-token access counts), use [`GET /getSharedPresentationInfo/{presentationId}`](/api-reference/get-presentation).

## Endpoint

```
GET https://europe-west1-slideless-ai.cloudfunctions.net/listMyPresentations
```

## Auth

| Header          | Value                |
| --------------- | -------------------- |
| `Authorization` | `cko_…` (or `cka_…`) |

Recommended scope: `presentations:read`.

## Request

No body, no query parameters. The user is inferred from the API key.

## Response (200)

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "success": true,
  "data": {
    "presentations": [
      {
        "id": "0192f1c3-...",
        "title": "Q4 review",
        "version": 3,
        "role": "owner",
        "createdAt": "2026-04-15T10:00:00.000Z",
        "updatedAt": "2026-04-18T15:30:00.000Z",
        "totalViews": 47,
        "lastViewedAt": "2026-04-19T09:12:00.000Z",
        "shareUrl": "https://app.slideless.ai/share/0192f1c3-...?token=AbCdEf..."
      }
    ]
  }
}
```

| Field                                    | Type                    | Description                                                                            |
| ---------------------------------------- | ----------------------- | -------------------------------------------------------------------------------------- |
| `id`                                     | UUIDv7 string           | The `presentationId`                                                                   |
| `title`                                  | string                  | Display title                                                                          |
| `version`                                | number                  | Current version                                                                        |
| `role`                                   | `"owner"` \| `"dev"`    | Caller's role on this deck                                                             |
| `createdAt`, `updatedAt`, `lastViewedAt` | ISO 8601 string \| null | Timestamps                                                                             |
| `totalViews`                             | number                  | Sum of views across all share tokens                                                   |
| `shareUrl`                               | string \| null          | An active share URL (first non-revoked token), or `null` if the deck has no live token |

## Pagination

Capped at **100 results** in v1. There is no cursor; if you have more than 100 presentations, the list page in the dashboard is the recommended path.

## Examples

### curl

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -sS \
  -H "Authorization: Bearer $SLIDELESS_API_KEY" \
  https://europe-west1-slideless-ai.cloudfunctions.net/listMyPresentations
```

### Node.js

```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
const res = await fetch(
  'https://europe-west1-slideless-ai.cloudfunctions.net/listMyPresentations',
  { headers: { 'Authorization': `Bearer ${process.env.SLIDELESS_API_KEY}` } }
);

const { data } = await res.json();
for (const p of data.presentations) {
  console.log(`${p.title} (${p.role}) — v${p.version} — ${p.totalViews} views — ${p.shareUrl}`);
}
```

## Errors

| Status | Code                 | Cause                      | Fix                 |
| ------ | -------------------- | -------------------------- | ------------------- |
| `401`  | `unauthenticated`    | Missing or invalid API key | Set `Authorization` |
| `405`  | `method-not-allowed` | Used POST/PUT/etc.         | Use `GET`           |
| `500`  | `internal`           | Backend error              | Retry with backoff  |

## Next

* **[GET /getSharedPresentationInfo/{presentationId}](/api-reference/get-presentation)** — Full metadata for one presentation, including all share tokens.
