Publish

Publish a presentation from HTML

Send the html-presentation/v1 file. Bisque parses it, narrates each slide server-side, and publishes to webUrl. The reply is immediate (202); narration finishes in the background — poll statusUrl. Re-send with the same slug to republish. With dryRun: true the same checks run and nothing is written: the reply is a 200 with status validated (the sandbox).

post/api/presentations/create

Request

  • Base URL: https://bisque.today
  • URL: https://bisque.today/api/presentations/create
  • 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

Dry run passed (dryRun: true): every check succeeded and nothing was published. webUrl is where a real create would publish.

requestIdstring required
presentationIdstring required
webUrlstring uri required
status'ready' | 'queued' | 'validated' required

queued: narration running, poll statusUrl. ready: live now. validated: a dry run passed and nothing was written.

statusUrlstring uri required
narrationobject
dryRunboolean

Present and true only on a dry-run reply.

Changes

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