# Enlaces

Cuando una persona responde a un bot con una foto, un video, un audio o un archivo y la respuesta se guarda en una variable (el interruptor «Guardar la respuesta en una variable del usuario» de la sección [Avanzado](https://support.cleverapp.pro/es/chatbots/blocks/messages#avanzado) del bloque), la variable recibe un enlace corto al archivo en lugar del propio archivo, algo como `…/w/bK3x9`. El mismo tipo de enlace corto lleva al archivo de la [exportación a Excel](https://support.cleverapp.pro/es/lists/import-export#exportar-a-excel) de una lista del bot.

El método `decodeShortLink` convierte ese enlace en un enlace directo al archivo, para que tu sistema pueda descargarlo sin seguir una redirección.

## decodeShortLink

Devuelve un enlace directo al archivo a partir de un enlace corto.

```endpoint
GET POST https://app.cleverapp.pro/api/v1/decodeShortLink
```

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `url` | cadena | sí | El enlace corto completo, incluidos `https://` y el parámetro `?k=…` si lo tiene. El método toma el código que va después de `/w/`; el dominio no se comprueba |

```bash title="Solicitud"
curl -X POST "https://app.cleverapp.pro/api/v1/decodeShortLink" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/w/bK3x9"}'
```

```json title="Respuesta 200"
{
  "data": {
    "url": "https://files.example.com/bots/12345/passport-scan.jpg"
  }
}
```

```json title="Respuesta 404"
{
  "error": "Short link not found",
  "message": "Short link not found"
}
```

Solo se resuelven los enlaces a archivos, y solo los que pertenecen a tu bot o a tu lista, incluida una lista creada en un proyecto y no en un bot. Los enlaces cortos de otros tipos no se resuelven. Un enlace caducado no se resuelve, igual que no se abre al seguirlo.

Errores del método (los generales están en [Errores](https://support.cleverapp.pro/es/api#errores)):

| Código | Cuándo | Respuesta |
|---|---|---|
| `403` | El enlace pertenece a un bot o una lista de otra cuenta, o no está vinculado ni a un bot ni a una lista | `{"error": "…", "message": "…"}` |
| `404` | No hay ningún enlace corto con este código, caducó, la clave `?k=` no coincide o se eliminó la lista a la que lleva | `{"error": "…", "message": "…"}` |
| `422` | El enlace no lleva a un archivo | `{"error": "…", "message": "…"}` |
| `422` | Falta `url`, no es una URL o no tiene la ruta `/w/código` | `{"message": "…", "errors": {"url": ["…"]}}` |
