API
Crea y gestiona enlaces cortos desde tu propio código. La API forma parte del plan Pro.
Autenticación
Crea una clave en la página de tu cuenta y envíala en la cabecera Authorization de cada solicitud. Mantén la clave en secreto: cualquiera que la tenga puede gestionar tus enlaces.
Authorization: Bearer skr_…
Endpoints
| POST | /api/v1/links | Crear un enlace |
| GET | /api/v1/links | Listar tus enlaces (limit, offset) |
| GET | /api/v1/links/{slug} | Obtener un enlace |
| PATCH | /api/v1/links/{slug} | Cambiar la caducidad o el límite de aperturas |
| DELETE | /api/v1/links/{slug} | Eliminar un enlace |
| GET | /api/v1/links/{slug}/stats | Totales diarios y principales países, dispositivos, navegadores y procedencias (days = 1–365) |
Crear un enlace
curl -X POST https://skr.me/api/v1/links \
-H "Authorization: Bearer $SKR_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/page?utm_source=news", "slug": "launch", "expires": "never"}'
Envía JSON o datos de formulario. Solo url es obligatorio.
| url | La dirección de destino (http o https). |
| slug | Dirección personalizada opcional, de al menos 4 caracteres. |
| password | Contraseña opcional que deben introducir los visitantes. |
| expires | 1h, 1d, 7d, 14d, 30d, 60d, 90d o never (predeterminado). |
| max_clicks | Número opcional de aperturas tras el cual el enlace deja de funcionar. |
| clean | Elimina los parámetros de rastreo del destino. Predeterminado: true. |
Respuesta
HTTP/1.1 201 Created
{
"link": {
"slug": "launch",
"short_url": "https://skr.me/launch",
"target_url": "https://example.com/page",
"status": "ok",
"custom": true,
"password_protected": false,
"clicks": 0,
"max_clicks": null,
"created_at": "2026-09-26T12:00:00+00:00",
"expires_at": null
},
"removed_parameters": ["utm_source"]
}
Estadísticas
curl https://skr.me/api/v1/links/launch/stats?days=30 \
-H "Authorization: Bearer $SKR_KEY"
Las estadísticas son los mismos agregados diarios que ves en el panel. Nunca contienen información sobre visitantes individuales.
Errores
Los errores usan códigos de estado HTTP estándar (400, 401, 403, 404, 422, 429) y un cuerpo JSON con un código legible por máquina.
{ "error": { "code": "invalid_slug", "field": "slug", "message": "This address is already taken." } }
Límites
Cada clave puede hacer 1000 solicitudes al día. Cada respuesta incluye las cabeceras X-RateLimit-Limit y X-RateLimit-Remaining.