v1 POST

Räumliche Abfragen

Räumliche Abfragen finden Datensätze nach geografischer Position. Alle räumlichen Endpoints verwenden POST mit einem JSON-Body und erfordern mindestens den Scope read-only.


POST /v1/records/query/bbox

Datensätze innerhalb einer Bounding Box (Rechteck auf der Karte) finden.

Anfragekörper

{
  "min_lng": -74.01,
  "min_lat": 40.70,
  "max_lng": -73.95,
  "max_lat": 40.80,
  "form_id": "frm_xyz",
  "limit": 100
}
Feld Erforderlich Beschreibung
min_lng Ja Westliche Länge
min_lat Ja Südliche Breite
max_lng Ja Östliche Länge
max_lat Ja Nördliche Breite
form_id Nein Nach Formular filtern
project_id Nein Nach Projekt filtern
limit Nein Max. Ergebnisse (Standard 50, max 500)

Beispiel

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

Datensätze innerhalb eines Radius (Kreis) von einem Mittelpunkt finden.

Anfragekörper

{
  "lng": -73.985,
  "lat": 40.758,
  "radius_meters": 500,
  "form_id": "frm_xyz"
}
Feld Erforderlich Beschreibung
lng Ja Mittelpunkt-Länge
lat Ja Mittelpunkt-Breite
radius_meters Ja Suchradius in Metern
form_id Nein Nach Formular filtern
project_id Nein Nach Projekt filtern
limit Nein Max. Ergebnisse (Standard 50, max 500)

Beispiel

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

Datensätze finden, die sich mit einer beliebigen GeoJSON-Geometrie (Polygon, Linie usw.) überschneiden.

Anfragekörper

{
  "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"
}
Feld Erforderlich Beschreibung
geometry Ja GeoJSON-Geometrieobjekt
form_id Nein Nach Formular filtern
project_id Nein Nach Projekt filtern
limit Nein Max. Ergebnisse (Standard 50, max 500)

Beispiel: Datensätze in einem Polygon finden

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"

Antwort (alle räumlichen Endpoints)

{
  "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"
    }
  ]
}

Anwendungsfälle

  • Dashboard-Karten: Datensätze im aktuellen Kartenausschnitt mit Bounding Box laden
  • Näherungswarnungen: Inspektionen im Umkreis von 1 km einer neuen Arbeitsanweisung mit Radius finden
  • Zonenanalyse: Alle Datensätze innerhalb eines regulatorischen Grenzpolygons mit Schnittmenge finden

Brauchen Sie Hilfe mit der API? Kontaktieren Sie unser Support-Team.

Web-App öffnen