Reviews
Reviews API provides endpoints to list reviews for a location across connected review sources and retrieve aggregated review statistics.
List reviews
GET https://api.seranking.com/v1/local-marketing/locations/{location_id}/reviews
Returns a list of reviews for a location across all connected review sources.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| location_id | Integer | Yes | Location ID (path parameter). |
| from | String | No | Start date (in YYYY-MM-DD). |
| to | String | No | End date (in YYYY-MM-DD). |
| limit | Integer | No | Maximum number of items to return (1–1000). Default is 100. |
| offset | Integer | No | Number of items to skip. Default is 0. |
| sort | String | No | Field to sort by: created_at, rating, status, source, or lang. An unsupported value returns an error. |
| sort_order | String | No | Sorting order: asc or desc. Default is desc. |
Request example
GET https://api.seranking.com/v1/local-marketing/locations/15/reviews?from=2026-05-01&to=2026-05-31&limit=100&offset=0Response parameters
If successful, the server returns the 200 HTTP status code, an array of reviews in items, and a pagination object. Returns HTTP 404 if the location is not found.
| Parameter | Type | Description |
|---|---|---|
| items | Array | List of reviews. |
| id | Integer | Review ID. |
| location_id | Integer | Location ID. |
| source | String | Review source code (e.g. google). |
| source_name | String | Review source name (can be null). |
| rating | Integer | Review rating (can be null). |
| review | String | Review text (can be null). |
| reviewer_name | String | Reviewer name (can be null). |
| language | String | Review language (can be null). |
| created_at | String | Review creation timestamp (can be null). |
| status | String | Review status (can be null). |
| review_url | String | Link to the review (can be null). |
| is_answered | Boolean | Whether the review has a reply (can be null). |
| reply_status | String | Reply status (can be null). |
| reply_text | String | Reply text (can be null). |
| replied_at | String | Reply timestamp (can be null). |
| sentiment | String | Review sentiment (can be null). |
| pagination | Object | Pagination info: total, limit, offset. |
Response example
{
"items": [
{
"id": 501,
"location_id": 15,
"source": "google",
"source_name": "Google",
"rating": 5,
"review": "Great pasta and friendly staff!",
"reviewer_name": "John S.",
"language": "en",
"created_at": "2026-05-12 18:40:00",
"status": "published",
"review_url": "https://maps.google.com/reviews/501",
"is_answered": true,
"reply_status": "published",
"reply_text": "Thank you, John! See you again soon.",
"replied_at": "2026-05-13 09:05:00",
"sentiment": "positive"
}
],
"pagination": {
"total": 60,
"limit": 100,
"offset": 0
}
}Get reviews overview
GET https://api.seranking.com/v1/local-marketing/locations/{location_id}/reviews/overview
Returns aggregated review statistics for a location: totals, average rating, answered/unanswered counts, rating distribution, and a breakdown by source. When from/to are provided, aggregates are computed for that period; otherwise they cover the location’s entire history.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| location_id | Integer | Yes | Location ID (path parameter). |
| from | String | No | Start date (in YYYY-MM-DD). |
| to | String | No | End date (in YYYY-MM-DD). |
Request example
GET https://api.seranking.com/v1/local-marketing/locations/15/reviews/overview?from=2026-05-01&to=2026-05-31Response parameters
If successful, the server returns the 200 HTTP status code and aggregated review statistics. Returns HTTP 404 if the location is not found.
| Parameter | Type | Description |
|---|---|---|
| location_id | Integer | Location ID. |
| total_reviews | Integer | Total number of reviews, including unrated ones — while average_rating and rating_distribution cover rated reviews only, so total_reviews × average_rating does not give a weighted total. |
| average_rating | Float | Average rating across rated reviews only. A distinct metric from statistics.average_rating in the location endpoints — the two may not match (can be null). |
| answered_reviews | Integer | Number of reviews with a reply. |
| unanswered_reviews | Integer | Number of reviews without a reply. |
| rating_distribution | Object | Number of reviews per rating: 1_star … 5_star. |
| items_by_source | Array | Per-source breakdown. |
| source | String | Review source code. |
| reviews_count | Integer | Number of reviews from this source. |
| average_rating | Float | Average rating for this source (can be null). |
| answered_reviews | Integer | Answered reviews from this source. |
| unanswered_reviews | Integer | Unanswered reviews from this source. |
Response example
{
"location_id": 15,
"total_reviews": 60,
"average_rating": 3.8,
"answered_reviews": 52,
"unanswered_reviews": 8,
"rating_distribution": {
"1_star": 4,
"2_star": 5,
"3_star": 10,
"4_star": 21,
"5_star": 20
},
"items_by_source": [
{
"source": "google",
"reviews_count": 55,
"average_rating": 3.9,
"answered_reviews": 50,
"unanswered_reviews": 5
},
{
"source": "facebook",
"reviews_count": 5,
"average_rating": 3.4,
"answered_reviews": 2,
"unanswered_reviews": 3
}
]
}
