Use the Substack monitoring endpoints to track newsletter posts by keyword or monitor specific Substack publications. Keep up with industry newsletters, competitor content, and thought leadership.
Endpoints
Substack monitoring provides two endpoints:
| Endpoint | Description |
|---|
POST /v1/searches/substack/posts | Search for posts by keywords and/or publication |
POST /v1/searches/substack/profile | Monitor a specific Substack publication |
How it works
- Create a saved search using one of the Substack endpoints
- Trigify checks Substack on your configured frequency (
DAILY, WEEKLY, MONTHLY, or QUARTERLY; HOURLY is available on Enterprise and Custom plans only)
- New posts matching your criteria appear in your search results
- Optionally trigger workflows on new posts for alerts, enrichment, or integrations
Post keyword search
Use POST /v1/searches/substack/posts to find Substack posts matching your keywords, optionally scoped to a specific publication.
Supported filters
| Field | Type | Required | Description |
|---|
name | string | Yes | A descriptive name for your saved search |
keywords | string[] | No | 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 posts containing these keywords |
publication | string | No | Filter to a specific Substack publication (subdomain, e.g. platformer) |
time_frame | string | No | How far back to search: past-24h, past-week, past-month, past-year, all-time |
max_results | number | No | Maximum posts to return per run (default: 50) |
frequency | string | No | How often to check: DAILY, WEEKLY, MONTHLY, QUARTERLY; HOURLY is Enterprise/Custom only |
You must provide at least one of keywords or publication (or both). The total number of keywords across keywords, keywords_and, and keywords_not must not exceed 10.
Create a post keyword search
curl -X POST https://api.trigify.io/v1/searches/substack/posts \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "AI Newsletter Tracker",
"keywords": ["artificial intelligence", "LLM"],
"keywords_not": ["crypto"],
"time_frame": "past-week",
"frequency": "DAILY",
"max_results": 30
}'
Example: Filter by publication
curl -X POST https://api.trigify.io/v1/searches/substack/posts \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Platformer AI Coverage",
"keywords": ["AI regulation", "antitrust"],
"publication": "platformer",
"time_frame": "past-month",
"frequency": "WEEKLY"
}'
Publication profile monitoring
Use POST /v1/searches/substack/profile to monitor a Substack publication for all new posts.
Supported filters
| Field | Type | Required | Description |
|---|
name | string | Yes | A descriptive name for your saved search |
profile_url | string | No | The full Substack publication URL (e.g. https://platformer.news) |
publication | string | No | The Substack subdomain (e.g. platformer) |
max_results | number | No | Maximum posts to return per run (default: 50) |
frequency | string | No | How often to check: DAILY, WEEKLY, MONTHLY, QUARTERLY; HOURLY is Enterprise/Custom only |
time_frame | string | No | How far back to search: past-24h, past-week, past-month, past-year, all-time |
You must provide at least one of profile_url or publication.
Create a publication monitor
curl -X POST https://api.trigify.io/v1/searches/substack/profile \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Lenny's Newsletter Monitor",
"publication": "lennysnewsletter",
"frequency": "DAILY",
"max_results": 10,
"time_frame": "past-week"
}'
const response = await fetch("https://api.trigify.io/v1/searches/substack/profile", {
method: "POST",
headers: {
"x-api-key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
name: "Lenny's Newsletter Monitor",
publication: "lennysnewsletter",
frequency: "DAILY",
max_results: 10,
time_frame: "past-week",
}),
});
const data = await response.json();
import requests
response = requests.post(
"https://api.trigify.io/v1/searches/substack/profile",
headers={
"x-api-key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
json={
"name": "Lenny's Newsletter Monitor",
"publication": "lennysnewsletter",
"frequency": "DAILY",
"max_results": 10,
"time_frame": "past-week",
},
)
data = response.json()
Use cases
- Newsletter monitoring — Track posts from newsletters covering your industry or niche
- Competitor publication tracking — Monitor competitor newsletters to stay ahead of their messaging and content strategy
- Thought leadership discovery — Find new Substack posts on topics relevant to your business
Response
GET /v1/searches/{id}/results returns Substack 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 posts. Useful for confirming a publication subdomain resolves correctly and keywords return results.
- Post preview:
POST /v1/searches/substack/posts/preview
- Publication preview:
POST /v1/searches/substack/profile/preview
curl -X POST https://api.trigify.io/v1/searches/substack/posts/preview \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Lenny's product reviews",
"publication": "lenny",
"keywords": ["pricing"],
"time_frame": "past-week",
"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/substack/posts (or /profile) to commit the saved search.
Credit Usage
- 1 credit per search or publication monitor created
- Previewing filters via
POST /v1/searches/substack/{posts,profile}/preview is free
- Retrieving results via
GET /v1/searches/{id}/results is free
- Updating or deleting a search is free
- Subsequent runs on the configured frequency do not consume additional credits for search creation
Notes
- Post keyword searches use OR logic by default. Use
keywords_and for AND logic
- Publication profile monitoring tracks all new posts from the publication — no keywords needed
- You can combine
keywords and publication in the posts endpoint to scope keyword searches to a single publication
publication is the Substack subdomain (e.g. for https://platformer.substack.com, use platformer)
HOURLY frequency requires an Enterprise or Custom plan