Enlaces
Todos los endpoints requieren autenticación. URL base: https://api.revolink.link/apiv2.
Endpoints
| Método | URL | Permiso | Descripción |
|---|---|---|---|
GET | /apiv2/links | links:read | Listar enlaces |
POST | /apiv2/links | links:write | Crear un enlace |
PUT | /apiv2/links | links:write | Crear o actualizar por slug |
GET | /apiv2/links/{id} | links:read | Obtener un enlace |
PATCH | /apiv2/links/{id} | links:write | Actualizar un enlace |
DELETE | /apiv2/links/{id} | links:delete | Eliminar un enlace (permanente) |
POST | /apiv2/links/bulk | links:bulk | Crear hasta 100 enlaces |
PATCH | /apiv2/links/bulk | links:bulk | Actualizar hasta 100 enlaces |
DELETE | /apiv2/links/bulk | links:bulk | Eliminar hasta 100 enlaces |
Analítica de clics de un enlace: GET /apiv2/links/{id}/analytics.
Listar enlaces
GET https://api.revolink.link/apiv2/links
| Parámetro de consulta | Descripción |
|---|---|
page, limit | Página (por defecto 1) y tamaño de página (por defecto 50, máximo 200) |
search | Subcadena del nombre, slug o descripción |
domain | Dominio corto. Varios separados por comas |
active | true o false |
tagIds | IDs de etiquetas separados por comas |
sortBy | name, description, shortLink, clicks, active o createdAt (por defecto) |
order | asc o desc (por defecto) |
rql | Un filtro en el lenguaje de consultas de Revolink, consulta Filtros avanzados |
curl "https://api.revolink.link/apiv2/links?search=sale&sortBy=clicks&order=desc" \
-H "Authorization: Bearer rvlnk_your_api_key_here" \
-H "X-Workspace-Id: your_workspace_id"
Crear un enlace
POST https://api.revolink.link/apiv2/links
Envía url para un enlace con un solo destino, o rules para enrutamiento inteligente (exactamente una regla por defecto). name es por defecto el host del destino, slug se genera si se omite, domain es por defecto rvlnk.link y puede ser un dominio verificado del espacio de trabajo.
curl -X POST https://api.revolink.link/apiv2/links \
-H "Authorization: Bearer rvlnk_your_api_key_here" \
-H "X-Workspace-Id: your_workspace_id" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/spring-sale",
"slug": "spring",
"expirationDate": "2026-12-31T23:59:59Z"
}'
Respuesta 201 Created: { "data": { …el enlace… } }.
Enrutamiento inteligente
{
"name": "App download",
"rules": [
{ "isDefault": true, "targetUrl": "https://example.com/download" },
{ "isDefault": false, "targetUrl": "https://apps.apple.com/app/id1", "device": ["mobile"], "os": ["iOS"] }
]
}
Una regla puede coincidir por country, region, city, device, os, browser, locale, timeStart y timeEnd (HH:MM, UTC) y daysOfWeek (0 = domingo). Una regla también puede tener password.
Otros campos
description, active, tagIds, clicksLimit, expirationDate, expiredUrl, conversionTracking, gpsTracking, shareStats, abTest, ogTitle, ogDescription, appearanceColor, qrColor, qrBgColor, qrShowLogo. Los tipos y límites de cada campo están en la referencia interactiva.
Crear o actualizar un enlace por slug
PUT https://api.revolink.link/apiv2/links
slug es obligatorio. Si existe un enlace con este slug en este domain, se actualiza (su slug y dominio no cambian) y la API responde 200. Si no, se crea y la API responde 201.
Actualizar un enlace
PATCH https://api.revolink.link/apiv2/links/{id}
Envía solo lo que cambia.
urlsustituye el destino de la regla por defecto.rules, si se envía, sustituye todas las reglas. Conserva elidde cada regla que quieras mantener: así se conservan sus estadísticas.tagIdses la lista completa de etiquetas. Un array vacío quita todas las etiquetas.
curl -X PATCH https://api.revolink.link/apiv2/links/LINK_ID \
-H "Authorization: Bearer rvlnk_your_api_key_here" \
-H "X-Workspace-Id: your_workspace_id" \
-H "Content-Type: application/json" \
-d '{ "active": false }'
Operaciones masivas
| Petición | Cuerpo |
|---|---|
POST /apiv2/links/bulk | { "links": [ …objetos de enlace como al crear… ] } |
PATCH /apiv2/links/bulk | { "updates": [ { "id": "…", …campos a cambiar… } ] } |
DELETE /apiv2/links/bulk | { "ids": [ "…", "…" ] } |
Cada petición acepta de 1 a 100 elementos. La respuesta informa de cada elemento por separado, consulta Errores y respuestas.