Last updated: January 14

<span aria-hidden="true" id="assembly-execution-progress-real-time-status-for-your-assemblies"></span>

# Assembly Execution Progress: real-time status for your Assemblies

![Kevin van Zonneveld](/assets/images/teammates/avatar-kvz-4.jpg?dpl=dpl_6nhQNS5wkVkPZWuKMzXcWrAHNJL5)

**Kevin van Zonneveld**

Co-founder · Amsterdam, The Netherlands · Show bio

[](https://x.com/kvz)[](https://github.com/kvz)

When uploads finish, users still want to know what’s happening to their files. Our new Assembly Execution Progress feature fills that gap with real-time, per-file progress events during processing, so your UI can show a meaningful status instead of a simple spinner.

**Warning**

Assembly Execution Progress is still experimental. Its behavior, API details, and pricing may evolve while we continue to refine it. If you run into issues, please[contact us⁠](mailto:support@transloadit.com).

<span aria-hidden="true" id="why-it-matters"></span>

## Why it matters

Upload progress tells users when a file reaches our servers. Assembly Execution Progresstells them what happens next: how far their files have moved through each processingStep. This makes complex pipelines feel trustworthy, especially when different files take different paths.

<span aria-hidden="true" id="how-it-works"></span>

## How it works

Transloadit estimates overall progress by predicting the remaining Steps in yourAssembly and combining those estimates with live execution data (for example, encoding progress from `/video/encode`). You receive a combined percentage plus per-file progress values, updated approximately every two seconds.

<span aria-hidden="true" id="enable-it-in-your-assembly"></span>

## Enable it in your Assembly

Add `emit_execution_progress: true` to your Assembly Instructions when you create theAssembly:

```json
{
  "steps": {
    "resized": {
      "robot": "/image/resize",
      "use": ":original",
      "width": 100,
      "height": 100,
      "resize_strategy": "fillcrop"
    }
  },
  "emit_execution_progress": true
}

```

<span aria-hidden="true" id="consume-the-progress-stream"></span>

## Consume the progress stream

Open the Assembly update stream and listen for `assembly_execution_progress` events. Each event includes a combined percentage and an array of per-file progress values.

```json
{
  "progress_combined": 75,
  "progress_per_original_file": [
    {
      "original_id": "6bb16f6cd49a44b4ae431f576e016c6d",
      "progress": 50
    },
    {
      "original_id": "56921a2dd46246d3b4d3a98b9f8ed4e1",
      "progress": 100
    }
  ]
}

```

You can find the full stream details in the[Assembly update stream documentation](/docs/api/assemblies-assembly-id-stream-get.md) and the[Assembly Execution Progress topic](/docs/topics/assembly-execution-progress.md).

<span aria-hidden="true" id="ui-tips"></span>

## UI tips

**Tip**

Pair upload progress with execution progress, so users see the entire pipeline.

**Tip**

Show per-file progress in batch uploads to avoid “stuck” impressions.

**Tip**

Use combined progress for a single overall bar and per-file progress for a detailed list view.

<span aria-hidden="true" id="caveats-to-be-aware-of"></span>

## Caveats to be aware of

Certain Steps have unpredictable result counts (for example, importing directories, extracting archives, or generating document thumbnails without a fixed page list). If yourAssembly includes those Steps, execution progress won’t be emitted until they complete. After that, updates resume as normal.

Execution Progress is not available for URL Transform Assemblies (it is ignored even if the flag is set). For multipart uploads, progress only begins once the upload metadata is extracted, so you won’t see execution events until uploads finish. Finally,`progress_per_original_file` is keyed by `original_id`, so imported files without an original ID won’t appear in the per-file list.

<span aria-hidden="true" id="next-steps"></span>

## Next steps

If you want a more thorough walkthrough or code examples, start with the[Assembly Execution Progress docs](/docs/topics/assembly-execution-progress.md) and then wire the stream events into your UI.

[#assembly](/blog/tags/assembly.md)[#api](/blog/tags/api.md)[#developer-experience](/blog/tags/developer-experience.md)[#progress](/blog/tags/progress.md)

### 👩‍💻 Join 20k+ developers

Sign up for our [monthly newsletter](/newsletters.md) to receive direct links to 3 exclusive tech — and 2 product updates. No less, no more.

Your email:

Get access

## File uploading and encoding. Made simple.

Transloadit streamlines file handling for developers, trusted by brands like Coursera and The New York Times. We’re known for a reliable API, top-notch support, and a strong commitment to open source, with projects like [Uppy⁠](https://uppy.io) and [Tus⁠](https://tus.io) setting standards in file processing.

[Sign up](/c/)[Book a Demo](https://survey.typeform.com/to/kRg47Xi5)

No credit card needed · 5 GB included in the free plan

Cancel anytime
