---
title: "Google Maps"
description: "Place search, nearby places, details and Street View metadata"
---

> Documentation Index
> Fetch the complete documentation index at: https://help.tooluse.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Maps

<p>Place search, nearby places, details and Street View metadata</p>

<details data-command-index><summary>What you can do (7)</summary>
<h2>What you can do</h2>
<p>Available commands: 7 (7 read, 0 write). Enable only the commands your application needs.</p>
<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Command</th>
<th>Effect</th>
</tr>
</thead>
<tbody><tr>
<td><a href="https://help.tooluse.net/integrations/google-maps#command-maps-google-places-search-text">Search places</a> — <code>maps.google.places.search-text</code></td>
<td>Read</td>
</tr>
<tr>
<td><a href="https://help.tooluse.net/integrations/google-maps#command-maps-google-places-search-nearby">Search nearby</a> — <code>maps.google.places.search-nearby</code></td>
<td>Read</td>
</tr>
<tr>
<td><a href="https://help.tooluse.net/integrations/google-maps#command-maps-google-places-place-details">Place details</a> — <code>maps.google.places.place-details</code></td>
<td>Read</td>
</tr>
<tr>
<td><a href="https://help.tooluse.net/integrations/google-maps#command-maps-google-street-view-metadata">Street View metadata</a> — <code>maps.google.street-view.metadata</code></td>
<td>Read</td>
</tr>
<tr>
<td><a href="https://help.tooluse.net/integrations/google-maps#command-maps-google-aerial-view">Look up an aerial view video</a> — <code>maps.google.aerial-view</code></td>
<td>Read</td>
</tr>
<tr>
<td><a href="https://help.tooluse.net/integrations/google-maps#command-maps-google-places-photo-media">Download a place photo</a> — <code>maps.google.places.photo-media</code></td>
<td>Read</td>
</tr>
<tr>
<td><a href="https://help.tooluse.net/integrations/google-maps#command-maps-google-street-view-static">Download a Street View image</a> — <code>maps.google.street-view.static</code></td>
<td>Read</td>
</tr>
</tbody></table>
</div>
</details>
<h2>Connect and use</h2>

<p><a href="https://www.tooluse.net/tools/integrations/google-maps">Connect and use</a></p>
<p>Open the integration&#39;s connection form to check the available credential source. The source has not been resolved for this documentation export. The instructions below apply when using your own provider account.</p>
<h2>Get your provider credentials</h2>
<p>Follow these steps for Google Maps, then enter the issued values in the connection form below.</p>
<ol>
<li><p>In Google Cloud, select a project with billing enabled and enable Places API (New). Enable Street View Static API or Aerial View API only when using those commands.</p>
</li>
<li><p>Open Google Maps Platform → Keys &amp; Credentials, create an API key, and restrict it to the APIs your selected commands require. Copy the key into API Key in the connection form.</p>
</li>
</ol>
<p><a href="https://developers.google.com/maps/documentation/places/web-service/get-api-key">Official credential setup</a></p>
<h2>Where to enter credentials</h2>
<p>In the integration page, sign in, choose your workspace and open Connect. If a <strong>Credentials</strong> choice is shown, select <strong>Use my credentials</strong>. Fill the following connection fields and save. Provider credentials belong in this form, never in an MCP configuration or tool input.</p>
<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Connection field</th>
<th>Requirement</th>
</tr>
</thead>
<tbody><tr>
<td>API Key</td>
<td>Required</td>
</tr>
</tbody></table>
</div><p>Open API keys and create a Tooluse.net key for the enabled commands.</p>
<p>Set TOOLUSE_API_KEY in your client and use the shared MCP configuration.</p>
<p><a href="https://help.tooluse.net/clients">Configure Claude Code, Codex or Cursor once</a></p>

<h2>Permissions and results</h2>

<p>If you have more than one workspace, check the selected workspace in the connection or API-key dialog before saving. Roles, enabled commands, expiry and revocation use Tooluse.net&#39;s existing permissions. Disabling a connection or revoking a key immediately prevents new calls.</p>

<p>Send one Claude tool_use block per request. Keep the same Idempotency-Key when retrying the same request; use a new key for a new call. The response includes the shared Tooluse.net receipt and Claude tool_result. Check both HTTP status and the returned tool result before treating a call as successful.</p>

<p>Your connection&#39;s daily allowance and key permissions also apply. Adding a connection does not make a provider request.</p>

<p>Calls return the shared execution receipt and a Claude tool_result. Provider output varies by operation; consult the provider documentation for its response fields. Unconfirmed calls should be checked before retrying.</p>

<h2>Call from your client</h2>

