Social data API for agencies
Your account team needs competitor screenshots for a Tuesday pitch. Your devs need one schema that survives Instagram changing field names again. Social Fetch covers both: profiles, posts, ad library creative, and metrics across every network your clients care about, billed on prepaid credits you allocate per account.
What usually breaks first
Most agencies 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.
Agency reporting rarely fails on ideas. It fails on procurement: three different vendors for TikTok, LinkedIn, and Meta ads, each with its own login, invoice, and JSON shape. When a client adds YouTube Shorts mid-retainer, someone has to wire up another integration before the monthly report ships.
Owners watch margin on pass-through data costs. If you resell dashboards or bundle reporting into retainers, you need predictable API spend per client, not a per-seat subscription that bills while half your accounts sit idle between campaign seasons. Credits that never expire let you burst before QBRs without upgrading a tier.
Developers inherit the mess. Every platform exposes different pagination, renames fields without notice, and rate-limits scrapers built in a weekend. Your Looker models and client portals expect the same column names month after month. One upstream schema change should not trigger a fire drill across twelve white-label instances.
Clients also ask for things your current stack cannot support: Meta Ad Library creative for a pitch deck, LinkedIn company posts for B2B accounts, transcript text from a competitor's YouTube channel. Saying "we do not support that network" costs you renewals. Your SLA to the client is weekly or monthly; your data vendor should not be the reason you miss it.
6 routes for this job
These are the routes we see in live agencies integrations — Instagram, TikTok, YouTube, linkedin, and Facebook 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/instagram/profiles/{handle}/postsPaginated posts for client content calendars and monthly engagement snapshots.
GET /v1/tiktok/profiles/{handle}/videosRecent TikTok videos with view and engagement counts for campaign wrap-ups.
GET /v1/youtube/channelYouTube channel stats from a URL or handle when clients expand beyond short-form.
GET /v1/linkedin/companiesLinkedIn company profile for B2B client audits and employer-brand reports.
GET /v1/facebook/ad-library/ads/searchLive Meta ad creative and copy for competitive audits and new-business pitches.
GET /v1/instagram/profiles/{handle}Follower counts, bio, and verification status when onboarding new client handles.
How teams wire this
A common path starts with “pull competitors for the pitch.” Your cron cadence, warehouse schema, and alert thresholds will differ — treat the steps as ordering hints, not a checklist you must copy verbatim.
- 1
Pull competitors for the pitch
Before the new-business meeting, search the Meta Ad Library and pull recent posts from the prospect's rivals. Same API key, same response envelope. Your pitch deck template does not fork per platform.
- 2
Onboard handles into your client database
When the SOW is signed, store each client's social accounts with a client_id foreign key. Profile endpoints return lookupStatus so you can flag typos or renamed handles before the first live report runs.
- 3
Map report templates to endpoints once
Your monthly PDF, client portal tile, and Looker dashboard all read from normalized JSON. Instagram posts and TikTok videos land in the same engagement table because field names stay consistent even when platforms change upstream.
- 4
Batch refresh on your cadence
Run weekly cron jobs for active clients and monthly jobs for retainers. No published rate cap beyond your credit balance. Burst hard the night before a QBR without calling sales to bump a subscription tier.
- 5
Allocate credits per client for margin
Tag each request with a client identifier in your own logging layer. Credits are prepaid and never expire, so you can bill clients a flat reporting fee and keep the spread between your API cost and the retainer line item.
- 6
Ship white-label deliverables
Drop JSON into Google Slides automation, a custom portal, or a CSV export for account managers who still work in Sheets. Your brand stays on the cover; the data layer stays boring underneath.
Example: competitive ad audit before a pitch
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.
Why agencies standardize on Social Fetch
- 13+ platforms on one key means fewer vendor reviews and one line item in your agency P&L.
- Prepaid credits with no expiry: allocate spend per client instead of paying a flat subscription while dormant accounts sit idle.
- No per-seat API tax. Interns, freelancers, and overnight cron jobs share the same key without seat math.
- Same data envelope on Instagram, TikTok, YouTube, LinkedIn, and the rest. Your ETL code does not fork per network.
- Schema stability as an operational promise: when Meta renames a field, your client dashboards keep working.
- Completed lookups charge credits; infrastructure failures (lookup_failed, 503) do not. Predictable cost for margin planning.
- Social Freak Ltd is a registered UK company when procurement asks who operates the API and how data is handled.
Run a agencies 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.