Reviews: stars over a window, per review page
https://api.mentio.dev/v1/analytics/reviewsReport on your keywords' reviews: count, average stars, distribution, replies and open 1-2 star reviews.
Per page too, with unhappy reviews' tags; each review counts once.
The window is range or from and to, in timezone, by publish date; compare=true adds the period before.
Authentication
AuthorizationBearer <token>RequiredAn API key (mk_live_...) from the dashboard or an OAuth access token. See Authentication.
Query parameters
rangestringOptionalPreset window ending today. Ignored when from or to is given. Default 30d.
7d30d90d365dfromstringOptionalFirst day, YYYY-MM-DD, inclusive, in timezone.
tostringOptionalLast day, YYYY-MM-DD, inclusive, in timezone. Default today.
keywordIdsarray<string>nullableOptionalOnly these keyword ids. Repeatable, or comma-separated; omit for every keyword.
0 to 50 itemsplatformsarray<string>OptionalOnly these platforms. Repeatable, or comma-separated; omit for every platform.
0 to 20 items+-Show 18 enum valuesHide 18 enum values
blueskyhackernewsgithubstackoverflowdevtoredditxyoutubenewslinkedintiktokinstagramfacebookappstoregoogleplaytrustpilotgooglemapsrssnotKeywordIdsarray<string>nullableOptionalNever these keyword ids. Repeatable, or comma-separated.
0 to 50 itemsnotPlatformsarray<string>OptionalNever these platforms. Repeatable, or comma-separated.
0 to 20 items+-Show 18 enum valuesHide 18 enum values
blueskyhackernewsgithubstackoverflowdevtoredditxyoutubenewslinkedintiktokinstagramfacebookappstoregoogleplaytrustpilotgooglemapsrsscomparebooleanOptionaltrue adds the period of the same length right before the window as previous.
timezonestringOptionalIANA zone the days are cut in (Europe/Madrid). Default UTC. One offset, the zone's at the end of the window, applies to the whole window.
0 to 64 charactersbucketstringOptionalSeries bucket: day (default up to 90 days) or week.
dayweekResponse
windowobjectRequiredThe window the report covers.
+-Show 5 propertiesHide 5 properties
fromstringRequiredFirst day, inclusive.
tostringRequiredLast day, inclusive.
daysintegerRequiredLength of the window in days.
0 to ∞timezonestringRequiredIANA zone the days were cut in.
bucketstringRequiredHow the page series are cut: day up to 90 days, else week, unless asked.
dayweektotalsobjectRequiredThe window's review count and average rating.
+-Show 5 propertiesHide 5 properties
reviewsintegerRequiredReviews published in the window; a review matched by two keywords counts once.
0 to ∞averageRatingnumbernullableRequiredAverage stars, one decimal; null with no reviews.
1 to 5distributionobjectRequiredReviews per star rating.
+-Show 5 propertiesHide 5 properties
1integerRequiredOne star.
0 to ∞2integerRequiredTwo stars.
0 to ∞3integerRequiredThree stars.
0 to ∞4integerRequiredFour stars.
0 to ∞5integerRequiredFive stars.
0 to ∞respondedintegerRequiredReviews carrying the owner's or developer's reply (the App Store's feed has none).
0 to ∞openNegativeintegerRequired1 and 2 star reviews nobody has marked done or ignored yet.
0 to ∞tagsarray<object>RequiredIntent and topic tags on the 1 and 2 star reviews, most frequent first: what the unhappy ones are about.
+-Show 2 propertiesHide 2 properties
tagstringRequiredThe intent or topic tag.
countintegerRequiredReviews carrying it.
0 to ∞pagesarray<object>RequiredOne row per review page with reviews in the window, most reviewed first.
+-Show 10 propertiesHide 10 properties
reviewsintegerRequiredReviews published in the window; a review matched by two keywords counts once.
0 to ∞averageRatingnumbernullableRequiredAverage stars, one decimal; null with no reviews.
1 to 5distributionobjectRequiredReviews per star rating.
+-Show 5 propertiesHide 5 properties
1integerRequiredOne star.
0 to ∞2integerRequiredTwo stars.
0 to ∞3integerRequiredThree stars.
0 to ∞4integerRequiredFour stars.
0 to ∞5integerRequiredFive stars.
0 to ∞respondedintegerRequiredReviews carrying the owner's or developer's reply (the App Store's feed has none).
0 to ∞openNegativeintegerRequired1 and 2 star reviews nobody has marked done or ignored yet.
0 to ∞platformstringRequiredappstore (Apple App Store), googleplay (Google Play), trustpilot (a company's Trustpilot page) or googlemaps (a place's Google reviews).
appstoregoogleplaytrustpilotgooglemapsidstringRequiredThe page's id: app id, package name, Trustpilot domain, Place ID or cid.
urlstringRequiredThe review page.
seriesarray<object>RequiredReviews and average stars per bucket, oldest first, every bucket present.
+-Show 3 propertiesHide 3 properties
datestringRequiredBucket start, YYYY-MM-DD.
reviewsintegerRequiredReviews in the bucket.
0 to ∞averageRatingnumbernullableRequiredAverage stars, one decimal; null with no reviews.
1 to 5previousobjectnullableRequiredThe period of the same length right before the window, with compare=true; else null.
+-Show 2 propertiesHide 2 properties
reviewsintegerRequiredReviews in the window.
0 to ∞averageRatingnumbernullableRequiredAverage stars, one decimal; null with no reviews.
1 to 5previousobjectnullableRequiredTotals for the period right before the window, with compare=true; else null.
+-Show 5 propertiesHide 5 properties
reviewsintegerRequiredReviews published in the window; a review matched by two keywords counts once.
0 to ∞averageRatingnumbernullableRequiredAverage stars, one decimal; null with no reviews.
1 to 5distributionobjectRequiredReviews per star rating.
+-Show 5 propertiesHide 5 properties
1integerRequiredOne star.
0 to ∞2integerRequiredTwo stars.
0 to ∞3integerRequiredThree stars.
0 to ∞4integerRequiredFour stars.
0 to ∞5integerRequiredFive stars.
0 to ∞respondedintegerRequiredReviews carrying the owner's or developer's reply (the App Store's feed has none).
0 to ∞openNegativeintegerRequired1 and 2 star reviews nobody has marked done or ignored yet.
0 to ∞+-Show 1 propertyHide 1 property
errorobjectRequiredThe error.
+-Show 5 propertiesHide 5 properties
codestringRequiredStable machine-readable code; branch on this, never on the message. Codes are additive: a client should treat one it does not know as a generic failure of the same status.
+-Show 53 enum valuesHide 53 enum values
unauthorizedforbiddenread_only_keyvalidation_errornot_foundinvalid_cursorpayload_too_largeidempotency_key_in_useidempotency_key_reusedrate_limitedduplicate_keywordinvalid_queryquery_needs_one_termquery_not_supportedinsufficient_balancefunding_requiredkeyword_limit_reachedbilling_not_configuredorder_not_creditedschedule_requiredunknown_channelnot_a_digesthourly_email_unsupportedslack_not_connectedslack_not_configuredtelegram_not_configuredfeed_unreadablefeed_login_requiredfeed_login_expiredfeed_limit_reachedfeed_auth_not_configuredemail_not_configuredinvalid_assigneeclassification_pendinginvalid_memberalready_memberlast_ownerduplicate_segmentfilter_too_complexduplicate_viewduplicate_automationautomation_filter_unreadableautomation_limit_reachedduplicate_groupdefault_groupdefault_group_contextgroup_changedinvalid_signaturewebhook_not_configuredinvalid_tokenprotected_userupstream_unavailableinternal_errormessagestringRequiredHuman-readable detail; may change between releases.
requestIdstringOptionalThe id of this request (also the X-Request-Id response header); quote it to support.
retryAfterSecondsintegerOptionalFor rate_limited and other retryable errors: how long to wait before retrying (mirrors the Retry-After header).
detailsobjectOptionalMachine-readable facts about this error, when the code has any: for a keyword query, reason, position (the character a syntax error was found at) or terms (one keyword each).
+-Show 1 propertyHide 1 property
errorobjectRequiredThe error.
+-Show 5 propertiesHide 5 properties
codestringRequiredStable machine-readable code; branch on this, never on the message. Codes are additive: a client should treat one it does not know as a generic failure of the same status.
+-Show 53 enum valuesHide 53 enum values
unauthorizedforbiddenread_only_keyvalidation_errornot_foundinvalid_cursorpayload_too_largeidempotency_key_in_useidempotency_key_reusedrate_limitedduplicate_keywordinvalid_queryquery_needs_one_termquery_not_supportedinsufficient_balancefunding_requiredkeyword_limit_reachedbilling_not_configuredorder_not_creditedschedule_requiredunknown_channelnot_a_digesthourly_email_unsupportedslack_not_connectedslack_not_configuredtelegram_not_configuredfeed_unreadablefeed_login_requiredfeed_login_expiredfeed_limit_reachedfeed_auth_not_configuredemail_not_configuredinvalid_assigneeclassification_pendinginvalid_memberalready_memberlast_ownerduplicate_segmentfilter_too_complexduplicate_viewduplicate_automationautomation_filter_unreadableautomation_limit_reachedduplicate_groupdefault_groupdefault_group_contextgroup_changedinvalid_signaturewebhook_not_configuredinvalid_tokenprotected_userupstream_unavailableinternal_errormessagestringRequiredHuman-readable detail; may change between releases.
requestIdstringOptionalThe id of this request (also the X-Request-Id response header); quote it to support.
retryAfterSecondsintegerOptionalFor rate_limited and other retryable errors: how long to wait before retrying (mirrors the Retry-After header).
detailsobjectOptionalMachine-readable facts about this error, when the code has any: for a keyword query, reason, position (the character a syntax error was found at) or terms (one keyword each).