All use cases

Social media monitoring API

Run brand listening on a schedule you control: keyword and hashtag searches across 13+ platforms, the same data + meta envelope for every poll, and honest billing when a lookup completes — not while your alert workers sit idle between spikes.

What usually breaks first

Most social media monitoring pipelines fail on schema drift and billing surprises long before they fail on "missing a platform." The notes below are the failure modes we hear about after a DIY scraper or marketplace API is already in production.

Brand monitoring is a pull problem dressed up as a real-time problem. Networks do not ship webhooks when someone misspells your product on TikTok. You schedule searches, store snapshots, diff against yesterday, and only then route Slack or PagerDuty alerts. That pipeline stalls when every platform returns a different JSON shape and your home-grown scrapers break on the next HTML deploy.

Most monitoring stacks also bill like SaaS seats — flat monthly fees while crisis terms go quiet for weeks. Bursty listening (hourly during a launch, every five minutes when a recall hits) needs metered lookups, not a subscription clock.

Social Fetch gives you search endpoints with shared lookupStatus, pagination cursors, and meta.requestId on every response. You own deduplication, geo and language filters at query time, and alert thresholds in your warehouse. We fetch public posts; you decide what counts as a mention worth paging someone.

6 routes for this job

These are the routes we see in live social media monitoring integrations — X, TikTok, YouTube, and Reddit in this list. Method, path, and query params match the public OpenAPI spec; when we add a field to docs, it ships in responses.

  • GET /v1/twitter/search

    Crisis and brand mention polling on X. Use section=latest for fresh posts, language for locale-scoped watches, startDate/endDate to bound a window. Two credits per successful request.

  • GET /v1/tiktok/search

    Keyword search with datePosted (today, this-week, this-month) and optional region code for localized result sets.

  • GET /v1/tiktok/search/hashtags

    Campaign and branded hashtag tracking with cursor pagination — typical for launch wrap-ups and UGC volume charts.

  • GET /v1/youtube/search/hashtags

    Discover YouTube videos tagged with a campaign hashtag for cross-platform share-of-voice next to TikTok.

  • GET /v1/reddit/search

    Catch brand and competitor mentions in subreddit discussions — often the earliest honest signal before a story hits mainstream feeds.

  • GET /v1/tiktok/videos/comments

    Pull comment threads on posts that crossed your velocity threshold — hand text to keyword rules or a sentiment model after the search job flags them.

OpenAPI reference →

How teams wire this

A common path starts with “define watch lists and alert rules.” Your cron cadence, warehouse schema, and alert thresholds will differ — treat the steps as ordering hints, not a checklist you must copy verbatim.

  1. 1

    Define watch lists and alert rules

    Group keywords by job: brand exact match, competitor aliases, crisis misspellings. Set baseline volume per term and spike multipliers (e.g. 3× the seven-day median) before writing cron schedules — alerts should fire on diffs, not raw result counts.

  2. 2

    Poll on cadence, not a firehose

    There is no platform push stream here — you GET on a schedule (cron, QStash, Temporal). Run section=latest on X every few minutes for incident watches; poll hashtags hourly for campaign dashboards. Credits deduct per completed lookup, so match frequency to risk.

  3. 3

    Filter noise at the API

    Narrow before you store: language on X, datePosted on TikTok, minLikes/minRetweets to drop low-engagement hits, region on TikTok hashtag search for proxy locale. Post-filter in SQL on author handle or URL domain if you maintain blocklists.

  4. 4

    Dedupe and snapshot

    Upsert rows keyed by platform + post ID. Append meta.requestId and capturedAt on every poll so you can replay a spike window. Re-running the same cursor chain twice will bill twice — treat cursors as single-use pagination tokens.

  5. 5

    Diff, then alert

    Compare today's IDs against the last snapshot. Route only net-new high-velocity posts to Slack, email, or your on-call tool. Empty arrays still cost a credit when lookupStatus is success — budget for quiet terms.

  6. 6

    Enrich for sentiment when it matters

    Search finds the post; comments endpoints pull audience reaction on the items that breached your threshold. Pair with your classifier or the comments-for-sentiment workflow — captions alone miss most brand damage in threads.

Example: crisis watch on X (latest posts, English only)

Swap YOUR_API_KEY for a key from the dashboard. The playground pre-fills auth if you open the same path there — useful before you paste this into a worker or CI job.

Request
Example: crisis watch on X (latest posts, English only)

Why monitoring teams poll with Social Fetch

  • One API key and envelope from TikTok search through Reddit comments — your dedupe table does not fork per network.
  • No published rate cap beyond credit balance; burst parallel polls during an incident without negotiating a tier upgrade.
  • Prepaid credits with no expiry — run listening three times a month or every five minutes during a launch from the same balance.
  • lookup_failed and 503 responses do not charge; successful empty results do — predictable math for cron budgeting.
  • Platform filter params (section, language, datePosted, region) cut warehouse noise before you pay for storage and LLM scoring.
  • Schema stays stable when upstream HTML changes — alert code keeps reading data.items and meta.creditsCharged.

Run a social media monitoring lookup on free credits

You get 100 credits on signup — enough to walk through the curl above against live data and inspect lookupStatus, pagination, and meta.creditsCharged. If the JSON lands cleanly in your pipeline, buy a credit pack once; balances do not expire on a subscription clock.