<p>Use the shared MCP configuration. Refresh your client&#39;s tool list after saving the connection or changing key permissions, then call the returned tool name with the example input below.</p>

<p><a href="https://help.tooluse.net/clients">Configure Claude Code, Codex or Cursor once</a></p>

<h2>Discover your enabled tools</h2>

<p>List permitted tools in Claude format. Read every page using page and size (maximum 100) until all results have been received. Use the returned name, not a catalog capability identifier, in the tool_use block.</p>

<pre><code class="language-bash">curl 'https://api.tooluse.net/v1/tools' \
  -H "Authorization: Bearer $TOOLUSE_API_KEY"
</code></pre>

<p>Find this command in the tool list permitted by your key. Replace svc_FROM_YOUR_TOOL_LIST with its returned name. Use a new Idempotency-Key for each new call and retain it when retrying that same call.</p>

<h2>HTTP call</h2>

<pre><code class="language-bash">curl 'https://api.tooluse.net/v1/tool-calls' \
  -H "Authorization: Bearer $TOOLUSE_API_KEY" \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: replace-with-a-new-call-id' \
  --data '{
  "type": "tool_use",
  "id": "toolu_example",
  "name": "svc_FROM_YOUR_TOOL_LIST",
  "input": {
    "query": {
      "textQuery": "coffee shops in Singapore",
      "languageCode": "en-US",
      "maxResultCount": 5
    }
  }
}'
</code></pre>

<p>Send one Claude tool_use block per request. Keep the same Idempotency-Key when retrying the same request; use a new key for a new call. The response includes the shared Tooluse.net receipt and Claude tool_result. Check both HTTP status and the returned tool result before treating a call as successful.</p>

<h2>Commands</h2>

<details id="command-maps-google-places-search-text">
<summary><span>Search places — <code>maps.<wbr>google.<wbr>places.<wbr>search-<wbr>text</code></span></summary>
<p>Run <strong>Search places</strong> with Google Maps. This is a read command; it does not grant access beyond the connected account&#39;s permissions.</p>

<p>This is a read operation. Provider rate limits and data access rules still apply.</p>

<p><a href="https://www.tooluse.net/tools/integrations/google-maps?command=maps.google.places.search-text">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Required in parent</th>
<th>Description</th>
<th>Constraints</th>
</tr>
</thead>
<tbody><tr>
<td><code>query</code></td>
<td>object</td>
<td>Required</td>
<td>Search criteria</td>
<td><code>additionalProperties: false</code></td>
</tr>
<tr>
<td><code>query.textQuery</code></td>
<td>string</td>
<td>Required</td>
<td>Search query</td>
<td><code>maxLength: 1000</code></td>
</tr>
<tr>
<td><code>query.languageCode</code></td>
<td>string</td>
<td>Optional</td>
<td>Language code</td>
<td><code>maxLength: 1000</code></td>
</tr>
<tr>
<td><code>query.maxResultCount</code></td>
<td>integer</td>
<td>Optional</td>
<td>Result count</td>
<td><code>minimum: 1; maximum: 20</code></td>
</tr>
</tbody></table>
</div>
<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/google-maps/commands/maps.google.places.search-text">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{
  "query": {
    "textQuery": "coffee shops in Singapore",
    "languageCode": "en-US",
    "maxResultCount": 5
  }
}
</code></pre>

<p>At most 1 provider requests per invocation; timeout: 30 seconds.</p>

</details>
<details id="command-maps-google-places-search-nearby">
<summary><span>Search nearby — <code>maps.<wbr>google.<wbr>places.<wbr>search-<wbr>nearby</code></span></summary>
<p>Run <strong>Search nearby</strong> with Google Maps. This is a read command; it does not grant access beyond the connected account&#39;s permissions.</p>

<p>This is a read operation. Provider rate limits and data access rules still apply.</p>

<p><a href="https://www.tooluse.net/tools/integrations/google-maps?command=maps.google.places.search-nearby">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Required in parent</th>
<th>Description</th>
<th>Constraints</th>
</tr>
</thead>
<tbody><tr>
<td><code>coordinate</code></td>
<td>object</td>
<td>Required</td>
<td>Location</td>
<td><code>additionalProperties: false</code></td>
</tr>
<tr>
<td><code>coordinate.latitude</code></td>
<td>number</td>
<td>Required</td>
<td>Latitude</td>
<td><code>minimum: -90; maximum: 90</code></td>
</tr>
<tr>
<td><code>coordinate.longitude</code></td>
<td>number</td>
<td>Required</td>
<td>Longitude</td>
<td><code>minimum: -180; maximum: 180</code></td>
</tr>
<tr>
<td><code>radiusMeters</code></td>
<td>number</td>
<td>Optional</td>
<td>Search radius in metres</td>
<td><code>minimum: 1; maximum: 50000</code></td>
</tr>
<tr>
<td><code>limit</code></td>
<td>integer</td>
<td>Optional</td>
<td>Result count</td>
<td><code>minimum: 1; maximum: 20</code></td>
</tr>
</tbody></table>
</div>
<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/google-maps/commands/maps.google.places.search-nearby">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{
  "coordinate": {
    "latitude": 1.3521,
    "longitude": 103.8198
  },
  "radiusMeters": 1000,
  "limit": 5
}
</code></pre>

