Manage projects, credits, feeds, shows, preferences and email reports.
List projects your key can access. Use a returned _id for the other project endpoints.
200The projects.The projects.
curl -X GET "https://api.fountain.fm/v1/projects" \
-H "Authorization: Bearer $FOUNTAIN_API_KEY"{
"projects": [
{
"_id": "j7k8l9m0n1o2",
"meta": {
"label": "My Podcast Network"
},
"credits": 100,
"feeds": [
"a1b2c3d4"
],
"shows": [
"def456"
],
"billing": {
"subscription": "sub_1A2b3C4d5E6f"
}
}
]
}Get remaining credits, feeds, shows and preferences.
idstringrequiredYour project ID.
200The project overview.The project.
curl -X GET "https://api.fountain.fm/v1/projects/{id}" \
-H "Authorization: Bearer $FOUNTAIN_API_KEY"{
"project": {
"_id": "j7k8l9m0n1o2",
"meta": {
"label": "My Podcast Network"
},
"credits": 100,
"feeds": [
"a1b2c3d4"
],
"shows": [
"def456"
],
"billing": {
"subscription": "sub_1A2b3C4d5E6f"
}
}
}Get transcript indexing progress for each connected show.
idstringrequiredYour project ID.
200The indexing stats.transcriptsobject[]requiredOne row per connected show.
Show ID.
episodesnumberrequiredEpisodes in the show.
indexednumberrequiredEpisodes with an indexed transcript.
indexingnumberrequiredEpisodes queued or being transcribed.
failednumberrequiredEpisodes whose transcription failed and will not be retried.
curl -X GET "https://api.fountain.fm/v1/projects/{id}/stats" \
-H "Authorization: Bearer $FOUNTAIN_API_KEY"{
"transcripts": [
{
"show": "show:id:def456",
"episodes": 120,
"indexed": 96,
"indexing": 4,
"failed": 2
}
]
}Load the Markdown preferences agents use across sessions. Agents should read them at the start of each session. This is the only persistent store for agent user data; it is empty until preferences are saved.
Use no frontmatter and only these ## headings:
Narratives: stories and angles for clips and posts.Editorial: tone, structure and publishing rules.Captions: font, position and case.Other: other preferences.idstringrequiredYour project ID.
200The project preferences.preferencesstringrequiredMarkdown preferences. Empty if unset.
curl -X GET "https://api.fountain.fm/v1/projects/{id}/preferences" \
-H "Authorization: Bearer $FOUNTAIN_API_KEY"{
"preferences": "## Editorial\n\nCasual and direct. No emoji.\n\n## Captions\n\nBold sans-serif, bottom third, sentence case."
}Replace the entire preferences document. Read Load Project Preferences first, preserve its headings and existing preferences, then add new preferences as they are given. Pass an empty string to clear it.
idstringrequiredYour project ID.
preferencesstringrequiredProject preferences in Markdown.
200Preferences saved.okbooleanrequiredAlways true on success.
curl -X PATCH "https://api.fountain.fm/v1/projects/{id}/preferences" \
-H "Authorization: Bearer $FOUNTAIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"preferences":"## Editorial\n\nCasual and direct. No emoji.\n\n## Captions\n\nBold sans-serif, bottom third, sentence case."}'{
"preferences": "## Editorial\n\nCasual and direct. No emoji.\n\n## Captions\n\nBold sans-serif, bottom third, sentence case."
}{
"ok": true
}Connect a show you own. Find it with Search Content and pass its _id.
idstringrequiredYour project ID.
ID of the show to connect. Fountain show ID show:id:{id}. The ID of fountain.fm/show/{id} is show:id:{id}.
200The connected show.The connected show.
400The `show` ID is missing, malformed, or not a show.403The key is not an admin of the project.404No show with that ID exists.curl -X POST "https://api.fountain.fm/v1/projects/{id}/shows" \
-H "Authorization: Bearer $FOUNTAIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"show":"show:id:def456"}'{
"show": "show:id:def456"
}{
"show": {
"_id": "episode:id:abc123",
"_type": "EPISODE",
"_guid": "abcdef",
"info": {
"title": "#2394 - Palmer Luckey",
"subtitle": "The Joe Rogan Experience",
"publisher": "Joe Rogan",
"audio": "https://example.com/episodes/abc123/audio.mp3",
"video": "https://example.com/episodes/abc123/video.m3u8",
"duration": 11294,
"published": "2025-10-16T17:00:00.000Z"
},
"links": [
"show:id:def456",
"show:guid:abcdef"
]
}
}Email a project report formatted as Markdown.
idstringrequiredYour project ID.
method'EMAIL'requiredDelivery method.
destinationstringrequiredRecipient email address.
titlestringrequiredReport title in plain text.
markdownstringrequiredReport body in Markdown.
200Email sent.curl -X POST "https://api.fountain.fm/v1/projects/{id}/reports" \
-H "Authorization: Bearer $FOUNTAIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"method":"EMAIL","destination":"alice@example.com","title":"Weekly Report","markdown":"## Episode Trends\n\nYour latest episode..."}'{
"method": "EMAIL",
"destination": "alice@example.com",
"title": "Weekly Report",
"markdown": "## Episode Trends\n\nYour latest episode..."
}