Find sites missing a review URL
Overview
List every site across your locations that has no review URL or no landing page URL yet. This is a report; it changes nothing.
Use this after setting up new locations to see what still needs a URL, or as a regular check that collection is running everywhere it should.
You don't need any ids: it covers every location you can reach. Narrow it to one account with account_id, or to one site with review_site_id. For one location, use List all URLs for a location with store_id and filter missing.
Returns the sites missing either URL, sorted by location name and then site name, one page at a time. Fill them in with Set a site's URLs and credentials.
Prerequisites
- A bearer token. See Authentication.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
POST /api/v1/store-review-site/missing-urls
Authentication
Partner or Account token
- Only locations inside your own account tree are listed. A Partner token sees every location under the partner; an Account token only its own account's locations.
- An
account_idoutside your tree returns an empty page.
Rate limit
This endpoint has no rate limit.
Request parameters
None.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
page | integer | No | The page to return, from 1. Default 1. |
per_page | integer | No | Rows per page, 10–100. Default 20. Values below 10 are raised to 10; above 100 returns 422. |
search | string | No | Matches part of the location name, the review site name or your client_location_id. Up to 255 characters. |
review_site_id | integer | No | Only this review site. Must exist. |
account_id | integer | No | Only this account's locations. Must exist. |
Request payload
{
"review_site_id": 1,
"per_page": 10
}Response body
The payload is inside data.
| Field | Type | Description |
|---|---|---|
data | array of objects | One row per site missing a URL. |
data[].id | integer | The connection's id (store_review_site_id). Use it with Set a site's URLs and credentials. |
data[].store_id | integer | The location's id. |
data[].store_name | string | The location's name. |
data[].client_location_id | string or null | Your own id for the location, or null. |
data[].brand_id | integer or null | The account's id. |
data[].brand_name | string or null | The account's name. |
data[].review_site_id | integer | The review site's id. |
data[].review_site_name | string | The review site's name. |
data[].review_site_url | string or null | The review URL, or null when not set. |
data[].landing_page_url | string or null | The landing page URL, or null when not set. |
data[].review_site_url_missing | boolean | true when there's no review URL. |
data[].landing_page_url_missing | boolean | true when there's no landing page URL. |
data[].sendto_scrapper | string | Y when review collection is on, N when it's off. |
meta | object | Paging. |
meta.current_page | integer | This page. |
meta.per_page | integer | Rows per page. |
meta.total | integer | Rows across all pages. |
meta.last_page | integer | The last page. |
Response payload
{
"data": {
"data": [
{
"id": 8782,
"store_id": 3007,
"store_name": "Acme Coffee",
"client_location_id": "docs-test-loc-001",
"brand_id": 5994,
"brand_name": "Acme Coffee",
"review_site_id": 1,
"review_site_name": "Yelp",
"review_site_url": null,
"landing_page_url": null,
"review_site_url_missing": true,
"landing_page_url_missing": true,
"sendto_scrapper": "Y"
},
{
"id": 8785,
"store_id": 3008,
"store_name": "Acme Coffee - Circular Quay",
"client_location_id": null,
"brand_id": 5994,
"brand_name": "Acme Coffee",
"review_site_id": 1,
"review_site_name": "Yelp",
"review_site_url": null,
"landing_page_url": null,
"review_site_url_missing": true,
"landing_page_url_missing": true,
"sendto_scrapper": "Y"
}
],
"meta": {
"current_page": 1,
"per_page": 10,
"total": 2,
"last_page": 1
}
}
}Examples
Success payload
Yelp missing on two locations: see Response payload.
Nothing missing, or an account_id outside your tree:
{
"data": {
"data": [],
"meta": {
"current_page": 1,
"per_page": 20,
"total": 0,
"last_page": 1
}
}
}Error payload
422 Invalid values
{
"message": "The page field must be at least 1. (and 1 more error)",
"errors": {
"page": [
"The page field must be at least 1."
],
"search": [
"The search field must not be greater than 255 characters."
]
}
}422 per_page over 100
{
"message": "The per page field must not be greater than 100.",
"errors": {
"per_page": [
"The per page field must not be greater than 100."
]
}
}422 Unknown ids
{
"message": "The selected review site id is invalid. (and 1 more error)",
"errors": {
"review_site_id": [
"The selected review site id is invalid."
],
"account_id": [
"The selected account id is invalid."
]
}
}| Status | Meaning |
|---|---|
200 | A page of rows, or an empty page. |
401 | The token is missing, expired or invalid. |
422 | A value is invalid, an id doesn't exist, or per_page is over 100. |
500 | Unexpected server error. |
Example request
curl --request POST \
--url "https://production-api.shoutaboutus.com/api/v1/store-review-site/missing-urls" \
--header 'Authorization: Bearer <bearer-token>' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"review_site_id": 1, "per_page": 10}'Updated 17 days ago
