ZenMic API Documentation
Transform text into natural-sounding audio with our simple, powerful REST API. Generate scripts, synthesize speech, and manage podcasts.
Introduction
The v4 API is the latest version of the ZenMic API. It's a streamlined, unified API that powers both the v4 Studio frontend and external integrations. Every endpoint uses Bearer token authentication with a single /api/v4/ base path.
https://zenmic.com/api/v4/All responses are JSON. Success:
{"success":true,"data":{...}}. Errors include an "error" field.
Authentication
Include your API key in the Authorization header. Find your API key in the sidebar under Get Your API Key.
Authorization: Bearer YOUR_API_KEY
POST Generate Script
Convert a topic, uploaded files, or both into a structured podcast script with scene, speaker profiles, and dialogue.
/api/v4/scriptRequest Body
{
"topic": "The future of AI in healthcare, 3 minutes, in English",
"show_name": "My Podcast",
"files": [
{
"name": "report.pdf",
"mimeType": "application/pdf",
"data": "base64_encoded_content..."
}
]
}
POST Generate Audio
Convert a dialogue script into high-fidelity TTS audio. Returns a 202 with a polling URL. Audio is generated asynchronously in the background.
/api/v4/audioRequest Body
{
"script": "s1: Welcome to the show...\n\ns2: Thanks for having me, let's dive in...",
"voice1": "Charon",
"voice2": "Zephyr",
"title": "AI in Healthcare",
"scene": "A bright modern studio",
"director_notes": "Warm, conversational pacing"
}
GET Poll Status
Poll the status of an audio generation job. No authentication required (episode IDs are public).
/api/v4/status?id=EPISODE_IDPOST Generate Idea
Get a random podcast episode idea based on your show's context and past episodes.
/api/v4/ideasRequest Body
{
"show_name": "Tech Talks"
}
POST Episodes (Manage)
List, delete, retry, or toggle publish status for episodes. Requires authentication.
/api/v4/episodesList episodes
GET /api/v4/episodes?show_id=My%20Podcast
Authorization: Bearer YOUR_API_KEY
Delete episode
POST /api/v4/episodes
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{"action": "delete", "episode_id": "a1b2"}
Retry failed episode
POST /api/v4/episodes
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{"action": "retry", "episode_id": "a1b2"}
Toggle publish
POST /api/v4/episodes
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{"action": "toggle_publish", "episode_id": "a1b2"}
You can also fetch full episode details (including transcript) via GET:
GET /api/v4/episodes?id=a1b2
Authorization: Bearer YOUR_API_KEY
POST Shows (Manage)
Create, switch, or update podcast shows. Requires authentication.
/api/v4/showsCreate show
POST /api/v4/shows
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{"action": "create", "name": "My New Show"}
List shows
GET /api/v4/shows
Authorization: Bearer YOUR_API_KEY
POST Login
Used by the v4 frontend for Google and email magic link sign-in. This endpoint is not intended for external API use. It creates a PHP session and returns the user's API key for subsequent Bearer auth.
/api/v4/login