An HTTP API for article narration

Two endpoints run the same pipeline the app itself uses: POST /articles and GET /articles/:id.
Access is granted per publication. Tell me what you are building and I will set you up with credentials and the exact contract.

POST /articles

url: url of the article to convert
title: title of the article (optional; defaults to the url)

Conversion is queued immediately and runs the full pipeline: images described, tables summarised, code blocks explained, pauses added.

// ->> request
{
  "url": "https://website.com/blog/article-slug",
  "title": "Article title"
}

// <<- response
{
  "status": "scheduled"
}

GET /articles/:id

Poll this to follow a conversion. Text extraction and audio generation report separately, so you can show progress rather than a spinner: status_text reaches Ready first, then status_audio, and audio_url becomes playable.

// <<- response
{
  "id": "66f572166ec571d315eaae54",
  "url": "https://website.com/blog/article-slug",
  "title": "Article title",
  "status_text": "Ready",
  "status_audio": "Ready",
  "audio_url": "https://article2audio.app/a/66f572166ec571d315eaae54.mp3",
  "duration": 512
}

Built for the first publication that asks

Specified, not built. Each is small, and I would rather build the ones somebody actually needs than guess:

  • The article id in the POST response, so you can poll without looking it up
  • Posting the article html directly, for pages a crawler cannot reach
  • Choosing a voice per request rather than per account
  • A callback when a conversion finishes, instead of polling

Say which you need in the form below.

Request Access

Please submit the form below and I will get back to you with the details on how you can integrate with article2audio on your website.
Oleksandr, creator of article2audio

Please, enter your name!
Please, provide a valid email address!
Please, enter your website!
Which of these do you need? (optional)
Top