Why are there /meta/read charges in my billing?

The /meta/read charges appear in your monthly billing, because Transloadit by default automatically extracts metadata from your uploaded files and other Steps. This is a standard part of file processing that helps enable features like using ${file.ext}, ${file.name}, and other metadata variables in your Assembly Instructions.

How much do /meta/read charges cost?

Metadata extraction costs 1% of the file size. For example:

  • A 100 MB file would incur 1 MB in metadata extraction charges
  • A 1 GB file would incur 10 MB in metadata extraction charges

How can I avoid /meta/read charges?

You can opt out of automatic metadata extraction by adding "output_meta": false to your processing Step:

{
  "steps": {
    ":original": {
      "robot": "/upload/handle",
      "output_meta": false
    },
    "resize": {
      "use": ":original",
      "robot": "/image/resize",
      "format": "jpg",
      "width": 200,
      "height": 200,
      "output_meta": false
    }
  }
}

When should I keep metadata extraction enabled?

Most processing Templates will require meta data extraction. It's important for:

  • letting Robots ignore file types they cannot handle
  • using file metadata variables in your Assembly Instructions (like ${file.ext}, ${file.name}, ${file.meta.width})
  • filtering files based on metadata properties
  • storing metadata tags with your files
  • generating dynamic file paths based on file properties

Example that may not require metadata:

{
  "steps": {
    ":original": {
      "robot": "/upload/handle"
    },
    "stored": {
      "use": ":original",
      "robot": "/s3/store",
      "path": "/uploads/${file.id}_${file.name}"
    }
  }
}

When can I safely disable metadata extraction?

You can disable metadata extraction when:

  • You don't use any file metadata variables in your Assembly
  • You're using fixed file paths and names
  • You don't need to filter or sort files based on their properties

Example that doesn't need metadata (fields is provided when creating the Assembly):

{
  "steps": {
    "uploaded": {
      "robot": "/upload/handle",
      "output_meta": false
    },
    "exported": {
      "use": "encoded",
      "robot": "/s3/store",
      "path": "${fields.output_path}"
    }
  }
}

See also:

What is Turbo mode? Why don’t you charge by the minute? Why are there /meta/read charges in my billing?