---
title: "Get plan progress"
method: GET
path: "/lots/{id}/plan/status"
tags: ["lots"]
---

# Get plan progress

`GET /lots/{id}/plan/status`

## Request

- Base URL: `https://api.vepathos.com`
- URL: `https://api.vepathos.com/lots/{id}/plan/status`
- Auth: API key in header `Authorization`

Live optimizer progress (`progress_pct`, `phase`, `steps`, `details`) while the lot is `PROCESSING`. Poll every 2 to 3 seconds for progress UIs, and read the result with `GET /lots/{id}/plan`.

Returns `409` when the lot is not `PROCESSING` and `404` when no plan was queued.

## Response `200`

Optimizer progress payload (passthrough)

- SessionProgressResponse: Live progress of an optimizer run. Available from `GET /lots/{id}/plan/status` while the lot is `PROCESSING`. When `status` is `completed`, read the routes with `GET /lots/{id}/plan`.
  - `session_id` string, uuid, required
  - `status` 'processing' | 'completed' | 'failed' | 'not_found', required
  - `phase` 'queued' | 'clustering' | 'consolidating_clustering' | 'downloading_graphs' | 'routing' | 'consolidating' | 'completed' | 'failed' | 'not_found', required
  - `phase_label` string, required
  - `progress_pct` integer, required
  - `elapsed_seconds` integer, required
  - `message` string, required
  - `steps` object[], required
    - `id` string
    - `label` string
    - `state` 'pending' | 'active' | 'done'
  - `details` SessionProgressDetails
    - `clustering` SessionProgressClusteringDetails
      - `completed_chunks` integer
      - `total_chunks` integer
    - `routing` SessionProgressRoutingDetails
      - `completed_routes` integer
      - `total_routes` integer
    - `graphs` SessionProgressGraphsDetails: Map/graph download progress. Phase stays downloading_graphs while active_downloads > 0, waiting_for_download > 0, or graphs_loaded < unique_graphs_started. progress_pct caps at ~55% until downloads finish.
      - `active_downloads` integer: Downloads currently in progress
      - `waiting_for_download` integer: Workers waiting for a graph (PASO 5: ESPERANDO)
      - `download_attempts` integer: Total download attempts including retries
      - `unique_graphs_started` integer: Unique bboxes that started downloading
      - `unique_graphs_estimated` integer: Estimated unique graphs for this run
      - `graphs_loaded` integer: Graphs successfully loaded
      - `completed_downloads` integer: Completed download operations
      - `cached_loads` integer: Graphs loaded from cache (Redis/disk)
      - `current_download_elapsed_sec` integer: Elapsed seconds for the current file download
      - `current_download_timeout_sec` integer: Timeout seconds for the current file download
      - `current_bbox_key` string: Bbox key of the graph currently downloading
    - `queue` object

## Other responses

- `401`: Missing, expired or invalid access token.
- `404`: The resource does not exist in your account.
- `409`: The lot is not `PROCESSING`, so there is no live progress.
- `422`: The body or a parameter does not match the schema.

---

[API](https://skmtc.dev/vepathos/apis/vepathos-route-optimization-api.md) · [All operations](https://skmtc.dev/vepathos/apis/vepathos-route-optimization-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vepathos/apis/vepathos-route-optimization-api/revisions/00caa1ca62d9?raw)
