Respuesta directa

La API de RedirHub vive en https://api.redirhub.com/v1 y usa un token Bearer. Crea una redirección con POST /links y handler redirect. Cambia o elimina muchos enlaces a la vez con PUT /bulk o DELETE /bulk y un filtro, después de previsualizar el cambio con POST /bulk/summary. La API está incluida en Core, Pro y Enterprise.

1. Obtén un token y pruébalo#

Crea un token como se describe en Crea y administra tokens de API. Cada token pertenece a un workspace. Guárdalo en tu servidor, nunca en código del navegador.

bashexport REDIRHUB_TOKEN="your-token"

curl "https://api.redirhub.com/v1/test" \
  -H "Authorization: Bearer $REDIRHUB_TOKEN"

2. Crea una redirección#

Para una redirección, url es el origen (un dominio, o un dominio y una ruta, sin https://) y destination es la URL de destino completa. Un dominio sin ruta redirige todas las rutas en él.

bashcurl -X POST "https://api.redirhub.com/v1/links" \
  -H "Authorization: Bearer $REDIRHUB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "handler": "redirect",
    "url": "old-site.com/pricing",
    "destination": "https://new-site.com/pricing",
    "type": "301",
    "forward_query": true,
    "tags": ["migration"]
  }'

La respuesta devuelve el nuevo enlace dentro de un array data, con su id. Usa handler migration para asignaciones de migración de sitios web y short-url o qr (con host y alias en lugar de url) para enlaces de marca y códigos QR.

3. Crea cientos desde un archivo#

Recorre un CSV con las mismas columnas que la importación del panel (source_url, destination, type) y envía una solicitud por fila. Respeta los límites de tasa y reintenta en 429. Para una importación única, la importación CSV en el panel es más rápida y muestra primero una revisión.

pythonimport csv, os, time, requests

API = "https://api.redirhub.com/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REDIRHUB_TOKEN']}"}

with open("redirects.csv", newline="") as f:
    for row in csv.DictReader(f):
        body = {
            "handler": "redirect",
            "url": row["source_url"],
            "destination": row["destination"],
            "type": row.get("type") or "301",
        }
        while True:
            r = requests.post(f"{API}/links", json=body, headers=HEADERS)
            if r.status_code != 429:
                break
            time.sleep(int(r.headers.get("Retry-After", 5)))
        print(row["source_url"], r.status_code, r.json().get("errors", ""))

4. Buscar enlaces#

bashcurl -G "https://api.redirhub.com/v1/links" \
  -H "Authorization: Bearer $REDIRHUB_TOKEN" \
  --data-urlencode "filter[host]=old-site.com" \
  --data-urlencode "filter[handler]=redirect"

Los resultados están paginados por cursor: sigue meta.cursor.next hasta que esté vacío. Otros filtros incluyen etiquetas, destino, búsqueda, created_after y created_before; consulta Filtrado y ordenación.

5. Cambiar un enlace#

bashcurl -X PUT "https://api.redirhub.com/v1/links/LINK_ID" \
  -H "Authorization: Bearer $REDIRHUB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"destination": "https://new-site.com/plans"}'

La URL de origen de un enlace no se puede cambiar después de crearlo. Para mover un origen, crea un enlace nuevo y elimina el anterior.

6. Cambiar muchas destinos a la vez#

Vista previa primero. POST /bulk/summary devuelve cuántos enlaces coincide el filtro, cuántos tuvieron visitas en las últimas cuatro semanas y los cinco primeros cambios:

bashcurl -X POST "https://api.redirhub.com/v1/bulk/summary" \
  -H "Authorization: Bearer $REDIRHUB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "filter": {"tags": "migration"},
    "destination_find": "new-site.com",
    "destination_replace": "new-brand.com"
  }'

Luego envía el mismo cuerpo a PUT /bulk para aplicarlo. La respuesta te indica cuántos enlaces se vieron afectados. Para añadir parámetros UTM a cada destino en su lugar, envía destination_params, por ejemplo {"utm_campaign": "fall-2026"}.

bashcurl -X PUT "https://api.redirhub.com/v1/bulk" \
  -H "Authorization: Bearer $REDIRHUB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "filter": {"tags": "migration"},
    "destination_find": "new-site.com",
    "destination_replace": "new-brand.com"
  }'

7. Eliminar en masa#

No undo

DELETE /bulk elimina todos los enlaces que coincidan con el filtro y no se puede deshacer. Ejecuta primero POST /bulk/summary con el mismo filtro y enumera los enlaces con GET /links si quieres una copia.

bashcurl -X DELETE "https://api.redirhub.com/v1/bulk" \
  -H "Authorization: Bearer $REDIRHUB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"filter": {"tags": "summer-sale"}}'

Al menos un filtro debe tener un valor, para que una solicitud no coincida accidentalmente con todo el espacio de trabajo. La respuesta devuelve affected (enlaces eliminados) y pending (enlaces que aún se están eliminando en segundo plano).

Trabajando en su lugar desde un asistente de IA#

El servidor MCP de RedirHub permite que Claude, ChatGPT o Cursor hagan las mismas tareas en lenguaje natural, incluida la importación de hasta unos 5.000 filas en una sola llamada. Los cambios masivos a través de MCP siempre devuelven primero una simulación y solo se aplican después de que lo confirmes.

Referencia completa: referencia de la API de RedirHub.

Preguntas frecuentes

Core, Pro y Enterprise. Cada token de API está limitado a un solo espacio de trabajo.

Envía POST https://api.redirhub.com/v1/links con handler redirect, url (el origen, como old-site.com/pricing), destination (la URL de destino completa) y opcionalmente type, como 301.

Sí. POST /bulk/summary con el mismo filtro y cambio muestra cuántos enlaces coinciden, cuántos tuvieron visitas recientes y los cinco primeros destinos antes y después.

No. Previsualízalo con POST /bulk/summary y conserva una copia de GET /links antes de llamar a DELETE /bulk.

Ayuda relacionada

Ver todos los artículos