/api/v4/locations/{locationId}/reviewsListar interações de um local
Retorna uma lista de avaliações e interações sociais de um único local, com paginação por cursor e filtros.
Parâmetros
Caminho
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| locationId | string | obrigatório | Location ID, a raw numeric database ID (e.g. `1800289`) or its Base64-encoded Relay ID (e.g. `TG9jYXRpb246MTgwMDI4OQ==`). |
Query
| Nome | Tipo | Obrigatório | Descrição | Padrão |
|---|---|---|---|---|
| siteUrls | string | opcional | JSON-encoded array of publisher hostnames to include, e.g. `["maps.google.com","yelp.com"]`. | — |
| startDate | string | opcional | Start of the date-range filter (YYYY-MM-DD). | — |
| endDate | string | opcional | End of the date-range filter (YYYY-MM-DD). | — |
| searchString | string | opcional | Full-text search across interaction content. | — |
| category | string | opcional | Single interaction category, e.g. `REVIEW`. | — |
| categories | string | opcional | JSON-encoded array of interaction categories. | — |
| ratingFilters | string | opcional | JSON-encoded array of star ratings to include, e.g. `[3,4]`. | — |
| ratingFilter | integer | opcional | Single star rating to filter by. | — |
| responseStatus | string | opcional | JSON-encoded response-status filter. Values: `RESPONDED`, `PENDING`. | — |
| sortOrder | string | opcional | JSON-encoded sort order. Values: `NEWEST_FIRST`, `OLDEST_FIRST`, `LAST_RESPONDED`. | — |
| first | integer | opcional | Number of records to return from the beginning (newest first). Defaults to 20 when omitted, the endpoint always returns a single page, never the whole history. | — |
| after | string | opcional | Cursor to page forward from. Pass `pageInfo.endCursor`, or equivalently the `cursor` of the last edge in the previous page. | — |
| last | integer | opcional | Number of records to return from the end. | — |
| before | string | opcional | Cursor to page backward from, used with `last`. Pass the `cursor` of the first edge of the page you are moving back from. `pageInfo` carries no `startCursor` field, so the edge cursor is the value to use. | — |
Respostas
200Paginated interactions result. `data.interactions` holds the connection.
{ "data": { "interactions": { "pageInfo": { "hasNextPage": true, "hasPreviousPage": false, "endCursor": "SW50ZXJhY3Rpb246MV8xNTU0MjQzMDczMDM2LTllMjZkMmE4LWE2ZWQtNDJlYS04NDU0LTQ3ZDFjOTJlYTg0MQ==" }, "edges": [ { "node": { "id": "9e26d2a8-a6ed-42ea-8454-47d1c92ea841", "source": "maps.google.com", "content": "nice place for family together", "authorName": "vaibhav nakate", "rating": 5, "date": "2019-04-02T22:11:13.036997+00:00", "category": "Review", "type": "Review", "responded": false, "responseCount": 0, "canRespond": true, "permalink": "https://maps.google.com/maps?cid=..." }, "cursor": "SW50ZXJhY3Rpb246MV8xNTU0MjQzMDczMDM2LTllMjZkMmE4LWE2ZWQtNDJlYS04NDU0LTQ3ZDFjOTJlYTg0MQ==" } ], "totalCount": 425 } }}401Unauthenticated, missing or invalid API key.
429Rate limit exceeded. Retry after the `Retry-After` header value.
Retorna avaliações e interações sociais de um local usando paginação por cursor. Por padrão, os resultados são ordenados do mais recente para o mais antigo. A conexão fica em data.interactions e contém edges[].node (consulte a referência dos atributos de interação), um endCursor em pageInfo e um totalCount.
totalCount é o número de interações que correspondem aos seus filtros em todo o conjunto de resultados, não o número retornado nesta página. Use esse valor para dimensionar uma carga de dados históricos ou conferir sua própria contagem: a leitura de um local com totalCount: 450 usando first=50 exige 9 requisições, e as contagens devem somar 450 quando você chegar ao fim. Omitir first retorna 20 registros, portanto uma única chamada nunca retorna o histórico completo.
Caso de uso: uma caixa de entrada de avaliações por loja
Para criar uma caixa de entrada de avaliações para um local, avance pelas páginas com first e after: solicite first=25 e, em seguida, passe o pageInfo.endCursor da resposta como after na próxima chamada. Cada edge também contém seu próprio cursor, e o cursor do último edge é o endCursor dessa página, portanto qualquer um dos valores funciona como after. Pare quando hasNextPage for false ou quando uma página retornar com um array edges vazio; verifique ambas as condições, pois, quando o limite de uma página coincide exatamente com a avaliação mais antiga, ainda há uma última página vazia em seguida. Adicione responseStatus=["PENDING"] para mostrar apenas avaliações que ainda aguardam uma resposta do proprietário, ou ratingFilters=[1,2] para fazer a triagem das avaliações negativas primeiro. De cada node, o id é o valor que você passa para Responder a uma interação, e canRespond informa se essa fonte aceita respostas do proprietário.
Caso de uso: sincronização incremental
Para manter uma cópia local sincronizada, filtre por startDate/endDate e ordene com sortOrder=["NEWEST_FIRST"], persistindo o maior valor de date que você já encontrou. Observe que este endpoint usa paginação e limita a taxa de requisições; respeite o cabeçalho Retry-After ao receber um 429 e evite buscar novamente o histórico completo a cada execução.
Google Maps e Facebook estão disponíveis em todos os planos. Yelp está disponível nos planos Growth e Enterprise. Os filtros codificados em JSON (siteUrls, categories, ratingFilters, responseStatus, sortOrder) são passados como strings JSON codificadas para URL.
curl -X GET 'https://listingsapi.com/api/v4/locations/<locationId>/reviews' \ -H "Authorization: API $LISTINGSAPI_KEY"