v1 POST

Consultas Espaciais

Consultas espaciais encontram registros por localização geográfica. Todos os endpoints espaciais usam POST com um corpo JSON e requerem no mínimo escopo read-only.


POST /v1/records/query/bbox

Encontrar registros dentro de um bounding box (retângulo no mapa).

Corpo da requisição

{
  "min_lng": -74.01,
  "min_lat": 40.70,
  "max_lng": -73.95,
  "max_lat": 40.80,
  "form_id": "frm_xyz",
  "limit": 100
}
Campo Obrigatório Descrição
min_lng Sim Longitude oeste
min_lat Sim Latitude sul
max_lng Sim Longitude leste
max_lat Sim Latitude norte
form_id Não Filtrar por formulário
project_id Não Filtrar por projeto
limit Não Resultados máximos (padrão 50, máx 500)

Exemplo

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

Encontrar registros dentro de um raio (círculo) a partir de um ponto central.

Corpo da requisição

{
  "lng": -73.985,
  "lat": 40.758,
  "radius_meters": 500,
  "form_id": "frm_xyz"
}
Campo Obrigatório Descrição
lng Sim Longitude do centro
lat Sim Latitude do centro
radius_meters Sim Raio de busca em metros
form_id Não Filtrar por formulário
project_id Não Filtrar por projeto
limit Não Resultados máximos (padrão 50, máx 500)

Exemplo

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

Encontrar registros que intersectam com qualquer geometria GeoJSON (polígono, linha, etc.).

Corpo da requisição

{
  "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"
}
Campo Obrigatório Descrição
geometry Sim Objeto de geometria GeoJSON
form_id Não Filtrar por formulário
project_id Não Filtrar por projeto
limit Não Resultados máximos (padrão 50, máx 500)

Exemplo: Encontrar registros em um polígono

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"

Resposta (todos os endpoints espaciais)

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

Casos de uso

  • Mapas de dashboard: Carregar registros visíveis na vista atual do mapa usando bounding box
  • Alertas de proximidade: Encontrar inspeções dentro de 1km de uma nova ordem de serviço usando raio
  • Análise de zonas: Encontrar todos os registros dentro de um polígono de limite regulatório usando interseção

Precisa de ajuda com a API? Entre em contato com nossa equipa de suporte.

Abrir a Aplicação Web