# Reejecutar una Assembly

POST`https://api2.transloadit.com/assemblies/{ASSEMBLY_ID}/replay`

###### Advertencia

Este endpoint requiere que tu [Auth Key](/es/docs/api/authentication.md) tenga el alcance `assemblies:write`.

Si una Assembly falló y podemos recuperar los archivos de entrada, Transloadit puede reintentar su ejecución.

Puedes especificar un nuevo parámetro `notify_url` en `params` para evitar volver a usar la URL ya especificada para la Assembly.

Especifica el parámetro `steps` para reemplazar los Steps de la Assembly original que se está reejecutando.

La Assembly recién creada tendrá un `parent_assembly_status` en su estado, que apuntará a la URL de la Assembly original que falló y de la cual es una reejecución.

## Campos de POST

* Es obligatorio incluir `signature`. Para obtener más información, consulta [Signature Authentication](/es/docs/api/authentication.md).
* Es obligatorio incluir `params`. Debe contener un objeto codificado en JSON con las claves que se muestran en la siguiente tabla.

## Claves admitidas en el campo `params`

* ### `auth` — **obligatorio**

`object`\
Contiene, como mínimo, tu Auth Key de Transloadit en la propiedad `key`.\
Si habilitas Signature Authentication, también debes establecer una fecha de vencimiento para la solicitud en la propiedad expires:\
![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_GBjmaCTpH3rF6sBBsH4gkTL4K8CU)

```jsonc
{  
  "key": "23c96d084c744219a2ce156772ec3211",  
  "expires": "2009-08-28T01:02:03.000Z"  
}  
```

Recomendamos encarecidamente incluir la propiedad `nonce`: un valor único generado aleatoriamente para cada solicitud que evita el procesamiento duplicado durante los reintentos, puede ayudar con la depuración y evita vectores de ataque como la reutilización de claves de firma:\
![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_GBjmaCTpH3rF6sBBsH4gkTL4K8CU)

```jsonc
{  
  // …  
  "nonce": "04ac6cb6-df43-41fb-a7fd-e5dd711a64e1"  
}  
```

La propiedad `referer` es una expresión regular que se compara con el referente HTTP de esta subida, como `"example\.org"`. Especifica esta clave para asegurarte de que las subidas solo procedan de tu dominio.\
Las subidas sin referente siempre pasarán la comprobación, ya que algunos navegadores lo desactivan, por lo que esto solo resulta útil en unos pocos casos de uso. Para obtener detalles sobre las expresiones regulares, consulta la [documentación de RegExp de Mozilla](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global%5FObjects/RegExp).\
La propiedad `max_size` puede utilizarse para establecer el tamaño máximo en bytes de una subida, como `1048576` (1 MB). Especifícalo para impedir que los usuarios suban archivos excesivamente grandes. El tamaño de los archivos se comprueba en cuanto comienza la subida. Si supera el tamaño máximo, se cancela todo el proceso de subida y la Assembly genera un error, aunque contenga archivos que no superen el límite de `max_size`. Si solo quieres ignorar los archivos que superen cierto tamaño y procesar todos los demás, usa [🤖/file/filter](/docs/robots/file-filter.md).\
La propiedad `max_number_of_files` puede utilizarse para establecer la cantidad máxima de archivos que puede contener una subida, como `100`. Especifícalo para impedir que los usuarios suban una cantidad excesiva de archivos, tanto mediante subidas de archivos como mediante Robots de importación.\
Estas propiedades pueden establecerse como parte de la solicitud de la Assembly o como parte del Template.

* ### `steps`

`Record<string, object> | Array<object>`\
Modificaciones de Steps para la reejecución. Los Steps con formato de objeto son la estructura habitual de una Assembly; los Steps con formato de arreglo se aceptan para mantener la compatibilidad con reejecuciones heredadas y se normalizan antes de la ejecución.

* ### `template_id`

`string`\
El ID del Template que contiene tus Assembly Instructions. Si configuras `allow_steps_override` como `false` en tu Template, `steps` y `template_id` serán mutuamente excluyentes; solo puedes proporcionar uno de estos parámetros.

* ### `notify_url`

`string | null`\
Transloadit puede enviar una devolución de llamada a tu servidor cuando se complete la Assembly. Enviaremos el estado de la Assembly como una cadena JSON con codificación URL para formularios dentro de un campo transloadit, en una solicitud POST multipart a la URL proporcionada aquí. Usa `notification_payload` para reducir el tamaño de la carga útil (p. ej., `without_uploads`, `without_results`, `without_params`); el mismo filtrado se aplica a los reenvíos de notificaciones.

* ### `fields`

`Record<string, any>`\
Un objeto de valores identificados por claves de cadena (nombre -> valor) que pueden utilizarse como Assembly Variables, al igual que los campos adicionales de un formulario. Puedes usar como valor cualquier elemento que pueda serializarse como JSON

* ### `reparse_template` — **obligatorio**

`0 | 1`\
Especifica `1` para volver a analizar el Template utilizado en tu Assembly, lo que resulta útil si el Template cambió desde entonces. Como alternativa, `0` reejecuta exactamente los mismos Steps utilizados en la Assembly.

## Respuesta

Este es un ejemplo del cuerpo de la respuesta:

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_GBjmaCTpH3rF6sBBsH4gkTL4K8CU)

```
{
  "ok": "ASSEMBLY_REPLAYING"
}
```

Devolveremos el código de éxito `ASSEMBLY_REPLAYING` o un[código de respuesta de error](/es/docs/api/response-codes.md) con los detalles de lo que salió mal.
