# List a Google Maps business's public posts

Returns a Google Maps business's public posts, with text, images and links, a page at a time. Use it to follow what a business announces on its profile.

Tool `google.maps.posts` on Google. Contract version 1, released 2026-10-27.

## Example call

Over REST, send the input in the body. Over MCP, pass the same input to `call_tool`.

cURL:

```bash
curl https://api.voxoria.ai/v1/tools/google.maps.posts/calls \
  -H "Authorization: Bearer $VOXORIA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"data_id":"0x89c259a9b3117469:0xd134e199a405a163"}}'
```

Python:

```python
import os

import httpx

response = httpx.post(
    "https://api.voxoria.ai/v1/tools/google.maps.posts/calls",
    headers={"Authorization": f"Bearer {os.environ['VOXORIA_API_KEY']}"},
    json={
        "input": {"data_id": "0x89c259a9b3117469:0xd134e199a405a163"},
    },
    timeout=60,
)
print(response.json())
```

TypeScript:

```ts
const response = await fetch("https://api.voxoria.ai/v1/tools/google.maps.posts/calls", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.VOXORIA_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "input": {"data_id": "0x89c259a9b3117469:0xd134e199a405a163"},
  }),
});
console.log(await response.json());
```

MCP (`tools/call` params):

```json
{
  "name": "call_tool",
  "arguments": {
    "tool": "google.maps.posts",
    "input": {
      "data_id": "0x89c259a9b3117469:0xd134e199a405a163"
    }
  }
}
```

Both return [the full response](/docs/call-response.md): the call's ID, status and cost, with this tool's result in `output`.

## Input

| Input | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `data_id` | string | Yes |  | Google Maps feature ID of the business, in hexadecimal, such as "0x89c259a9b3117469:0xd134e199a405a163". |
| `country` | string | No |  | Two-letter ISO 3166-1 country code. Case-insensitive. One of the 249 values of the `countries` list: ISO 3166-1 alpha-2 country codes, lowercase. |
| `language` | string | No | `en` | Two-letter ISO 639-1 language code. Case-insensitive. One of the 184 values of the `languages` list: ISO 639-1 two-letter language codes, lowercase. |
| `next_page_token` | string | No |  | Fetches the next page. Take it from pagination.next_page_token of the previous page, and send the same business. |

## Output

A successful call returns these blocks in its `output`. A field not marked required can be `null`.

### posts

A list of rows. Always present, possibly empty.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `position` | integer | No | Rank among the posts, starting at 1. |
| `text` | string | No |  |
| `url` | string | Yes | Address of the post on Google. |
| `source` | string | No | Name of the business that published the post. |
| `image_url` | string | No | Address of the post's first image. The first of image_urls. |
| `image_urls` | array of string | No | Address of each image of the post, in the post's order. |
| `button_label` | string | No | Label of the post's button, such as "Learn more". |
| `button_url` | string | No | Address the post's button leads to. |
| `published_at` | string | No | When the post was published, in ISO 8601. |
| `published_label` | string | No | Date of the post as Google shows it, such as "Jun 18, 2025". Not a timestamp. |

### pagination

One object. Can be `null`.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `next_page_token` | string | Yes | Send as next_page_token to fetch the next page. |

## Example output

The `output` of a real call, each list cut to 3 items.

