google-maps — Claude Code skill: place search and reviews
This skill hands your agent place search, business details and reviews through fetcher.sh. Useful when a project needs points-of-interest data without a Google Cloud setup.
npx skills add fetcher-sh/fetcher-skills --skill google-maps -a claude-codeWhat google-maps does
Four endpoints sit behind the skill: text search for places, optionally pinned to a latitude and longitude; full place details by feature ID; a place's reviews; and a single review by ID. Each one is a plain HTTP GET against https://google-maps.fetcher.sh, and every reply follows the same shape — { "status", "message", "data" }.
Payment comes in two flavours. Prepaid credits use a key: set FETCHER_API_KEY and send it as Authorization: Bearer $FETCHER_API_KEY. Or skip the header entirely and let x402 settle each call in USDC — an unpaid GET answers 402 with machine-readable payment requirements, and @x402/fetch signs and retries for you. Either way a call costs $0.005.
Get the key before you start, at https://fetcher.sh/topup or through POST /api/credits/topup. One thing to weigh: settlement happens before delivery, so a failure upstream means no refund. There are no rate limits. An MCP config is included, pointing at https://google-maps.fetcher.sh/mcp with the key in a headers block; drop that block to run on x402 instead.
What it helps with
- search places from a free-text query
- anchor a search to a coordinate for near-me lookups
- pull a place's full details by feature ID
- list a place's reviews sorted by newest or rating
- feed a store locator with points-of-interest data
Example prompts for the agent
- Find coffee shops near 40.7128, -74.0060
- Show reviews for place
0x89c259af336b3341:0x8c584d6dfe89aa89, newest first - Search for bakeries in Canada with query “boulangerie”, languageCode fr, countryCode CA
How to install google-maps
1Skills CLI (Vercel)
npx skills add fetcher-sh/fetcher-skills --skill google-maps -a claude-code2Manually: put the files in place
~/.claude/skills/google-maps/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/google-maps/
1Skills CLI (Vercel)
npx skills add fetcher-sh/fetcher-skills --skill google-maps -a codex2Manually: put the files in place
.agents/skills/google-maps/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add fetcher-sh/fetcher-skills --skill google-maps -a cursor2Manually: put the files in place
.cursor/skills/google-maps/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install fetcher-sh/fetcher-skills google-maps2Manually: put the files in place
.github/skills/google-maps/SKILL.md1Skills CLI (Vercel)
npx skills add fetcher-sh/fetcher-skills --skill google-maps -a gemini-cli2Platform CLI
gemini skills install https://github.com/fetcher-sh/fetcher-skills --path skills/google-mapsManually: put the files in place
.devin/skills/google-maps/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add fetcher-sh/fetcher-skills --skill google-maps -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about google-maps
How do I install google-maps in Claude Code?
Run npx skills add fetcher-sh/fetcher-skills --skill google-maps -a claude-code. The skill lands at ~/.claude/skills/google-maps/SKILL.md.
What does the google-maps skill do?
It gives the agent four calls: place search with optional coordinates, place details by feature ID, a place's reviews, and one review by ID. Results come back as JSON.
What do I need before using it?
Either a fetcher.sh key in FETCHER_API_KEY or x402 pay-per-call in USDC. A single call costs $0.005.
Source text
SKILL.md · MIT
---
name: google-maps
description: >-
A Google Maps API alternative and Google Places API alternative on
fetcher.sh — pay-per-call in USDC via x402, or prepaid credits with a
Bearer key, no Google Cloud billing account. Use when the user wants to
search places by text query or anchor the search to a latitude/longitude
coordinate, fetch a place's full details by its feature ID (fid), pull a
place's reviews sorted by relevance/newest/rating, or look up a single
review by ID. Also covers local business discovery, points-of-interest
data, store-locator input, and review monitoring without Google Cloud
Platform's API key setup, billing, and per-request pricing.
keywords:
- google-maps
- google-maps-api
- google-places-api
- places-api-alternative
- local-business-data
- poi-data
- x402
- ai-agent
---
# Google Maps API
Place search, place details, and reviews as clean JSON — one plain HTTP GET
per call, paid as you go. No Google Cloud project, no API key restriction
rules, no per-request Places API billing.
Base URL: `https://google-maps.fetcher.sh`
## Authentication
Two ways to pay, same data — full mechanics in the [`fetcher`
skill](../fetcher/SKILL.md):
```bash
# 1. Prepaid credits (recommended — get a key at https://fetcher.sh/topup
# or via POST /api/credits/topup, see the fetcher skill)
export FETCHER_API_KEY="bby_live_xxxxxxxxxxxx"
curl -H "Authorization: Bearer $FETCHER_API_KEY" \
"https://google-maps.fetcher.sh/api/place/search?query=coffee"
# 2. x402 pay-per-call — omit the header; a GET with no payment returns 402
# with machine-readable payment requirements (USDC on Base, Polygon,
# Arbitrum, Monad, or Solana). @x402/fetch signs and retries automatically.
```
Every response is `{ "status": number, "message": string, "data": ... }`; the
HTTP status mirrors `status`.
## Endpoints (4 — all GET, $0.005/call)
| Endpoint | What it returns |
| --- | --- |
| `/api/place/search` | Places matching a text query, optionally anchored to a coordinate |
| `/api/place/{fid}` | A place's full details by feature ID |
| `/api/place/{fid}/reviews` | A place's reviews |
| `/api/review/{id}` | A single review by ID |
Required on search: `query`. Optional: `languageCode`, `countryCode`,
`latitude`, `longitude`, `offset`, `zoom` (search radius/precision). Reviews
support `sort` (`relevant`, `newest`, `highest`, `lowest`) and `cursor`.
## Scenarios
**Plain text search:**
```bash
curl -H "Authorization: Bearer $FETCHER_API_KEY" \
--data-urlencode "query=ramen in brooklyn" -G \
"https://google-maps.fetcher.sh/api/place/search"
```
**Anchor the search to a coordinate (for "near me" style queries):**
```bash
curl -H "Authorization: Bearer $FETCHER_API_KEY" \
--data-urlencode "query=coffee" -G \
--data-urlencode "latitude=40.7128" \
--data-urlencode "longitude=-74.0060" \
"https://google-maps.fetcher.sh/api/place/search"
```
**A place's details, then its reviews sorted by newest:**
```bash
curl -H "Authorization: Bearer $FETCHER_API_KEY" \
"https://google-maps.fetcher.sh/api/place/0x89c259af336b3341%3A0x8c584d6dfe89aa89"
curl -H "Authorization: Bearer $FETCHER_API_KEY" \
--data-urlencode "sort=newest" -G \
"https://google-maps.fetcher.sh/api/place/0x89c259af336b3341%3A0x8c584d6dfe89aa89/reviews"
```
**A single review by ID:**
```bash
curl -H "Authorization: Bearer $FETCHER_API_KEY" \
"https://google-maps.fetcher.sh/api/review/ChdDSUhNMG9nS0VJQ0FnSURDeGRXQnl3RRAB"
```
**Localized results (French language, Canadian region):**
```bash
curl -H "Authorization: Bearer $FETCHER_API_KEY" \
--data-urlencode "query=boulangerie" -G \
--data-urlencode "languageCode=fr" \
--data-urlencode "countryCode=CA" \
"https://google-maps.fetcher.sh/api/place/search"
```
## MCP
```json
{
"mcpServers": {
"google-maps": {
"url": "https://google-maps.fetcher.sh/mcp",
"headers": { "Authorization": "Bearer bby_live_..." }
}
}
}
```
Free: `search_endpoints`, `describe_endpoint`, `check_balance`. Paid:
`fetch_data` (any endpoint above), `topup_credits`, plus the named shortcut
`google_maps_place_search`. Drop the `headers` block to pay per call with
x402 instead — see the [`fetcher` skill](../fetcher/SKILL.md) for the full
flow.
## Errors
- `400` — missing/invalid parameter (message names it)
- `401` — unknown or rotated key
- `402` — payment required (x402 challenge) or `topup_required` (credits
exhausted)
- `404` — not a priced path
- No rate limits; no refunds on upstream failures (settlement precedes
delivery)
## Reference
- Full agent setup: <https://google-maps.fetcher.sh/skill.md>
- OpenAPI 3.1 contract: <https://google-maps.fetcher.sh/openapi.json>
- Condensed catalog: <https://google-maps.fetcher.sh/llms.txt>
- Payment, credits, and MCP deep dive: [`fetcher` skill](../fetcher/SKILL.md)
- Site: <https://google-maps.fetcher.sh>
© fetcher-sh · MIT · fetcher-sh/fetcher-skills