---
title: "Safety cameras along a route shape (see module docs)."
method: POST
path: "/v1/cameras/along"
tags: ["routing"]
---

# Safety cameras along a route shape (see module docs).

`POST /v1/cameras/along`

## Request

- Base URL: `https://api.mapmap.ai`
- URL: `https://api.mapmap.ai/v1/cameras/along`
- Auth: one of:
  - HTTP bearer
  - API key in query parameter `api_key`

## Request body

- CamerasAlongRequest: Request body.
  - `buffer_m` number, double, nullable: Corridor half-width in metres; default 40, clamped to at most 100.
  - `shape` string, required: The route shape as a polyline6 string.

## Response `200`

Cameras along the route (arc-ordered) and the applied jurisdiction policy

- CamerasAlongResponse: Response body.
  - `attribution` string[]: Attribution notices for the data actually returned, to display verbatim. Empty when no cameras were returned. Deduplicated and ordered by territory, then by the source's own order.
  - `cameras` CameraAlong[], required: Cameras within the corridor, `arc_m` ascending. Always empty in an `omitted` jurisdiction.
    - `arc_m` number, double, required: Distance along the route shape to the camera's projection, metres (ascending in the response). For a corridor this is its start, the same value as `from_arc_m`.
    - `bearing` integer, nullable: Camera facing in degrees clockwise from north, when known.
    - `from_arc_m` number, double, nullable: Distance along the route to the corridor's start, metres. Corridor records only.
    - `kind` string, required: `fixed`, `average`, `redlight`, `mobile_site` or `unknown`.
    - `lat` number, double, required: WGS84 latitude of the camera itself (a corridor's start).
    - `licence` string, nullable: SPDX licence identifier of this record's source.
    - `limit_confidence` string, required: How far `limit_kph` can be trusted: `official`, `osm`, `inferred_from_road` or `unknown` (also the value whenever `limit_kph` is `null`).
    - `limit_kph` integer, nullable: Enforced limit in km/h, when known. `null` is common and honest: Ireland's published zones carry no limit at all.
    - `lon` number, double, required: WGS84 longitude.
    - `source` string, nullable: The `meta.sources[].id` this record came from, when the sidecar records provenance.
    - `to_arc_m` number, double, nullable: Distance along the route to the corridor's end, metres. Corridor records only. May be less than `from_arc_m` when the route runs against the corridor's published direction, a mobile zone is enforced both ways, so the direction carries no meaning; take the enforced span as the interval between the two.
    - `zone` object: Corridor geometry, on corridor records only (average-speed sections and mobile-camera zones). Absent for point devices.
  - `policy` CamerasPolicy, required: The jurisdiction policy the gateway applied.
    - `country` string, required: ISO 3166-1 alpha-2 country the policy was resolved for (`"ZZ"` when no camera data exists near the route).
    - `mode` string, required: `exact` or `omitted`, see [`crate::cameras_policy`].

## Other responses

- `400`: Invalid request
- `401`: Missing or invalid API key
- `429`: Quota or rate limit exceeded
- `501`: Camera sidecars are not enabled (SN_CAMERAS_DIR unset)

---

[API](https://skmtc.dev/mapmap/apis/sn-gateway.md) · [All operations](https://skmtc.dev/mapmap/apis/sn-gateway/llms.txt) · [OpenAPI document](https://skmtc.dev/mapmap/apis/sn-gateway/revisions/2293be8b4c38?raw)
