Publish

Publish with audio you synthesized locally (deprecated)

Superseded by POST /v1/presentations, which puts the slides up before narrating them. This one publishes nothing until every slide is narrated, so the watch URL does not work until the whole run finishes. It keeps working. Narrate each slide with the bisque-voice CLI, then post the HTML plus per-slide MP3s and word timings; slides you omit from audio carry their audio forward when their narration text is unchanged. API-key callers only.

post/api/presentations/publish-narrated

Request

  • Base URL: https://bisque.today
  • URL: https://bisque.today/api/presentations/publish-narrated
  • Auth: HTTP bearer

Headers

Idempotency-Keystring

A unique key per logical request (a UUID). A retry with the same key and body replays the first response with Idempotent-Replayed: true instead of publishing again; the same key with a different body is a 422 IDEMPOTENCY_KEY_REUSED. Keys last 24 hours.

Request body

indexHtmlstring required

The whole html-presentation/v1 file.

titlestring

Overrides the title parsed from the HTML.

slugstring

URL slug under your channel. Reuse it to republish.

presentationIdstring

Republish an existing presentation by id instead of slug.

handlestring

Which of your channels to publish on; defaults to your account's.

dryRunboolean

Sandbox: run every check a real create runs (format, slug and org conflicts, tier cap, credit preflight) and write nothing. The reply is a 200 with status validated.

visibility'public' | 'unlisted' | 'private' | 'org'

Who can open the watch link. Unlisted unless you say otherwise; org publishes into the bisque.team organization named by org.

orgstring

bisque.team organization slug; publishes into the company space.

contextMdstring

Agent-facing background shipped with the bundle as context.md.

designMdstring

Design notes shipped with the bundle.

voiceIdstring

Narration voice tag; defaults to the account's saved voice.

madeWithstring[]

Models credited with making this presentation — e.g. ["Claude Opus 5", "Kokoro af_heart"]. Free text, shown to viewers in the watch page's ⋯ menu. Omit to keep what a previous publish recorded; send [] to clear it.

descriptionstring

Plain-text description shown under the player on the watch page, with web URLs linked — a summary, then the sources. Omit to keep what a previous publish sent; send an empty string to clear it.

speechSpeednumber

Narration speed. 1.0 is normal.

voiceStabilitynumber

How closely the voice keeps to its reference, for voices that take it. Omit for the voice's default.

assetsobject

Page assets (fonts, images) keyed by bundle path.

Response

Accepted; upload the bytes to uploadUrls, then POST completeUrl.

requestIdstring required
presentationIdstring required
webUrlstring uri
uploadUrlsobject[] required

One signed PUT target per file whose bytes the server does not already have.

completeUrlstring uri required

POST here with files once every upload succeeded.

filesobject[] required

Echo back verbatim as the files of the complete call.

Changes

No recorded changes to this operation across all 1 revision of this API.