v1 POST

Requêtes spatiales

Les requêtes spatiales trouvent des enregistrements par localisation géographique. Tous les endpoints spatiaux utilisent POST avec un corps JSON et nécessitent au minimum la portée read-only.


POST /v1/records/query/bbox

Trouver des enregistrements dans une bounding box (rectangle sur la carte).

Corps de la requête

{
  "min_lng": -74.01,
  "min_lat": 40.70,
  "max_lng": -73.95,
  "max_lat": 40.80,
  "form_id": "frm_xyz",
  "limit": 100
}
Champ Requis Description
min_lng Oui Longitude ouest
min_lat Oui Latitude sud
max_lng Oui Longitude est
max_lat Oui Latitude nord
form_id Non Filtrer par formulaire
project_id Non Filtrer par projet
limit Non Résultats max (par défaut 50, max 500)

Exemple

curl -X POST \
  -H "X-API-Key: mk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"min_lng": -74.01, "min_lat": 40.70, "max_lng": -73.95, "max_lat": 40.80}' \
  "https://<ref>.supabase.co/functions/v1/api-gateway/v1/records/query/bbox"

POST /v1/records/query/radius

Trouver des enregistrements dans un rayon (cercle) à partir d'un point central.

Corps de la requête

{
  "lng": -73.985,
  "lat": 40.758,
  "radius_meters": 500,
  "form_id": "frm_xyz"
}
Champ Requis Description
lng Oui Longitude du centre
lat Oui Latitude du centre
radius_meters Oui Rayon de recherche en mètres
form_id Non Filtrer par formulaire
project_id Non Filtrer par projet
limit Non Résultats max (par défaut 50, max 500)

Exemple

curl -X POST \
  -H "X-API-Key: mk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"lng": -73.985, "lat": 40.758, "radius_meters": 500}' \
  "https://<ref>.supabase.co/functions/v1/api-gateway/v1/records/query/radius"

POST /v1/records/query/intersects

Trouver des enregistrements qui intersectent avec n'importe quelle géométrie GeoJSON (polygone, ligne, etc.).

Corps de la requête

{
  "geometry": {
    "type": "Polygon",
    "coordinates": [[
      [-73.99, 40.75],
      [-73.98, 40.75],
      [-73.98, 40.76],
      [-73.99, 40.76],
      [-73.99, 40.75]
    ]]
  },
  "form_id": "frm_xyz"
}
Champ Requis Description
geometry Oui Objet géométrie GeoJSON
form_id Non Filtrer par formulaire
project_id Non Filtrer par projet
limit Non Résultats max (par défaut 50, max 500)

Exemple : Trouver des enregistrements dans un polygone

curl -X POST \
  -H "X-API-Key: mk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "geometry": {
      "type": "Polygon",
      "coordinates": [[[-73.99,40.75],[-73.98,40.75],[-73.98,40.76],[-73.99,40.76],[-73.99,40.75]]]
    }
  }' \
  "https://<ref>.supabase.co/functions/v1/api-gateway/v1/records/query/intersects"

Réponse (tous les endpoints spatiaux)

{
  "ok": true,
  "data": [
    {
      "id": "rec_abc123",
      "type": "record",
      "form_id": "frm_xyz",
      "properties": {"inspector_name": "Jane Smith"},
      "geometry": {"type": "Point", "coordinates": [-73.985, 40.758]},
      "created_at": "2026-02-15T14:30:00Z",
      "status": "active"
    }
  ]
}

Cas d'utilisation

  • Cartes de tableau de bord : Charger les enregistrements visibles dans la vue carte actuelle avec bounding box
  • Alertes de proximité : Trouver les inspections à moins de 1 km d'un nouveau bon de travail avec rayon
  • Analyse de zones : Trouver tous les enregistrements dans un polygone de limite réglementaire avec intersection

Besoin d'aide avec l'API ? Contactez notre équipe support.

Ouvrir l'appli web