Fountain logo
ProductsFeaturesResourcesPricing
  • Overview
  • Getting started
  • Connect your agent
  • Finding clips
  • Styling clips
  • Publishing clips
  • Daily Growth
  • Publishing episodes
  • Analytics
  • Archive search

Endpoints

Overview
Project
  • GETList Projects
  • GETLoad Project
  • GETGet Project Stats
  • GETLoad Project Preferences
  • PATCHUpdate Project Preferences
  • POSTConnect Show
  • POSTSend Project Report
Content
Search
Publishing
Uploads
Social

Models

Docs/Project

Project

Manage projects, credits, feeds, shows, preferences and email reports.

In this group

  • GETList Projects
  • GETLoad Project
  • GETGet Project Stats
  • GETLoad Project Preferences
  • PATCHUpdate Project Preferences
  • POSTConnect Show
  • POSTSend Project Report

List Projects

GEThttps://api.fountain.fm/v1/projects

List projects your key can access. Use a returned _id for the other project endpoints.

Responses

200The projects.
projectsProjectOverview[]required

The projects.

Example request
curl -X GET "https://api.fountain.fm/v1/projects" \
  -H "Authorization: Bearer $FOUNTAIN_API_KEY"
Response · 200
{
  "projects": [
    {
      "_id": "j7k8l9m0n1o2",
      "meta": {
        "label": "My Podcast Network"
      },
      "credits": 100,
      "feeds": [
        "a1b2c3d4"
      ],
      "shows": [
        "def456"
      ],
      "billing": {
        "subscription": "sub_1A2b3C4d5E6f"
      }
    }
  ]
}

Load Project

GEThttps://api.fountain.fm/v1/projects/{id}

Get remaining credits, feeds, shows and preferences.

Path parameters

idstringrequired

Your project ID.

Responses

200The project overview.
projectProjectOverviewrequired

The project.

Example request
curl -X GET "https://api.fountain.fm/v1/projects/{id}" \
  -H "Authorization: Bearer $FOUNTAIN_API_KEY"
Response · 200
{
  "project": {
    "_id": "j7k8l9m0n1o2",
    "meta": {
      "label": "My Podcast Network"
    },
    "credits": 100,
    "feeds": [
      "a1b2c3d4"
    ],
    "shows": [
      "def456"
    ],
    "billing": {
      "subscription": "sub_1A2b3C4d5E6f"
    }
  }
}

Get Project Stats

GEThttps://api.fountain.fm/v1/projects/{id}/stats

Get transcript indexing progress for each connected show.

Path parameters

idstringrequired

Your project ID.

Responses

200The indexing stats.
transcriptsobject[]required

One row per connected show.

showContentIDrequired

Show ID.

episodesnumberrequired

Episodes in the show.

indexednumberrequired

Episodes with an indexed transcript.

indexingnumberrequired

Episodes queued or being transcribed.

failednumberrequired

Episodes whose transcription failed and will not be retried.

Example request
curl -X GET "https://api.fountain.fm/v1/projects/{id}/stats" \
  -H "Authorization: Bearer $FOUNTAIN_API_KEY"
Response · 200
{
  "transcripts": [
    {
      "show": "show:id:def456",
      "episodes": 120,
      "indexed": 96,
      "indexing": 4,
      "failed": 2
    }
  ]
}

Load Project Preferences

GEThttps://api.fountain.fm/v1/projects/{id}/preferences

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.

Path parameters

idstringrequired

Your project ID.

Responses

200The project preferences.
preferencesstringrequired

Markdown preferences. Empty if unset.

Example request
curl -X GET "https://api.fountain.fm/v1/projects/{id}/preferences" \
  -H "Authorization: Bearer $FOUNTAIN_API_KEY"
Response · 200
{
  "preferences": "## Editorial\n\nCasual and direct. No emoji.\n\n## Captions\n\nBold sans-serif, bottom third, sentence case."
}

Update Project Preferences

PATCHhttps://api.fountain.fm/v1/projects/{id}/preferences

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.

Path parameters

idstringrequired

Your project ID.

Request body

preferencesstringrequired

Project preferences in Markdown.

Responses

200Preferences saved.
okbooleanrequired

Always true on success.

Example request
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."}'
Request body
{
  "preferences": "## Editorial\n\nCasual and direct. No emoji.\n\n## Captions\n\nBold sans-serif, bottom third, sentence case."
}
Response · 200
{
  "ok": true
}

Connect Show

POSThttps://api.fountain.fm/v1/projects/{id}/shows

Connect a show you own. Find it with Search Content and pass its _id.

Path parameters

idstringrequired

Your project ID.

Request body

showContentIDrequired

ID of the show to connect. Fountain show ID show:id:{id}. The ID of fountain.fm/show/{id} is show:id:{id}.

Responses

200The connected show.
showContentHitrequired

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.
Example request
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"}'
Request body
{
  "show": "show:id:def456"
}
Response · 200
{
  "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"
    ]
  }
}

Send Project Report

POSThttps://api.fountain.fm/v1/projects/{id}/reports

Email a project report formatted as Markdown.

Path parameters

idstringrequired

Your project ID.

Request body

method'EMAIL'required

Delivery method.

destinationstringrequired

Recipient email address.

titlestringrequired

Report title in plain text.

markdownstringrequired

Report body in Markdown.

Responses

200Email sent.
Example request
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..."}'
Request body
{
  "method": "EMAIL",
  "destination": "alice@example.com",
  "title": "Weekly Report",
  "markdown": "## Episode Trends\n\nYour latest episode..."
}
Products
  • Podcasters
  • Artists
  • Listeners
  • Pricing
Features
  • Hosting
  • Clips and social
  • Daily Growth
  • Archive search
  • Monetization
  • Livestreams
  • Community
  • Analytics
  • All features
Resources
  • Docs
  • FAQs
  • Changelog
  • Blog
Discover
  • Trending
  • Feed
  • Charts
  • Search
Social
  • X
  • Nostr
  • Instagram
  • LinkedIn
  • YouTube
© 2026 Fountain·Privacy Policy·Terms of Use·Contact