Integrate once. Every platform returns the same shape.
Every platform speaks a different language. SocialQuery normalizes 68+ platforms and 646+ endpoints into one canonical schema, validated on every response.
Before
TikTok aweme_info.statistics.digg_count
Instagram edge_media_preview_like.count
Reddit data.score
Post
{
"type": "post",
"metrics": { "likes": 12840, "comments": 312 },
"computed": { "engagement_rate": 0.043 }
}The problem
Why is social data so hard to work with?
A developer who wants engagement across platforms normally writes separate integrations and types for each source. The raw data is useful, but the shape is not stable.
How it works
How does SocialQuery normalize every platform into one shape?
Every raw payload runs through the same five-stage pipeline before it reaches you. Nothing undeclared slips through.
Strip the envelope
Unwrap raw provider payloads and normalize lists into a common items and cursor shape.
Field map
Rename source fields into the canonical object without carrying vendor noise forward.
Enrich hook
Attach deterministic computed values such as language, category, reach, and engagement.
Normalize + null backstop
Return stable keys even when a platform omits a field.
Validate
Gate the response through the same schema the docs describe.
Zod gate
The same canonical schema validates the response and drives examples, endpoint pages, and generated documentation.
Computed intelligence
What does SocialQuery add on top of the raw data?
Responses carry deterministic computed fields that make results comparable across platforms without forcing your app to recalculate them.
"computed": {
"engagement_rate": 0.043,
"language": "en",
"content_category": "entertainment",
"estimated_reach": 128400
}The proprietary edge
How do you keep the schema and docs from drifting apart?
One canonical schema is the source of truth for endpoint validation, docs, examples, and generated API references.
One source of truth
Canonical object definitions power endpoint validation and docs.
Mechanical cascade
Rename a field once and the schema, examples, OpenAPI output, and docs update together.
Wire validation
Responses are checked before your client sees them, with null-safe fallbacks for missing fields.
One schema, every object
Does the unified schema cover more than social posts?
The same normalization discipline extends across every object SocialQuery returns, from posts and authors to apps, products, places, quotes, and jobs.
The shape of it
One schema, holding across everything we return.
68+
platforms
646+
validated endpoints
11
canonical objects
1
schema
One key, one schema
SocialQuery versus wiring up scrapers yourself.
| Compare | SocialQuery | Scrapers yourself |
|---|---|---|
| Integration | One key, one schema | N vendors, N schemas |
| Field naming | One canonical shape across platforms | Different JSON per platform |
| Pagination | One cursor model | Different pagination behavior everywhere |
| Validation | Checked before the response leaves | Your app discovers mismatches later |
Frequently asked questions
Can't find what you're looking for? Talk to our team.
What is a unified social media API schema?
It is one canonical response shape that every endpoint conforms to, so your app reads the same fields across platforms.
Is the normalization done with AI?
No. Field mapping, validation, and computed blocks are deterministic so responses stay predictable.
How do you prevent schema and docs drift?
The schema, endpoint registry, docs, OpenAPI output, and page examples all come from the same catalog.
Which object types are covered?
Posts, comments, authors, apps, products, reviews, sellers, places, news articles, quotes, jobs, and search results share the same discipline.
What happens when a platform changes its API?
Provider-specific changes are absorbed before the response leaves SocialQuery, so the public contract stays stable.
Can I trust the counts and computed fields?
Computed fields are deterministic and returned with source context, so teams can audit how a response was produced.
One schema, every platform
Start free.
Get an API key and see the same validated shape come back from every platform you call.
curl https://socialquery.dev/v1/tiktok/profile \
-G --data-urlencode "handle=nasa" \
-H "x-api-key: $SQ_KEY"