Builtin Templates
Los Templates suelen ser elementos que creas y gestionas en tu propio Workspace.
Los Builtin Templates son diferentes: Transloadit se encarga de mantenerlos, se encuentran en API2 y
puedes hacer referencia a ellos mediante template_id, como con cualquier otro Template.
Usa Builtin Templates cuando quieras un punto de partida estable y con control de versiones para transformaciones comunes sin tener que crear primero un Template.
Los nombres que comienzan con builtin/ están reservados para Builtin Templates.
No puedes crear, editar ni eliminar Templates con ese prefijo de nombre.
Usa un Builtin Template
Establece template_id en un slug integrado:
{
"template_id": "builtin/encode-hls-video",
"steps": {}
}
Notas:
stepses opcional. Se permite sobrescribir Steps, salvo que las Instructions del Builtin Template que aparecen a continuación establezcanallow_steps_overrideenfalse.- Usa
builtin/<name>para resolver a la versión conocida más reciente. - Usa
builtin/<name>@latestcomo alias explícito de la versión conocida más reciente. - Usa
builtin/<name>@<version>para fijar una versión específica.
Enumera los Builtin Templates
Puedes incluir los Builtin Templates en GET /templates mediante el parámetro de consulta
include_builtin. Consulta la API de lista de Templates
para obtener más información.
Builtin Templates disponibles
| Identificador de URL | Descripción | Campos obligatorios | Campos opcionales |
|---|---|---|---|
builtin/caption-video
| Transcribe los videos subidos e incrusta subtítulos sencillos (opción predeterminada) o subtítulos para redes sociales con texto en Poppins en mayúsculas y resaltado de la palabra activa. Devuelve el video subtitulado y segmentos SRT; el estilo para redes sociales también devuelve JSON con marcas de tiempo de la misma transcripción. Configura highlight_color para el color de énfasis del estilo para redes sociales. Omite font_size para ajustar automáticamente ese estilo; el estilo sencillo usa 16 de forma predeterminada. vocabulary proporciona sugerencias ortográficas con Replicate o GCP; AWS rechaza vocabulary si no está vacío. En la CLI, ejecuta transloadit assemblies create --template builtin/caption-video@0.0.2 --field style=social --field vocabulary=Transloadit -i video.mp4 -o out/. Para varias sugerencias, usa --field vocabulary=Transloadit,Uppy; las opciones vocabulary repetidas reemplazan los valores anteriores. Quienes llaman a la API pueden pasar un array que incluya términos con comas. Los campos de idioma describen el habla, nunca una traducción. | Ninguno | fields.border_color (valor predeterminado: "000000"), fields.font_color (valor predeterminado: "FFFFFF"), fields.font_size, fields.highlight_color (valor predeterminado: "FFD60A"), fields.position (valor predeterminado: "bottom"), fields.provider (valor predeterminado: "auto"), fields.source_language (valor predeterminado: "en-US"), fields.style (valor predeterminado: "plain"), fields.target_language y fields.vocabulary (valor predeterminado: []) |
builtin/capture-webpage
| Captura una página web HTTP(S) pública o HTML subido como PNG, JPEG o PDF. De forma predeterminada, genera un PNG de página completa con 1024 píxeles de ancho. Configura fullpage como false para usar un área de visualización fija. Una URL tiene prioridad sobre el HTML subido. Este Template integrado no envía encabezados de solicitud personalizados, acciones del navegador ni credenciales. | Ninguno | fields.delay (valor predeterminado: 0), fields.format (valor predeterminado: "png"), fields.fullpage (valor predeterminado: true), fields.height (valor predeterminado: 768), fields.url (valor predeterminado: null), fields.wait_until (valor predeterminado: "networkidle") y fields.width (valor predeterminado: 1024) |
builtin/convert-to-pdf
| Convierte documentos de Office, HTML, Markdown y texto subidos a PDF con el Robot de conversión de documentos. Markdown utiliza los ajustes existentes de formato y tema. El tamaño del papel, los márgenes y la impresión de fondos se aplican a la renderización de HTML y Markdown; Office y texto conservan el diseño nativo del conversor. | Ninguno | fields.markdown_format (valor predeterminado: "gfm"), fields.markdown_theme (valor predeterminado: "github"), fields.pdf_format (valor predeterminado: "Letter"), fields.pdf_margin (valor predeterminado: "6.25mm,6.25mm,14.11mm,6.25mm") y fields.pdf_print_background (valor predeterminado: true) |
builtin/encode-hls-video
| Codificar un video de entrada en variantes HLS (270p, 360p, 540p) con una lista de reproducción adaptativa. | Ninguno | Ninguno |
builtin/encode-video
| Realiza el encoding de los videos subidos para la web con los ajustes preestablecidos existentes de MP4 y WebM. De forma predeterminada, genera MP4 a 720p con encoding turbo. Cada dimensión proporcionada reemplaza la dimensión correspondiente del ajuste preestablecido; si se omite una dimensión, se conserva su valor preestablecido. El tamaño de salida depende del archivo de origen y del ajuste preestablecido; no es un límite estricto de bytes. | Ninguno | fields.height, fields.preset (valor predeterminado: "web/mp4/720p"), fields.turbo (valor predeterminado: true) y fields.width |
builtin/extract-text
| Extrae texto legible o JSON de imágenes, PDF y documentos de Office subidos. Las imágenes utilizan OCR; los documentos de Office se convierten primero a PDF. De forma predeterminada, para los documentos se intenta extraer el texto nativo antes de recurrir a OCR, utilizando AWS a menos que se seleccione GCP. Las contraseñas, la selección de páginas y la agrupación por página requieren extracción nativa de documentos. Se omiten los formatos de entrada no compatibles. | Ninguno | fields.ocr_provider (valor predeterminado: "aws"), fields.page_range, fields.password, fields.text_format (valor predeterminado: "txt"), fields.text_granularity (valor predeterminado: "document") y fields.text_method (valor predeterminado: "auto") |
builtin/generate-image
| Generar una imagen a partir de un prompt mediante /image/generate. | fields.prompt | Ninguno |
builtin/generate-video
| Generar un video a partir de un prompt mediante /video/generate. | fields.prompt | Ninguno |
builtin/prepare-image
| Prepara las imágenes subidas para un sitio web: oriéntalas automáticamente, ajústalas dentro de 1600×1600, realiza su encoding como WebP con calidad 75, elimina los metadatos y conserva la transparencia. Configura w/h (1–8000), f, q (1–100), r, bg y strip. Establece strip con un booleano JSON en params.fields.strip. La salida JPEG requiere un bg opaco, como #ffffff. | Ninguno | fields.bg (valor predeterminado: "#00000000"), fields.f (valor predeterminado: "webp"), fields.h (valor predeterminado: 1600), fields.q (valor predeterminado: 75), fields.r (valor predeterminado: "fit"), fields.strip (valor predeterminado: true) y fields.w (valor predeterminado: 1600) |
builtin/public-preview
| Previsualiza una versión exacta conservada en el almacenamiento bajo un prefijo público declarado. Requiere fields.input (asset_id) y fields.v (version_id). La autorización utiliza la ruta actual del activo. Las transformaciones públicas están limitadas a 4096 px y calidad 85; las versiones verificadas permiten el almacenamiento en caché inmutable. | fields.input y fields.v | fields.bg (valor predeterminado: "#ffffff"), fields.cdn, fields.f (valor predeterminado: "jpg"), fields.h (valor predeterminado: 300), fields.q (valor predeterminado: 75), fields.r (valor predeterminado: "pad") y fields.w (valor predeterminado: 400) |
builtin/public-serve
| Sirve una versión exacta conservada en el almacenamiento bajo un prefijo público declarado. Requiere fields.input (asset_id) y fields.v (version_id). La autorización utiliza la ruta actual del activo; las versiones verificadas permiten el almacenamiento en caché inmutable. Los bytes almacenados en caché no se pueden retirar después de revocar el acceso. | fields.input y fields.v | fields.cdn |
builtin/remove-background
| Elimina el fondo de las fotos subidas y conserva el primer plano como PNG con transparencia. Utiliza el proveedor automático del Robot de forma predeterminada. Otros formatos o la selección del fondo requieren el proveedor transloadit. | Ninguno | fields.format (valor predeterminado: "png"), fields.provider (valor predeterminado: "auto") y fields.select (valor predeterminado: "foreground") |
builtin/storage-preview
| Previsualiza una versión exacta conservada en el almacenamiento. Requiere fields.input (asset_id) y fields.v (version_id). Conserva los controles de vista previa y la transparencia de 0.0.2. Requiere una URL firmada; los ID no otorgan acceso. | fields.input y fields.v | fields.bg (valor predeterminado: "#ffffff"), fields.cdn, fields.f (valor predeterminado: "jpg"), fields.h (valor predeterminado: 300), fields.q (valor predeterminado: 75), fields.r (valor predeterminado: "pad") y fields.w (valor predeterminado: 400) |
builtin/storage-serve
| Sirve los bytes exactos conservados en el almacenamiento. Requiere los parámetros firmados input (asset_id) y v (version_id). El parámetro opcional download es un nombre de archivo adjunto en Unicode; si se omite, el contenido se sirve para su visualización en línea. Admite HTTP Range sin transcodificación. | fields.input y fields.v | fields.cdn y fields.download (valor predeterminado: "") |
builtin/transcribe
| Transcribe audio o video subido a JSON con marcas de tiempo, texto sin formato, SRT o WebVTT. Utiliza la selección automática de proveedor. source_language es el código del idioma hablado para AWS/GCP; target_language es una sugerencia opcional del idioma hablado para Replicate, nunca una traducción. vocabulary proporciona sugerencias ortográficas para nombres de marcas y jerga con Replicate o GCP; AWS rechaza vocabulary si no está vacío. En la CLI, ejecuta transloadit assemblies create --template builtin/transcribe@0.0.2 --field vocabulary=Transloadit,Uppy -i audio.mp3 -o out/. Las opciones vocabulary repetidas reemplazan los valores anteriores. Quienes llaman a la API pueden pasar un array que incluya términos con comas. | Ninguno | fields.format (valor predeterminado: "json"), fields.provider (valor predeterminado: "auto"), fields.source_language (valor predeterminado: "en-US"), fields.target_language y fields.vocabulary (valor predeterminado: []) |
builtin/video-covers
| Extrae carátulas de video a intervalos regulares o en posiciones temporales exactas, con la opción de seleccionar fotogramas destacados mediante puntuación inteligente con IA. Utiliza los valores predeterminados y los límites del Robot de miniaturas. Configura smart como el booleano JSON false para usar posiciones temporales exactas; la selección inteligente utiliza count en su lugar. Las dimensiones predeterminadas son las del video de entrada. La puntuación con IA puede recurrir a un método alternativo con una advertencia en la Assembly. | Ninguno | fields.count (valor predeterminado: 8), fields.format (valor predeterminado: "jpeg"), fields.height, fields.offsets (valor predeterminado: []), fields.smart (valor predeterminado: false), fields.smart_max_candidates (valor predeterminado: 20) y fields.width |
Instructions y esquema de campos
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"
}
}