v1
POST
Consultas espaciales
Las consultas espaciales encuentran registros por ubicación geográfica. Todos los endpoints espaciales usan POST con un cuerpo JSON y requieren al menos alcance read-only.
POST /v1/records/query/bbox
Encontrar registros dentro de un bounding box (rectángulo en el mapa).
Cuerpo de la solicitud
{
"min_lng": -74.01,
"min_lat": 40.70,
"max_lng": -73.95,
"max_lat": 40.80,
"form_id": "frm_xyz",
"limit": 100
}
| Campo | Obligatorio | Descripción |
|---|---|---|
min_lng |
Sí | Longitud oeste |
min_lat |
Sí | Latitud sur |
max_lng |
Sí | Longitud este |
max_lat |
Sí | Latitud norte |
form_id |
No | Filtrar por formulario |
project_id |
No | Filtrar por proyecto |
limit |
No | Resultados máximos (por defecto 50, máx 500) |
Ejemplo
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 un radio (círculo) desde un punto central.
Cuerpo de la solicitud
{
"lng": -73.985,
"lat": 40.758,
"radius_meters": 500,
"form_id": "frm_xyz"
}
| Campo | Obligatorio | Descripción |
|---|---|---|
lng |
Sí | Longitud del centro |
lat |
Sí | Latitud del centro |
radius_meters |
Sí | Radio de búsqueda en metros |
form_id |
No | Filtrar por formulario |
project_id |
No | Filtrar por proyecto |
limit |
No | Resultados máximos (por defecto 50, máx 500) |
Ejemplo
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 intersectan con cualquier geometría GeoJSON (polígono, línea, etc.).
Cuerpo de la solicitud
{
"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 | Obligatorio | Descripción |
|---|---|---|
geometry |
Sí | Objeto de geometría GeoJSON |
form_id |
No | Filtrar por formulario |
project_id |
No | Filtrar por proyecto |
limit |
No | Resultados máximos (por defecto 50, máx 500) |
Ejemplo: Encontrar registros en un 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"
Respuesta (todos los endpoints espaciales)
{
"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: Cargar registros visibles en la vista actual del mapa usando bounding box
- Alertas de proximidad: Encontrar inspecciones dentro de 1km de una nueva orden de trabajo usando radio
- Análisis de zonas: Encontrar todos los registros dentro de un polígono de límite regulatorio usando intersección
¿Necesita ayuda con la API? Contacte a nuestro equipo de soporte.