Public Article Audio

Public audio resolve by slug — works for anonymous visitors on /story/[slug]. No listener token required, no api_key gate. Three states:

200 → audio is ready. Body: {audio_url, audio_status: "ready"} 202 → article exists but render-job is queued / running. We kick off a render-on-demand if no job exists yet, then return {audio_status, retry_after_seconds}. 404 → article slug doesn't exist OR is listener-private and the viewer doesn't own it (audio_status='listener_private').

AudioPlayer treats 202 as "still rendering — show friendly UI and poll" rather than throwing an error like 404 used to.

Wrapped end-to-end in try/except so any unexpected failure surfaces as a 202 'unavailable' rather than a 500 the listener can see. The exception still hits Sentry + structured logs.

get/v1/articles/{article_slug}/audio

Request

  • Base URL: https://api.storyflo.com (the document declares no server; this is the origin it was published from)
  • URL: https://api.storyflo.com/v1/articles/{article_slug}/audio
  • Auth: none declared

Path parameters

article_slugstring required

Headers

x-listener-tokenstring nullable
x-storyflo-email-tokenstring nullable

Response

Successful Response

unknown required

Changes

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