Para desarrolladores

Una sencilla API REST

Lea y gestione sus formularios y envíos desde su propio sistema, Zapier, Make o su propio agente de IA. Autentíquese con una clave API de su cuenta y reciba respuestas JSON limpias. En cada clave elige leer o también escribir — con seguridad a nivel de cuenta.

Primeros pasos

Todas las solicitudes se envían a la URL base y llevan su clave como token Bearer; la respuesta siempre es application/json. Por cada clave determina por componente (formularios, envíos) si puede leer o también puede escribir — los permisos de escritura nunca se conceden automáticamente.

URL base

https://app.formuliermet.nl/api/v1

Autenticación

curl https://app.formuliermet.nl/api/v1/me \
  -H "Authorization: Bearer fmb_je_sleutel_hier"

Cree una clave en la aplicación, en Cuenta → API e integraciones. Solo verá la clave completa una vez — guárdela en un lugar seguro. Una clave da acceso a los datos de su cuenta; puede revocarla en cualquier momento. El acceso a la API está incluido en los paquetes más completos (consulte las tarifas).

Endpoints

GET
/me
Verifica su clave y devuelve el id de su cuenta — útil para probar una integración.
GET
/forms
Formularios de su cuenta (id, título, slug, activo, número de envíos). Paginado con ?page y ?limit.
GET
/forms/{id}
Un formulario, incluidas las definiciones de campos (id, tipo, etiqueta, obligatorio).
GET
/forms/{id}/submissions
Envíos de un formulario, los más recientes primero. Pagine con ?page y ?limit (máx. 100); obtenga solo los nuevos con ?since=<fecha-ISO> — ideal para integraciones por sondeo (polling).
GET
/submissions/{id}
Un envío con todos los campos completados en data.
POST
/forms
Crea un formulario. scope forms:write
PATCH
/forms/{id}
Actualiza un formulario (título, campos, ajustes). scope forms:write
POST
/forms/{id}/publish · /duplicate · /open · /close
Publica, duplica o abre/cierra un formulario. scope forms:write
POST
/submissions/{id}/approve · /reject · /note · /reminder
Aprueba o rechaza, añade una nota interna o envía un recordatorio de pago. scope submissions:write
DELETE
/submissions/{id}
Elimina un envío, incluidos los archivos subidos (registrado según el RGPD). scope submissions:write

Ejemplo: obtener envíos

curl "https://app.formuliermet.nl/api/v1/forms/FORM_ID/submissions?limit=2" \
  -H "Authorization: Bearer fmb_je_sleutel_hier"

Respuesta

{
  "data": [
    {
      "id": "ckv8s2...",
      "formId": "ckv7a1...",
      "sequenceNumber": 42,
      "status": "paid",
      "amountCents": 2500,
      "email": "deelnemer@example.com",
      "paymentMethod": "ideal",
      "createdAt": "2026-06-01T14:30:00.000Z",
      "updatedAt": null,
      "data": { "naam": "Jan Jansen", "aantal": 2 }
    }
  ],
  "page": 1,
  "limit": 2,
  "total": 42
}

Webhooks y eventos en tiempo real

¿Prefiere que los datos le lleguen directamente? Configure webhooks por formulario: enviamos un mensaje JSON mediante POST a su URL HTTPS en cuanto ocurre algo — o a un conector como Zapier o Make. También puede recibir un aviso en su equipo, directamente en Slack o Microsoft Teams.

Eventos a los que puede suscribirse

EVENTO
submission.created · submission.paid
Nuevo envío recibido y pago completado.
EVENTO
submission.approved
Envío aprobado en un flujo de revisión.
EVENTO
ticket.checked_in · waitlist.joined
Entrada validada en la puerta, o una inscripción en la lista de espera.
EVENTO
subscription.started · subscription.cancelled
Pago recurrente iniciado o cancelado.
EVENTO
form.published
Se ha publicado una nueva versión de su formulario.

Cada mensaje está firmado con HMAC-SHA256; si algo falla, lo reintentamos automáticamente (hasta varias horas) y ve un registro de entregas por formulario. Los payloads exactos, todas las cabeceras y código de verificación listo para usar (Node.js y Python) están en la documentación interactiva.

→ Documentación interactiva de la API  ·  Especificación OpenAPI (JSON)

Errores y límites

400
Solicitud no válida — falta un campo en el cuerpo o no es correcto.
401
Falta la clave, no es válida o ha sido revocada.
403
Su paquete no incluye acceso a la API (mejore su plan en tarifas), o a su clave le falta el scope de escritura necesario para esta acción.
404
No encontrado, o el formulario/envío no pertenece a su cuenta.
409
Conflicto — por ejemplo, una URL personalizada elegida que ya está en uso.
429
Demasiadas solicitudes. Se aplica un límite amplio por clave y por hora.

Cada clave ve exclusivamente los datos de su propia cuenta. Nunca mostramos la configuración de su formulario ni sus integraciones de pago a través de la API — solo las definiciones de campos y los envíos.

¿Prefiere una integración lista para usar?

Use webhooks, o incorpore su formulario en su propia web — sin necesidad de código.