---
title: "Api Job Map"
method: GET
path: "/api/jobs/{job_id}/map"
tags: ["jobs"]
---

# Api Job Map

`GET /api/jobs/{job_id}/map`

## Request

- Base URL: `https://outsend.xyz`
- URL: `https://outsend.xyz/api/jobs/{job_id}/map`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Carte de progression : pour chaque tuile (rectangle) du scrap,
retourne ses bounds géographiques + le ratio de queries traitées.

Gère le sub-tiling adaptatif :
  - Tuiles parent (zoom 13) du grid initial
  - Sous-tuiles dynamiques (zoom 14/15) écrites dans scrap_pending.jsonl
    quand une parent sature à ≥120 résultats
  - Une parent qui contient une sous-tuile DANS sa bbox est masquée :
    on rend la sous-tuile à la place (et récursivement pour les sous-sous-
    tuiles). Visuellement, la zone parent est "remplie" par ses enfants.

Frontend : L.rectangle avec bounds [[lat_min,lon_min],[lat_max,lon_max]].
Intensité couleur = q_done / q_total. Polling 5s.

Route synchrone (threadpool) : le calcul ne bloque plus la boucle asyncio.
Algorithme indexé (cf. _build_map_tiles) + cache par processus.

`?fmt=2` : format compact (cf. _map_body_compact), défaut : format 1.
ETag fort = empreinte du corps (cf. _map_etag) : `If-None-Match`
correspondant → 304 sans corps.

## Path parameters

- `job_id` string, required

## Query parameters

- `fmt` integer

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

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