Social Media Monitoring APIs: Official, Tools and Data APIs
A social media monitoring API answers one question on a schedule: what was said about this topic since I last checked? You send queries, get new posts back, store them, and alert on the ones that matter. There are three ways to get that data, and each has a different catch.
Three kinds of monitoring API
- Official platform APIs. First-party data, but one platform per integration, each with its own approval process, quota and schema.
- Social listening tools with an API. A finished product with dashboards and sentiment. The API is usually an add-on, and you pay a monthly fee per keyword set.
- Data APIs. Raw search and profile endpoints across many platforms. You build the monitoring logic, but you control queries, schedule and cost.
Official APIs: what you actually get
| Platform | Access | Monitoring limit that matters |
|---|---|---|
| X | Pay-per-use credits, no subscription | $0.005 per post read, capped at 3 million post reads per billing cycle |
| YouTube Data API | Free with a Google Cloud project | 10,000 units a day; search.list has its own cap of 100 calls a day |
| Instagram Graph API | Business or Creator account, Meta app | 30 unique hashtags per account in a rolling 7 days |
| Bluesky | Open protocol | Jetstream live tail needs no authentication and serves the whole network |
| TikTok Research API | Application | Academic and not-for-profit researchers only, no commercial use |
The YouTube cap is the one that surprises people. A monitor that checks 20 keywords every hour needs 480 searches a day, almost five times the default search.list limit. Instagram's 30-hashtag window rules out broad hashtag tracking for most brands. Bluesky is the easy one: connect to a public Jetstream endpoint, filter on app.bsky.feed.post, and match keywords yourself.
Listening tools with an API
If you want sentiment and dashboards without building them, a listening tool is the shorter path. Two that publish prices:
- Awario lists API access on its Starter plan, which is $49 a month billed monthly or $29 a month billed annually, for 3 topics and 30,000 new mentions a month. Its pricing page lists Twitter, Instagram, Reddit and YouTube monitoring; TikTok was not listed.
- Brand24 starts at $249 a month ($199 billed annually) for 3 keywords and 2,000 mentions, updated every 12 hours. Its source list includes TikTok, Instagram, X, Reddit and YouTube. API access is an extra $149.
These are good when a marketing team will live in the dashboard. They are a poor fit when you need the raw posts in your own database, or when your keyword list changes every week.
Design a monitor that does not waste calls
- Write narrow queries. Brand name plus a product word beats the brand name alone. Add common misspellings as separate queries.
- Sort by latest. Monitoring wants recency, not relevance. Most search endpoints have a sort option.
- Stop paging at the last seen id. Keep the newest post id per query. When a page contains it, stop.
- Deduplicate by platform plus id. The same post often matches two queries.
- Match the interval to the platform. X and TikTok move fast; LinkedIn and YouTube can be checked a few times a day.
- Alert on thresholds, not on every hit. For example, any post with more than 10,000 plays, or more than 20 mentions in an hour.
The cost formula
Calls per month = queries × platforms × runs per day × pages per run × 30.
Example: 10 queries on 4 platforms, every 6 hours, one page per run: 10 × 4 × 4 × 1 × 30 = 4,800 calls a month. At $1.88 per 1,000 calls that is about $9. Hourly checks on the same set would be 28,800 calls, or about $54. The interval is the biggest lever you have, so set it per platform.
A minimal polling loop
const seen = new Set(); // load from your database
async function poll(query) {
const url = "https://scrapeio.com/v1/twitter/search?type=latest&query=" + encodeURIComponent(query);
const res = await fetch(url, { headers: { "x-api-key": process.env.SCRAPEIO_API_KEY } });
if (!res.ok) return [];
const { data } = await res.json();
const fresh = data.items.filter((p) => !seen.has("x:" + p.id));
fresh.forEach((p) => seen.add("x:" + p.id));
return fresh; // store, then alert on likes, plays or volume
}
Doing it with ScrapeIO
ScrapeIO gives you one key for the search endpoints a monitor needs: the X search API, TikTok keyword search, Reddit search, Instagram post search, Threads search and LinkedIn post search. Results share one schema, a cached repeat costs nothing, and credits never expire, so a quiet month costs only what you ran.
Sources
Checked on 8 November 2026 from each vendor's own pages. Prices and limits change; follow the links before you decide.
- https://docs.x.com/x-api/getting-started/pricing
- https://developers.google.com/youtube/v3/getting-started
- https://developers.google.com/youtube/v3/determine_quota_cost
- https://developers.facebook.com/docs/instagram-platform/instagram-api-with-facebook-login/hashtag-search
- https://bsky.network/docs/jetstream/
- https://developers.tiktok.com/products/research-api/
- https://awario.com/pricing/
- https://brand24.com/prices/
100 free credits, no card. Credits never expire.
Get API key