creatordb-app · Schema
YoutubePerformanceData
Performance metrics.
CompanyCreator DataInfluencer MarketingAPIAnalyticsAsia
Properties
| Name | Type | Description |
|---|---|---|
| contentCountByDays | object | Number of videos published over different time intervals. |
| ranking | object | Percentile rankings for various performance metrics, benchmarked at the global, country, or language level. A value of `1.0` indicates top 1%, while `0.5` represents the median. |
| videosPerformanceRecent | object | Performance metrics of the creator's last 20 YouTube videos. |
| shortsPerformanceRecent | object | Performance metrics of the creator's last 20 YouTube shorts. |
| videosPerformanceAll | object | Creator's video performance metrics for the last 800 YouTube videos. |
| shortsPerformanceAll | object | Performance metrics for the last 800 YouTube shorts. |
| recentVideosGrowth | object | Growth metrics for recent YouTube videos across 7, 30, and 90-day periods. |
| recentShortsGrowth | object | Growth metrics for recent shorts across 7, 30, and 90-day periods. |
| videoPrice | object | Estimated video prices, including Cost Per Mille (CPM) and per-video rate ranges. |
| shortsPrice | object | Estimated YouTube Shorts prices, including CPM and per-video rate ranges. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/creatordb-app/json-schema/creatordb-app-youtube-performance-data-schema.json",
"title": "YoutubePerformanceData",
"description": "Performance metrics.",
"x-generated": "2026-10-30",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/creatordb-app-openapi.yaml#/components/schemas/YoutubePerformanceData",
"type": "object",
"properties": {
"contentCountByDays": {
"type": "object",
"description": "Number of videos published over different time intervals.",
"properties": {
"7d": {
"type": "integer",
"description": "Number of videos published in the past 7 days.",
"minimum": 0
},
"30d": {
"type": "integer",
"description": "Number of videos published in the past 30 days.",
"minimum": 0
},
"90d": {
"type": "integer",
"description": "Number of videos published in the past 90 days.",
"minimum": 0
}
},
"required": [
"7d",
"30d",
"90d"
]
},
"ranking": {
"type": "object",
"description": "Percentile rankings for various performance metrics, benchmarked at the global, country, or language level. A value of `1.0` indicates top 1%, while `0.5` represents the median.",
"properties": {
"totalSubscribers": {
"type": "object",
"description": "Percentile rank of the total subscriber count.",
"properties": {
"global": {
"type": "number",
"description": "Percentile rank compared to all creators in CreatorDB's database.",
"minimum": 0,
"maximum": 1
},
"country": {
"type": "number",
"description": "Percentile rank among creators from the same country.",
"minimum": 0,
"maximum": 1
},
"language": {
"type": "number",
"description": "Percentile rank among creators using the same primary language.",
"minimum": 0,
"maximum": 1
}
},
"required": [
"global",
"country",
"language"
]
},
"avgEngagementRate": {
"type": "object",
"description": "Percentile rank of the average engagement rate for the last 20 YouTube videos.",
"properties": {
"global": {
"type": "number",
"description": "Percentile rank compared to all creators in CreatorDB's database.",
"minimum": 0,
"maximum": 1
},
"country": {
"type": "number",
"description": "Percentile rank among creators from the same country.",
"minimum": 0,
"maximum": 1
},
"language": {
"type": "number",
"description": "Percentile rank among creators using the same primary language.",
"minimum": 0,
"maximum": 1
}
},
"required": [
"global",
"country",
"language"
]
}
},
"required": [
"totalSubscribers",
"avgEngagementRate"
]
},
"videosPerformanceRecent": {
"type": "object",
"description": "Performance metrics of the creator's last 20 YouTube videos.",
"properties": {
"likes": {
"type": "object",
"properties": {
"all": {
"type": "integer",
"description": "Total number of likes across the last 20 YouTube videos.",
"minimum": 0
},
"avg": {
"type": "integer",
"description": "Average likes per video for the last 20 YouTube videos, rounded to an integer.",
"minimum": 0
},
"median": {
"type": "integer",
"description": "Median number of likes across the last 20 YouTube videos.",
"minimum": 0
},
"min": {
"type": "integer",
"description": "Minimum number of likes across the last 20 YouTube videos.",
"minimum": 0
},
"max": {
"type": "integer",
"description": "Maximum number of likes across the last 20 YouTube videos.",
"minimum": 0
}
},
"required": [
"all",
"avg",
"median",
"min",
"max"
]
},
"comments": {
"type": "object",
"properties": {
"all": {
"type": "integer",
"description": "Total number of comments across the last 20 YouTube videos.",
"minimum": 0
},
"avg": {
"type": "integer",
"description": "Average comments per video for last 20 YouTube videos, rounded to an integer.",
"minimum": 0
},
"median": {
"type": "integer",
"description": "Median number of comments across the last 20 YouTube videos.",
"minimum": 0
},
"min": {
"type": "integer",
"description": "Minimum number of comments across the last 20 YouTube videos.",
"minimum": 0
},
"max": {
"type": "integer",
"description": "Maximum number of comments across the last 20 YouTube videos.",
"minimum": 0
}
},
"required": [
"all",
"avg",
"median",
"min",
"max"
]
},
"views": {
"type": "object",
"properties": {
"all": {
"type": "integer",
"description": "Total number of views across the last 20 YouTube videos.",
"minimum": 0
},
"avg": {
"type": "integer",
"description": "Average views per video for the last 20 YouTube videos, rounded to an integer.",
"minimum": 0
},
"median": {
"type": "integer",
"description": "Median number of views across the last 20 YouTube videos.",
"minimum": 0
},
"min": {
"type": "integer",
"description": "Minimum number of views across the last 20 YouTube videos.",
"minimum": 0
},
"max": {
"type": "integer",
"description": "Maximum number of views across the last 20 YouTube videos.",
"minimum": 0
},
"percentile25": {
"type": "integer",
"description": "The 25th percentile (first quartile) of views across the last 20 YouTube videos.",
"minimum": 0
},
"percentile75": {
"type": "integer",
"description": "The 75th percentile (third quartile) of views across the last 20 YouTube videos.",
"minimum": 0
},
"iqr": {
"type": "integer",
"description": "Interquartile range (IQR) of views, calculated from the 25th to the 75th percentile, representing the spread of the middle 50%.",
"minimum": 0
}
},
"required": [
"all",
"avg",
"median",
"min",
"max",
"percentile25",
"percentile75",
"iqr"
]
},
"length": {
"type": "object",
"description": "Video length in seconds.",
"properties": {
"avg": {
"type": "integer",
"description": "Average video length in seconds, rounded to an integer.",
"minimum": 0
}
},
"required": [
"avg"
]
},
"engagement": {
"type": "object",
"description": "Engagement performance metrics including engagement rates, per-subscriber statistics, and consistency analysis.",
"properties": {
"avgEngagementRate": {
"type": "number",
"description": "Average engagement rate per video, rounded to 4th decimal place. <br />\n- *Engagement Rate = (Likes + Comments)/ Views*",
"minimum": 0
},
"likesPerSubscriber": {
"type": "number",
"description": "Average likes per subscriber for the last 20 YouTube videos, rounded to 4th decimal place.",
"minimum": 0
},
"commentsPerSubscriber": {
"type": "number",
"description": "Average comments per subscriber for the last 20 YouTube videos, rounded to 4th decimal place.",
"minimum": 0
},
"viewsPerSubscriber": {
"type": "number",
"description": "Average views per subscriber for the last 20 YouTube videos, rounded to 4th decimal place.",
"minimum": 0
},
"engagementConsistency": {
"type": "object",
"description": "Consistency of engagement performance across the last 20 YouTube videos.",
"properties": {
"cv": {
"type": "number",
"description": "*cv = Standard Deviation of Engagement Rate/ Mean Engagement Rate* <br />\n- The value is rounded to 4th decimal place. <br />\n- Lower values indicate more consistent performance. <br />\n- *A value of `0` indicates insufficient data.*",
"minimum": 0
},
"medianVsMean": {
"type": "number",
"description": "*medianVsMean = Median Engagement Rate/ Mean Engagement Rate* <br />\n- The value is rounded to 4th decimal place. <br />\n- Values closer to `1` indicate more consistent performance. <br />\n- *A value of `0` indicates insufficient data.*",
"minimum": 0
},
"topBottomRatio": {
"type": "number",
"description": "*topBottomRatio = avg(Top 3 Engagement)/ avg(Bottom 3 Engagement)* <br />\n- The value is rounded to 4th decimal place. <br />\n- Lower ratios indicate more consistent performance. <br />\n- *A value of `0` indicates insufficient data.*",
"minimum": 0
},
"consistencyScore": {
"type": [
"integer",
"null"
],
"description": "*consistencyScore = 100 - [(cvScore*weight_cv) + (topBottomScore*weight_topBottom) + (medianVsMeanScore*weight_medianVsMean)]* <br />\n- The score is rounded to an integer. <br />\n- A higher score indicates more stable and consistent performance. <br />\n- If any of the three indicators is `0`, the `consistencyScore` will be null.",
"minimum": 0,
"maximum": 100
},
"consistencyLevel": {
"type": [
"string",
"null"
],
"enum": [
"high",
"moderate",
"low",
null
],
"description": "A qualitative label based on the `consistencyScore`: <br />\n- high: 81 - 100 <br />\n- moderate: 51 - 80 <br />\n- low: 0 - 50 <br />\n- Returns `null` when `consistencyScore` is `null`."
}
},
"required": [
"cv",
"medianVsMean",
"topBottomRatio",
"consistencyScore",
"consistencyLevel"
]
}
},
"required": [
"avgEngagementRate",
"likesPerSubscriber",
"commentsPerSubscriber",
"viewsPerSubscriber",
"engagementConsistency"
]
}
},
"required": [
"likes",
"comments",
"views",
"length",
"engagement"
]
},
"shortsPerformanceRecent": {
"type": "object",
"description": "Performance metrics of the creator's last 20 YouTube shorts.",
"properties": {
"likes": {
"type": "object",
"properties": {
"all": {
"type": "integer",
"description": "Total number of likes across the last 20 YouTube shorts.",
"minimum": 0
},
"avg": {
"type": "integer",
"description": "Average likes per short for the last 20 YouTube shorts, rounded to an integer.",
"minimum": 0
},
"median": {
"type": "integer",
"description": "Median number of likes across the last 20 YouTube shorts.",
"minimum": 0
},
"min": {
"type": "integer",
"description": "Minimum number of likes across the last 20 YouTube shorts.",
"minimum": 0
},
"max": {
"type": "integer",
"description": "Maximum number of likes across the last 20 YouTube shorts.",
"minimum": 0
}
},
"required": [
"all",
"avg",
"median",
"min",
"max"
]
},
"comments": {
"type": "object",
"properties": {
"all": {
"type": "integer",
"description": "Total number of comments across the last 20 YouTube shorts.",
"minimum": 0
},
"avg": {
"type": "integer",
"description": "Average comments per short, rounded to an integer.",
"minimum": 0
},
"median": {
"type": "integer",
"description": "Median number of comments across the last 20 YouTube shorts.",
"minimum": 0
},
"min": {
"type": "integer",
"description": "Minimum number of comments across the last 20 YouTube shorts.",
"minimum": 0
},
"max": {
"type": "integer",
"description": "Maximum number of comments across the last 20 YouTube shorts.",
"minimum": 0
}
},
"required": [
"all",
"avg",
"median",
"min",
"max"
]
},
"views": {
"type": "object",
"properties": {
"all": {
"type": "integer",
"description": "Total number of views across the last 20 YouTube shorts.",
"minimum": 0
},
"avg": {
"type": "integer",
"description": "Average views per short for the last 20 YouTube shorts, rounded to an integer.",
"minimum": 0
},
"median": {
"type": "integer",
"description": "Median number of views across the last 20 YouTube shorts.",
"minimum": 0
},
"min": {
"type": "integer",
"description": "Minimum number of views across the last 20 YouTube shorts.",
"minimum": 0
},
"max": {
"type": "integer",
"description": "Maximum number of views across the last 20 YouTube shorts.",
"minimum": 0
},
"percentile25": {
"type": "integer",
"description": "The 25th percentile (first quartile) of views across the last 20 YouTube shorts.",
"minimum": 0
},
"percentile75": {
"type": "integer",
"description": "The 75th percentile (third quartile) of views across the last 20 YouTube shorts.",
"minimum": 0
},
"iqr": {
"type": "integer",
"description": "Interquartile range (IQR) of views, calculated as the 25th to 75th percentile, representing the spread of the middle 50%.",
"minimum": 0
}
},
"required": [
"all",
"avg",
"median",
"min",
"max",
"percentile25",
"percentile75",
"iqr"
]
},
"length": {
"type": "object",
"description": "Shorts length statistics in seconds.",
"properties": {
"avg": {
"type": "integer",
"description": "The average shorts length in seconds, rounded to an integer.",
"minimum": 0
}
},
"required": [
"avg"
]
},
"engagement": {
"type": "object",
"description": "Engagement performance metrics of shorts including rates, per-subscriber statistics and consistency analysis.",
"properties": {
"avgEngagementRate": {
"type": "number",
"description": "Average engagement rate per short, rounded to 4th decimal place. <br /> \n- *Engagement Rate = (Likes + Comments)/ Views*.",
"minimum": 0
},
"likesPerSubscriber": {
"type": "number",
"description": "Average likes per subscriber for the last 20 YouTube shorts, rounded to 4th decimal place.",
"minimum": 0
},
"commentsPerSubscriber": {
"type": "number",
"description": "Average comments per subscriber for the last 20 YouTube shorts, rounded to 4th decimal place.",
"minimum": 0
},
"viewsPerSubscriber": {
"type": "number",
"description": "Average views per subscriber for the last 20 YouTube shorts, rounded to 4th decimal place.",
"minimum": 0
},
"engagementConsistency": {
"type": "object",
"description": "Consistency of engagement performance across the last 20 YouTube shorts.",
"properties": {
"cv": {
"type": "number",
"description": "*cv = Standard Deviation of Engagement Rate/Mean Engagement Rate* <br />\n- The value is rounded to 4th decimal place. <br />\n- Lower values indicate more consistent performance. <br />\n- *A value of `0` indicates insufficient data.*",
"minimum": 0
},
"medianVsMean": {
"type": "number",
"description": "*medianVsMean = Median Engagement Rate/ Mean Engagement Rate* <br />\n- The value is rounded to 4th decimal place. <br />\n- Values closer to `1` indicate more consistent performance. <br />\n- *A value of `0` indicates insufficient data.*",
"minimum": 0
},
"topBottomRatio": {
"type": "number",
"description": "*topBottomRatio = avg(Top 3 Engagement)/avg(Bottom 3 Engagement)* <br />\n- The value is rounded to 4th decimal place. <br />\n- Lower ratios indicate more consistent performance. <br />\n- *A value of `0` indicates insufficient data.*",
"minimum": 0
},
"consistencyScore": {
"type": [
"integer",
"null"
],
"description": "*consistencyScore = 100 - [(cvScore\\*weight_cv) + (topBottomScore\\*weight_topBottom) + (medianVsMeanScore\\*weight_medianVsMean)]* <br />\n- The score is rounded to an integer. <br />\n- A higher score indicates more stable and consistent performance. <br />\n- If any of the three indicators is `0`, the `consistencyScore` will be `null`.",
"minimum": 0,
"maximum": 100
},
"consistencyLevel": {
"type": [
"string",
"null"
],
"enum": [
"high",
"moderate",
"low",
null
],
"description": "A qualitative label based on the `consistencyScore`: <br />\n- high: 81 - 100 <br />\n- moderate: 51 - 80 <br />\n- low: 0 - 50 <br />\n- Returns `null` when `consistencyScore` is `null`."
}
},
"required": [
"cv",
"medianVsMean",
"topBottomRatio",
"consistencyScore",
"consistencyLevel"
]
}
},
"required": [
"avgEngagementRate",
"likesPerSubscriber",
"commentsPerSubscriber",
"viewsPerSubscriber",
"engagementConsistency"
]
}
},
"required": [
"likes",
"comments",
"views",
"length",
"engagement"
]
},
"videosPerformanceAll": {
"type": "object",
"description": "Creator's video performance metrics for the last 800 YouTube videos.",
"properties": {
"likes": {
"type": "object",
"description": "Likes statistics for the last 800 YouTube videos.",
"properties": {
"all": {
"type": "integer",
"description": "Total number of likes across the last 800 YouTube videos.",
"minimum": 0
},
"avg": {
"type": "integer",
"description": "Average likes per video for the last 800 YouTube videos, rounded to an integer.",
"minimum": 0
},
"median": {
"type": "integer",
"description": "Median number of likes across the last 800 YouTube videos.",
"minimum": 0
},
"min": {
"type": "integer",
"description": "Minimum number of likes across the last 800 YouTube videos.",
"minimum": 0
},
"max": {
"type": "integer",
"description": "Maximum number of likes across the last 800 YouTube videos.",
"minimum": 0
}
},
"required": [
"all",
"avg",
"median",
"min",
"max"
]
},
"comments": {
"type": "object",
"description": "Comments statistics for the last 800 YouTube videos.",
"properties": {
"all": {
"type": "integer",
"description": "Total number of comments across the last 800 YouTube videos.",
"minimum": 0
},
"avg": {
"type": "integer",
"description": "Average comments per video for the last 800 YouTube videos, rounded to an integer.",
"minimum": 0
},
"median": {
"type": "integer",
"description": "Median number of comments across the last 800 YouTube videos.",
"minimum": 0
},
"min": {
"type": "integer",
"description": "Minimum number of comments across the last 800 YouTube videos.",
"minimum": 0
},
"max": {
"type": "integer",
"description": "Maximum number of comments across the last 800 YouTube videos.",
"minimum": 0
}
},
"required": [
"all",
"avg",
"median",
"min",
"max"
]
},
"views": {
"type": "object",
"description": "View statistics for the last 800 YouTube videos.",
"properties": {
"all": {
"type": "integer",
"description": "Total number of views across the last 800 YouTube videos.",
"minimum": 0
},
"avg": {
"type": "integer",
"description": "Average views per video for the last 800 YouTube videos, rounded to an integer.",
"minimum": 0
},
"median": {
"type": "integer",
"description": "Median number of views across the last 800 YouTube videos.",
"minimum": 0
},
"min": {
"type": "integer",
"description": "Minimum number of views across the last 800 YouTube videos.",
"minimum": 0
},
"max": {
"type": "integer",
"description": "Maximum number of views across the last 800 YouTube videos.",
"minimum": 0
},
"percentile25": {
"type": "integer",
"description": "The 25th percentile (first quartile) of views across the last 800 YouTube videos.",
"minimum": 0
},
"percentile75": {
"type": "integer",
"description": "The 75th percentile (third quartile) of views across the last 800 YouTube videos.",
"minimum": 0
},
"iqr": {
"type": "integer",
"description": "Interquartile range (IQR) of views, calculated as 25th to 75th percentile, representing the spread of the middle 50%.",
"minimum": 0
}
},
"required": [
"all",
"avg",
"median",
"min",
"max",
"percentile25",
"percentile75",
"iqr"
]
},
"length": {
"type": "object",
"description": "Video length statistics for the last 800 YouTube videos.",
"properties": {
"avg": {
"type": "integer",
"description": "Average video length in seconds, rounded to an integer.",
"minimum": 0
}
},
"required": [
"avg"
]
},
"engagement": {
"type": "object",
"description": "Engagement metrics for the last 800 YouTube videos.",
"properties": {
"avgEngagementRate": {
"type": "number",
"description": "Average engagement rate per video, rounded to 4th decimal place. <br /> \n- *Engagement Rate = (Likes + Comments)/ Views*",
"minimum": 0
},
"likesPerSubscriber": {
"type": "number",
"description": "Average likes per subscriber for the last 800 YouTube videos, rounded to 4th decimal place.",
"minimum": 0
},
"commentsPerSubscriber": {
"type": "number",
"description": "Average comments per subscriber for the last 800 YouTube videos, rounded to 4th decimal place.",
"minimum": 0
},
"viewsPerSubscriber": {
"type": "number",
"description": "Average views per subscriber for the last 800 YouTube videos, rounded to 4th decimal place.",
"minimum": 0
},
"engagementConsistency": {
"type": "object",
"description": "Consistency of engagement performance across the last 800 YouTube videos.",
"properties": {
"cv": {
"type": "number",
"description": "*cv = Standard Deviation of Engagement Rate/Mean Engagement Rate* <br />\n- The value is rounded to 4th decimal place. <br />\n- Lower values indicate more consistent performance. <br />\n- *A value of `0` indicates insufficient data.*",
"minimum": 0
},
"medianVsMean": {
"type": "number",
"description": "*medianVsMean = Median Engagement Rate/ Mean Engagement Rate* <br />\n- The value is rounded to 4th decimal place. <br />\n- Values closer to `1` indicate more consistent performance. <br />\n- *A value of `0` indicates insufficient data.*",
"minimum": 0
},
"topBottomRatio": {
"type": "number",
"description": "*topBottomRatio = avg(Top 3 Engagement)/avg(Bottom 3 Engagement)* <br />\n- The value is rounded to 4th decimal place. <br />\n- Lower ratios indicate more consistent performance. <br />\n- *A value of `0` indicates insufficient data.*",
"minimum": 0
},
"consistencyScore": {
"type": [
"integer",
"null"
],
"description": "*consistencyScore = 100 - [(cvScore\\*weight_cv) + (topBottomScore\\*weight_topBottom) + (medianVsMeanScore\\*weight_medianVsMean)]* <br />\n- The score is rounded to an integer. <br />\n- A higher score indicates more stable and consistent performance. <br />\n- If any of the three indicators is `0`, the `consistencyScore` will be `null`.",
"minimum": 0,
"maximum": 100
},
"consistencyLevel": {
"type": [
"string",
"null"
],
"enum": [
"high",
"moderate",
"low",
null
],
"description": "A qualitative label based on the `consistencyScore`: <br />\n- high: 81 - 100 <br />\n- moderate: 51 - 80 <br />\n- low: 0 - 50 <br />\n- Returns `null` when `consistencyScore` is `null`."
}
},
"required": [
"cv",
"medianVsMean",
"topBottomRatio",
"consistencyScore",
"consistencyLevel"
]
}
},
"required": [
"avgEngagementRate",
"likesPerSubscriber",
"commentsPerSubscriber",
"viewsPerSubscriber",
"engagementConsistency"
]
}
},
"required": [
"likes",
"comments",
"views",
"length",
"engagement"
]
},
"shortsPerformanceAll": {
"type": "object",
"description": "Performance metrics for the last 800 YouTube shorts.",
"properties": {
"likes": {
"type": "object",
"description": "Likes statistics for the last 800 YouTube shorts.",
"properties": {
"all": {
"type": "integer",
"description": "Total number of likes across the last 800 YouTube shorts.",
"minimum": 0
},
"avg": {
"type": "integer",
"description": "Average likes per short, for the last 800 YouTube shorts, rounded to an integer.",
"minimum": 0
},
"median": {
"type": "integer",
"description": "Median number of likes across the last 800 YouTube shorts.",
"minimum": 0
},
"min": {
"type": "integer",
"description": "Minimum number of likes across the last 800 YouTube shorts.",
"minimum": 0
},
"max": {
"type": "integer",
"description": "Maximum number of likes across the last 800 YouTube shorts.",
"minimum": 0
}
},
"required": [
"all",
"avg",
"median",
"min",
"max"
]
# --- truncated at 32 KB (46 KB total) ---
# Full source: https://artifacts.apis.io/creatordb-app/json-schema/creatordb-app-youtube-performance-data-schema.json
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/creatordb-app-youtube-performance-data"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.