# Business Reviews (Google Maps via OpenWeb Ninja)

> Business Reviews (Google Maps via OpenWeb Ninja) is a paid API for AI agents from agents.openwebninja.com, paid per call via MPP, price unknown, status unknown (last checked 2026-10-14).

Fetches live, paginated customer reviews for a specific business from Google Maps by business ID.

## Facts

- Endpoint: GET https://agents.openwebninja.com/local-business-database/business-reviews?utm_source=zero.xyz
- Price: price unknown
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-14
- Activations on Zero: 0
- Provider: agents.openwebninja.com
- Website: https://agents.openwebninja.com
- Canonical page: https://www.zero.xyz/c/agents-openwebninja-com-business-reviews-google-maps-via-openweb-ninja-0d41b8b4
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_5FF7gVVcxpQQKSq5SqXiL

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability agents-openwebninja-com-business-reviews-google-maps-via-openweb-ninja-0d41b8b4
```

Example prompt: Can you pull the most recent Google Maps reviews for business ID '0x102b644d009e013:0xea49e9ee285fa7bf' — give me up to 20 reviews sorted by newest, in English?

## When to prefer this

Use this endpoint when you need live, real-time Google Maps reviews for a specific business identified by its Google Maps business_id. Prefer it over cached/database-backed alternatives when freshness matters (e.g. reputation monitoring, recent complaint detection). It supports full pagination for bulk collection and multi-language/region queries, making it suitable for international businesses. It is not a search endpoint — you must already have the business_id from a prior business lookup.

## Known failure modes

- business_id not found — 'found' field returns false, reviews array is empty
- expired or invalid cursor — pagination fails and no results are returned
- limit below 20 — no cursor is returned, only a trimmed single page
- unsupported language or region code — results may default or return an error
- network timeout reading live Google Maps data — transient failure requiring retry
- rate limit exceeded — HTTP 429 returned by the proxy layer

## How this service works

Get / paginate business reviews by Business Id using a pagination cursor.

Reviews are read from Google Maps at request time, so they are live rather than served from the database.

**Note:** `match_count` is the number of reviews on this page, not the business's total review count.

**Note:** pagination requires `limit` to be left at its maximum of `20`. Below the maximum a single page is trimmed and no `cursor` is returned.

## Output

Returns a JSON object containing an array of up to 20 review objects, each with fields including review text, star rating (1-5), author name and profile link, review timestamp, like count, owner response text and language, translated review text, review photos, and a pagination cursor for fetching the next page if more reviews exist.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "business_id"
 ],
 "properties": {
  "limit": {
   "type": "integer",
   "description": "Maximum number of business reviews to return.\n\n**Allowed values:** `1-20`\n\n**Note:** a `cursor` is only returned when limit is left at its maximum of `20`."
  },
  "cursor": {
   "type": "string",
   "maxLength": 1024,
   "description": "Pagination cursor for fetching the next page. Pass the `cursor` value returned in the previous response. Omit it on the first request.\n\n**Note:** a cursor is only valid for the exact query that produced it, and it expires. Do not build or edit one."
  },
  "region": {
   "type": "string",
   "default": "us",
   "description": "Query Google Maps from a particular region or country.\n\nFor a list of supported region/country codes see *https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 (Alpha-2 code)*."
  },
  "sort_by": {
   "enum": [
    "most_relevant",
    "newest",
    "highest_ranking",
    "lowest_ranking"
   ],
   "type": "string",
   "default": "most_relevant",
   "description": "How to sort the reviews in the results."
  },
  "language": {
   "type": "string",
   "default": "en",
   "description": "Set the language of the results.\n\nFor a list of supported language codes see *https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes*."
  },
  "business_id": {
   "type": "string",
   "maxLength": 256,
   "description": "Unique Business Id, as returned in a business record's `business_id`.\n\n**Examples:**\n\n`0x102b644d009e013:0xea49e9ee285fa7bf`"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "status",
  "request_id",
  "parameters",
  "data"
 ],
 "properties": {
  "data": {
   "type": "object",
   "required": [
    "reviews",
    "match_count",
    "limit",
    "business_id",
    "found"
   ],
   "properties": {
    "found": {
     "type": "boolean",
     "description": "Whether a record for the requested Business Id was found."
    },
    "limit": {
     "type": "number",
     "description": "Maximum number of results requested for this page (the limit parameter, or its default)."
    },
    "reviews": {
     "type": "array",
     "items": {
      "type": "object",
      "required": [
       "review_id",
       "review_text",
       "rating",
       "review_datetime_utc",
       "review_timestamp",
       "review_time",
       "review_link",
       "review_photos",
       "review_language",
       "review_text_translated",
       "review_text_translated_language",
       "like_count",
       "author_id",
       "author_link",
       "author_name",
       "author_photo_url",
       "author_review_count",
       "author_photo_count",
       "owner_response_time",
       "owner_response_text",
       "owner_response_language",
       "author_reviews_link",
       "author_is_local_guide",
       "service_quality",
       "review_form",
       "review_source",
       "review_source_logo"
      ],
      "properties": {
       "rating": {
        "type": "number",
        "description": "Star rating given in the review (1-5)."
       },
       "author_id": {
        "type": "string",
        "nullable": true,
        "description": "Google Maps contributor ID of the review author."
       },
       "review_id": {
        "type": "string",
        "description": "Unique Google identifier of the review."
       },
       "like_count": {
        "type": "number",
        "nullable": true,
        "description": "Number of likes the review received."
       },
       "author_link": {
        "type": "string",
        "nullable": true,
        "description": "URL to the author's Google Maps contributor profile."
       },
       "author_name": {
        "type": "string",
        "nullable": true,
        "description": "Display name of the review author."
       },
       "review_form": {
        "type": "object",
        "nullable": true,
        "description": "Structured questions the author answered (e.g. 'What kind of trip was it?').",
        "additionalProperties": {
         "oneOf": [
          {
           
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agents-openwebninja-com-business-reviews-google-maps-via-openweb-ninja-0d41b8b4/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agents.openwebninja.com](https://www.zero.xyz/host/agents.openwebninja.com/llms.txt)
