# Quadruper API docs

Route, geocode and measure travel time in the Philippines with one JSON API.

## Find the right endpoint

| You want to | Call | Key required |
|---|---|---|
| Get a route, distance and ETA between 2 to 10 points | [`POST /v2/route`](reference/route.md) | Key or our website |
| Compare travel times across many places at once | [`POST /v2/matrix`](reference/matrix.md) | Yes |
| Turn a place name or address into coordinates | [`GET /v2/geocode`](reference/geocode.md) | Key or our website |
| Turn coordinates into the nearest place | [`GET /v2/reverse`](reference/reverse.md) | Key or our website |
| Snap a point to the nearest road | [`GET /v2/nearest`](reference/nearest.md) | Key or our website |
| Map the area reachable within a travel time | [`GET /v2/isochrone`](reference/isochrone.md) | Yes |
| Check coverage, profiles and data date | [`GET /v2/info`](reference/info.md) | Key or our website |

Programs and scripts always send a key. "Our website" means the pages on `quadruper.com` itself, such as the [test map](start/test-map.md).

## Rules that apply to every call

- **Base URL:** `https://quadruper.com`
- **Coordinates:** always `[lng, lat]`, in query strings, request bodies and responses.
- **Units:** metres and seconds. Field names say so: `distance_m`, `duration_s`.
- **Authentication:** send your key in the `X-API-Key` header.
- **Errors:** branch on `code`, never on `message`. See [Errors](reference/errors.md).
- **Attribution:** show the `attribution` list wherever you show routes, places or maps to people.

[API rules](reference/api-rules.md) has the full list, with limits.
