Transloadit
Pricing
Log in
Sign up
EssentialsRobotsFAQAPIFormats
Getting started
  • Overview
  • My first App
  • Saving result files
Topics
  • Assembly Instructions
  • Assembly Variables
  • Dynamic Evaluation
  • Templates
  • Webhooks
  • Third party Credentials
  • Builtin Templates
  • Resize Strategies
  • Advanced use Parameter
  • Assembly Execution Progress
  • Workspaces
  • AI Agents
Software Development Kits
  • Overview
  • HTTP REST API
  • Android SDK
  • Browsers
  • Convex
  • cURL
  • Go SDK
  • Java SDK
  • jQuery SDK
  • MCP Server
  • Multipart Form
  • Node.js SDK
  • PHP SDK
  • Python SDK
  • Ruby SDK
  • Terraform
  • TransloaditKit
  • Zapier Integration
Community Projects
  • Overview

Dynamic Evaluation

If placeholder variables like ${file.meta.width} aren't enough to implement your application logic, you can also use the full feature set of modern JavaScript to create dynamic Assembly instructions. These scripts will be executed on our infrastructure, and have access to all Assembly Variables. This includes a file's meta data that Transloadit automatically determines, basic information about the Assembly runtime, and fields that can be populated by you as a developer when creating the Assembly.

For example, you might want to resize images to adhere to the design principle of the Golden Ratio:

{
  "robot": "/image/resize",
  "height": "${file.meta.width / (1 + Math.sqrt(5))/2}",
  "resize_strategy": "crop"
}

Or you could want to transform the output file name to upper case when uploading to S3:

{
  "robot": "/s3/store",
  "path": "my-folder/${file.name.toUpperCase()}"
}

Everything inside ${...} will get evaluated, and you have all JavaScript language features available, as long as your script doesn't perform any asynchronous operations. For example, you can use Math, Date or String methods.

Variable lookup

Dynamic evaluation is free of charges when it is a simple lookup, such as ${file.name} or ${file.meta.faces[0]}.

For more complex evaluations, such as ${Math.max(10, file.meta.width)}, there are charges. This is because we invoke 🤖/script/run to interpret JavaScript, making evaluations harder on our machines, and a few milliseconds slower, but with a full programming language at your disposal, also that much more powerful.

← Assembly VariablesTemplates →
Transloadit
© 2009–2026 Transloadit-II GmbH
Privacy⋅Terms⋅Imprint

Product

  • Services
  • Pricing
  • Demos
  • Security
  • Support

Company

  • About / Press
  • Blog / Jobs
  • Comparisons
  • Open source
  • Solutions

Docs

  • Getting started
  • Transcoding
  • FAQ
  • API
  • Supported formats

More

  • Platform status
  • Community forum
  • StackOverflow
  • Uppy
  • Tus