API y servidor MCP
Cree tokens en su espacio, sección Desarrolladores. Cada token tiene permisos limitados y puede revocarse en cualquier momento.
Autenticación
Authorization: Bearer rl_live_…
Respuestas en JSON. Errores: { "error": { "code", "message" } }. Límite según el plan (Solo 20, Pro 60, Agence 120 peticiones por minuto) y 1 petición por segundo como máximo, indicados en las cabeceras X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Burst. Por encima: 429 con Retry-After. Servicio muy solicitado: 503 con Retry-After. Para crear muchos enlaces, use /v1/links/batch.
Crear un enlace
curl https://api.reli.es/v1/links \
-H "Authorization: Bearer rl_live_…" \
-H "Content-Type: application/json" \
-d '{
"url": "https://exemple.fr/offre",
"slug": "offre-hiver",
"tags": ["sms"],
"utm": {"source": "sms", "campaign": "hiver"},
"expires_at": "2026-12-31T23:59:00+01:00"
}'
201 Created
{ "data": { "id": 42, "short_url": "https://reli.es/offre-hiver", "status": "active", "clicks": 0, "qr_svg": "https://api.reli.es/v1/links/42/qr.svg", … } }
Endpoints
| Método | Ruta | Permiso | Rol |
|---|---|---|---|
| POST | /v1/links | links:write | Crear un enlace: url, domain, slug, title, tags, utm, starts_at, expires_at, expired_url, password |
| POST | /v1/links/batch | links:write | Crear hasta 100 enlaces: { "links": [ … ] } |
| GET | /v1/links | links:read | Listar: tag, status, domain, q, cursor, limit (100 como máximo) |
| GET | /v1/links/{id} | links:read | Leer un enlace |
| PATCH | /v1/links/{id} | links:write | Modificar destino, título, etiquetas, fechas, UTM |
| DELETE | /v1/links/{id} | links:write | Archivar (el final del enlace nunca se reasigna) |
| GET | /v1/links/{id}/stats | stats:read | Estadísticas: days (7 a 365) |
| GET | /v1/links/{id}/qr.svg | links:read | Código QR SVG o PNG |
| GET | /v1/domains | domains:read | Dominios utilizables |
| GET · PATCH | /v1/pages/{handle} | pages:read · pages:write | Leer una página bio, modificar título y presentación |
| GET | /v1/account | — | Plan, límites y consumo |
| GET · POST · PATCH | /v1/campaigns · /v1/campaigns/{id}/contacts | campaigns:read · campaigns:write | Campañas de las cuentas gestionadas por Le Web 2 KS: un enlace por contacto |
Webhooks
Eventos: link.created, link.blocked, link.clicked (agrupado por minuto), page.form_submitted, campaign.contact_clicked (cuentas gestionadas). Cada envío lleva la cabecera X-Relies-Signature: t=marca de tiempo,v1=firma, donde la firma es el HMAC-SHA256 de «marca_de_tiempo.cuerpo» con su secreto. Rechace los envíos de más de 5 minutos. Tres reintentos en caso de error: tras 1 minuto, 10 minutos y 1 hora.
$payload = file_get_contents('php://input');
[$t, $v1] = sscanf($_SERVER['HTTP_X_RELIES_SIGNATURE'], 't=%d,v1=%s');
$valid = abs(time() - $t) < 300
&& hash_equals(hash_hmac('sha256', $t.'.'.$payload, $secret), $v1);
Servidor MCP
Dirección: https://api.reli.es/mcp · transporte HTTP, mismo token que la API.
claude mcp add --transport http reli-es https://api.reli.es/mcp \ --header "Authorization: Bearer rl_live_…"
| Herramienta | Rol |
|---|---|
liens_creer | Crear uno o varios enlaces |
liens_chercher | Buscar por destino, etiqueta, estado |
liens_stats | Estadísticas de un enlace o de la cuenta |
lien_modifier | Modificar destino, título, etiquetas, fechas |
lien_archiver | Archivar, con confirmación explícita |
page_lire · page_modifier | Leer una página bio, añadir un botón de enlace |
qr_exporter | Dirección del código QR SVG o PNG |
compte_etat | Plan, límites y consumo |