---
title: "Isochrone store version and assumptions"
method: GET
path: "/v1/isochrone/meta"
tags: ["isochrone"]
---

# Isochrone store version and assumptions

`GET /v1/isochrone/meta`

## Request

- Base URL: `https://api.close.city`
- URL: `https://api.close.city/v1/isochrone/meta`
- Auth: none declared

The active store version and its assumptions.

The frontend reads this for attribution, for the `v=` cache key, and to
learn which directions/modes actually exist rather than assuming.

## Response `200`

Successful Response

- IsochroneMetaResponse: GET /v1/isochrone/meta (routers.isochrone.get_isochrone_meta)
  - `assumptions` IsochroneAssumptions, required: Routing assumptions echoed from the store. Keys are store-defined; the current set is listed but extra keys are allowed. (routers.isochrone._assumptions)
    - `max_trip_duration_min` integer, nullable
    - `transit_departure` string, nullable
    - `transit_percentile` integer, nullable
    - `transit_window_min` integer, nullable
  - `dest_set` string, nullable
  - `directions` string[], required
  - `max_minutes` integer, required
  - `modes` string[], required
  - `version` string, required

## Other responses

- `304`: Not modified (If-None-Match matched the ETag); no body, no tokens charged
- `503`: Backend temporarily unavailable (debit-unavailable, store-unavailable); may set Retry-After

---

[API](https://skmtc.dev/close-city/apis/close-api.md) · [All operations](https://skmtc.dev/close-city/apis/close-api/llms.txt) · [OpenAPI document](https://skmtc.dev/close-city/apis/close-api/revisions/a70e7c778d65?raw)