```json
{
  "posts": [
    {
      "position": 1,
      "text": "🎶 STRAY KIDS LIGHT THE EMPIRE STATE BUILDING 🎶 K-pop icons toured the immersive exhibits and observatories, while honoring a mission that brings music to patients and caregivers nationwide.\nWhat color did they light up? See below!",
      "url": "https://www.google.com/search?sca_esv=fcbbd2df5c246333&authuser=0&hl=en&gl=us&output=search&q=Empire+State+Building&ludocid=15074921902713971043&lpsid=CIHM0ogKEMePmf2B8vWNcw&ibp=gwp;0,10#lpstate=pid:CIHM0ogKEMePmf2B8vWNcw,ar",
      "source": "Empire State Building",
      "image_url": "https://lh3.googleusercontent.com/geougc/AF1QipNW_pFmHyTxB0Wm2Uy43nHe115xPEtQN3mAZ7B4=h400-no",
      "image_urls": [
        "https://lh3.googleusercontent.com/geougc/AF1QipNW_pFmHyTxB0Wm2Uy43nHe115xPEtQN3mAZ7B4=h400-no"
      ],
      "button_label": "Learn more",
      "button_url": "https://esbo.nyc/StrayKids-Light",
      "published_at": "2025-06-18T21:55:23Z",
      "published_label": "Jun 18, 2025"
    },
    {
      "position": 2,
      "text": "✨ NEW INTERVIEW! Jonas Brothers Light the Empire State Building for their 20th Anniversary✨\n\nThe Jonas Brothers made a special visit to the World’s Most Famous Building for a lighting ceremony before surprising fans at a Jonas Brothers Lookalike Contest on the 80th Floor. Lucky winners received an *amazing* prize. Think a little somethin' somethin' to JONASCON at American Dream Mall in New Jersey.",
      "url": "https://www.google.com/search?sca_esv=fcbbd2df5c246333&authuser=0&hl=en&gl=us&output=search&q=Empire+State+Building&ludocid=15074921902713971043&lpsid=CIHM0ogKEICAgMDwzdPN-QE&ibp=gwp;0,10#lpstate=pid:CIHM0ogKEICAgMDwzdPN-QE,ar",
      "source": "Empire State Building",
      "image_url": "https://lh3.googleusercontent.com/geougc/AF1QipNYQPejTUGVuE4Suj3i7vBKlGwI-eJXF2c8L_F-=h400-no",
      "image_urls": [
        "https://lh3.googleusercontent.com/geougc/AF1QipNYQPejTUGVuE4Suj3i7vBKlGwI-eJXF2c8L_F-=h400-no",
        "https://lh3.googleusercontent.com/geougc/AF1QipMyoQjJ6MER8hwMLz83opHZvydSAbAHpCoMYh-2=h400-no",
        "https://lh3.googleusercontent.com/geougc/AF1QipOpy3J1SXHoqpSBqjByYbpMCRi38CK_EXf4cEmv=h400-no"
      ],
      "button_label": "Learn more",
      "button_url": "https://esbo.nyc/JonasBrothersSitdown",
      "published_at": "2025-03-27T14:28:11Z",
      "published_label": "Mar 27, 2025"
    },
    {
      "position": 3,
      "text": "❗NEW INTERVIEW ALERT❗ \"The Traitors\" Winners Tell All About Tom Sandoval & Full Cast!\n\nThe Empire State Building lit up in tartan stripes to celebrate the Season 3 winners of The Traitors—Dolores Catania, Lord Ivar Mountbatten, and Dylan Efron. On March 7, the trio took a victory lap through the building’s immersive exhibits and enjoyed stunning views from the 86th and 102nd Floor Observatories.\n\nAfter their tour, they sat down to share the season’s most surprising theories, Traitor Danielle’s bold strategies, and their hopes for The Traitors Season 4.\n\n🎥 Hit \"Learn More\" to watch the full interview now!\n\nStay tuned for more insider moments and behind-the-scenes stories!",
      "url": "https://www.google.com/search?sca_esv=fcbbd2df5c246333&authuser=0&hl=en&gl=us&output=search&q=Empire+State+Building&ludocid=15074921902713971043&lpsid=CIHM0ogKEICAgMDQ4_at3QE&ibp=gwp;0,10#lpstate=pid:CIHM0ogKEICAgMDQ4_at3QE,ar",
      "source": "Empire State Building",
      "image_url": "https://lh3.googleusercontent.com/geougc/AF1QipPRKwHiOyzq42ieuIWtWBHlfieZnX5CPDNkYG_6=h400-no",
      "image_urls": [
        "https://lh3.googleusercontent.com/geougc/AF1QipPRKwHiOyzq42ieuIWtWBHlfieZnX5CPDNkYG_6=h400-no",
        "https://lh3.googleusercontent.com/geougc/AF1QipPPLbfzft4s3MeE1zDvqQ3v8YElFLfo8n7gAj4h=h400-no",
        "https://lh3.googleusercontent.com/geougc/AF1QipMn0svUFKnITpbLzGJaH-bDhVMD0egux_pv9QpY=h400-no"
      ],
      "button_label": "Learn more",
      "button_url": "https://www.esbnyc.com/blog/watch-traitors-winners-tell-all-about-tom-sandoval-full-cast",
      "published_at": "2025-03-13T20:01:51Z",
      "published_label": "Mar 13, 2025"
    }
  ],
  "pagination": {
    "next_page_token": "pt1.bGl0ZXNjcmFwZTpleUpqSWpvaVEyZHpTVEpOWlV4MFFWbFJaMHR5U2xsRGNHZFJNRVpHVlZWT2IyTkZUbEpOYlhNd1ZURldSMVV4VGxoT1ZWSmhUV3BzUTFaVlVtcGxWa28xVFZaS2ExSXhiM2RVVmxrMVdteEtXR0ZGVmxOTmJXaHdXV3BHYjJWc1ozZGhSRlpyWWxkM2VsUnRkSGRUTWtWM1VtdEtVbFpWV2tOVmFrcHJZbFpuZDFKdVVrMVdhMWwzVjIwMVVtVkdTWGRTYTBwb1ZsVmFReUlzSW5BaU9sc2lNVGczTnpBeE16a3hOVE0zTXpFeE1qZ2lMQ0pEU1VoTk1HOW5TMFZOWlZCdFpqSkNPSFpYVG1OM0lpd2lRMmR6U1hrdGRrMTNaMWxSYTB0MlVsZEJJbDBzSW5ZaU9qRjk"
  }
}
```
