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:
| Endpoint | Description |
|---|
POST /v1/searches/podcast/keywords | Search across all podcasts by keywords |
POST /v1/searches/podcast/episodes | Monitor episodes from a specific podcast |
How it works
- Create a saved search using one of the Podcast endpoints
- Trigify checks for new podcast content on your configured frequency (
DAILY, WEEKLY, MONTHLY, or QUARTERLY; HOURLY is available on Enterprise and Custom plans only)
- New episodes matching your criteria appear in your search results
- Optionally trigger workflows on new results for alerts, enrichment, or integrations
Keyword search
Use POST /v1/searches/podcast/keywords to find podcast episodes matching your keywords across all podcasts.
Supported filters
| Field | Type | Required | Description |
|---|
name | string | Yes | A descriptive name for your saved search |
keywords | string[] | Yes | Keywords to search for (OR logic between keywords) |
keywords_and | string[] | No | All of these keywords must appear (AND logic) |
keywords_not | string[] | No | Exclude episodes containing these keywords |
time_frame | string | No | How far back to search: past-24h, past-week, past-month, past-year, all-time |
max_results | number | No | Maximum episodes to return per run (default: 50) |
frequency | string | No | How 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.
Create a keyword search
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
| Field | Type | Required | Description |
|---|
name | string | Yes | A descriptive name for your saved search |
podcast_id | string | Yes | The podcast identifier (see Finding podcast IDs below) |
podcast_name | string | Yes | The name of the podcast |
podcast_image_url | string | No | URL to the podcast cover image |
podcast_description | string | No | A short description of the podcast |
max_results | number | No | Maximum episodes to return per run (default: 50) |
frequency | string | No | How 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