Skip to main content
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:
EndpointDescription
POST /v1/searches/substack/postsSearch for posts by keywords and/or publication
POST /v1/searches/substack/profileMonitor a specific Substack publication

How it works

  1. Create a saved search using one of the Substack endpoints
  2. Trigify checks Substack on your configured frequency (DAILY, WEEKLY, MONTHLY, or QUARTERLY; HOURLY is available on Enterprise and Custom plans only)
  3. New posts matching your criteria appear in your search results
  4. 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

FieldTypeRequiredDescription
namestringYesA descriptive name for your saved search
keywordsstring[]NoKeywords to search for (OR logic between keywords)
keywords_andstring[]NoAll of these keywords must appear (AND logic)
keywords_notstring[]NoExclude posts containing these keywords
publicationstringNoFilter to a specific Substack publication (subdomain, e.g. platformer)
time_framestringNoHow far back to search: past-24h, past-week, past-month, past-year, all-time
max_resultsnumberNoMaximum posts to return per run (default: 50)
frequencystringNoHow 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

FieldTypeRequiredDescription
namestringYesA descriptive name for your saved search
profile_urlstringNoThe full Substack publication URL (e.g. https://platformer.news)
publicationstringNoThe Substack subdomain (e.g. platformer)
max_resultsnumberNoMaximum posts to return per run (default: 50)
frequencystringNoHow often to check: DAILY, WEEKLY, MONTHLY, QUARTERLY; HOURLY is Enterprise/Custom only
time_framestringNoHow 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