---
title: "Matching Service"
method: GET
path: "/matching/{profile}/{coordinates}"
tags: ["Routing"]
---

# Matching Service

`GET /matching/{profile}/{coordinates}`

Matching API matches or snaps given GPS points to the road network in the most plausible way. Please note the request might result multiple sub-traces. Large jumps in the timestamps (> 60s) or improbable transitions lead to trace splits if a complete matching could not be found. The algorithm might not be able to match all points. Outliers are removed if they can not be matched successfully.

## Query parameters

- `bearings` string
- `radiuses` string
- `hints` string
- `steps` string
- `geometries` string
- `annotations` string
- `overview` string
- `timestamps` string
- `gaps` string
- `tidy` string
- `waypoints` string

## Response `200`

OK

- DirectionsMatching
  - `code` string — If the request was successful `Ok` otherwise see the service dependent and general status codes.
  - `tracepoints` object[] — Array of `Waypoint` objects representing all points of the trace in order. If the trace point was omitted by map matching because it is an outlier, the entry will be `null`.
    - `waypoint_index` integer — Index of the waypoint inside the matched route.
    - `matchings_index` integer — Index to the `Route` object in `matchings` the sub-trace was matched to.
    - `alternatives_count` integer — Number of probable alternative matchings for this trace point. A value of zero indicate that this point was matched unambiguously. Split the trace at these points for incremental map matching.
    - `distance` number
    - `location` number[]
    - `name` string
  - `matchings` object[] — An array of `Route` objects that assemble the trace.
    - `duration` number
    - `distance` number
    - `weight` number
    - `geometry` string
    - `confidence` number — Confidence of the matching. `float` value between 0 and 1. 1 is very confident that the matching is correct.
    - `weight_name` string
    - `legs` object[]
      - `steps` object[]
        - `intersections` object
          - `out` number
          - `entry` string
          - `location` number[]
          - `bearings` number
        - `driving_side` string
        - `geometry` string
        - `duration` number
        - `distance` number
        - `name` string
        - `weight` number
        - `mode` string
        - `maneuver` object[]
          - `bearing_after` number
          - `location` number[]
          - `type` string
          - `bearing_before` number
          - `modifier` string
          - `ref` string
      - `weight` number
      - `distance` number
      - `summary` string
      - `duration` string

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — The request has been made from an unauthorized domain.
- `404` — No location or places were found for the given input
- `429` — Request exceeded the rate-limits set on your account
- `500` — Internal Server Error

---

[API](https://skmtc.dev/locationiq/apis/locationiq-api-reference.md) · [All operations](https://skmtc.dev/locationiq/apis/locationiq-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/locationiq/locationiq-api-reference/revisions/62f2eab3d1ff/schema)
