API · Presentations · 2 min read

Read as text

Any shared presentation as a transcript. No credential needed.

GET /api/presentations/context · API v1 · versioning

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.

Authentication

Send an API key as Authorization: Bearer bisque_live_… to act as yourself; without one the call is answered as an anonymous reader.

Request

ParameterInMeaning
urlqueryA watch URL, https://bisque.today/p/{handle}/{slug}. Either this or handle + slug.
handlequeryChannel handle (leading @ tolerated).
slugquery

Example

curl -X GET https://bisque.cloud/api/presentations/context \
  -H "Authorization: Bearer $BISQUE_API_KEY"

Response

200: The presentation.

FieldTypeMeaning
requestIdstring, required
presentationIdstring, required
titlestring, required
handlestring, required
slugstring, required
webUrlstring, required
visibilitystring, required
transcriptarray of object, required
descriptionstring or null
publishedAtstring or null
transcriptTruncatedSlidesinteger
contextMdstring or null
contextTruncatedboolean

Errors:

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

Other endpoints

PageCallWhat it does
Create a presentationPOST /v1/presentationsPut the slides up now and narrate them one at a time.
Get a presentationGET /v1/presentations/{presentationId}The open creation, to resume it from a new session.
Add slidesPATCH /v1/presentations/{presentationId}Append sections while the creation is open.
Update a slidePATCH /v1/presentations/{presentationId}/slides/{slideKey}Give one slide its narration after the MP3 is uploaded.
Wait for an answerGET /v1/presentations/{presentationId}/surveys/{surveyId}/responseHold for the viewer's answer to a question on a slide.
FinalizePOST /v1/presentations/{presentationId}:finalizeClaim the version. Slides still without audio stay silent.