Skip to main content
PATCH
/
api
/
forms
/
{formId}
/
admin
curl -X PATCH https://app.horneross.com/api/forms/form_abc123/admin \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Formulario Actualizado",
    "draftConfig": {
      "overview": "Descripción actualizada",
      "fields": [
        {
          "name": "email",
          "type": "email",
          "label": "Email corporativo",
          "required": true
        },
        {
          "name": "company",
          "type": "text",
          "label": "Empresa",
          "required": true
        }
      ]
    }
  }'
{
  "id": "form_abc123",
  "name": "Formulario Actualizado",
  "draftConfig": {
    "overview": "Descripción actualizada",
    "fields": [
      {"name": "email", "type": "email", "label": "Email corporativo", "required": true},
      {"name": "company", "type": "text", "label": "Empresa", "required": true}
    ],
    "schema": {
      "type": "object",
      "properties": {
        "email": {"type": "string", "format": "email"},
        "company": {"type": "string"}
      },
      "required": ["email", "company"]
    }
  },
  "publishedConfig": null,
  "updatedAt": "2024-01-21T17:00:00Z"
}

Endpoint

PATCH /api/forms/{formId}/admin

Path Parameters

formId
string
required
ID del formulario a actualizar

Headers

Authorization
string
required
Bearer token con tu API key. Formato: Bearer sk_live_xxx
Content-Type
string
required
Siempre application/json

Request Body

Todos los campos son opcionales. Solo enviá los que querés actualizar.
name
string
Nuevo nombre del formulario
type
string
Tipo de formulario: traditional o conversational
datastoreId
string
ID del datastore a vincular (null para desvincular)
draftConfig
object
Nueva configuración draft
curl -X PATCH https://app.horneross.com/api/forms/form_abc123/admin \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Formulario Actualizado",
    "draftConfig": {
      "overview": "Descripción actualizada",
      "fields": [
        {
          "name": "email",
          "type": "email",
          "label": "Email corporativo",
          "required": true
        },
        {
          "name": "company",
          "type": "text",
          "label": "Empresa",
          "required": true
        }
      ]
    }
  }'

Response

id
string
required
ID del formulario
name
string
required
Nombre actualizado
draftConfig
object
required
Configuración draft actualizada con schema JSON regenerado
updatedAt
string
required
Fecha de última actualización (ISO 8601)
{
  "id": "form_abc123",
  "name": "Formulario Actualizado",
  "draftConfig": {
    "overview": "Descripción actualizada",
    "fields": [
      {"name": "email", "type": "email", "label": "Email corporativo", "required": true},
      {"name": "company", "type": "text", "label": "Empresa", "required": true}
    ],
    "schema": {
      "type": "object",
      "properties": {
        "email": {"type": "string", "format": "email"},
        "company": {"type": "string"}
      },
      "required": ["email", "company"]
    }
  },
  "publishedConfig": null,
  "updatedAt": "2024-01-21T17:00:00Z"
}
Los cambios en draftConfig no afectan al formulario publicado hasta que llames a /publish. Esto te permite hacer cambios y probarlos antes de publicar.