---
title: "Get Zoom Map"
method: GET
path: "/snapshots/{snapshot_id}/zoom-map"
tags: ["graph-views"]
---

# Get Zoom Map

`GET /snapshots/{snapshot_id}/zoom-map`

The continuous-zoom containment tree (system -> layer -> ... -> file).

The one endpoint in this module that is not a pure artifact passthrough: the
zoom map has no artifact of its own (OSS derives it per request too), so this
reads the curated architecture view plus per-file health and runs the same
pure assembly OSS does. Both reads go through the byte-budgeted artifact
service and nothing derived is retained, so the route adds no cache of its own.

The assembly is CPU-bound (hundreds of milliseconds on a few thousand files),
so it runs off the event loop on the service's own single-thread executor —
not the default pool, which artifact decoding shares (see
``zoom_map_service.build_zoom_map_async``).

## Path parameters

- `snapshot_id` string, required

## Query parameters

- `max_depth` integer, nullable — Cap levels served below the (focus) root; omit for full
- `focus` string, nullable — Node id to scope the served subtree to (lazy drill-down)

## Response `200`

Successful Response

- ZoomMapResponse
  - `root_id` string, required
  - `project_name` string, required
  - `total_files` integer, required
  - `unclaimed_files` integer
  - `max_depth` integer, required
  - `truncated` boolean
  - `nodes` ZoomNodeResponse[], required
    - `id` string, required
    - `parent_id` string, nullable
    - `level` integer, required
    - `kind` string, required
    - `name` string, required
    - `path` string
    - `children` string[]
    - `importance` number
    - `sibling_rank` integer
    - `metrics` ZoomMetricsResponse
      - `file_count` integer
      - `descendant_count` integer
      - `hotspot_count` integer
      - `dead_count` integer
      - `entry_point_count` integer
      - `on_flow_count` integer
    - `summary` string
    - `language` string, nullable
    - `health_score` number, nullable
    - `is_entry_point` boolean
    - `is_hotspot` boolean
    - `is_dead` boolean
    - `is_test` boolean
    - `on_flow` boolean
  - `relations` ZoomRelationResponse[], required
    - `parent_id` string, required
    - `source_id` string, required
    - `target_id` string, required
    - `label` string
    - `edge_count` integer
    - `coupling` string

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/repowise/apis/repowise-hosted-api.md) · [All operations](https://skmtc.dev/repowise/apis/repowise-hosted-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/repowise/repowise-hosted-api/revisions/40167ba9ab58/schema)
