---
title: "Business Map Image"
method: GET
path: "/v1/teams/{team_id}/geo/map.png"
tags: ["geo"]
---

# Business Map Image

`GET /v1/teams/{team_id}/geo/map.png`

## Request

- Base URL: `https://api.stormy.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.stormy.ai/v1/teams/{team_id}/geo/map.png`
- Auth: none declared

One place — or up to ten — drawn by Google, fetched by us; no key in the browser.

`lat`/`lng` centre the picture on one place with one marker, at `zoom`
(16 unless asked). `pin=lat,lng` (repeated) puts lettered markers on it,
A first; with pins and no centre Google fits the frame to them and `zoom`
is only honoured when given. One of the two is required.

The Maps JavaScript API needs a key IN THE PAGE, which is why
`/v1/maps/browser-key` exists and why it refuses to answer in production:
our server key is unrestricted and that route is public, so serving it would
publish the project. Minting a referrer-restricted browser key is a job in
the Google console, not a code change, and until somebody does it a
client-rendered map cannot draw on a deployed build.

This route needs none of that. It is authenticated, it renders server-side,
and the key stays in the process — so the "is this your shop?" map works in
production today. It is a picture, not a map you can drag; for a
confirmation that is the right trade, and an interactive map can arrive
later behind a proper browser key without this changing.

## Path parameters

- `team_id` string, uuid, required

## Query parameters

- `lat` number, nullable
- `lng` number, nullable
- `zoom` integer, nullable
- `width` integer
- `height` integer
- `maptype` string
- `pin` string[]

## Headers

- `authorization` string, nullable
- `x-darwin-token` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

## Changes

> 70 revisions in range; 1 not diffed.

- **2026-09-13** `33afbf889154`: 1 breaking, 9 info
  - for the `query` request parameter `zoom`, default value `16` was removed
  - added the new optional `query` request parameter `pin`
  - the `query` request parameter `lat` became optional
  - the `query` request parameter `lng` became optional
  - …6 more

[Operation history](https://skmtc.dev/stormy/apis/stormy-control-plane/changes/v1/teams/:team_id/geo/map.png/get.md)

---

[API](https://skmtc.dev/stormy/apis/stormy-control-plane.md) · [All operations](https://skmtc.dev/stormy/apis/stormy-control-plane/llms.txt) · [OpenAPI document](https://skmtc.dev/stormy/apis/stormy-control-plane/revisions/4d811ab18158?raw)
