{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/searlo-tech/json-schema/searlo-tech-reviews-response-schema.json",
  "title": "ReviewsResponse",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/searlo-tech-openapi.yaml#/components/schemas/ReviewsResponse",
  "type": "object",
  "properties": {
    "searchParameters": {
      "type": "object",
      "additionalProperties": true
    },
    "place": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string"
        },
        "address": {
          "type": "string"
        },
        "featureId": {
          "type": "string"
        },
        "rating": {
          "type": [
            "number",
            "null"
          ]
        },
        "reviewCount": {
          "type": [
            "integer",
            "null"
          ],
          "description": "The place's lifetime review count."
        }
      }
    },
    "totalResults": {
      "type": "integer",
      "description": "Reviews on this page."
    },
    "hasMore": {
      "type": "boolean",
      "description": "The place has more reviews than this page. Later pages cannot be fetched yet."
    },
    "hasNextPage": {
      "type": "boolean",
      "description": "Same as hasMore."
    },
    "nextPageToken": {
      "type": [
        "string",
        "null"
      ],
      "description": "Google's token for the next page; no parameter takes it yet."
    },
    "reviews": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "position": {
            "type": "integer"
          },
          "reviewId": {
            "type": [
              "string",
              "null"
            ]
          },
          "rating": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5
          },
          "text": {
            "type": "string"
          },
          "date": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "timestamp": {
            "type": [
              "integer",
              "null"
            ],
            "description": "date, in Unix seconds."
          },
          "relativeDate": {
            "type": "string",
            "description": "Google's own text, in the language of hl."
          },
          "language": {
            "type": [
              "string",
              "null"
            ],
            "description": "The language the review is written in."
          },
          "author": {
            "type": "string"
          },
          "authorProfile": {
            "type": "string"
          },
          "authorPhoto": {
            "type": "string"
          },
          "authorId": {
            "type": [
              "string",
              "null"
            ]
          },
          "authorReviewCount": {
            "type": [
              "integer",
              "null"
            ]
          },
          "isLocalGuide": {
            "type": "boolean"
          },
          "response": {
            "type": "object",
            "description": "Present only when the owner replied.",
            "properties": {
              "text": {
                "type": "string"
              },
              "relativeTime": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "date": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "language": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          }
        }
      }
    },
    "source": {
      "type": "string"
    },
    "credits": {
      "type": "number",
      "description": "0 when the place has no reviews."
    }
  }
}