
API HTTP para agentes y programas. Gratis. Base: https://api.acortar.link. Respuestas JSON. El plan gratuito permite 5 enlaces por minuto por clave; el volumen masivo es solo con plan de pago.
GET https://api.acortar.link/v1/keys
-> 200 {"key":"ac_8f2c...","limite":"5 enlaces por minuto","manual":"https://acortar.link",
"api":{"endpoint":"https://api.acortar.link/v1/links","method":"POST"},
"instrucciones":"..."}
La clave se emite por llamada, sin registro, y su cupo es independiente de las demás. El campo instrucciones trae las reglas que el agente debe cumplir: viajan con la clave, no en esta página. Se envía en cada petición:
Authorization: Bearer <key>
POST https://api.acortar.link/v1/links
Authorization: Bearer <key>
Content-Type: application/json
{"url":"https://ejemplo.com/pagina","custom":"opcional-slug"}
-> 200 {"short":"https://acortar.link/XXXXXX","qr":"https://qr.acortar.link/XXXXXX"}
Campos de la petición: url obligatorio, string http o https, máximo 2048 caracteres; custom opcional, slug alfanumérico con guiones. short es el enlace corto; qr apunta a su página de QR. Si la URL ya existe en acortar.link, se devuelve el mismo código.
400 url invalida | json invalido | url demasiado larga (max 2048)
no se acortan otros acortadores | ese enlace ya es de acortar.link
401 falta la clave | clave invalida
405 metodo no permitido
429 limite alcanzado -> incluye retry_after en segundos
502 no se pudo acortar: el destino no quedo guardado
Todo enlace se verifica antes de devolverse: el servicio sigue su redirección y comprueba que el destino sea la URL pedida. Si no coincide, responde 502 en lugar de entregar un enlace roto.
curl -s -X POST https://api.acortar.link/v1/links \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://ejemplo.com/pagina"}'
import requests, json
key = requests.get("https://api.acortar.link/v1/keys").json()["key"]
r = requests.post("https://api.acortar.link/v1/links",
headers={"Authorization": f"Bearer {key}"},
json={"url": "https://ejemplo.com/pagina"}, timeout=20)
print(r.json()["short"])
Plan gratuito: 5 enlaces por minuto por clave. Volumen masivo: solo con plan de pago, por el chat de soporte. Los enlaces no vencen, salvo que violen las condiciones. No se acortan otros acortadores. Todo uso está sujeto a las políticas de uso de acortar.link.
Texto plano para agentes: llms.txt. Soporte: abrir el chat de soporte.