<p>At most 1 provider requests per invocation; timeout: 30 seconds.</p>

</details>
<details id="command-maps-google-places-place-details">
<summary><span>Place details — <code>maps.<wbr>google.<wbr>places.<wbr>place-<wbr>details</code></span></summary>
<p>Run <strong>Place details</strong> with Google Maps. This is a read command; it does not grant access beyond the connected account&#39;s permissions.</p>

<p>This is a read operation. Provider rate limits and data access rules still apply.</p>

<p><a href="https://www.tooluse.net/tools/integrations/google-maps?command=maps.google.places.place-details">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Required in parent</th>
<th>Description</th>
<th>Constraints</th>
</tr>
</thead>
<tbody><tr>
<td><code>placeId</code></td>
<td>string</td>
<td>Required</td>
<td>Place ID</td>
<td><code>maxLength: 1000</code></td>
</tr>
<tr>
<td><code>languageCode</code></td>
<td>string</td>
<td>Optional</td>
<td>Language code</td>
<td><code>maxLength: 1000</code></td>
</tr>
</tbody></table>
</div>
<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/google-maps/commands/maps.google.places.place-details">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{
  "placeId": "PLACE_ID",
  "languageCode": "en-US"
}
</code></pre>

<p>At most 1 provider requests per invocation; timeout: 30 seconds.</p>

</details>
<details id="command-maps-google-street-view-metadata">
<summary><span>Street View metadata — <code>maps.<wbr>google.<wbr>street-<wbr>view.<wbr>metadata</code></span></summary>
<p>Run <strong>Street View metadata</strong> with Google Maps. This is a read command; it does not grant access beyond the connected account&#39;s permissions.</p>

<p>This is a read operation. Provider rate limits and data access rules still apply.</p>

<p><a href="https://www.tooluse.net/tools/integrations/google-maps?command=maps.google.street-view.metadata">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Required in parent</th>
<th>Description</th>
<th>Constraints</th>
</tr>
</thead>
<tbody><tr>
<td><code>query</code></td>
<td>object</td>
<td>Required</td>
<td>Location query</td>
<td><code>additionalProperties: false</code></td>
</tr>
<tr>
<td><code>query.location</code></td>
<td>string</td>
<td>Required</td>
<td>Latitude,longitude or address</td>
<td><code>minLength: 1; maxLength: 300</code></td>
</tr>
</tbody></table>
</div>
<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/google-maps/commands/maps.google.street-view.metadata">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{
  "query": {
    "location": "1.3521,103.8198"
  }
}
</code></pre>

<p>At most 1 provider requests per invocation; timeout: 30 seconds.</p>

</details>
<details id="command-maps-google-aerial-view">
<summary><span>Look up an aerial view video — <code>maps.<wbr>google.<wbr>aerial-<wbr>view</code></span></summary>
<p>Run <strong>Look up an aerial view video</strong> with Google Maps. This is a read command; it does not grant access beyond the connected account&#39;s permissions.</p>

<p>This is a read operation. Provider rate limits and data access rules still apply.</p>

<p><a href="https://www.tooluse.net/tools/integrations/google-maps?command=maps.google.aerial-view">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Required in parent</th>
<th>Description</th>
<th>Constraints</th>
</tr>
</thead>
<tbody><tr>
<td><code>query</code></td>
<td>object</td>
<td>Required</td>
<td>Lookup</td>
<td><code>minProperties: 1; additionalProperties: false</code></td>
</tr>
<tr>
<td><code>query.address</code></td>
<td>string</td>
<td>Optional</td>
<td>Address</td>
<td><code>minLength: 1; maxLength: 300</code></td>
</tr>
<tr>
<td><code>query.videoId</code></td>
<td>string</td>
<td>Optional</td>
<td>Video id</td>
<td><code>minLength: 1; maxLength: 200</code></td>
</tr>
</tbody></table>
</div>
<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/google-maps/commands/maps.google.aerial-view">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{
  "query": {
    "address": "1600 Amphitheatre Parkway, Mountain View, CA"
  }
}
</code></pre>

