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 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.

Abrir la Aplicación Web