Builtin Templates
Templates are usually something you create and manage in your own Workspace. Builtin Templates are different: they are maintained by Transloadit, live inside API2, and can be referenced by template_id like any other Template.
Use Builtin Templates when you want a stable, versioned starting point for common transformations without having to create a Template first.
Names starting with builtin/ are reserved for Builtin Templates. You cannot create, edit, or delete Templates with that name prefix.
Use a Builtin Template
Set template_id to a builtin slug:
{
"template_id": "builtin/encode-hls-video",
"steps": {}
}
Notes:
stepsis optional. Step overrides are allowed unless the Builtin’s Instructions below setallow_steps_overridetofalse.- Use
builtin/<name>to resolve to the latest known version. - Use
builtin/<name>@latestfor an explicit alias to the latest known version. - Use
builtin/<name>@<version>to pin to a specific version.
List Builtin Templates
Builtin Templates can be included in GET /templates using the include_builtin query parameter. See the Templates list API for details.
Available Builtin Templates
| Slug | Description | Required fields | Optional fields |
|---|---|---|---|
builtin/caption-video
| Transcribe uploaded videos and burn plain captions (default) or social captions with uppercase Poppins text and active-word highlighting. Returns the captioned video and SRT cues; social also returns timestamped JSON from the same transcription. Set highlight_color for the social accent. Omit font_size for automatic social fitting; plain defaults to 16. vocabulary supplies spelling hints with Replicate or GCP; AWS rejects nonempty vocabulary. On the CLI, run transloadit assemblies create --template builtin/caption-video@0.0.2 --field style=social --field vocabulary=Transloadit -i video.mp4 -o out/. For multiple hints, use --field vocabulary=Transloadit,Uppy; repeated vocabulary flags replace earlier values. API callers can pass an array, including terms containing commas. Language fields describe speech, never translation. | None | fields.border_color (default "000000"), fields.font_color (default "FFFFFF"), fields.font_size, fields.highlight_color (default "FFD60A"), fields.position (default "bottom"), fields.provider (default "auto"), fields.source_language (default "en-US"), fields.style (default "plain"), fields.target_language, and fields.vocabulary (default []) |
builtin/capture-webpage
| Capture a public HTTP(S) webpage or uploaded HTML as PNG, JPEG or PDF. Defaults to a full-page PNG at 1024 pixels wide. Set fullpage to false for a fixed viewport. A URL takes precedence over uploaded HTML. Custom request headers, browser actions and credentials are not sent by this Builtin. | None | fields.delay (default 0), fields.format (default "png"), fields.fullpage (default true), fields.height (default 768), fields.url (default null), fields.wait_until (default "networkidle"), and fields.width (default 1024) |
builtin/convert-to-pdf
| Convert uploaded Office documents, HTML, Markdown and text to PDF using the document conversion Robot. Markdown uses the existing format and theme settings. Paper size, margins and background printing apply to HTML and Markdown rendering; Office and text keep the converter’s native layout. | None | fields.markdown_format (default "gfm"), fields.markdown_theme (default "github"), fields.pdf_format (default "Letter"), fields.pdf_margin (default "6.25mm,6.25mm,14.11mm,6.25mm"), and fields.pdf_print_background (default true) |
builtin/encode-hls-video
| Encode an input video into HLS renditions (270p, 360p, 540p) with an adaptive playlist. | None | None |
builtin/encode-video
| Encode uploaded videos for the web with the existing MP4 and WebM presets. Defaults to 720p MP4 with turbo encoding. Each supplied dimension overrides that preset dimension; an omitted dimension keeps the preset value. Output size depends on the source and preset; it is not a strict byte limit. | None | fields.height, fields.preset (default "web/mp4/720p"), fields.turbo (default true), and fields.width |
builtin/extract-text
| Extract readable text or JSON from uploaded images, PDFs and Office documents. Images use OCR; Office documents first convert to PDF. Documents try native text before OCR by default, using AWS unless GCP is selected. Passwords, page selection and per-page grouping require native document extraction. Unsupported input formats are skipped. | None | fields.ocr_provider (default "aws"), fields.page_range, fields.password, fields.text_format (default "txt"), fields.text_granularity (default "document"), and fields.text_method (default "auto") |
builtin/generate-image
| Generate an image from a prompt using /image/generate. | fields.prompt | None |
builtin/generate-video
| Generate a video from a prompt using /video/generate. | fields.prompt | None |
builtin/prepare-image
| Prepare uploaded images for a website: auto-orient, fit within 1600×1600, encode as WebP at quality 75, strip metadata, and preserve transparency. Configure w/h (1–8000), f, q (1–100), r, bg, and strip. Set strip with a JSON boolean in params.fields.strip. JPEG output requires an opaque bg such as #ffffff. | None | fields.bg (default "#00000000"), fields.f (default "webp"), fields.h (default 1600), fields.q (default 75), fields.r (default "fit"), fields.strip (default true), and fields.w (default 1600) |
builtin/public-preview
| Preview an exact retained Storage version under a declared public prefix. Requires fields.input (asset_id) and fields.v (version_id). Authorization uses the asset’s current path. Public transforms are bounded to 4096px and quality 85; verified versions permit immutable caching. | fields.input and fields.v | fields.bg (default "#ffffff"), fields.cdn, fields.f (default "jpg"), fields.h (default 300), fields.q (default 75), fields.r (default "pad"), and fields.w (default 400) |
builtin/public-serve
| Serve an exact retained Storage version under a declared public prefix. Requires fields.input (asset_id) and fields.v (version_id). Authorization uses the asset’s current path; verified versions permit immutable caching. Cached bytes cannot be recalled after access is removed. | fields.input and fields.v | fields.cdn |
builtin/remove-background
| Remove the background from uploaded photos, keeping the foreground as transparent PNG. Uses the Robot’s automatic provider by default. Other formats or background selection require provider transloadit. | None | fields.format (default "png"), fields.provider (default "auto"), and fields.select (default "foreground") |
builtin/storage-preview
| Preview an exact retained Storage version. Requires fields.input (asset_id) and fields.v (version_id). Keeps the preview controls and transparency of 0.0.2. Requires a signed URL; IDs do not grant access. | fields.input and fields.v | fields.bg (default "#ffffff"), fields.cdn, fields.f (default "jpg"), fields.h (default 300), fields.q (default 75), fields.r (default "pad"), and fields.w (default 400) |
builtin/storage-serve
| Serve exact retained Storage bytes. Requires signed input (asset_id) and v (version_id). Optional download is a Unicode attachment filename; omitted serves inline. Supports HTTP Range without transcoding. | fields.input and fields.v | fields.cdn and fields.download (default "") |
builtin/transcribe
| Transcribe uploaded audio or video into timestamped JSON, plain text, SRT or WebVTT. Uses automatic provider selection. source_language is the spoken-language code for AWS/GCP; target_language is an optional spoken-language hint for Replicate, never translation. vocabulary supplies spelling hints for brand names and jargon with Replicate or GCP; AWS rejects nonempty vocabulary. On the CLI, run transloadit assemblies create --template builtin/transcribe@0.0.2 --field vocabulary=Transloadit,Uppy -i audio.mp3 -o out/. Repeated vocabulary flags replace earlier values. API callers can pass an array, including terms containing commas. | None | fields.format (default "json"), fields.provider (default "auto"), fields.source_language (default "en-US"), fields.target_language, and fields.vocabulary (default []) |
builtin/video-covers
| Extract video cover images at regular intervals or exact offsets, optionally selecting strong frames with smart AI scoring. Uses the thumbnail Robot’s defaults and limits. Set smart to the JSON boolean false for exact offsets; smart selection uses count instead. Dimensions default to the input video. AI scoring can fall back with an Assembly warning. | None | fields.count (default 8), fields.format (default "jpeg"), fields.height, fields.offsets (default []), fields.smart (default false), fields.smart_max_candidates (default 20), and fields.width |
Instructions and field schema
builtin/caption-video@0.0.2
{
"content": {
"allow_steps_override": false,
"fields": {
"border_color": "000000",
"font_color": "FFFFFF",
"highlight_color": "FFD60A",
"position": "bottom",
"provider": "auto",
"source_language": "en-US",
"style": "plain",
"vocabulary": []
},
"steps": {
":original": {
"robot": "/upload/handle"
},
"captioned": {
"border_color": "${String(fields.border_color)}",
"ffmpeg_stack": "v7",
"font_color": "${String(fields.font_color)}",
"font_size": "${fields.font_size ?? (fields.style === \"social\" ? undefined : 16)}",
"highlight_color": "${String(fields.highlight_color)}",
"position": "${fields.position}",
"preset": "empty",
"result": true,
"robot": "/video/subtitle",
"style": "${fields.style === \"social\" ? \"social\" : undefined}",
"subtitles_type": "burned",
"use": {
"group_by_original": true,
"steps": [
{
"as": "video",
"name": ":original"
},
{
"as": "subtitles",
"name": "transcription"
}
]
}
},
"transcript": {
"format": "srt",
"result": true,
"robot": "/document/convert",
"use": "transcription"
},
"transcription": {
"format": "${fields.style === \"social\" ? \"json\" : \"srt\"}",
"provider": "${fields.provider}",
"result": "${fields.style === \"social\"}",
"robot": "/speech/transcribe",
"source_language": "${fields.source_language}",
"target_language": "${fields.target_language || \"\"}",
"use": ":original",
"vocabulary": "${Array.isArray(fields.vocabulary) ? fields.vocabulary : fields.vocabulary.trim() === \"\" ? [] : fields.vocabulary.split(\",\")}"
}
}
},
"fields_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"properties": {
"border_color": {
"anyOf": [
{
"pattern": "^#?[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$",
"type": "string"
},
{
"pattern": "^#?[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$",
"type": "string"
}
],
"default": "000000"
},
"font_color": {
"anyOf": [
{
"pattern": "^#?[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$",
"type": "string"
},
{
"pattern": "^#?[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$",
"type": "string"
}
],
"default": "FFFFFF"
},
"font_size": {
"description": "\nSpecifies the size of the text in the 288-pixel subtitle coordinate space, scaled with the video height. The default is 16. With `\"style\": \"social\"`, the default is 54. For social JSON captions, an omitted value scales this default with the shorter side of the video, increases it by 18% for portrait video, and shrinks captions as needed to fit at most two lines. Poppins capital letters are about 7.5% of the shorter side before fitting, or about 9% for portrait video. An explicit value keeps height-relative sizing and disables automatic fitting.\n",
"minimum": 1,
"type": "integer"
},
"highlight_color": {
"anyOf": [
{
"pattern": "^#?[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$",
"type": "string"
},
{
"pattern": "^#?[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$",
"type": "string"
}
],
"default": "FFD60A"
},
"position": {
"default": "bottom",
"enum": [
"bottom",
"bottom-left",
"bottom-right",
"center",
"left",
"right",
"top",
"top-left",
"top-right"
],
"type": "string"
},
"provider": {
"default": "auto",
"enum": [
"auto",
"aws",
"gcp",
"replicate"
],
"type": "string"
},
"source_language": {
"default": "en-US",
"type": "string"
},
"style": {
"default": "plain",
"description": "Plain burns in SRT captions. Social uses timestamped JSON for uppercase Poppins captions with the active word highlighted, automatic fitting and lower-third positioning. Both return SRT cues and the captioned video; social also returns the JSON transcript. highlight_color applies only to social. An explicit font_size overrides automatic fitting; plain defaults to size 16.",
"enum": [
"plain",
"social"
],
"type": "string"
},
"target_language": {
"description": "\nSets the spoken language hint for the `\"replicate\"` provider. Omit this parameter to detect the spoken language automatically. Set it to the full lowercase English language name, such as `\"french\"`, when the spoken language is known. Despite its name, this parameter does not translate speech.\n\nFor the `\"aws\"` and `\"gcp\"` providers, use `source_language` instead.\n",
"type": "string"
},
"vocabulary": {
"anyOf": [
{
"items": {
"minLength": 1,
"type": "string"
},
"maxItems": 50,
"type": "array",
"x-transloadit-input-fidelity": "conservative"
},
{
"type": "string"
}
],
"default": [],
"description": "Spelling hints for brand names, jargon and proper nouns. Accepts an array, or a comma-separated string for CLI --field vocabulary=Transloadit,Uppy. Use a native array for terms containing commas. Repeated CLI flags with the same name replace earlier values. Empty means no hints. Up to 50 unique terms (ignoring case), each 1–100 characters after trimming, without control characters. Terms joined with comma-space must fit within 200 UTF-8 bytes. Supported by Replicate and GCP; AWS rejects nonempty vocabulary. Hints improve recognition without guaranteeing it; exact matches use the supplied casing.",
"x-transloadit-input-fidelity": "conservative"
}
},
"type": "object"
}
}builtin/capture-webpage@0.0.1
{
"content": {
"allow_steps_override": false,
"fields": {
"delay": 0,
"format": "png",
"fullpage": true,
"height": 768,
"url": null,
"wait_until": "networkidle",
"width": 1024
},
"steps": {
":original": {
"robot": "/upload/handle"
},
"captured": {
"delay": "${fields.delay}",
"format": "${fields.format}",
"fullpage": "${Boolean(fields.fullpage)}",
"height": "${fields.height}",
"result": true,
"robot": "/html/convert",
"url": "${fields.url ?? null}",
"use": ":original",
"wait_until": "${fields.wait_until}",
"width": "${fields.width}"
}
}
},
"fields_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"properties": {
"delay": {
"default": 0,
"minimum": 0,
"type": "integer"
},
"format": {
"default": "png",
"enum": [
"jpeg",
"jpg",
"pdf",
"png"
],
"type": "string"
},
"fullpage": {
"default": true,
"type": "boolean"
},
"height": {
"default": 768,
"minimum": 1,
"type": "integer"
},
"url": {
"anyOf": [
{
"pattern": "^[Hh][Tt][Tt][Pp][Ss]?:\\/\\/(?:[^ ]|[ ])",
"type": "string",
"x-transloadit-input-fidelity": "conservative"
},
{
"type": "null"
}
],
"default": null,
"description": "Public HTTP(S) URL to capture. Omit or use null to capture uploaded HTML."
},
"wait_until": {
"default": "networkidle",
"enum": [
"domcontentloaded",
"load",
"networkidle",
"commit"
],
"type": "string"
},
"width": {
"default": 1024,
"minimum": 1,
"type": "integer"
}
},
"type": "object",
"x-transloadit-input-fidelity": "conservative"
}
}builtin/convert-to-pdf@0.0.1
{
"content": {
"allow_steps_override": false,
"fields": {
"markdown_format": "gfm",
"markdown_theme": "github",
"pdf_format": "Letter",
"pdf_margin": "6.25mm,6.25mm,14.11mm,6.25mm",
"pdf_print_background": true
},
"steps": {
":original": {
"robot": "/upload/handle"
},
"pdf": {
"format": "pdf",
"markdown_format": "${fields.markdown_format}",
"markdown_theme": "${fields.markdown_theme}",
"pdf_format": "${fields.pdf_format}",
"pdf_margin": "${fields.pdf_margin}",
"pdf_print_background": "${Boolean(fields.pdf_print_background)}",
"result": true,
"robot": "/document/convert",
"use": ":original"
}
}
},
"fields_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"properties": {
"markdown_format": {
"default": "gfm",
"enum": [
"commonmark",
"gfm"
],
"type": "string"
},
"markdown_theme": {
"default": "github",
"enum": [
"bare",
"github"
],
"type": "string"
},
"pdf_format": {
"anyOf": [
{
"maxLength": 2,
"minLength": 2,
"pattern": "^[aA]0$",
"type": "string"
},
{
"maxLength": 2,
"minLength": 2,
"pattern": "^[aA]1$",
"type": "string"
},
{
"maxLength": 2,
"minLength": 2,
"pattern": "^[aA]2$",
"type": "string"
},
{
"maxLength": 2,
"minLength": 2,
"pattern": "^[aA]3$",
"type": "string"
},
{
"maxLength": 2,
"minLength": 2,
"pattern": "^[aA]4$",
"type": "string"
},
{
"maxLength": 2,
"minLength": 2,
"pattern": "^[aA]5$",
"type": "string"
},
{
"maxLength": 2,
"minLength": 2,
"pattern": "^[aA]6$",
"type": "string"
},
{
"maxLength": 6,
"minLength": 6,
"pattern": "^[lL][eE][dD][gG][eE][rR]$",
"type": "string"
},
{
"maxLength": 5,
"minLength": 5,
"pattern": "^[lL][eE][gG][aA][lL]$",
"type": "string"
},
{
"maxLength": 6,
"minLength": 6,
"pattern": "^[lL][eE][tT][tT][eE][rR]$",
"type": "string"
},
{
"maxLength": 7,
"minLength": 7,
"pattern": "^[tT][aA][bB][lL][oO][iI][dD]$",
"type": "string"
}
],
"default": "Letter"
},
"pdf_margin": {
"default": "6.25mm,6.25mm,14.11mm,6.25mm",
"type": "string"
},
"pdf_print_background": {
"default": true,
"type": "boolean"
}
},
"type": "object"
}
}builtin/encode-hls-video@0.0.1
{
"content": {
"steps": {
":original": {
"robot": "/upload/handle"
},
"adaptive": {
"playlist_name": "my_playlist.m3u8",
"robot": "/video/adaptive",
"technique": "hls",
"use": {
"bundle_steps": true,
"steps": [
"low",
"mid",
"high"
]
}
},
"high": {
"ffmpeg_stack": "v7.0.0",
"preset": "hls-540p",
"result": true,
"robot": "/video/encode",
"turbo": true,
"use": ":original"
},
"low": {
"ffmpeg_stack": "v7.0.0",
"preset": "hls-270p",
"result": true,
"robot": "/video/encode",
"turbo": true,
"use": ":original"
},
"mid": {
"ffmpeg_stack": "v7.0.0",
"preset": "hls-360p",
"result": true,
"robot": "/video/encode",
"turbo": true,
"use": ":original"
}
}
},
"fields_schema": null
}builtin/encode-video@0.0.1
{
"content": {
"allow_steps_override": false,
"fields": {
"preset": "web/mp4/720p",
"turbo": true
},
"steps": {
":original": {
"robot": "/upload/handle"
},
"encoded": {
"result": true,
"robot": "/file/filter",
"use": [
"preset_encoded",
"sized_encoded"
]
},
"preset_encoded": {
"ffmpeg_stack": "v7",
"preset": "${fields.preset}",
"robot": "/video/encode",
"turbo": "${Boolean(fields.turbo)}",
"use": "preset_inputs"
},
"preset_inputs": {
"declines": [
[
"${fields.width}",
"!empty",
""
],
[
"${fields.height}",
"!empty",
""
]
],
"error_on_decline": false,
"robot": "/file/filter",
"use": ":original"
},
"sized_encoded": {
"ffmpeg_stack": "v7",
"height": "${fields.height || null}",
"preset": "${fields.preset}",
"robot": "/video/encode",
"turbo": "${Boolean(fields.turbo)}",
"use": "sized_inputs",
"width": "${fields.width || null}"
},
"sized_inputs": {
"accepts": [
[
"${fields.width}",
"!empty",
""
],
[
"${fields.height}",
"!empty",
""
]
],
"error_on_decline": false,
"robot": "/file/filter",
"use": ":original"
}
}
},
"fields_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"properties": {
"height": {
"anyOf": [
{
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"description": "\nHeight of the new video, in pixels.\n\nIf the value is not specified and the `preset` parameter is available, the `preset`'s [supplied height](/docs/presets/video/) will be implemented.\n"
},
"preset": {
"default": "web/mp4/720p",
"enum": [
"ipad",
"web/mp4/1080p",
"web/mp4/240p",
"web/mp4/360p",
"web/mp4/480p",
"web/mp4/4k",
"web/mp4/540p",
"web/mp4/720p",
"web/mp4/8k",
"web/webm/1080p",
"web/webm/240p",
"web/webm/360p",
"web/webm/480p",
"web/webm/4k",
"web/webm/720p",
"web/webm/8k",
"webm"
],
"type": "string"
},
"turbo": {
"default": true,
"type": "boolean"
},
"width": {
"anyOf": [
{
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"description": "\nWidth of the new video, in pixels.\n\nIf the value is not specified and the `preset` parameter is available, the `preset`'s [supplied width](/docs/presets/video/) will be implemented.\n"
}
},
"type": "object"
}
}builtin/extract-text@0.0.1
{
"content": {
"allow_steps_override": false,
"fields": {
"ocr_provider": "aws",
"text_format": "txt",
"text_granularity": "document",
"text_method": "auto"
},
"steps": {
":original": {
"robot": "/upload/handle"
},
"converted_pdf": {
"format": "pdf",
"robot": "/document/convert",
"use": "office"
},
"document_text": {
"extract": [
"text"
],
"ocr_provider": "${fields.ocr_provider}",
"result": true,
"robot": "/document/extract",
"text_format": "${fields.text_format}",
"text_method": "${fields.text_method}",
"use": "ocr_documents"
},
"image_text": {
"format": "${fields.text_format === \"txt\" ? \"text\" : \"json\"}",
"granularity": "full",
"provider": "${fields.ocr_provider}",
"result": true,
"robot": "/image/ocr",
"use": "images"
},
"images": {
"accepts": [
[
"${file.type}",
"===",
"image"
]
],
"error_on_decline": false,
"robot": "/file/filter",
"use": ":original"
},
"native_documents": {
"accepts": [
[
"${fields.text_method}",
"===",
"native"
]
],
"error_on_decline": false,
"robot": "/file/filter",
"use": [
"pdfs",
"converted_pdf"
]
},
"native_text": {
"extract": [
"text"
],
"page_range": "${fields.page_range || \"\"}",
"password": "${fields.password || \"\"}",
"result": true,
"robot": "/document/extract",
"text_format": "${fields.text_format}",
"text_granularity": "${fields.text_granularity}",
"text_method": "native",
"use": "native_documents"
},
"ocr_documents": {
"declines": [
[
"${fields.text_method}",
"===",
"native"
]
],
"error_on_decline": false,
"robot": "/file/filter",
"use": [
"pdfs",
"converted_pdf"
]
},
"office": {
"accepts": [
[
[
"text/markdown",
"application/msword",
"application/vnd.openxmlformats",
"application/officedocument.wordprocessingml.document",
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"text/html",
"application/xhtml+xml",
"text/xml",
"image/jpg",
"image/jpeg",
"image/gif",
"image/png",
"image/svg",
"image/svg+xml",
"application/postscript",
"application/postscript",
"application/postscript",
"text/plain",
"text/plain",
"text/comma-separated-values",
"text/csv",
"application/excel",
"application/vnd.ms-excel",
"application/excel",
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"application/excel",
"application/oda",
"application/odt",
"application/vnd.oasis.opendocument.text",
"application/vnd.oasis.opendocument.graphics",
"application/odd",
"application/ott",
"application/mspowerpoint",
"application/vnd.ms-powerpoint",
"application/vnd.openxmlformats-officedocument.presentationml.presentation",
"application/mspowerpoint",
"application/mspowerpoint",
"application/mspowerpoint",
"application/rtf",
"text/rtf",
"text/richtext",
"application/x-latex"
],
"includes",
"${file.mime}"
]
],
"declines": [
[
"${file.type}",
"===",
"image"
],
[
"${file.mime}",
"===",
"application/pdf"
]
],
"error_on_decline": false,
"robot": "/file/filter",
"use": ":original"
},
"pdfs": {
"accepts": [
[
"${file.mime}",
"===",
"application/pdf"
]
],
"error_on_decline": false,
"robot": "/file/filter",
"use": ":original"
}
}
},
"fields_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"properties": {
"ocr_provider": {
"default": "aws",
"enum": [
"aws",
"gcp"
],
"type": "string"
},
"page_range": {
"description": "\nOptional comma-separated page selection, such as `\"1\"`, `\"1-3\"`, or `\"1,3-5\"`. Page numbers start at 1. Ranges are clamped to the detected page count.\n\nAt most 1,000 selected pages are allowed per job.\n\nThis is supported for native text extraction and embedded image extraction. OCR extraction currently works on the full document.\n",
"pattern": "^[\\x09-\\x0D\\x20\\xA0
]*[0-9]+(?:[\\x09-\\x0D\\x20\\xA0
]*-[\\x09-\\x0D\\x20\\xA0
]*[0-9]+)?(?:[\\x09-\\x0D\\x20\\xA0
]*,[\\x09-\\x0D\\x20\\xA0
]*[0-9]+(?:[\\x09-\\x0D\\x20\\xA0
]*-[\\x09-\\x0D\\x20\\xA0
]*[0-9]+)?)*[\\x09-\\x0D\\x20\\xA0
]*$",
"type": "string"
},
"password": {
"description": "\nPassword used to unlock encrypted PDFs for native text extraction and embedded image extraction. OCR extraction currently does not support encrypted PDFs, so do not combine this with `text_method: \"ocr\"` or `text_method: \"auto\"`.\n",
"type": "string"
},
"text_format": {
"default": "txt",
"enum": [
"txt",
"json"
],
"type": "string"
},
"text_granularity": {
"default": "document",
"enum": [
"document",
"page"
],
"type": "string"
},
"text_method": {
"default": "auto",
"enum": [
"native",
"ocr",
"auto"
],
"type": "string"
}
},
"type": "object",
"x-transloadit-input-fidelity": "conservative"
}
}builtin/generate-image@0.0.1
{
"content": {
"steps": {
"generate": {
"model": "google/nano-banana-pro",
"prompt": "${fields.prompt}",
"result": true,
"robot": "/image/generate"
}
}
},
"fields_schema": null
}builtin/generate-video@0.0.1
{
"content": {
"steps": {
"generate": {
"format": "mp4",
"model": "minimax/video-01",
"prompt": "${fields.prompt}",
"result": true,
"robot": "/video/generate"
}
}
},
"fields_schema": null
}builtin/prepare-image@0.0.1
{
"content": {
"allow_steps_override": false,
"fields": {
"bg": "#00000000",
"f": "webp",
"h": 1600,
"q": 75,
"r": "fit",
"strip": true,
"w": 1600
},
"steps": {
":original": {
"robot": "/upload/handle"
},
"prepared": {
"background": "${fields.bg}",
"format": "${fields.f}",
"height": "${fields.h}",
"imagemagick_stack": "v3.0.1",
"quality": "${fields.q}",
"resize_strategy": "${fields.r}",
"result": true,
"robot": "/image/resize",
"rotation": "auto",
"strip": "${Boolean(fields.strip)}",
"use": ":original",
"width": "${fields.w}",
"zoom": false
}
}
},
"fields_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"properties": {
"bg": {
"default": "#00000000",
"pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
"type": "string"
},
"f": {
"default": "webp",
"enum": [
"avif",
"gif",
"jpeg",
"jpg",
"png",
"webp"
],
"type": "string"
},
"h": {
"anyOf": [
{
"maximum": 8000,
"minimum": 1,
"type": "integer"
},
{
"pattern": "^[1-9][0-9]*$",
"type": "string",
"x-transloadit-input-fidelity": "conservative"
}
],
"default": 1600
},
"q": {
"anyOf": [
{
"maximum": 100,
"minimum": 1,
"type": "integer"
},
{
"pattern": "^(?:[1-9]|[1-9][0-9]|100)$",
"type": "string"
}
],
"default": 75
},
"r": {
"default": "fit",
"enum": [
"fillcrop",
"fit",
"min_fit",
"pad",
"stretch"
],
"type": "string"
},
"strip": {
"default": true,
"description": "Strip metadata. To disable, pass the JSON boolean false in params.fields.strip.",
"type": "boolean"
},
"w": {
"anyOf": [
{
"maximum": 8000,
"minimum": 1,
"type": "integer"
},
{
"pattern": "^[1-9][0-9]*$",
"type": "string",
"x-transloadit-input-fidelity": "conservative"
}
],
"default": 1600
}
},
"type": "object",
"x-transloadit-input-fidelity": "conservative"
}
}builtin/public-preview@0.0.2
{
"content": {
"allow_steps_override": false,
"fields": {
"bg": "#ffffff",
"f": "jpg",
"h": 300,
"q": 75,
"r": "pad",
"w": 400
},
"steps": {
"imported": {
"asset_id": "${fields.input}",
"robot": "/transloadit/import",
"version_id": "${fields.v}"
},
"optimized": {
"background": "${fields.bg}",
"format": "${fields.f}",
"imagemagick_stack": "v3.0.1",
"quality": "${fields.q}",
"robot": "/image/resize",
"strip": true,
"use": "previewed"
},
"previewed": {
"background": "${fields.bg}",
"format": "png",
"height": "${fields.h}",
"resize_strategy": "${fields.r}",
"robot": "/file/preview",
"use": "imported",
"waveform_center_color": "0099ccff",
"waveform_height": "${fields.h}",
"waveform_outer_color": "0099ccff",
"waveform_width": "${fields.w}",
"width": "${fields.w}"
},
"served": {
"robot": "/file/serve",
"use": "optimized"
}
}
},
"fields_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"bg": {
"pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
"type": "string"
},
"cdn": {
"const": "required",
"type": "string"
},
"f": {
"enum": [
"avif",
"gif",
"jpeg",
"jpg",
"png",
"webp"
],
"type": "string"
},
"h": {
"anyOf": [
{
"allOf": [
{
"maximum": 8000,
"minimum": 1,
"type": "integer"
},
{
"maximum": 4096,
"type": "number"
}
]
},
{
"pattern": "^[1-9][0-9]*$",
"type": "string",
"x-transloadit-input-fidelity": "conservative"
}
],
"x-transloadit-input-fidelity": "conservative"
},
"input": {
"description": "Case-sensitive, canonical 22-character Base64URL DAM identifier.",
"pattern": "^[A-Za-z0-9_-]{21}[AQgw]$",
"type": "string",
"x-transloadit-description-id": "damId"
},
"q": {
"anyOf": [
{
"allOf": [
{
"maximum": 100,
"minimum": 1,
"type": "integer"
},
{
"maximum": 85,
"type": "number"
}
]
},
{
"pattern": "^(?:[1-9]|[1-9][0-9]|100)$",
"type": "string"
}
],
"x-transloadit-input-fidelity": "conservative"
},
"r": {
"enum": [
"fillcrop",
"fit",
"pad",
"stretch"
],
"type": "string"
},
"v": {
"description": "Case-sensitive, canonical 22-character Base64URL DAM identifier.",
"pattern": "^[A-Za-z0-9_-]{21}[AQgw]$",
"type": "string",
"x-transloadit-description-id": "damId"
},
"w": {
"anyOf": [
{
"allOf": [
{
"maximum": 8000,
"minimum": 1,
"type": "integer"
},
{
"maximum": 4096,
"type": "number"
}
]
},
{
"pattern": "^[1-9][0-9]*$",
"type": "string",
"x-transloadit-input-fidelity": "conservative"
}
],
"x-transloadit-input-fidelity": "conservative"
}
},
"required": [
"bg",
"f",
"h",
"input",
"q",
"r",
"w",
"v"
],
"type": "object"
}
}builtin/public-serve@0.0.2
{
"content": {
"allow_steps_override": false,
"steps": {
"imported": {
"asset_id": "${fields.input}",
"robot": "/transloadit/import",
"version_id": "${fields.v}"
},
"served": {
"robot": "/file/serve",
"use": "imported"
}
}
},
"fields_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"cdn": {
"const": "required",
"type": "string"
},
"input": {
"description": "Case-sensitive, canonical 22-character Base64URL DAM identifier.",
"pattern": "^[A-Za-z0-9_-]{21}[AQgw]$",
"type": "string",
"x-transloadit-description-id": "damId"
},
"v": {
"description": "Case-sensitive, canonical 22-character Base64URL DAM identifier.",
"pattern": "^[A-Za-z0-9_-]{21}[AQgw]$",
"type": "string",
"x-transloadit-description-id": "damId"
}
},
"required": [
"input",
"v"
],
"type": "object"
}
}builtin/remove-background@0.0.1
{
"content": {
"allow_steps_override": false,
"fields": {
"format": "png",
"provider": "auto",
"select": "foreground"
},
"steps": {
":original": {
"robot": "/upload/handle"
},
"foreground": {
"format": "${fields.format}",
"provider": "${fields.provider}",
"result": true,
"robot": "/image/bgremove",
"select": "${fields.select}",
"use": ":original"
}
}
},
"fields_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"properties": {
"format": {
"default": "png",
"enum": [
"png",
"gif",
"webp"
],
"type": "string"
},
"provider": {
"default": "auto",
"enum": [
"auto",
"transloadit",
"replicate",
"fal"
],
"type": "string"
},
"select": {
"default": "foreground",
"enum": [
"foreground",
"background"
],
"type": "string"
}
},
"type": "object",
"x-transloadit-input-fidelity": "conservative"
}
}builtin/storage-preview@0.0.3
{
"content": {
"allow_steps_override": false,
"fields": {
"bg": "#ffffff",
"f": "jpg",
"h": 300,
"q": 75,
"r": "pad",
"w": 400
},
"steps": {
"imported": {
"asset_id": "${fields.input}",
"robot": "/transloadit/import",
"version_id": "${fields.v}"
},
"optimized": {
"background": "${fields.bg}",
"format": "${fields.f}",
"imagemagick_stack": "v3.0.1",
"quality": "${fields.q}",
"robot": "/image/resize",
"strip": true,
"use": "previewed"
},
"previewed": {
"background": "${fields.bg}",
"format": "png",
"height": "${fields.h}",
"resize_strategy": "${fields.r}",
"robot": "/file/preview",
"use": "imported",
"waveform_center_color": "0099ccff",
"waveform_height": "${fields.h}",
"waveform_outer_color": "0099ccff",
"waveform_width": "${fields.w}",
"width": "${fields.w}"
},
"served": {
"robot": "/file/serve",
"use": "optimized"
}
}
},
"fields_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"bg": {
"pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
"type": "string"
},
"cdn": {
"const": "required",
"type": "string"
},
"f": {
"enum": [
"avif",
"gif",
"jpeg",
"jpg",
"png",
"webp"
],
"type": "string"
},
"h": {
"anyOf": [
{
"maximum": 8000,
"minimum": 1,
"type": "integer"
},
{
"pattern": "^[1-9][0-9]*$",
"type": "string",
"x-transloadit-input-fidelity": "conservative"
}
]
},
"input": {
"description": "Case-sensitive, canonical 22-character Base64URL DAM identifier.",
"pattern": "^[A-Za-z0-9_-]{21}[AQgw]$",
"type": "string",
"x-transloadit-description-id": "damId"
},
"q": {
"anyOf": [
{
"maximum": 100,
"minimum": 1,
"type": "integer"
},
{
"pattern": "^(?:[1-9]|[1-9][0-9]|100)$",
"type": "string"
}
]
},
"r": {
"enum": [
"fillcrop",
"fit",
"min_fit",
"pad",
"stretch"
],
"type": "string"
},
"v": {
"description": "Case-sensitive, canonical 22-character Base64URL DAM identifier.",
"pattern": "^[A-Za-z0-9_-]{21}[AQgw]$",
"type": "string",
"x-transloadit-description-id": "damId"
},
"w": {
"anyOf": [
{
"maximum": 8000,
"minimum": 1,
"type": "integer"
},
{
"pattern": "^[1-9][0-9]*$",
"type": "string",
"x-transloadit-input-fidelity": "conservative"
}
]
}
},
"required": [
"bg",
"f",
"h",
"input",
"q",
"r",
"w",
"v"
],
"type": "object"
}
}builtin/storage-serve@0.0.3
{
"content": {
"allow_steps_override": false,
"fields": {
"download": ""
},
"steps": {
"imported": {
"asset_id": "${fields.input}",
"robot": "/transloadit/import",
"version_id": "${fields.v}"
},
"served": {
"download_name": "${fields.download}",
"robot": "/file/serve",
"use": "imported"
}
}
},
"fields_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"cdn": {
"const": "required",
"type": "string"
},
"download": {
"pattern": "^[^/\\\\\u0000-\u001f-]{0,255}$",
"type": "string"
},
"input": {
"description": "Case-sensitive, canonical 22-character Base64URL DAM identifier.",
"pattern": "^[A-Za-z0-9_-]{21}[AQgw]$",
"type": "string",
"x-transloadit-description-id": "damId"
},
"v": {
"description": "Case-sensitive, canonical 22-character Base64URL DAM identifier.",
"pattern": "^[A-Za-z0-9_-]{21}[AQgw]$",
"type": "string",
"x-transloadit-description-id": "damId"
}
},
"required": [
"download",
"input",
"v"
],
"type": "object"
}
}builtin/transcribe@0.0.2
{
"content": {
"allow_steps_override": false,
"fields": {
"format": "json",
"provider": "auto",
"source_language": "en-US",
"vocabulary": []
},
"steps": {
":original": {
"robot": "/upload/handle"
},
"transcript": {
"format": "${fields.format}",
"provider": "${fields.provider}",
"result": true,
"robot": "/speech/transcribe",
"source_language": "${fields.source_language}",
"target_language": "${fields.target_language || \"\"}",
"use": ":original",
"vocabulary": "${Array.isArray(fields.vocabulary) ? fields.vocabulary : fields.vocabulary.trim() === \"\" ? [] : fields.vocabulary.split(\",\")}"
}
}
},
"fields_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"properties": {
"format": {
"default": "json",
"enum": [
"json",
"srt",
"text",
"webvtt"
],
"type": "string"
},
"provider": {
"default": "auto",
"enum": [
"auto",
"aws",
"gcp",
"replicate"
],
"type": "string"
},
"source_language": {
"default": "en-US",
"type": "string"
},
"target_language": {
"description": "\nSets the spoken language hint for the `\"replicate\"` provider. Omit this parameter to detect the spoken language automatically. Set it to the full lowercase English language name, such as `\"french\"`, when the spoken language is known. Despite its name, this parameter does not translate speech.\n\nFor the `\"aws\"` and `\"gcp\"` providers, use `source_language` instead.\n",
"type": "string"
},
"vocabulary": {
"anyOf": [
{
"items": {
"minLength": 1,
"type": "string"
},
"maxItems": 50,
"type": "array",
"x-transloadit-input-fidelity": "conservative"
},
{
"type": "string"
}
],
"default": [],
"description": "Spelling hints for brand names, jargon and proper nouns. Accepts an array, or a comma-separated string for CLI --field vocabulary=Transloadit,Uppy. Use a native array for terms containing commas. Repeated CLI flags with the same name replace earlier values. Empty means no hints. Up to 50 unique terms (ignoring case), each 1–100 characters after trimming, without control characters. Terms joined with comma-space must fit within 200 UTF-8 bytes. Supported by Replicate and GCP; AWS rejects nonempty vocabulary. Hints improve recognition without guaranteeing it; exact matches use the supplied casing.",
"x-transloadit-input-fidelity": "conservative"
}
},
"type": "object"
}
}builtin/video-covers@0.0.1
{
"content": {
"allow_steps_override": false,
"fields": {
"count": 8,
"format": "jpeg",
"offsets": [],
"smart": false,
"smart_max_candidates": 20
},
"steps": {
":original": {
"robot": "/upload/handle"
},
"covers": {
"count": "${fields.count}",
"format": "${fields.format}",
"height": "${fields.height || null}",
"offsets": "${fields.offsets?.length ? fields.offsets : null}",
"result": true,
"robot": "/video/thumbs",
"smart": "${Boolean(fields.smart)}",
"smart_max_candidates": "${fields.smart_max_candidates}",
"use": ":original",
"width": "${fields.width || null}"
}
}
},
"fields_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"properties": {
"count": {
"default": 8,
"maximum": 999,
"minimum": 1,
"type": "integer"
},
"format": {
"default": "jpeg",
"enum": [
"jpeg",
"jpg",
"png"
],
"type": "string"
},
"height": {
"anyOf": [
{
"maximum": 1920,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"description": "\nThe thumbnail height in pixels, capped like `width`. Omit or use `null` for the original height.\n"
},
"offsets": {
"anyOf": [
{
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"items": {
"pattern": "^[0-9]+%$",
"type": "string"
},
"type": "array"
}
]
},
{
"type": "null"
}
],
"default": []
},
"smart": {
"default": false,
"type": "boolean"
},
"smart_max_candidates": {
"default": 20,
"maximum": 100,
"minimum": 2,
"type": "integer"
},
"width": {
"anyOf": [
{
"maximum": 1920,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"description": "\nThe width of the thumbnail, in pixels. Omit or use `null` for the original width of the video.\n"
}
},
"type": "object"
}
}