> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.erlcrussia.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Integración con la CDN

> Cómo usar los archivos del equipo en un sitio, en Next.js o en CI/CD.

La CDN guarda los archivos del equipo y los sirve en direcciones públicas. Se gestiona con la API V3 y una clave; servir archivos no requiere clave.

| Tarea | Cómo |
| - | - |
| Imágenes, documentos, vídeo | Súbelos con `POST /v3/cdn/assets` y usa la dirección pública |
| Archivo desde una URL | `POST /v3/cdn/assets/external` lo descarga a la CDN |
| HTML/CSS normal | Direcciones completas de la CDN en `src`, `href` y `url()` |
| Next.js | [Guía de Next.js](https://apidocs.erlcrussia.com/es/tutorials/nextjs-cdn-integration.md) |
| Dominio propio | [Dominios CDN propios](https://apidocs.erlcrussia.com/es/tutorials/cdn-custom-domains.md) |
| Versiones desde CI/CD | [CI/CD y purga de caché](https://apidocs.erlcrussia.com/es/tutorials/cdn-cache-purge-cicd.md) |

## Acceso

Primero vincula tu clave a un equipo:

```bash theme={null}
curl -X PUT https://api.erlcrussia.com/v3/cdn/team \
  -H 'erlcrussia-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"teamId":"YOUR_TEAM_ID"}'
```

El titular de la clave necesita un rol en el equipo con acceso a la CDN; la pertenencia se comprueba en cada solicitud. Envía la clave solo en la cabecera `erlcrussia-api-key`.

## Direcciones de archivos

Cada archivo se identifica por un espacio y una ruta. El espacio es el slug del equipo o un [dominio propio](https://apidocs.erlcrussia.com/es/tutorials/cdn-custom-domains.md) verificado.

* Dominio común: `https://cdn.erlcrussia.com/YOUR_TEAM_SLUG/images/logo.png`
* Dominio propio: `https://files.example.com/images/logo.png`

En el dominio común un equipo solo puede usar `/{slug}/...`. Si no indicas `path` al subir, se genera según el tipo de archivo.

Si ya existe un archivo con la misma `path`, la respuesta es 409 y no se sobrescribe. Usa una ruta nueva para cada versión.

## Carpetas

| Acción | Qué pasa con los archivos |
| - | - |
| Crear, renombrar o eliminar una carpeta | Nada: las direcciones no cambian |
| `PATCH /cdn/assets` con `folderId` | El archivo pasa a otra carpeta en la interfaz |
| `PATCH /cdn/assets` con `path` | El archivo recibe una dirección nueva |
| Carpeta con `pathEnabled: true` | Las nuevas subidas sin `path` llevan el prefijo de la carpeta |

## Parámetros comunes

| Parámetro | Significado |
| - | - |
| `domain` | Espacio. Por defecto, el del equipo de la clave |
| `ids` | ID de archivos separados por comas |
| `path` | Ruta exacta del archivo |
| `prefix` | Prefijo de ruta para un grupo de archivos |
| `folderId` | Carpeta: `root` sin carpeta, `all` todas |
| `page, limit` | Páginas de la lista, `limit` hasta 100 |

## Caché

Las respuestas de la CDN incluyen `X-Cache` (caché de la CDN) y `CF-Cache-Status` (Cloudflare). La purga (`POST /cdn/assets/purge`) se acepta al momento y se ejecuta en segundo plano. Publicar versiones nuevas en direcciones nuevas es más fiable que reemplazar archivos. Consulta [CI/CD y purga de caché](https://apidocs.erlcrussia.com/es/tutorials/cdn-cache-purge-cicd.md).

## Respuestas habituales

| Respuesta | Significado |
| - | - |
| 401, código 5007 | Falta la clave |
| 403, código 5009 | Sin acceso a la CDN del equipo |
| 409, código 5135 | La ruta ya existe |
| 429, código 5016 | Límite de solicitudes superado |

Los archivos personales de los usuarios del sitio se describen en [Archivos personales](https://apidocs.erlcrussia.com/es/other/user-assets.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.