---
title: "Newer per-phrase stats breakdown for one or more locations."
method: GET
path: "/api/v4/review-phrases"
tags: ["Reviews"]
---

# Newer per-phrase stats breakdown for one or more locations.

`GET /api/v4/review-phrases`

## Request

- Base URL: `https://listingsapi.com`
- URL: `https://listingsapi.com/api/v4/review-phrases`
- Auth: one of:
  - API key in header `Authorization`
  - API key in header `X-RapidAPI-Key` and API key in header `X-RapidAPI-Host`
- TypeScript: <https://skmtc.dev/listingsapi/apis/listings-api/docs/api/v4/review-phrases/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns the phrases customers use most in a location's reviews, each with its own review stats.

## Query parameters

- `locationIds` string: JSON-encoded filter object
- `siteUrls` string: JSON-encoded filter object
- `startDate` string
- `endDate` string
- `searchString` string
- `category` string
- `ratingFilter` integer
- `phraseCount` integer
- `categories` string: JSON-encoded filter object
- `ratingFilters` string: JSON-encoded filter object
- `responseStatus` string: JSON-encoded filter object
- `sortOrder` string: JSON-encoded filter object

## Response `200`

Successful response

- object
  - `data` object, required
    - `newReviewPhrases` NewReviewPhraseInfo[]
      - `reviewPhrase` string
      - `phraseStats` InteractionsStats
        - `stats` InteractionStat[]
          - `name` string
          - `value` number, float
          - `delta` number, float
          - `abs` number, float
  - `errors` ApiError[]: Present when the operation reported a request-level failure. Writes can also report validation nested under `data.<field>.errors` on a 200.
    - `message` string, required: Human-readable reason, prefixed with the `SYxxxxx` code where one applies.
    - `code` string: The `SYxxxxx` error code on its own, when one applies.
    - `contextInfo` object[]: Key/value pairs naming the field or value that failed.
      - `key` string
      - `value` string

## Other responses

- `400`: Bad request: a malformed filter, an invalid enum value, or a malformed ID. The body carries an `errors` array, or a single `error` object when the request was rejected before it ran (e.g. `SY90001` on `reviewDetails` with no `interactionIds`).
- `401`: Unauthorized — the API key is missing, malformed, or revoked (`SY90005`).
- `403`: Forbidden — the key is valid but not permitted for this resource or operation (`SY90003`).
- `429`: Rate limit exceeded. Wait `retry_after_seconds` (or the `Retry-After` header) and retry with backoff.
- `500`: Server error. The body carries a single `error` object with code `INTERNAL_SERVER_ERROR`.

## Changes

- **2026-09-25** `91249a5e08be`: 1 breaking, 1 info
  - added `#/components/schemas/ApiErrorObject` to the response body `oneOf` list for the response status `400`
  - removed `#/components/schemas/GatewayError` from the response body `oneOf` list for the response status `400`
- **2026-09-09** `8bc826bc148c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/listingsapi/apis/listings-api/changes/api/v4/review-phrases/get.md)

---

[API](https://skmtc.dev/listingsapi/apis/listings-api.md) - [All operations](https://skmtc.dev/listingsapi/apis/listings-api/llms.txt) - [OpenAPI document](https://skmtc.dev/listingsapi/apis/listings-api/revisions/2658a20b9b66?raw)
