Review schema
Stay organized with collections
Save and categorize content based on your preferences.
Pull-based review schema
{
"definitions": {},
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"metaData": {
"type": "object",
"properties": {
"feedCategory": {
"type": "string",
"enum": [
"SNAPSHOT",
"UPDATE"
],
"description": "Category for the current feed"
},
"feedTimestampMicros": {
"type": "integer",
"description": "Timestamp in microseconds, representing age of current feed"
},
"apiVersion": {
"type": "string",
"description": "Represents the desired version of the service API in a feed."
},
"pagination": {
"type": "object",
"description": "Pagination info used to retrieve the subsequent page of current feeds, will be used to fill nextToken param in url, see above pagination section for explanation",
"properties": {
"nextTokenParam": {
"type": "string"
}
}
},
"totalCount": {
"type": "number",
"description": "Total number of reviewItems should be included in the full feed (across all pages), used to cross check feed completeness."
},
"partnerFeedId": {
"type": "string",
"description": "Partner specific identifier for this feed, if any. This field will be logged in reports exported (eg. feed validation/status reports). Partners may use this field for easier lookup of processing result/errors given a specific feed. This field optional"
}
},
"required": [
"feedCategory",
"feedTimestampMicros",
"apiVersion",
"pagination",
"totalCount"
]
},
"reviewItems": {
"type": "array",
"items": {
"type": "object",
"required": [
"serviceProviderId",
"ratingCount",
"reviews"
],
"properties": {
"serviceProviderId": {
"type": "number",
"description": "Unique identifier of a listing (a service provider)"
},
"ratingCount": {
"type": "integer",
"description": "number of verified consumer ratings"
},
"reviews": {
"type": "array",
"items": {
"type": "object",
"properties": {
"reviewId": {
"type": "string",
"description": "The unique id of the review"
},
"author": {
"type": "string",
"description": "Author of the review"
},
"reviewText": {
"type": "string",
"description": "Review text written by the author"
},
"rating": {
"type": "integer",
"minimum": 1,
"maximum": 5,
"description": "Rating with the review text, should be an integer, minimum is 1, maximum is 5"
},
"serviceLocationCity": {
"type": "string",
"description": "Service location city for the review"
},
"serviceTimestampMicros": {
"type": "integer",
"description": "Timestamp in microseconds when the service is finished"
},
"reviewTimestampMicros": {
"type": "integer",
"description": "Timestamp in microseconds when the review was written"
},
“language”: {
"type": "string",
"description": "Language of the review text in ISO 639-1 language code. (lowercase, 2-letter)"
},
"category": {
"type": "object",
"description": "Service vertical and Task info of the review",
"properties": {
"categoryId": {
"type": "string",
"description": "Category Id of the review in LSA taxonomy"
},
"task": {
"type": "string",
"description": "Task Id of the review in LSA taxonomy"
}
}
},
"confirmedCustomer": {
"type": "boolean",
"description": "If the review comes from a confirmed customer (with a lead)"
}
},
"required": [
"reviewId",
"rating"
]
}
}
}
}
}
},
"required": [
"metaData",
"reviewItems"
]
}
Push-based review feed schema
The push-based version is a combined page. It is delivered in one file, with an
outer wrapper responses
array. Elements in the responses
array use the same
schema as the pull based review schema (paginated/single page).
{
"definitions": {},
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"responses" : {
"type": "array",
"description": "An array of paginated responses from a given partner",
"items": {
… // Element in array shares the same schema as above pull feed schema
}
}
},
"required": [
"responses"
]
}
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2023-10-03 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2023-10-03 UTC."],[[["\u003cp\u003eThe schemas define structures for exchanging review data, including metadata like timestamps and pagination, and detailed review information.\u003c/p\u003e\n"],["\u003cp\u003eReviews contain details such as author, text, rating, service and review timestamps, language, and confirmation status.\u003c/p\u003e\n"],["\u003cp\u003eThe pull-based schema allows for paginated retrieval of reviews, enabling efficient handling of large datasets.\u003c/p\u003e\n"],["\u003cp\u003eThe push-based schema delivers all review data in a single file within a "responses" array, simplifying data transfer.\u003c/p\u003e\n"],["\u003cp\u003eBoth schemas require essential elements like service provider ID, rating count, and individual review details for each entry.\u003c/p\u003e\n"]]],[],null,["# Review schema\n\nPull-based review schema\n------------------------\n\n```gdscript\n{\n \"definitions\": {},\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"type\": \"object\",\n \"properties\": {\n \"metaData\": {\n \"type\": \"object\",\n \"properties\": {\n \"feedCategory\": {\n \"type\": \"string\",\n \"enum\": [\n \"SNAPSHOT\",\n \"UPDATE\"\n ],\n \"description\": \"Category for the current feed\"\n },\n \"feedTimestampMicros\": {\n \"type\": \"integer\",\n \"description\": \"Timestamp in microseconds, representing age of current feed\"\n },\n \"apiVersion\": {\n \"type\": \"string\",\n \"description\": \"Represents the desired version of the service API in a feed.\"\n },\n \"pagination\": {\n \"type\": \"object\",\n \"description\": \"Pagination info used to retrieve the subsequent page of current feeds, will be used to fill nextToken param in url, see above pagination section for explanation\",\n \"properties\": {\n \"nextTokenParam\": {\n \"type\": \"string\"\n }\n }\n },\n \"totalCount\": {\n \"type\": \"number\",\n \"description\": \"Total number of reviewItems should be included in the full feed (across all pages), used to cross check feed completeness.\"\n },\n \"partnerFeedId\": {\n \"type\": \"string\",\n \"description\": \"Partner specific identifier for this feed, if any. This field will be logged in reports exported (eg. feed validation/status reports). Partners may use this field for easier lookup of processing result/errors given a specific feed. This field optional\"\n }\n },\n \"required\": [\n \"feedCategory\",\n \"feedTimestampMicros\",\n \"apiVersion\",\n \"pagination\",\n \"totalCount\"\n ]\n },\n \"reviewItems\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"required\": [\n \"serviceProviderId\",\n \"ratingCount\",\n \"reviews\"\n ],\n \"properties\": {\n \"serviceProviderId\": {\n \"type\": \"number\",\n \"description\": \"Unique identifier of a listing (a service provider)\"\n },\n \"ratingCount\": {\n \"type\": \"integer\",\n \"description\": \"number of verified consumer ratings\"\n },\n \"reviews\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"reviewId\": {\n \"type\": \"string\",\n \"description\": \"The unique id of the review\"\n },\n \"author\": {\n \"type\": \"string\",\n \"description\": \"Author of the review\"\n },\n \"reviewText\": {\n \"type\": \"string\",\n \"description\": \"Review text written by the author\"\n },\n \"rating\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 5,\n \"description\": \"Rating with the review text, should be an integer, minimum is 1, maximum is 5\"\n },\n \"serviceLocationCity\": {\n \"type\": \"string\",\n \"description\": \"Service location city for the review\"\n },\n \"serviceTimestampMicros\": {\n \"type\": \"integer\",\n \"description\": \"Timestamp in microseconds when the service is finished\"\n },\n \"reviewTimestampMicros\": {\n \"type\": \"integer\",\n \"description\": \"Timestamp in microseconds when the review was written\"\n },\n \"language\": {\n \"type\": \"string\",\n \"description\": \"Language of the review text in ISO 639-1 language code. (lowercase, 2-letter)\"\n },\n \"category\": {\n \"type\": \"object\",\n \"description\": \"Service vertical and Task info of the review\",\n \"properties\": {\n \"categoryId\": {\n \"type\": \"string\",\n \"description\": \"Category Id of the review in LSA taxonomy\"\n },\n \"task\": {\n \"type\": \"string\",\n \"description\": \"Task Id of the review in LSA taxonomy\"\n }\n }\n },\n \"confirmedCustomer\": {\n \"type\": \"boolean\",\n \"description\": \"If the review comes from a confirmed customer (with a lead)\"\n }\n },\n \"required\": [\n \"reviewId\",\n \"rating\"\n ]\n }\n }\n }\n }\n }\n },\n \"required\": [\n \"metaData\",\n \"reviewItems\"\n ]\n}\n```\n\nPush-based review feed schema\n-----------------------------\n\nThe push-based version is a combined page. It is delivered in one file, with an\nouter wrapper `responses` array. Elements in the `responses` array use the same\nschema as the pull based review schema (paginated/single page). \n\n```carbon\n{\n \"definitions\": {},\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"type\": \"object\",\n \"properties\": {\n \"responses\" : {\n \"type\": \"array\",\n \"description\": \"An array of paginated responses from a given partner\",\n \"items\": {\n ... // Element in array shares the same schema as above pull feed schema\n }\n }\n },\n \"required\": [\n \"responses\"\n ]\n}\n```"]]