# General Translation Platform: Mover archivos URL: https://generaltranslation.com/es/docs/platform/openapi/reference/files/move-files.mdx --- title: Mover archivos description: Mueve o renombra archivos en un Proyecto de General Translation. Referencia de la API para mover archivos. method: POST --- Mueve o renombra archivos clonando cada archivo fuente y sus traducciones con un nuevo ID y nombre de archivo. Envía una entrada por cada archivo que vayas a mover. ## Descripción general [#overview] ```http POST https://api2.gtx.dev/v2/project/files/moves ``` **Permiso** `project:files:write` · **Límite de solicitudes** Medio (120/min) Refleja los cambios de nombre o de ubicación de los archivos fuente sin perder sus traducciones. Para detectar qué archivos han quedado obsoletos, usa [Obtener archivos huérfanos](/docs/platform/openapi/reference/files/orphaned-files). ## Cómo funciona [#how-it-works] * Cada movimiento clona el archivo fuente existente y sus traducciones en `newFileId` y `newFileName`, conservando las traducciones. * Si falta `branchId`, se resuelve a la rama predeterminada. El `branchId` proporcionado debe pertenecer al proyecto; de lo contrario, la solicitud devuelve `404`. * Una lista `moves` vacía devuelve un conjunto de resultados vacío sin error. * La respuesta indica un resultado por movimiento y un recuento resumido del total de movimientos, los completados correctamente y los fallidos. ## Solicitud [#request] ### Cabeceras | Cabecera | Descripción | Obligatorio | | ----------------- | --------------------------------------------------------------- | ----------- | | `x-gt-api-key` | Clave de API del proyecto o de la organización. | Sí | | `x-gt-project-id` | ID del proyecto. Obligatorio al usar una clave de organización. | No | ### Cuerpo **Tipo de contenido** `application/json` | Campo | Descripción | Tipo | Opcional | Predeterminado | | ----------------- | --------------------------------------------------- | ---------- | -------- | ------------------- | | [`moves`](#moves) | Array de movimientos de archivos que se procesarán. | `object[]` | No | — | | `branchId` | Rama en la que se encuentran los archivos. | `string` | Sí | Rama predeterminada | #### `moves` [#moves] **Tipo** `object[]` Cada elemento describe el traslado de un archivo: | Campo | Descripción | Tipo | Opcional | Predeterminado | | ------------- | ----------------------------------------------------------- | -------- | -------- | -------------- | | `oldFileId` | Identificador actual del archivo; no puede estar en blanco. | `string` | No | — | | `newFileId` | Nuevo identificador del archivo; no puede estar en blanco. | `string` | No | — | | `newFileName` | Nuevo nombre del archivo; no puede estar en blanco. | `string` | No | — | ## Respuesta [#response] **Estado** `200 OK` ```json title="Response" { "results": [ { "oldFileId": "file_old...", "newFileId": "file_new...", "success": true, "newSourceFileId": "sf_...", "clonedTranslationsCount": 2 } ], "summary": { "total": 1, "succeeded": 1, "failed": 0 } } ``` ## Errores [#errors] | Estado | Causa | | ------ | --------------------------------------------------------- | | `400` | Cuerpo de la solicitud no válido. | | `401` | Falta la clave de API o no es válida. | | `403` | La clave de API no tiene `project:files:write`. | | `404` | No se encontró el `branchId` proporcionado en el proyecto. | | `429` | Se superó el límite de solicitudes. | ## Ejemplo [#example] ```bash curl -X POST https://api2.gtx.dev/v2/project/files/moves \ -H "x-gt-api-key: gtx-api-..." \ -H "Content-Type: application/json" \ -d '{ "moves": [ { "oldFileId": "file_old...", "newFileId": "file_new...", "newFileName": "en/renamed.json" } ] }' ```