---
title: "Drive Matrix"
method: POST
path: "/v1/teams/{team_id}/geo/drive-matrix"
tags: ["geo"]
---

# Drive Matrix

`POST /v1/teams/{team_id}/geo/drive-matrix`

## 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/drive-matrix`
- Auth: none declared

Every origin against every destination — drive time for a whole day in one call.

"Which estimator reaches this address soonest" and "what does this stop add
to Dana's route" are origins x destinations. Answering them with
`drive-time` is N x M calls that each geocode both ends again; this
geocodes each place once (remembered), asks the provider ONCE for the grid
(Google: up to 25 x 25 and 100 elements a request, split to fit), and
answers `matrix[i][j]` = origin i to destination j with the provider
stamped. A cell with no driving route says so (`status`), and a place that
could not be found marks its whole row or column `address_not_found`.
`provider: "simulation"` is a hash-derived stand-in, not a road.

## Path parameters

- `team_id` string, uuid, required

## Headers

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

## Request body

- DriveMatrixRequest: Each place is an address or a `lat,lng` pair; every origin meets every destination.
  - `origins` string[], required
  - `destinations` string[], required
  - `provider` 'google' | 'simulation', nullable

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

## Changes

> 68 revisions in range; 1 not diffed.

- **2026-10-02** `146c9ac992af`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/stormy/apis/stormy-control-plane/changes/v1/teams/:team_id/geo/drive-matrix/post.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/a40e83844eaa?raw)
