---
title: "Read a presentation as text"
method: GET
path: "/api/presentations/context"
tags: ["Read"]
---

# Read a presentation as text

`GET /api/presentations/context`

## Request

- Base URL: `https://bisque.today`
- URL: `https://bisque.today/api/presentations/context`
- Auth: one of:
  - none
  - HTTP bearer

Metadata, the per-slide narration transcript with timestamps, and the bundle's `context.md`. Public and unlisted presentations resolve without credentials; send a bearer credential to read your own private ones. Anonymous callers get 60 requests per 10 minutes per IP, authenticated callers 300.

## Query parameters

- `url` string, uri
- `handle` string
- `slug` string

## Response `200`

The presentation.

- PresentationContext
  - `requestId` string, required
  - `presentationId` string, required
  - `title` string, required
  - `description` string, nullable
  - `handle` string, required
  - `slug` string, required
  - `webUrl` string, uri, required
  - `visibility` string, required
  - `publishedAt` string, date-time, nullable
  - `transcript` object[], required
    - `slideIndex` integer
    - `startSec` number
    - `title` string
    - `text` string: The slide's narration.
  - `transcriptTruncatedSlides` integer
  - `contextMd` string, nullable
  - `contextTruncated` boolean

## Other responses

- `400`: Neither `url` nor `handle` + `slug` identified a presentation.
- `401`: A credential was sent and is unusable.
- `404`: No presentation you can see at that address.
- `429`: Rate limited (`CONTEXT_RATE_LIMITED`). Wait `Retry-After` seconds.

---

[API](https://skmtc.dev/bisque/apis/bisque-api.md) · [All operations](https://skmtc.dev/bisque/apis/bisque-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bisque/apis/bisque-api/revisions/5dd7a3c62937?raw)
