Missing URLs backfill grid

Overview

Returns a paginated grid of store-review-site rows in the caller's accessible tree that are missing their review-site URL and/or landing-page URL. Drives the URL backfill grid.

Prerequisites

  • A bearer token. Callable with Partner and Account tokens.

Base URL

EnvironmentURL
Productionhttps://production-api.shoutaboutus.com
Developmenthttps://development-api.shoutaboutus.com

Endpoint

POST /api/v1/store-review-site/missing-urls

Authentication

  • Requires a bearer token in the Authorization: Bearer <bearer-token> header.

  • Who can call it: Partner and Account tokens.

  • Scope is role-based. A Partner sees every store under its tree. An account user sees only its own.

  • An empty accessible set returns an empty page.

  • Optional account_id further narrows to one account by re-scoping to bundle_id=2 location-companies whose parent is that account. A cross-tenant id yields an empty page.

Rate limit

  • No rate limit.

Request body

  • Body (all optional):
FieldTypeRequiredDescription
pageintegernoMin 1; default 1.
per_pageintegerno10–100 (values below 10 are raised to 10); default 20.
searchstringnoMax 255; case-insensitive substring over store name / review-site name / client_location_id.
review_site_idintegernoMust be an existing review site; narrow to one site.
account_idintegernoMust be an existing account; account narrowing within caller's tree.
{
  "page": 1,
  "per_page": 20,
  "search": "Acme",
  "review_site_id": 44,
  "account_id": 23
}

Response

  • data.data[] (array) — rows: id, store_id, store_name, client_location_id, brand_id, brand_name, review_site_id, review_site_name, review_site_url, landing_page_url, review_site_url_missing (bool), landing_page_url_missing (bool), sendto_scrapper.
  • data.meta (object) — current_page, per_page, total, last_page.

200 OK · 200

{
  "data": {
    "data": [
      {
        "id": 13,
        "store_id": 5,
        "store_name": "John Doe",
        "client_location_id": null,
        "brand_id": 12,
        "brand_name": "Acme",
        "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": "N"
      }
    ],
    "meta": {
      "current_page": 1,
      "per_page": 20,
      "total": 1,
      "last_page": 1
    }
  }
}

Errors

StatusMeaning
401The bearer token is missing, expired or invalid
422The request failed validation — the response names the fields
500Unexpected 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 '{"page": 1, "per_page": 20, "search": "Acme", "review_site_id": 44, "account_id": 23}'

Did this page help you?