Skip to main content
Use the Podcast monitoring endpoints to search for podcasts by keyword or track new episodes from specific shows. Stay informed about brand mentions, industry discussions, and competitor activity across the podcast ecosystem.

Endpoints

Podcast monitoring provides two endpoints:
EndpointDescription
POST /v1/searches/podcast/keywordsSearch across all podcasts by keywords
POST /v1/searches/podcast/episodesMonitor episodes from a specific podcast

How it works

  1. Create a saved search using one of the Podcast endpoints
  2. Trigify checks for new podcast content on your configured frequency (DAILY, WEEKLY, MONTHLY, or QUARTERLY; HOURLY is available on Enterprise and Custom plans only)
  3. New episodes matching your criteria appear in your search results
  4. Optionally trigger workflows on new results for alerts, enrichment, or integrations

Use POST /v1/searches/podcast/keywords to find podcast episodes matching your keywords across all podcasts.

Supported filters

FieldTypeRequiredDescription
namestringYesA descriptive name for your saved search
keywordsstring[]YesKeywords to search for (OR logic between keywords)
keywords_andstring[]NoAll of these keywords must appear (AND logic)
keywords_notstring[]NoExclude episodes containing these keywords
time_framestringNoHow far back to search: past-24h, past-week, past-month, past-year, all-time
max_resultsnumberNoMaximum episodes to return per run (default: 50)
frequencystringNoHow often to check: DAILY, WEEKLY, MONTHLY, QUARTERLY; HOURLY is Enterprise/Custom only
The total number of keywords across keywords, keywords_and, and keywords_not must not exceed 10.
curl -X POST https://api.trigify.io/v1/searches/podcast/keywords \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "AI Startup Podcasts",
    "keywords": ["AI startups", "machine learning"],
    "keywords_not": ["crypto", "blockchain"],
    "time_frame": "past-week",
    "frequency": "DAILY",
    "max_results": 25
  }'

Episode monitoring

Use POST /v1/searches/podcast/episodes to monitor new episodes from a specific podcast.

Supported filters

FieldTypeRequiredDescription
namestringYesA descriptive name for your saved search
podcast_idstringYesThe podcast identifier (see Finding podcast IDs below)
podcast_namestringYesThe name of the podcast
podcast_image_urlstringNoURL to the podcast cover image
podcast_descriptionstringNoA short description of the podcast
max_resultsnumberNoMaximum episodes to return per run (default: 50)
frequencystringNoHow often to check: DAILY, WEEKLY, MONTHLY, QUARTERLY; HOURLY is Enterprise/Custom only

Create an episode monitor

curl -X POST https://api.trigify.io/v1/searches/podcast/episodes \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Track All-In Podcast",
    "podcast_id": "1502871393",
    "podcast_name": "All-In Podcast",
    "podcast_description": "Industry, tech, and politics with Chamath, Jason, Sacks, and Friedberg",
    "frequency": "WEEKLY",
    "max_results": 10
  }'
const response = await fetch("https://api.trigify.io/v1/searches/podcast/episodes", {
  method: "POST",
  headers: {
    "x-api-key": "YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    name: "Track All-In Podcast",
    podcast_id: "1502871393",
    podcast_name: "All-In Podcast",
    podcast_description: "Industry, tech, and politics with Chamath, Jason, Sacks, and Friedberg",
    frequency: "WEEKLY",
    max_results: 10,
  }),
});
const data = await response.json();
import requests

response = requests.post(
    "https://api.trigify.io/v1/searches/podcast/episodes",
    headers={
        "x-api-key": "YOUR_API_KEY",
        "Content-Type": "application/json",
    },
    json={
        "name": "Track All-In Podcast",
        "podcast_id": "1502871393",
        "podcast_name": "All-In Podcast",
        "podcast_description": "Industry, tech, and politics with Chamath, Jason, Sacks, and Friedberg",
        "frequency": "WEEKLY",
        "max_results": 10,
    },
)
data = response.json()

Finding podcast IDs

Before you can monitor a specific podcast, you need its podcast_id. Use the podcast search endpoint to look it up:
curl -X POST https://api.trigify.io/v1/searches/podcasts/search \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "All-In Podcast"
  }'
const response = await fetch("https://api.trigify.io/v1/searches/podcasts/search", {
  method: "POST",
  headers: {
    "x-api-key": "YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    query: "All-In Podcast",
  }),
});
const results = await response.json();
// Use the podcast_id from the results to create an episode monitor
import requests

response = requests.post(
    "https://api.trigify.io/v1/searches/podcasts/search",
    headers={
        "x-api-key": "YOUR_API_KEY",
        "Content-Type": "application/json",
    },
    json={
        "query": "All-In Podcast",
    },
)
results = response.json()
# Use the podcast_id from the results to create an episode monitor
The podcast search endpoint returns matching podcasts with their podcast_id, podcast_name, podcast_image_url, and podcast_description. Use these values when creating an episode monitor.

Use cases

  • Brand mentions in podcasts — Discover when your brand, product, or executives are discussed in podcast episodes
  • Industry podcast tracking — Monitor podcasts in your vertical for trends, insights, and competitive intelligence
  • Specific show monitoring — Track every new episode from key industry podcasts your team follows

Response

GET /v1/searches/{id}/results returns podcast results in Trigify’s standard search result shape. For the full shared response contract, see Get Search Results.

Preview your filters

Before committing to a saved search, POST the exact same body to the preview endpoint to see a sample of matching episodes.
  • Keyword preview: POST /v1/searches/podcast/keywords/preview
  • Episode preview: POST /v1/searches/podcast/episodes/preview
curl -X POST https://api.trigify.io/v1/searches/podcast/episodes/preview \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Changelog episodes",
    "podcast_id": "12345",
    "podcast_name": "The Changelog",
    "max_results": 10
  }'
Response shape mirrors GET /v1/searches/{id}/results plus a meta block with count, total_available, and monitoring_type.
Preview is free — no credit charged. Once you’re happy, POST the same body to /v1/searches/podcast/keywords (or /episodes) to commit the saved search.

Credit Usage

  • 1 credit per keyword search or episode monitor created
  • Previewing filters via POST /v1/searches/podcast/{keywords,episodes}/preview is free
  • Retrieving results via GET /v1/searches/{id}/results is free
  • Looking up a podcast via POST /v1/searches/podcasts/search is free
  • Updating or deleting a search is free
  • Subsequent runs on the configured frequency do not consume additional credits for search creation

Notes

  • Keyword searches use OR logic by default. Use keywords_and for AND logic
  • Episode monitoring does not require keywords — it tracks all new episodes from the specified podcast
  • Use the podcast search endpoint (POST /v1/searches/podcasts/search) to find the podcast_id before creating an episode monitor
  • HOURLY frequency requires an Enterprise or Custom plan