lead-platform · API de captura de leads

Endpoint público para registrar un lead (correo + consentimiento) desde una herramienta externa. Cada herramienta es una fuente con su propia API key.

Autenticación

Cada petición lleva el header x-api-key con la API key de tu fuente (la entrega el administrador; se muestra una sola vez al crearla). La key identifica la fuente y define qué campos puedes enviar. Si no existe o la fuente está desactivada → 401. Nunca la pongas en URLs, logs ni repos públicos.

Endpoint

POST https://leadboard.aurora33.dev/api/capture

Headers

HeaderRequeridoValor
x-api-keyAPI key de la fuente
Content-Typeapplication/json

Body (JSON)

CampoTipoRequeridoNotas
emailstringSe normaliza (minúsculas + trim). Correo válido.
consentbooleanDebe ser exactamente true, o 422.
consent_textstringnoTexto exacto del consentimiento. Se guarda como evidencia.
namestringdependeSolo si el schema de tu fuente lo permite.
metadataobjectnoObjeto libre con datos de tu campaña.

Cada fuente declara un schema (required / optional). Claves fuera de ese conjunto y de {email, consent, consent_text, metadata} se rechazan (422) — minimización de datos.

Respuestas

CódigoSignificado
201Lead creado. {"ok":true,"created":true}
200Ya existía (idempotente por email+fuente). {"ok":true,"created":false}
400JSON inválido.
401Falta/!válida la key, o fuente inactiva.
422Validación fallida o consent no es true.
429Rate limit (10 req/min por IP). Header Retry-After.
500Error interno.

La respuesta nunca devuelve datos de otros leads.

Idempotencia y rate limit

Reenviar el mismo email para la misma fuente no duplica: responde200 con created:false. Seguro reintentar. Límite: 10 peticiones por minuto por IP.

Ejemplo — captura exitosa

curl -i -X POST https://leadboard.aurora33.dev/api/capture \
  -H "Content-Type: application/json" \
  -H "x-api-key: lp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -d '{
    "email": "[email protected]",
    "name": "Ana",
    "consent": true,
    "consent_text": "Acepto recibir comunicaciones de Roastr.",
    "metadata": { "campaña": "verano" }
  }'
# 201  {"ok":true,"created":true}

Para LLMs / agentes

Spec machine-readable en /openapi.json (OpenAPI 3.1). Documento en /llms.txt y descargable en /api.md. Para integrar: pide la API key al usuario, arma el body con email + consent:true, haz POST al endpoint con el header x-api-key, y trata 201/200 como éxito.