API reference
Curated reference for content, distribution, integrations, analytics, and organization endpoints.
Full reference
Complete endpoint catalog, including admin, voice cloning, and advanced configuration APIs.
Typical integration flow
Get your credentials
Go to Settings → Integrations → API in your project dashboard to find your Project ID and API Key.
Create or update content
Use the API to create and update content items from your CMS or backend. Set a
source_id to your CMS article ID when creating content—this is optional but recommended. If you’re sending HTML or source URLs, see content extraction for how BeyondWords processes page content.Install the player
Unlike the Magic Embed, WordPress, and Ghost integrations, the API does not install the player automatically. Install the player separately on your website or app using the JavaScript, iOS, or Android SDK.
Listen for changes (optional)
Use webhooks to receive notifications when content is created, updated, or deleted, rather than polling the API.
Base URL
All requests use HTTPS. The current stable version isv1:
Authentication
All API requests require your Project ID and API Key. Include your API key as a header on every request. Your Project ID is typically included as a path parameter (as in the example below).401 Unauthorized response.
Request format
The API uses JSON for both requests and responses. Send request bodies as JSON with aContent-Type: application/json header. File uploads are the exception—they use multipart/form-data.
Core resources
The API provides access to several resources. The primary ones include:Projects
This object represents your BeyondWords project and its settings. See Projects in the API reference.Content
This object represents your generated content and its associated metadata. You can list, create, retrieve, update, and delete content, and regenerate or upload audio. When creating content, publishers are encouraged to include asource_id—your own identifier for the article, such as your CMS article ID. This is optional, but avoids having to store the content_id returned by the API. You can then load the player using sourceId instead of contentId, which simplifies integration when you already have an article ID in your system.
See Generating content in the API reference. Related sections cover extraction, pronunciation settings, script settings, video settings, and background music settings.
Voices
List, create, and manage organization voices, speakers, and languages.Player
Retrieve audio, video, and player configuration using identifiers such as Content ID, Source ID, Source URL, or Playlist ID. If you set asource_id when creating content, get player by source ID is often the simplest way to embed the player—you can use the same ID your CMS already knows.
- Get player by content ID
- Get player by playlist ID
- Get player by source ID
- Get player by source URL
- Get player by multiple identifiers
Playlists
BeyondWords supports three playlist types. Only standard and smart playlists are created and managed through the API—dynamic playlists are built client-side in the player and are not API resources.| Type | API type | Use case | How to create |
|---|---|---|---|
| Standard | manual | Fixed editorial collections—daily roundups, story packages, or any hand-picked set of content | Create playlist with type: "manual" and a list of content IDs |
| Smart | auto | Automatically updating feeds—e.g., all articles by an author, or all content matching a topic | Create playlist with type: "auto" and filtering rules |
| Dynamic | — | User-curated queues—e.g., an “add to queue” feature where visitors build their own playlist | Not via the API. Pass an array of content identifiers to the player’s playlist property. See dynamic playlists. |
playlistId with get player by playlist ID. For dynamic playlists, use the JavaScript player SDK directly.
Standard and smart playlist endpoints:
- List playlists
- Create playlist
- Get playlist
- Update playlist
- Delete playlist
- Get playlist settings
- Update playlist settings
Distribution
Beyond the player endpoints, you can manage playlists, access tiers, and podcast feed settings via the API.Integrations
Use Webhooks to receive HTTP notifications when content is created, updated, or deleted. See the Webhooks guide for setup instructions. Import content from external RSS feeds via the RSS feed importer. See the RSS feed importer guide. Configure Magic Embed via the Magic Embed API. See the Magic Embed guide. Connect Ghost via the Ghost integration API. See the Ghost guide.Analytics
Retrieve analytics for an organization, project, content item, or ad. Filter by time period and aggregate by year, month, week, day, or hour.- Get organization analytics
- List projects analytics
- Get project analytics
- List content analytics
- Get content analytics
- List ads analytics
- Get ad analytics
Monetization
Manage ads via the API.Error handling
The API uses standard HTTP response codes:2xx—Success4xx—Client error (check your request)5xx—Server error