# GET /navmesh

> Talos 0.7 · Since 0.6

`GET /navmesh` — `?bounds=` and `?limit=` window it; see `crate::types::NavMeshQuery`.

## Response

#### Response: `NavMeshView`

`GET /navmesh` response. Mirrors `argus_nav::NavMeshSnapshot`.

| Field | Type | Present | Description |
|---|---|---|---|
| `polys` | `NavPolyView[]` | always | Every walkable polygon, in world space. |
| `area` | `number` | always | Total walkable surface in square metres. |
| `bounds` | `number[3][2]` | always | `[min, max]` corners of the axis-aligned box enclosing the walkable polygons. |
| `links` | `NavLinkView[]` | sometimes | Off-mesh links baked into the mesh: the scene's `navlink` components, then any `meta.nav.autoLinks` generated. Omitted when there are none. |

#### Response: `NavLinkView`

One off-mesh link, ends snapped onto the navmesh.

| Field | Type | Present | Description |
|---|---|---|---|
| `start` | `number[3]` | always | Where the crossing starts, on the navmesh. |
| `end` | `number[3]` | always | Where it lands, on the navmesh. |
| `kind` | `NavLinkKindView` | always | What crossing it takes. |
| `bidirectional` | `boolean` | always | Crossable from `end` to `start` too. |
| `action` | `string` | sometimes | The input action a player-driven traverser performs at `start` while moving to `end`. Absent: just move. |
| `hold` | `number` | sometimes | Seconds to hold `action` down from `start`: the `navlink`'s `hold`, 0.25 when it gives none. Absent when there is no action. |
| `entity` | `string` | sometimes | The entity whose `navlink` component declared it. Absent for a generated link. |
| `auto` | `boolean` | always | Generated by `meta.nav.autoLinks` rather than declared. |

#### Response: `NavLinkKindView`

What crossing a link takes. Mirrors `argus_nav::NavLinkKind`.

| Value | Meaning |
|---|---|
| `jump` | Jump from the start to the end. |
| `drop` | Walk off the start and fall to the end. |
| `generic` | Anything else; `action` says what to do. |

#### Response: `NavPolyView`

One navmesh polygon.

| Field | Type | Present | Description |
|---|---|---|---|
| `vertices` | `number[3][]` | always | Corner positions, counter-clockwise. |
| `area` | `integer` | always | Recast area id. |
| `flags` | `integer` | always | Detour polygon flags. |
| `areaM2` | `number` | always | This polygon's surface in square metres. |

## Example

```sh
curl "http://127.0.0.1:7700/navmesh"
```

Start a server with `argus run --serve`; the port is `--port` (7700 by default). The request and response fields are in the query API guide.
