Unified schema
Different platforms name the same idea differently: a follower count is followers_count on one, subscribers on another and statistics.subscriberCount on a third. Onekey maps every source onto one small, fixed set of field names, so you write your parsing once.
The fixed schema has 147 fields (version 1.0). It is read from the same definition the backend enforces, and the counts below come from the endpoint mappings in the platform specs (1,995 endpoints), so they are always current. Schema changes are additive only: a field is never renamed, retyped or removed inside a major version.
The envelope#
Every response has the same four top-level keys. data holds the unified fields below; metadata and error are the same for every platform.
| Key | Type | Meaning |
|---|---|---|
success | boolean | true when you got data. Check it first. |
data | object, array or null | The unified fields (this page). null on failure. |
metadata | object | platform, endpoint, cached, stale, age_s, fetched_at, credits_charged, request_id. |
error | object or null | null on success. Otherwise code, message, request_id. |
Details and a full example: Response envelope. Error codes: Errors.
Field groups#
Inside data, fields are grouped by what they describe. A field a platform does not have is null, never missing, so you can read it without checking. An endpoint only fills the groups that make sense for it.
| Group | What it holds | Fields | Most used |
|---|---|---|---|
entity | The thing itself when it is not a post: a package, repo, coin, place, article, subreddit. Shared counters live under entity.stats.*. | 31 | name, id, url, description, category |
content | Something written or published: a post, comment, video, listing, with its text, title, link and timestamps. | 15 | createdAt, text, id, title, url |
author | Who made it, or the profile itself: username, display name, follower counts, avatar, profile URL. | 18 | displayName, username, id, avatarUrl, url |
engagement | How people reacted: likes, comments, shares, views, bookmarks. | 9 | likes, comments, views, shares, bookmarks |
media | Attached media: thumbnail and file URLs, durations. | 10 | thumbnailUrl, durationSeconds, url, previewUrl, audioUrl |
market | Tickers, quotes and prediction markets: symbol, price, volume, bid/ask. | 19 | symbol, price, volume, volume24h, liquidity |
place | Where something is: coordinates, address, city, time zone. | 6 | lat, lon, address, city, timeZone |
listing | Products, jobs and rentals: price, brand, seller, company, salary. | 18 | price, currency, brand, company, seller |
package | Repositories and packages: version, license, links, default branch. | 12 | version, homepageUrl, license, repositoryUrl, defaultBranch |
paper | Scholarly works: DOI, journal, publisher, open-access link. | 7 | publisher, doi, journal, issn, venue |
event | Dated occurrences: start and end date. | 2 | startDate, endDate |
ext | Anything platform-specific with no canonical home. Flat camelCase names, documented on each endpoint page. | open | see the ext section below |
How values are typed#
| Type shown | What Onekey does |
|---|---|
| number | Converted to a number; anything that is not numeric becomes null. |
| string | Text. |
| boolean | true/false; 1, yes, y and 0, no, n are understood. |
| string (ISO 8601) | Dates and epoch timestamps become UTC, for example 2026-01-01T12:00:00Z. |
| string (http/https URL) | Only real http or https links pass; anything else is null. |
| list of strings | Tags, topics and similar lists. |
Every field#
Each table lists a group's fields with how many endpoints emit it and on which platforms (up to five are named). To see exactly how one endpoint maps its fields, open it from the platform catalog: each endpoint page has a Field mapping section with the source path for every field.
entity#
17 fields.
| Field | Type | Endpoints | Platforms |
|---|---|---|---|
entity.id | string | 632 | Jikan, Musicbrainz, Apple, LinkedIn, Facebook +160 more |
entity.name | string | 833 | Stack Exchange, LinkedIn, GitHub, Reddit, Jikan +200 more |
entity.slug | string | 71 | Polymarket, Manifold, Substack, Ckan, Leetcode +24 more |
entity.url | string (http/https URL) | 384 | Jikan, LinkedIn, Apple, Openalex, Facebook +107 more |
entity.description | string | 343 | Jikan, LinkedIn, GitHub, Tripadvisor, Kitsu +128 more |
entity.type | string | 108 | Jikan, Musicbrainz, Dns, Modrinth, Kitsu +41 more |
entity.category | string | 189 | Itunes, Nws, Apple, Anilist, Coinbase +69 more |
entity.tags | list of strings | 50 | Huggingface, GitHub, Amo, GitLab, Shopify +17 more |
entity.status | string | 67 | Jikan, Anilist, Kitsu, Tvmaze, Chess +21 more |
entity.language | string | 26 | GitHub, Codeberg, Gutenberg, Tvmaze, Bitbucket +5 more |
entity.country | string | 32 | Musicbrainz, Openalex, Discogs, Lever, Rdap +14 more |
entity.location | string | 45 | Facebook, Jobs, Crossref, Greenhouse, Gumtree +13 more |
entity.date | string (ISO 8601) | 116 | Polymarket, Treasury, Manifold, Blockstream, Coingecko +35 more |
entity.year | number (integer) | 22 | Jikan, Anilist, Discogs, Speedrun, Trakt |
entity.releaseDate | string (ISO 8601) | 24 | Musicbrainz, Itunes, Apple Music, Deezer, App Store +2 more |
entity.createdAt | string (ISO 8601) | 83 | Huggingface, crates.io, GitHub, Manifold, Codeberg +30 more |
entity.updatedAt | string (ISO 8601) | 73 | GitHub, Huggingface, Codeberg, crates.io, Docker Hub +20 more |
entity.stats#
14 fields.
| Field | Type | Endpoints | Platforms |
|---|---|---|---|
entity.stats.downloads | number (integer) | 58 | crates.io, Huggingface, Modrinth, Rubygems, Gutenberg +14 more |
entity.stats.rating | number | 99 | Tripadvisor, Tmdb, Klarna, Amo, Lichess +28 more |
entity.stats.ratingCount | number (integer) | 59 | Tripadvisor, Klarna, Sephora, Aliexpress, Amo +18 more |
entity.stats.rank | number (integer) | 48 | Jikan, Deezer, Chess, Us Congress Trades, Gbif +12 more |
entity.stats.score | number | 43 | Jikan, Anilist, Datamuse, Kitsu, Chess +8 more |
entity.stats.popularity | number | 32 | Jikan, Anilist, Tmdb, Spotify, Aur +1 more |
entity.stats.stars | number (integer) | 19 | GitHub, Codeberg, Docker Hub, GitLab, Artifacthub +1 more |
entity.stats.forks | number (integer) | 14 | GitHub, Codeberg, GitLab, Depsdev |
entity.stats.openIssues | number (integer) | 15 | GitHub, Codeberg, GitLab, Depsdev |
entity.stats.watchers | number (integer) | 12 | GitHub, Codeberg, Trakt |
entity.stats.followers | number (integer) | 29 | LinkedIn, Lemmy, Reddit, Modrinth, Spotify +5 more |
entity.stats.members | number (integer) | 12 | Roblox, Lichess, Manifold, Vk, Chess +1 more |
entity.stats.favorites | number (integer) | 14 | Anilist, Jikan, Roblox |
entity.stats.itemCount | number (integer) | 22 | Deezer, Itunes, Spotify, Arena, TikTok +5 more |
content#
15 fields.
| Field | Type | Endpoints | Platforms |
|---|---|---|---|
content.id | string | 631 | GitHub, YouTube, Hacker News, Stack Exchange, Bluesky +138 more |
content.url | string (http/https URL) | 412 | LinkedIn, GitHub, Hacker News, Stack Exchange, Web +100 more |
content.title | string | 560 | YouTube, Wikipedia, Reddit, GitHub, LinkedIn +138 more |
content.text | string | 644 | LinkedIn, Bluesky, TikTok, GitHub, Stack Exchange +131 more |
content.createdAt | string (ISO 8601) | 655 | Stack Exchange, GitHub, LinkedIn, Reddit, TikTok +141 more |
content.updatedAt | string (ISO 8601) | 56 | GitHub, Discourse, GitLab, Amo, Us Congress Trades +13 more |
content.language | string | 64 | Bluesky, Mastodon, DEV Community, Web, X (Twitter) +18 more |
content.category | string | 33 | Itunes, Twitch, Audius, Kick, PyPI +4 more |
content.type | string | 21 | Us Congress Trades, Omdb, Stack Exchange, Crossref, Google +5 more |
content.slug | string | 12 | Discourse, Twitch |
content.state | string | 18 | GitHub, GitLab, Codeberg, Bitbucket |
content.year | number (integer) | 25 | Europepmc, Semanticscholar, Wikipedia, Omdb, Crossref +5 more |
content.releaseDate | string (ISO 8601) | 10 | Tmdb, Genius |
content.parentId | string | 1 | Hacker News |
content.threadId | string | 3 | Hacker News |
author#
18 fields.
| Field | Type | Endpoints | Platforms |
|---|---|---|---|
author.id | string | 404 | Bluesky, Stack Exchange, YouTube, Mastodon, Lemmy +70 more |
author.username | string | 527 | GitHub, Instagram, Bluesky, Stack Exchange, TikTok +78 more |
author.displayName | string | 550 | LinkedIn, YouTube, Itunes, Bluesky, TikTok +116 more |
author.avatarUrl | string (http/https URL) | 298 | Stack Exchange, Bluesky, Mastodon, GitHub, Lemmy +60 more |
author.url | string (http/https URL) | 238 | LinkedIn, Stack Exchange, Mastodon, Lemmy, SoundCloud +55 more |
author.bio | string | 40 | LinkedIn, YouTube, Instagram, Komi, Linkbio +18 more |
author.verified | boolean | 64 | Instagram, X (Twitter), Lichess, Roblox, TikTok +20 more |
author.followers | number (integer) | 101 | X (Twitter), Mastodon, Instagram, Deezer, TikTok +32 more |
author.following | number (integer) | 42 | Mastodon, X (Twitter), Instagram, SoundCloud, Truthsocial +17 more |
author.contentCount | number (integer) | 34 | Dailymotion, Us Congress Trades, Bilibili, Instagram, Odysee +12 more |
author.createdAt | string (ISO 8601) | 12 | Bitbucket, Codeberg, crates.io, Docker Hub, GitHub +7 more |
author.location | string | 23 | LinkedIn, Us Congress Trades, Stack Exchange, Codeberg, Amazon +4 more |
author.country | string | 7 | Tvmaze, Instagram, TikTok, YouTube |
author.website | string (http/https URL) | 6 | Codeberg, Facebook, GitHub, Google, Instagram +1 more |
author.birthDate | string (ISO 8601) | 10 | Tvmaze, Jikan, Open Library, Tmdb |
author.type | string | 7 | GitHub, Docker Hub |
author.private | boolean | 1 | Bitbucket |
author.reputation | number | 26 | Stack Exchange |
engagement#
9 fields.
| Field | Type | Endpoints | Platforms |
|---|---|---|---|
engagement.likes | number (integer) | 335 | Stack Exchange, TikTok, Bluesky, Instagram, LinkedIn +49 more |
engagement.comments | number (integer) | 285 | Stack Exchange, Mastodon, Instagram, Lemmy, GitHub +40 more |
engagement.views | number (integer) | 175 | TikTok, Instagram, Stack Exchange, Dailymotion, Discourse +32 more |
engagement.shares | number (integer) | 115 | Instagram, TikTok, Bluesky, LinkedIn, Mastodon +17 more |
engagement.bookmarks | number (integer) | 27 | Bluesky, TikTok, Bilibili, X (Twitter), Huggingface +2 more |
engagement.quotes | number (integer) | 8 | Threads, X (Twitter) |
engagement.votes | number (integer) | 25 | Tmdb, Tripadvisor, Klarna, Omdb, Aliexpress +9 more |
engagement.upvoteRatio | number | 10 | |
engagement.citations | number (integer) | 24 | Openalex, Semanticscholar, Europepmc, Crossref, Ads +1 more |
media#
10 fields.
| Field | Type | Endpoints | Platforms |
|---|---|---|---|
media.url | string (http/https URL) | 69 | Web, Nasa, Tvmaze, YouTube, Dogceo +29 more |
media.thumbnailUrl | string (http/https URL) | 504 | TikTok, Itunes, YouTube, Instagram, Jikan +126 more |
media.previewUrl | string (http/https URL) | 14 | Deezer, Itunes, Spotify, YouTube |
media.embedUrl | string (http/https URL) | 1 | Spotify |
media.audioUrl | string (http/https URL) | 5 | Instagram, Apple Music, Dictionary, TikTok |
media.durationSeconds | number | 82 | TikTok, Dailymotion, Deezer, Vimeo, Mixcloud +17 more |
media.width | number (integer) | 5 | YouTube, Commons, Naver, Open Library |
media.height | number (integer) | 5 | YouTube, Commons, Naver, Open Library |
media.sizeBytes | number (integer) | 4 | YouTube, Archive, Commons |
media.mimeType | string | 4 | YouTube, Commons |
market#
19 fields.
| Field | Type | Endpoints | Platforms |
|---|---|---|---|
market.symbol | string | 47 | Us Congress Trades, Coingecko, Defillama, Binance, Coinbase +8 more |
market.price | number | 28 | Coinbase, Polymarket, Coingecko, Binance, Finance +5 more |
market.currency | string | 4 | Yahoo, Finance, Finnhub |
market.open | number | 8 | Polygon, Binance, Coinbase, Coingecko, Finance +2 more |
market.high | number | 7 | Polygon, Binance, Coinbase, Coingecko, Finance +1 more |
market.low | number | 7 | Polygon, Binance, Coinbase, Coingecko, Finance +1 more |
market.close | number | 6 | Polygon, Binance, Coinbase, Coingecko, Yahoo |
market.volume | number | 21 | Polymarket, Manifold, Finance, Kalshi, Polygon +4 more |
market.volume24h | number | 20 | Coingecko, Polymarket, Manifold, Coinbase, Kalshi +2 more |
market.change24h | number | 3 | Polymarket, Binance |
market.change24hPct | number | 5 | Coingecko, Binance |
market.marketCap | number | 8 | Coingecko, Alphavantage, Finance, Finnhub, Polygon |
market.marketCapRank | number (integer) | 4 | Coingecko |
market.bid | number | 9 | Binance, Polymarket, Coinbase, Finance |
market.ask | number | 9 | Binance, Polymarket, Coinbase, Finance |
market.exchange | string | 8 | Polygon, Yahoo, Alphavantage, Edgar, Finance +1 more |
market.openInterest | number | 7 | Polymarket, Kalshi, Finance |
market.liquidity | number | 10 | Polymarket, Manifold |
market.probability | number | 7 | Manifold, Metaculus |
place#
6 fields.
| Field | Type | Endpoints | Platforms |
|---|---|---|---|
place.lat | number | 54 | Openmeteo, Usgs, Tripadvisor, Nominatim, Nws +22 more |
place.lon | number | 54 | Openmeteo, Usgs, Tripadvisor, Nominatim, Nws +22 more |
place.address | string | 27 | Tripadvisor, Foursquare, Google, Googleplaces, Hm +10 more |
place.city | string | 18 | Tripadvisor, Ror, Yelp, Facebook, G2 +8 more |
place.timeZone | string | 11 | Nws, Openmeteo, Geoip |
place.elevationM | number | 8 | Openmeteo, Nws, Metno |
listing#
14 fields.
| Field | Type | Endpoints | Platforms |
|---|---|---|---|
listing.price | number | 70 | Klarna, Apple, Aliexpress, Gumtree, Sephora +22 more |
listing.originalPrice | number | 8 | Steam, Bestbuy, Cheapshark |
listing.discountPercent | number | 5 | Steam |
listing.currency | string | 57 | Klarna, Steam, Apple, Aliexpress, Sephora +15 more |
listing.brand | string | 36 | Klarna, Sephora, Aliexpress, Amazon, Bestbuy +13 more |
listing.seller | string | 14 | Tiktokshop, eBay, Facebook, Amazon, Google +4 more |
listing.condition | string | 6 | eBay, Amazon, Google Shopping, Klarna, Walmart |
listing.available | boolean | 11 | Shopify, Wayback, Amazon, Google Shopping, Klarna +2 more |
listing.sku | string | 3 | Shopify |
listing.barcode | string | 3 | Musicbrainz |
listing.company | string | 31 | Jobs, LinkedIn, Rdap, Themuse, Greenhouse +9 more |
listing.jobType | string | 12 | Jobs, Himalayas, Lever, Remotive, Smartrecruiters +1 more |
listing.remote | boolean | 5 | Smartrecruiters, Arbeitnow, Ashby, Jobs |
listing.applyUrl | string (http/https URL) | 9 | Jobs, Lever, Ashby, Smartrecruiters |
listing.salary#
4 fields.
| Field | Type | Endpoints | Platforms |
|---|---|---|---|
listing.salary.min | number | 7 | Himalayas, Jobicy, Jobs, Remoteok |
listing.salary.max | number | 7 | Himalayas, Jobicy, Jobs, Remoteok |
listing.salary.currency | string | 6 | Himalayas, Jobicy, Jobs |
listing.salary.period | string | 6 | Himalayas, Jobicy, Jobs |
package#
12 fields.
| Field | Type | Endpoints | Platforms |
|---|---|---|---|
package.version | string | 94 | crates.io, Amo, Rubygems, npm, Apple +33 more |
package.license | string | 28 | GitHub, Ckan, Flathub, Cdnjs, crates.io +9 more |
package.homepageUrl | string (http/https URL) | 30 | GitHub, crates.io, Rubygems, Aur, Cdnjs +9 more |
package.repositoryUrl | string (http/https URL) | 21 | crates.io, Rubygems, Terraform, Goproxy, Huggingface +4 more |
package.documentationUrl | string (http/https URL) | 10 | crates.io, Rubygems, Hex |
package.defaultBranch | string | 15 | GitHub, Codeberg, GitLab, Bitbucket |
package.namespace | string | 7 | Terraform, Docker Hub, Openvsx |
package.archived | boolean | 9 | GitHub, Codeberg |
package.deprecated | boolean | 6 | Artifacthub, Homebrew, Depsdev, npm |
package.yanked | boolean | 4 | crates.io, Jsr, PyPI |
package.dependencies | list of strings | 4 | Homebrew, npm, PyPI, Terraform |
package.pushedAt | string (ISO 8601) | 6 | GitHub |
paper#
7 fields.
| Field | Type | Endpoints | Platforms |
|---|---|---|---|
paper.doi | string | 9 | Europepmc, Openalex, Zenodo, Core, Unpaywall |
paper.journal | string | 7 | Europepmc, Crossref, Plos, Springernature |
paper.venue | string | 2 | Semanticscholar |
paper.publisher | string | 10 | Crossref, Open Library, Datacite, Unpaywall |
paper.issn | string | 4 | Crossref, Openalex |
paper.openAccess | boolean | 2 | Openalex, Unpaywall |
paper.openAccessUrl | string (http/https URL) | 2 | Openalex, Unpaywall |
event#
2 fields.
| Field | Type | Endpoints | Platforms |
|---|---|---|---|
event.startDate | string (ISO 8601) | 21 | Kitsu, LinkedIn, Musicbrainz, Facebook, Polymarket +1 more |
event.endDate | string (ISO 8601) | 11 | LinkedIn, Facebook, Polymarket, Twitch |
ext: platform-specific fields#
Some data has no shared meaning across platforms (a weather station's ext.temperatureC, an anime's ext.englishName). Those fields live under ext.<name>: one flat level, camelCase, always documented on the endpoint page that returns them. Today 1,236 such names exist, most of them on a single endpoint. ext names are stable per endpoint but are not part of the cross-platform contract; code that must work across platforms should read the fields above only. A name used widely across platforms is promoted into the fixed schema, additively.
| Most common ext field | Endpoints | Platforms |
|---|---|---|
ext.rating | 27 | Tiktokshop, Tripadvisor, Facebook +15 more |
ext.posts | 26 | Discourse, Lemmy, Stack Exchange +2 more |
ext.title | 23 | Lemmy, Chess, Lichess +4 more |
ext.size | 21 | Blockstream, Bitbucket, Docker Hub +9 more |
ext.symbol | 21 | Worldbank, Federalregister, Nager +8 more |
ext.episodes | 18 | Jikan, Anilist, Kitsu +1 more |
ext.level | 18 | Themuse, Dnd5e, Himalayas +7 more |
ext.phone | 18 | Tripadvisor, Foursquare, Google +9 more |
ext.works | 18 | Openalex, Crossref, Open Library |
ext.englishName | 17 | Jikan, Anilist |
ext.developer | 15 | Amo, Apple, Flathub +4 more |
ext.value | 15 | Dns, Edgar, Bls +5 more |
ext.album | 14 | Deezer, Itunes, Spotify +2 more |
ext.season | 13 | Jikan, Tvmaze, Kitsu |
ext.apUrl | 11 | Lemmy |
Try it: Schema field explorer