Obtener un formulario
GET
/v1/forms/{id}Para desarrolladores
Descripción
Retorna un formulario con sus ítems, en el orden en que se muestran. Incluye public_token — útil para construir un enlace o embed propio hacia el formulario público.
Guía relacionada
- Formularios — Arme formularios de captura y revise lo que se envió.
Autenticación
Authorizationbearer tokenheaderobligatorio- API key con scope
form:read. Formato:Bearer FD.<key_id>.<token>. X-Instance-Slugstringheaderobligatorio
Request
Path params:
idinteger- Identificador del formulario.
Response
200 OKDevuelve un objeto con los campos que siguen.
idintegerobligatorio- —
namestringobligatorio- —
kindstring, enum: `consent | advanced`obligatorio- —
typestring, enum: `registration | update`obligatorio- —
dataset_idinteger | null- —
public_tokenstringobligatorio- —
is_defaultbooleanobligatorio- —
is_activebooleanobligatorio- —
settingsobject | null- Textos públicos del formulario (
title,header_text,footer_text) y diseño de su página pública (design:primary_color,secondary_color,logo_url,custom_css), forma libre. created_atstring (date-time)obligatorio- —
updated_atstring (date-time)obligatorio- —
itemsobject[]obligatorio- —
items[].idintegerobligatorio- Identificador del ítem.
items[].kindstring, enum: `field | consent | divider | text`obligatoriofield: un campo del catálogo (usafield_id).consent: un ítem de consentimiento (usaterm_id).divider: separador visual.text: bloque de texto libre (usacontent).items[].field_idinteger | nulliddel campo, cuandokind=field.items[].term_idinteger | nulliddel término de consentimiento, cuandokind=consent— ver `GET /v1/consent-terms`.items[].labelstring | null- Etiqueta personalizada del ítem, si se definió una distinta a la del campo/término.
items[].contentstring | null- Texto del bloque, cuando
kind=text. items[].is_requiredbooleanobligatorio- —
items[].sort_orderintegerobligatorio- Posición del ítem en el formulario, ascendente.
items[].widthstring, enum: `full | half`obligatorio- Ancho del ítem en el layout público. Solo tiene efecto sobre
kind=field— el resto de los tipos de ítem siempre ocupa la fila completa.
Errores
| Código | Cuándo |
|---|---|
| 404 | El id de formulario no existe en la cuenta. |
Detalle completo en Errores genéricos.
Request
curl -X GET "https://$API_HOST/v1/forms/5" \
-H "Authorization: Bearer $API_KEY" \
-H "X-Instance-Slug: $SLUG"
Response
{
"id": 5,
"name": "Suscripción newsletter",
"kind": "advanced",
"type": "registration",
"dataset_id": null,
"public_token": "f3b1c2...",
"is_default": false,
"is_active": true,
"settings": {
"title": "Súmate a nuestras novedades"
},
"created_at": "2026-05-08T14:22:31Z",
"updated_at": "2026-05-08T14:22:31Z",
"items": [
{
"id": 11,
"kind": "field",
"field_id": 1,
"term_id": null,
"label": null,
"content": null,
"is_required": true,
"sort_order": 0,
"width": "full"
},
{
"id": 12,
"kind": "consent",
"field_id": null,
"term_id": 4,
"label": null,
"content": null,
"is_required": true,
"sort_order": 1,
"width": "full"
}
]
}