One schema for TikTok, Instagram and YouTube: why field names matter
Ask five platforms for a creator's audience and you get five answers: followerCount, follower_count, edge_followed_by.count, subscriberCount as a string, fan_count. Views are playCount, video_view_count, viewCount or missing. Dates are Unix seconds, milliseconds, or ISO strings.
Every one of those differences is a branch in your code and a place for a bug. It gets worse with agents: a model that sees five shapes has to reason about five shapes, and it gets the conversion wrong more often than you would like.
What normalized looks like
ScrapeIO returns the same envelope and the same field names on every platform:
{
"success": true,
"cached": false,
"credits_used": 1,
"credits_remaining": 2481,
"data": {
"platform": "tiktok",
"handle": "example_creator",
"name": "Example Creator",
"followers": 48210,
"following": 312,
"posts": 406,
"verified": false,
"private": false,
"url": "https://www.tiktok.com/@example_creator"
}
}
Swap /v1/tiktok/profile for /v1/instagram/profile or /v1/youtube/channel and the parser does not change. Lists are the same everywhere too: data.items, data.cursor, data.has_more.
The fields that line up
| Field | Means |
|---|---|
handle | Username without @ |
followers | Followers or subscribers, as a number |
plays | Real views or plays on a post. null when the platform does not report it, never a fake 0 |
likes, comments, shares | Engagement counts, as numbers |
created_at | ISO 8601 time in UTC |
url | Link to the post or profile |
caption, duration_seconds, music | Post text, video length and sound, where the platform has them |
Errors are normalized too
A private account is 403 on every platform. Not found is 404. Both are free. When a source fails, the router tries a backup before it gives up, and if everything fails you get a 502 that also costs nothing. Your retry logic is four lines, not one per platform.
Try it
Get a key with 100 free credits and call the same profile on two platforms. The docs mark every field that is the same on every platform.
100 free credits, no card. Credits never expire.
Get API key