v1
POST
Crear, Actualizar y Eliminar Registros
Estos endpoints requieren alcance read-write o admin.
POST /v1/records
Crear un nuevo registro.
Cuerpo de la solicitud
{
"form_id": "df7991ef-4a6f-48f4-9f1d-0fd4f53c9a77",
"project_id": "c328e46a-8fb9-41f1-a5f9-3dca9a894ab3",
"properties": {
"inspector_name": "Jane Smith",
"condition": "good"
},
"geometry": {
"type": "Point",
"coordinates": [-73.985, 40.758]
}
}
| Campo | Obligatorio | Descripción |
|---|---|---|
form_id |
Sí | ID del formulario destino en su organización |
project_id |
No | ID del proyecto (por defecto el proyecto del formulario) |
properties |
No | Objeto JSON con valores de campos del formulario |
geometry |
No | Geometría GeoJSON |
Ejemplo
curl -X POST \
-H "X-API-Key: mk_live_..." \
-H "Idempotency-Key: create-record-001" \
-H "Content-Type: application/json" \
-d '{
"form_id": "df7991ef-4a6f-48f4-9f1d-0fd4f53c9a77",
"properties": {"inspector_name": "Jane Smith", "condition": "good"}
}' \
"https://<ref>.supabase.co/functions/v1/api-gateway/v1/records"
PUT /v1/records/:id
Actualizar un registro por ID. Incluya solo los campos que desea cambiar.
Cuerpo de la solicitud
{
"properties": {
"condition": "needs_repair",
"notes": "Crack observed in north wall"
},
"priority": 2,
"workflow_state_id": "state_in_review"
}
| Campo | Descripción |
|---|---|
properties |
Reemplaza el objeto properties |
geometry |
Reemplaza la geometría (null la elimina) |
assigned_to |
Asignar registro a un ID de usuario |
priority |
Establecer prioridad |
workflow_state_id |
Establecer estado del flujo de trabajo |
Ejemplo
curl -X PUT \
-H "X-API-Key: mk_live_..." \
-H "Idempotency-Key: update-record-001" \
-H "Content-Type: application/json" \
-d '{"properties": {"condition": "needs_repair"}}' \
"https://<ref>.supabase.co/functions/v1/api-gateway/v1/records/8ba2dac9-2f85-4b36-9b8f-2da8c9a7f4a0"
DELETE /v1/records/:id
Elimina el registro de forma suave (soft-delete).
curl -X DELETE \
-H "X-API-Key: mk_live_..." \
"https://<ref>.supabase.co/functions/v1/api-gateway/v1/records/8ba2dac9-2f85-4b36-9b8f-2da8c9a7f4a0"
Respuesta exitosa:
{
"ok": true,
"data": {
"id": "8ba2dac9-2f85-4b36-9b8f-2da8c9a7f4a0",
"deleted": true
}
}
Use include_deleted=true en el endpoint de lista para ver registros eliminados.
Detalles de idempotencia
Las llamadas de escritura con POST y PUT soportan Idempotency-Key.
- Reintento repetido con el mismo payload reproduce la respuesta en caché.
- Misma clave con payload diferente devuelve
409 idempotency_key_conflict. - Misma clave mientras la primera solicitud está en curso devuelve
409 idempotency_in_progress.
¿Necesita ayuda con la API? Contacte a nuestro equipo de soporte.