Fountain logo
ProductsFeaturesResourcesPricing
  • Introduction
  • Getting Started
  • Finding Clips
  • Styling Clips
  • Publishing Clips
  • Daily Growth

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

Overview
Docs/Project

Project

Your API project: credits, feeds and shows, preferences, 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 every project your key belongs to. This is the only project endpoint that does not take a project ID. take the _id of a ProjectOverview here and use it for every other one.

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 an overview of your project: its remaining credits, connected feeds and shows, 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

Report how far transcript indexing has got, one row per show connected to the project.

Path parameters

idstringrequired

Your project ID.

Responses

200The indexing stats.
transcriptsobject[]required

One row per connected show.

showContentIDrequired

The show the row covers.

episodesnumberrequired

Episodes in the show.

indexednumberrequired

Episodes with an indexed transcript.

indexingnumberrequired

Episodes queued for, or in the middle of, transcription.

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 your project’s preferences: a Markdown document recording how you want an agent to work on your behalf. Agents are expected to load it at the start of every session, and it is the only place their user data persists between sessions. Empty until something is recorded.

The document carries no frontmatter and uses only these ## headings, each kept succinct:

  • Narratives: stories and angles wanted for clips and posts.
  • Editorial: tone, structure, and rules for what to make and when to publish it.
  • Captions: caption style, e.g. font, position, and case.
  • Other: everything else.

Path parameters

idstringrequired

Your project ID.

Responses

200The project preferences.
preferencesstringrequired

The preferences document as Markdown. An empty string when none are set.

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

Record a new preference as soon as it is given. The value sent replaces the stored document in full, so read it first via Load Project Preferences, which also documents the headings to use, and send it back with the addition folded in. Pass an empty string to clear it.

Path parameters

idstringrequired

Your project ID.

Request body

preferencesstringrequired

Project preferences in Markdown.

Responses

200The preferences were 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 to your project. Find it first with Search Content and send the _id of the ContentHit it returns.

Path parameters

idstringrequired

Your project ID.

Request body

showContentIDrequired

ID of the show to connect.

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"
    ]
  }
}

Send Project Report

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

Send Markdown-formatted email to report anything project-related, e.g. episode performance or candidate clips.

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 successfully.
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
Resources
  • Docs
  • FAQs
  • Changelog
  • Blog
Discover
  • Trending
  • Feed
  • Charts
Social
  • X
  • Nostr
  • Instagram
  • LinkedIn
  • YouTube
© 2026 Fountain·Privacy Policy·Terms of Use·Contact