List open problems

Overview

Get the current problems across your locations: which location, which site, what went wrong, when, and whether it's been looked at.

Use this as a regular check, or to build an alerts view in your dashboard.

You'll need a partner token. Choose the list with type (open, acknowledged or resolved), and narrow it with search_field and search_value (location, account, site, subject or date).

Returns one entry per problem, newest first, 5 per page unless you send limit.

Prerequisites

  • A Partner bearer token. See Authentication.
  • The list you want: type.

Base URL

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

Endpoint

GET /api/v1/partner/error-notifications

Authentication

Partner token

  • Lists the problems for the partner behind the token.

Rate limit

This endpoint has no rate limit.

Request parameters

ParameterInTypeRequiredDescription
typequerystringYesopen (neither acknowledged nor resolved), acknowledged or resolved.
limitqueryintegerNoPage size, 10–100. Default 5 when left out. Values below 10 are raised to 10; above 100 returns 422.
pagequeryintegerNoThe page to return, from 1. Default 1.
sort_fieldquerystringNoSort by notificationDate (default), latest_note_date, accountName, storeName, reviewSiteName, subject or resolved.
sort_byquerystringNoasc or desc (default).
search_fieldquerystringNoWhere to search: notificationDate (default; matches the day), accountName, storeName, subject or reviewSiteName.
search_valuequerystringNoWhat to search for.

Request body

None.

Request payload

None.

Response body

The problems are in a top-level data array, next to links and meta.

FieldTypeDescription
dataarray of objectsOne entry per problem. Empty when there are none.
data[].idintegerThe problem's id (notification_id).
data[].is_badgestringYes when nobody has opened it yet, otherwise No.
data[].notificationDatestringWhen it was raised, mm/dd/yy.
data[].accountNamestring or nullThe account's name.
data[].storeNamestringThe location's name, with its storeId label.
data[].reviewSiteNamestringThe review site, or #N/A when it isn't about one.
data[].subjectstringWhat went wrong, in short, or #N/A.
data[].isResolvedstringYes or No.
data[].latestNotestringThe newest note, or #N/A.
data[].lastUpdatedstringWhen the newest note was saved, or when the problem last changed, mm/dd/yy.
data[].show_acknowledge_buttonstringyes when it can still be marked acknowledged (not acknowledged or resolved yet), otherwise no.
data[].show_resolved_buttonstringyes when it can still be marked resolved, otherwise no.
data[].store_idinteger or nullThe location's id.
data[].review_site_idinteger or nullThe review site's id.
data[].store_review_site_idinteger or nullThe connection's id for that location and site, or null.
data[].show_connect_buttonstringyes when the problem is about a review site and isn't resolved, otherwise no.
linksobjectPaging links.
links.firststringURL of the first page.
links.laststringURL of the last page.
links.prevstring or nullURL of the previous page, or null.
links.nextstring or nullURL of the next page, or null.
metaobjectPaging details.
meta.current_pageintegerThis page.
meta.frominteger or nullPosition of the first entry on this page.
meta.last_pageintegerThe last page.
meta.linksarray of objectsPage links for a pager.
meta.links[].urlstring or nullThe page's URL.
meta.links[].labelstringThe link label.
meta.links[].pageinteger or nullThe page number.
meta.links[].activebooleantrue for this page.
meta.pathstringThe endpoint's URL.
meta.per_pageintegerEntries per page.
meta.tointeger or nullPosition of the last entry on this page.
meta.totalintegerEntries across all pages.

Response payload

{
  "data": [
    {
      "id": 1215,
      "is_badge": "Yes",
      "notificationDate": "05/29/26",
      "accountName": "Acme Coffee",
      "storeName": "Acme Coffee - Sydney",
      "reviewSiteName": "Google",
      "subject": "Google scrape failed",
      "isResolved": "No",
      "latestNote": "#N/A",
      "lastUpdated": "05/29/26",
      "show_acknowledge_button": "yes",
      "show_resolved_button": "yes",
      "store_id": 3007,
      "review_site_id": 44,
      "store_review_site_id": 8784,
      "show_connect_button": "yes"
    }
  ],
  "links": {
    "first": "https://production-api.shoutaboutus.com/api/v1/partner/error-notifications?page=1",
    "last": "https://production-api.shoutaboutus.com/api/v1/partner/error-notifications?page=1",
    "prev": null,
    "next": null
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "links": [
      {
        "url": null,
        "label": "« Previous",
        "page": null,
        "active": false
      },
      {
        "url": "https://production-api.shoutaboutus.com/api/v1/partner/error-notifications?page=1",
        "label": "1",
        "page": 1,
        "active": true
      },
      {
        "url": null,
        "label": "Next »",
        "page": null,
        "active": false
      }
    ],
    "path": "https://production-api.shoutaboutus.com/api/v1/partner/error-notifications",
    "per_page": 10,
    "to": 1,
    "total": 1
  }
}

Examples

Success payload

Open problems: see Response payload.

No problems:

{
  "data": [],
  "links": {
    "first": "https://production-api.shoutaboutus.com/api/v1/partner/error-notifications?page=1",
    "last": "https://production-api.shoutaboutus.com/api/v1/partner/error-notifications?page=1",
    "prev": null,
    "next": null
  },
  "meta": {
    "current_page": 1,
    "from": null,
    "last_page": 1,
    "links": [
      {
        "url": null,
        "label": "« Previous",
        "page": null,
        "active": false
      },
      {
        "url": "https://production-api.shoutaboutus.com/api/v1/partner/error-notifications?page=1",
        "label": "1",
        "page": 1,
        "active": true
      },
      {
        "url": null,
        "label": "Next »",
        "page": null,
        "active": false
      }
    ],
    "path": "https://production-api.shoutaboutus.com/api/v1/partner/error-notifications",
    "per_page": 10,
    "to": null,
    "total": 0
  }
}

Error payload

422 Missing type

{
  "message": "The type field is required.",
  "errors": {
    "type": [
      "The type field is required."
    ]
  }
}

422 Invalid values

{
  "message": "The selected type is invalid. (and 1 more error)",
  "errors": {
    "type": [
      "The selected type is invalid."
    ],
    "sort_by": [
      "The selected sort by is invalid."
    ]
  }
}

422 limit over 100

{
  "message": "The limit field must not be greater than 100.",
  "errors": {
    "limit": [
      "The limit field must not be greater than 100."
    ]
  }
}
StatusMeaning
200A page of problems, or an empty page.
401The token is missing, expired or invalid.
422type is missing or invalid, sort_by isn't allowed, or limit is over 100.
500Unexpected server error.

Example request

curl --request GET \
  --url "https://production-api.shoutaboutus.com/api/v1/partner/error-notifications?type=open&limit=10" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json'

Did this page help you?