# Halowerk Route Matrix

> Halowerk Route Matrix is a paid API for AI agents from tools.halowerk.com, paid per call via x402, $0.004/call, status unknown (last checked 2026-09-15).

Calculates driving, cycling, or walking distances and travel times between up to 25 points as a full matrix or origin-destination cross, with built-in geocoding and OpenStreetMap-based routing.

## Facts

- Endpoint: POST https://tools.halowerk.com/v1/route/matrix
- Price: $0.004/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/halowerk-route-matrix-4efb2e12
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_BXRj_aWHN_p1pSl92ISqN

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability halowerk-route-matrix-4efb2e12 -d '<json body>'
```

Example prompt: Calculate the driving distances and travel times between these 4 addresses as a full matrix: Alexanderplatz Berlin, Munich Hauptbahnhof, Hamburg Rathaus, and Cologne Cathedral — use car mode.

## When to prefer this

Choose this endpoint when you need multi-point distance and travel time calculations without managing your own routing infrastructure, especially when inputs may be raw addresses (not just coordinates) since geocoding is built in. Ideal for logistics, scheduling, and field operations use cases where you need a full N×N matrix or a source-to-many cross, and where OpenStreetMap coverage is acceptable. Prefer over Google Maps Matrix API when cost sensitivity matters and European or urban routing is the primary use case.

## Known failure modes

- Address geocoding fails if input addresses are ambiguous or non-existent — returns an error for unresolvable points
- Exceeds 25-point limit — returns a validation error
- OpenStreetMap routing unavailable for remote or unmapped areas — falls back to straight-line estimate with detour factor
- Invalid transport mode specified — returns a parameter error
- Network timeout if many points are requested simultaneously

## How this service works

Berechnet Entfernung und Fahrzeit zwischen bis zu 25 Punkten, wahlweise als volle Matrix oder als Start-Ziel-Kreuz. Nimmt Koordinaten oder Anschriften und geokodiert sie selbst. Nutzt freie Streckendaten auf Basis von OpenStreetMap fuer Auto, Rad und Fussweg und faellt bei Ausfall nachvollziehbar auf eine Luftlinienschaetzung mit Umwegfaktor zurueck.

## Output

Returns a matrix of distances (in meters) and travel times (in seconds or minutes) for each pair of input points. If OpenStreetMap routing fails for any pair, the endpoint falls back to a straight-line (as-the-crow-flies) estimate multiplied by a detour factor. Output includes the mode of transport used and whether results are from live routing or fallback estimation.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "mode": {
   "enum": [
    "driving",
    "walking",
    "cycling"
   ],
   "type": "string",
   "default": "driving"
  },
  "points": {
   "type": "array",
   "items": {
    "type": [
     "string",
     "object"
    ]
   },
   "maxItems": 25,
   "description": "Punkte fuer die volle Matrix, als Text oder als Objekt mit lat und lon"
  },
  "origins": {
   "type": "array",
   "items": {
    "type": [
     "string",
     "object"
    ]
   },
   "maxItems": 25,
   "description": "Alternativ: Startpunkte"
  },
  "destinations": {
   "type": "array",
   "items": {
    "type": [
     "string",
     "object"
    ]
   },
   "maxItems": 25,
   "description": "Alternativ: Zielpunkte"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/halowerk-route-matrix-4efb2e12/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from tools.halowerk.com](https://www.zero.xyz/host/tools.halowerk.com/llms.txt)
