Reviews Display
Only API keys on our Conversations PRR platform are eligible to use this API version. Refer to the Platforms section of our Platform & API Concepts documentation to learn which platform your API keys are on.
Returns Reviews and Rating data.
Examples
Demonstration purposes only. Do not reuse the API passkeys below in your application.
Requesting all reviews for a particular product
This example call shows how to use multiple filters. This call only returns the reviews that have comments on them. The reviews are sorted in descending order by Rating.
https://stg.api.bazaarvoice.com/data/reviews.json?apiversion=5.4&passkey=kuy3zj9pr3n7i0wxajrzj04xo&Filter=ProductId:1000001&Filter=HasComments:true&Sort=Rating:desc&Limit=10
Requesting all reviews for a particular product with review statistics (inc. average rating)
This example call shows how to use the include and stats parameters to retrieve product information and review statistics (including average rating). Note: Stats=Reviews must be used in conjunction with Include=Products.
https://stg.api.bazaarvoice.com/data/reviews.json?apiversion=5.4&passkey=kuy3zj9pr3n7i0wxajrzj04xo&Filter=ProductId:1000001&Include=Products&Stats=Reviews
Requesting a single review by Review ID for a particular product
https://stg.api.bazaarvoice.com/data/reviews.json?apiversion=5.4&passkey=kuy3zj9pr3n7i0wxajrzj04xo&filter=id:192612&Filter=ProductId:1000001
You can request multiple reviews by separating the review IDs with a comma - e.g. filter=id:83,84,85
Requesting a single review by Review ID including Product information for a particular product
https://stg.api.bazaarvoice.com/data/reviews.json?apiversion=5.4&passkey=kuy3zj9pr3n7i0wxajrzj04xo&filter=Id:192612&include=Products&Filter=ProductId:1000001
You can request multiple pieces of information by separating them with a comma - e.g. Include=products,categories,authors
Requesting 20 reviews that have comments, sorted by rating in ascending order for a particular product
https://stg.api.bazaarvoice.com/data/reviews.json?apiversion=5.4&passkey=kuy3zj9pr3n7i0wxajrzj04xo&Filter=HasComments:true&Filter=ProductId:1000001&Sort=Rating:desc&Limit=20
You can sort by multiple attributes by separating them with a comma - e.g. Sort=Rating:desc,SubmissionTime:asc
Requesting all native (non-syndicated) reviews
Native (non-syndicated) content only. Continue reading for more details.
https://stg.api.bazaarvoice.com/data/reviews.json?apiversion=5.4&passkey=kuy3zj9pr3n7i0wxajrzj04xo
Requests for this content type that do not include a ProductId
, AuthorId
, CategoryAncestorId
, SubmissionId
, or Review Id
filter will only work with API keys that are configured to exclude syndicated content.
We recommend using our Displayable Content Export service to download all of your native and syndicated content. If you still prefer the Conversations API, then you may contact our support team to have your Conversations API keys re-configured.
Parameters
Name | Description | Required | Default Value |
---|---|---|---|
ApiVersion | The API version, e.g. 5.4. | Yes | |
[FORMAT] | Response format ( xml This feature will not be available or will behave differently in future versions of the Conversations API. Click for more information. or json) | Yes | |
PassKey | API key is required to authenticate API user and check permission to access particular client's data. | Yes | |
Attributes | Attributes to be included when returning content. For example, if includes are requested along with the &attributes=ModeratorCodes parameter, both the includes and the results will contain moderator codes. In order to filter by ModeratorCode, you must request the ModeratorCodes attribute parameter. | No | |
Callback | Callback function name used with JSONP. Value is a string consisting of the following characters: a-z,A-Z,0-9,_ (excluding comma). See the JSONP tutorial for more information. | No | |
ExcludeFamily | Boolean flag indicating whether to exclude content from other products in the same family as the requested product. For example, "&filter=productid:eq:1101&excludeFamily=true" limits returned content to just that of product 1101 and not any of the products in the same family. If a value is not defined, content on all products in the family will be returned. | No | False |
Filter | Filter criteria for primary content of the query. Multiple filter criteria are supported. | No | |
Filter_[TYPE] | Filtering option for included nested content. TYPE can be any included nested content. i.e. Comments for Reviews. | No | |
IncentivizedStats | If set to true , displays the number of incentivized reviews for each product or author returned in the response within an IncentivizedReviewCount element. This parameter must be used in conjunction with the Include parameter to include authors or products in the response, and also with the FilteredStats or Stats parameters to include statistics for reviews in the response. | No | False |
Include | Related subjects to be included (e.g. Products, Categories, Authors, or Comments). | No | Will only return Reviews |
Limit | Max number of records returned. An error is returned if the value passed exceeds 100. | No | 10 |
Limit_[TYPE] | Limit option for the nested content type returned. TYPE can be any nested content. i.e. Comments for Reviews. An error is returned if the value passed exceeds 20. | No | 10 |
Locale | Locale to display Labels, Configuration, Product Attributes and Category Attributes in. The default value is the locale defined in the display associated with the API key. | No | |
Offset | Index at which to return results. By default, indexing begins at 0 when you issue a query. Using Limit=100, Offset=0 returns results 0-99. When changing this to Offset=1, results 1-100 are returned. The maximum supported value is 300000. | No | 0 |
Search | Full-text search string used to find UGC. For more information about what fields are searched by default, see the Conversations API page. Note: This invalidates sort options due to the fact that search takes precedence in returned data. | No | |
Search_[Type] | Searching option for included content followed by full-text search string. See the Conversations API page for examples of searching for included data. Note: This invalidates sort options due to the fact that search takes precedence in returned data. | No | |
Sort | Sort criteria for primary content type of the query. Sort order is required (asc or desc). Multi-attribute sorting for each content/subject type is supported. | No | |
Sort_[TYPE] | Sorting option for nested content. Sort order is required (asc or desc). TYPE can be any nested content. i.e. Comments for Reviews. | No | |
Stats | The type of statistics that will be calculated on included subjects. Available content types are: Reviews, Questions, Answers. Note: Not all statistical content types apply to every possible include. | No |
Filter options
- Each filter argument specifies the attribute to filter on followed by a comma-separated list of values. For instance, "Filter=Rating:eq:3,4" will match all reviews with rating values 3 OR 4.
- Advanced operators can be used to define filters. For instance, "Filter=Rating:lt:3" will match all reviews with a rating value less than 3. All advanced operators are documented on the Conversations API page.
- If a filter value contains a comma or a colon, that character needs to be escaped with a backslash (\, or \:). If a filter value contains an ampersand (&), the ampersand must be encoded in the filter value by replacing & with %26.
- Multiple filters are allowed as URL parameters in which case filters are AND'ed. For instance, "Filter=Rating:gte:4&Filter=IsFeatured:eq:true" will match all featured reviews with a rating of 4-star or higher.
- Time-based filters can be used for SubmissionTime, LastModificationTime and LastModeratedTime. Dates in time-based filters are calculated as the number of seconds since January 1, 1970, 00:00:00 UTC. In a future version, we will be adding support for comparing date/time string values. The following example returns content that was submitted on November 9, 2009: &filter=SubmissionTime:gt:1257746400&filter=SubmissionTime:lt:1257832800
The following table lists the attributes available for filtering.
Name | Description |
---|---|
Id | The identifier of the review. |
AdditionalField_[FIELD_NAME] | Additional field to filter by, e.g., filter=AdditionalField_[FIELD_NAME]:eq:[FIELD_VALUE] |
Affiliation | The valid affiliation type. For example, to display answers by staff members, use filter=affiliation:eq:Staff. The affiliation value is case-sensitive and can be any value that is set in your configuration. |
AuthorId | The identifier of the author who wrote the content. |
CampaignId | The identifier of the Campaign associated with the content |
CategoryAncestorId | The identifier of the Product Category ancestor of the Product that the Review was written on. Syndicated content will not be returned when using this filter. |
ContentLocale | Locale of the content to display. If this filter is not defined, all content regardless of its locale is returned. To return specific content by locale, define the value in the filter. A wildcard character “*” can be used to define the value, e.g., “en*” returns all content in English (en_US, en_CA, en_GB, etc.) or you can use a single ContentLocale code (e.g., “fr_FR”). ContentLocale codes are case-sensitive. |
ContextDataValue_[DIMENSION_EXTERNAL_ID] | The context data value for the content. DIMENSION_EXTERNAL_ID can be age, gender, etc. e.g. filter=contextdatavalue_age:under21 |
HasComments | Boolean flag indicating whether content has comments |
HasPhotos | Boolean flag indicating whether content has photos |
HasTags | Boolean flag indicating whether content has tags |
HasVideos | Boolean flag indicating whether content has videos. For more information on inserting the returned VideoUrl into HTML, see the Conversations API page. |
IsFeatured | Boolean flag indicating whether content is featured |
IsRatingsOnly | Boolean flag indicating whether the review was a ratings only review |
IsRecommended | Boolean flag indicating whether the user would recommend this product |
IsSubjectActive | Boolean flag indicating whether the content subject is active |
IsSyndicated | Boolean flag indicating whether the review has been syndicated. If IsSyndicated:eq:true, a SyndicationSource block with the details of where the syndication is coming from is displayed. Note: The API key must be configured to show syndicated content. |
LastModeratedTime | The date/time of the latest moderation of the content. See the Introduction for an example of using advanced operators for filtering. |
LastModificationTime | The date/time of the latest modification of the content. See the Introduction for an example of using advanced operators for filtering. |
ModeratorCode | String value indicating the moderator code for rejected content that was at one time, e.g., &Filter=ModeratorCode:eq:CR returns UGC that contains the CR (Competitor Reference) code. Multiple codes can be entered in a comma-delimited list, e.g., &Filter=ModeratorCode:eq:CS,IU returns UGC with either the CS (Customer Service Complaint) or the IU (Inappropriate/Unusable Content) code. For a list of all Moderator Codes, see the Conversations API page. Note that the ModeratorCodes attribute parameter should be included in the request. This will ensure the moderated code(s) for each request will be included in the response. If the ModeratorCodes attribute is missing the filter will still perform, but there is not indication of which elements have been tagged with which codes. See the Parameters section above. A more detailed discussion on how moderation works can be found here . |
ProductBrandId | The value of the external product brand ID. The value is case-insensitive. To return content that doesn't have a brand ID associated with it, set productbrandid:eq:null. ⚠️ Caution ProductBrandID filtering does not work with syndicated content. |
ProductId | The identifier of the Product that the Review was written on. |
Rating | The Review Rating, usually between 1 to 5. |
SecondaryRating_[RATING_NAME] | Secondary rating value to filter by, e.g., filter=SecondaryRating_Durability:gte:1. Note: All advanced operators can be used for secondary ratings comparisons. |
SubmissionId | Submission identifier assigned to the content when it was initially submitted |
SubmissionTime | The submission date/time of the content. See the Introduction for an example of using advanced operators for filtering. |
Tag\_[TAG_NAME]\ | The tag name to filter by, e.g., filter=tag_[TAG_NAME]:eq:[TAG_VALUE] |
TotalCommentCount | The number of comments the Review has |
TotalFeedbackCount | Number of feedbacks received |
TotalNegativeFeedbackCount | Number of negative feedbacks received |
TotalPositiveFeedbackCount | Number of positive feedbacks received |
UserLocation | Location of the author |
Sort options
- Sort order is required (asc or desc). There is no default.
- Multi-attribute sorting is supported by using a comma separated list of sort criteria for a content/subject type. e.g. Sort=Rating:asc,SubmissionTime:desc
The following table lists the attributes that are available for sorting.
Name | Description |
---|---|
Id | The identifier of the content/subject type. |
AdditionalField_[FIELD_NAME] | Additional field to sort by, e.g., sort=AdditionalField_[FIELD_NAME]:desc |
AuthorId | The Identifier of the author who wrote the content |
CampaignId | The identifier of the Campaign associated with the content |
ContentLocale | Locale value of the content |
ContextDataValue_[DIMENSION_EXTERNAL_ID] | The context data value for the content. DIMENSION_EXTERNAL_ID can be age, gender, etc. e.g. sort=contextdatavalue_age:desc |
HasComments | Boolean flag indicating whether content has comments |
HasPhotos | Boolean flag indicating whether content has photos |
HasTags | Boolean flag indicating whether content has tags |
HasVideos | Boolean flag indicating whether content has videos. For more information on inserting the returned VideoUrl into HTML, see the Conversations API page. |
Helpfulness | The helpfulness value of the review |
IsFeatured | Boolean flag indicating whether content is featured |
IsRatingsOnly | Boolean flag indicating whether the review was a ratings only review |
IsRecommended | Boolean flag indicating whether the user would recommend this product. |
IsSubjectActive | Boolean flag indicating whether the content subject is active` |
IsSyndicated | Boolean flag indicating whether the Content has been Syndicated. |
LastModeratedTime | The date/time of the latest moderation of the content |
LastModificationTime | The date/time of the latest modification of the content |
ProductId | The identifier of the product |
Rating | The Review Rating, usually between 1 to 5 |
SecondaryRating_[RATING_NAME] | Secondary rating value to sort by, e.g., sort=SecondaryRating_Durability:desc |
SubmissionId | Submission identifier assigned to the content when it was initially submitted |
SubmissionTime | The submission date/time of the content |
TotalCommentCount | Number of comments associated with the content |
TotalFeedbackCount | Number of feedbacks received |
TotalNegativeFeedbackCount | Number of negative feedbacks received |
TotalPositiveFeedbackCount | Number of positive feedbacks received |
UserLocation | Location of the author |
Response format
This is a sample response for requesting a single review by Review ID including Product information
http://[stg.]api.bazaarvoice.com/data/reviews.[FORMAT]?ApiVersion=[latestApiVersion]&PassKey=[yourKey]&Filter=Id:8379019&Include=Products
{
"Includes": { },
"HasErrors": false,
"Offset": 0,
"TotalResults": 224775,
"Locale": "en_US",
"Errors": [ ],
"Results": [
{
"TagDimensions": { },
"TagDimensionsOrder": [ ],
"AdditionalFieldsOrder": [ ],
"Cons": null,
"IsRecommended": null,
"IsRatingsOnly": null,
"UserNickname": null,
"Pros": null,
"Photos": [ ],
"ContextDataValues": { },
"Videos": [ ],
"ContextDataValuesOrder": [ ],
"SubmissionId": "27jrw6gacfrnvh2exwk1ha81r",
"LastModificationTime": null,
"TotalFeedbackCount": null,
"TotalPositiveFeedbackCount": null,
"TotalInappropriateFeedbackCount": null,
"InappropriateFeedbackList": [ ],
"UserLocation": null,
"BadgesOrder": [ ],
"Badges": { },
"AuthorId": null,
"SecondaryRatingsOrder": [ ],
"IsFeatured": null,
"ProductId": null,
"Title": null,
"ProductRecommendationIds": [ ],
"AdditionalFields": { },
"CampaignId": null,
"Helpfulness": null,
"TotalNegativeFeedbackCount": null,
"SubmissionTime": "2011-12-09T08:55:35.000-00:00",
"Rating": null,
"ContentLocale": null,
"RatingRange": null,
"TotalCommentCount": null,
"ReviewText": "Sample Review Text Sample Review Text Sample Review Text",
"ModerationStatus": "SUBMITTED",
"ClientResponses": [ ],
"Id": "15027891",
"SecondaryRatings": { },
"CommentIds": [ ],
"LastModeratedTime": null
}
],
"Limit": 1
}
Response elements
Name | Description |
---|---|
Data | Section containing all the data matched by a query grouped by content/subject type. Within each data section there is a map of objects keyed by ids |
Errors | Error section is populated instead of other fields if there is an error with a query syntax or problem executing a query. |
Limit | The total number of results returned, specified by user in the URL. Defaults to 10 and has a maximum of 100. |
Offset | Dataset offset used for pagination (passed as URL parameter in a query request). The maximum supported value is 300000. |
Results | Section containing an array of primitive type object references matched by a query. |
TotalResults | Total number of records matched. |
Error codes
Value | Description |
---|---|
ERROR_ACCESS_DENIED | Insufficient privileges to perform the operation |
ERROR_PARAM_INVALID_API_KEY | Invalid API Key value |
ERROR_PARAM_INVALID_CALLBACK | Invalid JsonP callback function name |
ERROR_PARAM_INVALID_FILTER_ATTRIBUTE | Invalid filter attribute name |
ERROR_PARAM_INVALID_INCLUDED | Invalid parameter value |
ERROR_PARAM_INVALID_LIMIT | Invalid limit value |
ERROR_PARAM_INVALID_LOCALE | Invalid locale code |
ERROR_PARAM_INVALID_OFFSET | Invalid offset value |
ERROR_PARAM_INVALID_SORT_ATTRIBUTE | Invalid sort attribute name |
ERROR_REQUEST_LIMIT_REACHED | Rate limiting error, i.e. too many requests per time interval |
ERROR_UNKNOWN | Unknown error (internal server error, for instance) |
Updated 5 months ago