Skip to content
SynupAPI
Get an API key
GETapi.synup.com/api/v4/locations/{locationId}/reviews

Fetch all interactions

This API retrieves interactions for a specific location, supporting multiple filters to refine results.

Filtering Options:

  • Date Range – Fetch interactions within a specified time frame.
  • Interaction Type – Filter by reviews, social engagements, or directory interactions.
  • Platform – Retrieve interactions from specific sources (e.g., Google, Facebook, Yelp).
  • Response Status – Show only responded or unresponded interactions.
  • Rating – Filter reviews by star ratings (if applicable).
  • Keyword – Filter reviews whose content matches a search keyword.
Requires an API key. Send it as Authorization: API <your-key> — see Getting started.

Parameters

Path

NameTypeRequiredDescription
locationIdstringrequiredBase64 encoded location ID

Query

NameTypeRequiredDescription
siteUrlsarrayoptionalFilter by source websites
categoryarrayoptionalFilter by interaction category
startDatestringoptionalStart date for filtering (YYYY-MM-DD)
endDatestringoptionalEnd date for filtering (YYYY-MM-DD)
ratingFiltersarrayoptionalFilter by rating (1-5). Pass multiple values as an array. Example: [3,4]
searchStringstringoptionalFilter interactions by keyword. Returns only interactions whose content matches the keyword. Example: pizza
beforestringoptionalIf specified, records after the cursor are returned
afterstringoptionalIf specified, records before the cursor are returned
firststringoptionalSpecifies the number of records to fetch from the beginning
laststringoptionalSpecifies the number of records to fetch from the end

Request

Request
curl -X GET 'https://api.synup.com/api/v4/locations/:locationId/reviews?siteUrls=&category=&startDate=&endDate=&ratingFilters=&searchString=&before=&after=&first=&last=' \
  -H 'Authorization: API YOUR_API_KEY' \
  -H 'Content-Type: application/json'

Responses

StatusDescription
200Interactions retrieved successfully
400Bad Request - Invalid parameters
404Location not found
Example response
{
  "data": {
    "interactions": {
      "pageInfo": {
        "hasNextPage": false,
        "hasPreviousPage": false,
        "endCursor": null,
        "total": null
      },
      "edges": [
        {
          "node": {
            "id": "9990178a-f119-43da-adbe-e2facad5a870",
            "source": "maps.google.com",
            "authorName": "Dale Rohwedder",
            "authorAvatar": "https://lh6.googleusercontent.com/-rwVBMk41wg0/AAAAAAAAAAI/AAAAAAAAADc/NamFETXVIRw/w36-h36-p-mo/photo.jpg",
            "rating": 4,
            "date": "2019-01-24T06:13:15.332985+00:00",
            "category": "Review"
          },
          "cursor": "SW50ZXJhY3Rpb246OTk5MDE3OGEtZjExOS00M2RhLWFkYmUtZTJmYWNhZDVhODcw"
        }
      ],
      "totalCount": 1
    }
  }
}

Response body

NameTypeRequiredDescription
dataobjectoptional
data.interactionsobjectoptional
data.interactions.pageInfoobjectoptional
data.interactions.pageInfo.hasNextPagebooleanoptionalIndicates if there are more pages of results
data.interactions.pageInfo.hasPreviousPagebooleanoptionalIndicates if there are previous pages of results
data.interactions.pageInfo.endCursorstringoptionalCursor for pagination
data.interactions.pageInfo.totalintegeroptionalTotal number of pages
data.interactions.edgesarray of objectoptional
data.interactions.edges[].nodeobjectoptional
data.interactions.edges[].node.idstringoptionalUnique identifier for the interaction
data.interactions.edges[].node.sourcestringoptionalSource website of the interaction
data.interactions.edges[].node.titlestringoptionalTitle of the interaction
data.interactions.edges[].node.contentstringoptionalContent of the interaction
data.interactions.edges[].node.authorNamestringoptionalName of the author
data.interactions.edges[].node.authorAvatarstringoptionalURL of author's avatar
data.interactions.edges[].node.authorUrlstringoptionalURL of author's profile
data.interactions.edges[].node.ratingintegeroptionalRating value (1-5)
data.interactions.edges[].node.datestringoptionalDate and time of the interaction
data.interactions.edges[].node.permalinkstringoptionalPermanent URL to the interaction
data.interactions.edges[].node.categorystringoptionalCategory of the interaction
data.interactions.edges[].node.typestringoptionalType of the interaction
data.interactions.edges[].node.photoUrlstringoptionalURL of attached photo
data.interactions.edges[].node.photoThumbnailUrlstringoptionalURL of photo thumbnail
data.interactions.edges[].node.respondedbooleanoptionalWhether the interaction has been responded to
data.interactions.edges[].node.notesstringoptionalAdditional notes
data.interactions.edges[].node.responsesarray of objectoptionalArray of responses
data.interactions.edges[].node.canRespondbooleanoptionalWhether responses are allowed
data.interactions.edges[].node.totalResponsesintegeroptionalTotal number of responses
data.interactions.edges[].cursorstringoptionalCursor for pagination
data.interactions.totalCountintegeroptionalTotal number of interactions matching the filters