<p>At most 1 provider requests per invocation; timeout: 60 seconds.</p>

</details>
<details id="command-maps-google-places-photo-media">
<summary><span>Download a place photo — <code>maps.<wbr>google.<wbr>places.<wbr>photo-<wbr>media</code></span></summary>
<p>Run <strong>Download a place photo</strong> with Google Maps. This is a read command; it does not grant access beyond the connected account&#39;s permissions.</p>

<p>This is a read operation. Provider rate limits and data access rules still apply.</p>

<p><a href="https://www.tooluse.net/tools/integrations/google-maps?command=maps.google.places.photo-media">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Required in parent</th>
<th>Description</th>
<th>Constraints</th>
</tr>
</thead>
<tbody><tr>
<td><code>photoName</code></td>
<td>string</td>
<td>Required</td>
<td>Photo resource name</td>
<td><code>pattern: &quot;^places/[A-Za-z0-9_-]+/photos/[A-Za-z0-9_-]+$&quot;</code></td>
</tr>
<tr>
<td><code>width</code></td>
<td>integer</td>
<td>Optional</td>
<td>Maximum width in pixels</td>
<td><code>minimum: 1; maximum: 1600</code></td>
</tr>
</tbody></table>
</div>
<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/google-maps/commands/maps.google.places.photo-media">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{
  "photoName": "places/ChIJN1t_tDeuEmsRUsoyG83frY4/photos/AeJbb3d",
  "width": 800
}
</code></pre>

<p>At most 2 provider requests per invocation; timeout: 60 seconds.</p>

</details>
<details id="command-maps-google-street-view-static">
<summary><span>Download a Street View image — <code>maps.<wbr>google.<wbr>street-<wbr>view.<wbr>static</code></span></summary>
<p>Run <strong>Download a Street View image</strong> with Google Maps. This is a read command; it does not grant access beyond the connected account&#39;s permissions.</p>

<p>This is a read operation. Provider rate limits and data access rules still apply.</p>

<p><a href="https://www.tooluse.net/tools/integrations/google-maps?command=maps.google.street-view.static">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Required in parent</th>
<th>Description</th>
<th>Constraints</th>
</tr>
</thead>
<tbody><tr>
<td><code>query</code></td>
<td>object</td>
<td>Required</td>
<td>Image request</td>
<td><code>additionalProperties: false</code></td>
</tr>
<tr>
<td><code>query.location</code></td>
<td>string</td>
<td>Required</td>
<td>Latitude,longitude or address</td>
<td><code>minLength: 1; maxLength: 300</code></td>
</tr>
<tr>
<td><code>query.size</code></td>
<td>string</td>
<td>Required</td>
<td>Width x height in pixels</td>
<td><code>pattern: &quot;^[1-9][0-9]{1,2}x[1-9][0-9]{1,2}$&quot;</code></td>
</tr>
<tr>
<td><code>query.heading</code></td>
<td>number</td>
<td>Optional</td>
<td>Heading</td>
<td><code>minimum: 0; maximum: 360</code></td>
</tr>
<tr>
<td><code>query.pitch</code></td>
<td>number</td>
<td>Optional</td>
<td>Pitch</td>
<td><code>minimum: -90; maximum: 90</code></td>
</tr>
<tr>
<td><code>query.fov</code></td>
<td>number</td>
<td>Optional</td>
<td>Field of view</td>
<td><code>minimum: 10; maximum: 120</code></td>
</tr>
</tbody></table>
</div>
<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/google-maps/commands/maps.google.street-view.static">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{
  "query": {
    "location": "1.3521,103.8198",
    "size": "600x400",
    "heading": 90,
    "pitch": 0,
    "fov": 90
  }
}
</code></pre>

<p>At most 1 provider requests per invocation; timeout: 60 seconds.</p>

</details>
<h2>Errors</h2>

<p>Check the key&#39;s expiry, revocation, workspace and allowed operations.</p>

<p>Reuse the same idempotency key only for the same request.</p>

<p>The connection or provider limit has been reached. Check the receipt before retrying.</p>

<h2>Test the connection</h2>

<p>Open the integration&#39;s commands below to inspect parameters and examples. Start with a read command for an account or resource you can access. Refresh your client&#39;s tool list, use the returned tool name, and check the execution result and usage. Provider charges and permissions still apply. Never test a write against production data without reviewing it.</p>

<p><a href="https://developers.google.com/maps/documentation/places/web-service/text-search">Official provider documentation</a></p>

Source: https://help.tooluse.net/integrations/google-maps/index.mdx
