Builtin Templates
Templates geralmente são algo que você cria e gerencia no
seu próprio Workspace. Os Builtin Templates são diferentes: eles são mantidos pela Transloadit,
ficam dentro da API2 e podem ser referenciados por template_id como qualquer outro
Template.
Use os Builtin Templates quando quiser um ponto de partida estável e versionado para transformações comuns sem precisar criar um Template antes.
Nomes que começam com builtin/ são reservados para os Builtin Templates. Você
não pode criar, editar ou excluir Templates com esse prefixo de nome.
Usar um Builtin Template
Defina template_id com um slug builtin:
{
"template_id": "builtin/encode-hls-video",
"steps": {}
}
Observações:
stepsé opcional. Sobrescritas de Steps são permitidas, a menos que as Instructions do Builtin Template abaixo definamallow_steps_overridecomofalse.- Use
builtin/<name>para resolver para a versão mais recente conhecida. - Use
builtin/<name>@latestpara um alias explícito para a versão mais recente conhecida. - Use
builtin/<name>@<version>para fixar uma versão específica.
Listar Builtin Templates
Os Builtin Templates podem ser incluídos em GET /templates usando o parâmetro de
consulta include_builtin. Consulte a API de
listagem de Templates para mais detalhes.
Builtin Templates disponíveis
| Slug | Descrição | Campos obrigatórios | Campos opcionais |
|---|---|---|---|
builtin/caption-video
| Transcreva vídeos enviados por upload e incorpore legendas simples (padrão) ou legendas para redes sociais com texto em Poppins maiúsculo e destaque da palavra ativa. Retorna o vídeo legendado e as marcações SRT; o estilo para redes sociais também retorna JSON com marcações de tempo da mesma transcrição. Defina highlight_color para a cor de destaque do estilo para redes sociais. Omita font_size para ajuste automático nesse estilo; o estilo simples usa 16 por padrão. vocabulary fornece sugestões de grafia com Replicate ou GCP; a AWS rejeita vocabulary não vazio. Na CLI, execute transloadit assemblies create --template builtin/caption-video@0.0.2 --field style=social --field vocabulary=Transloadit -i video.mp4 -o out/. Para várias sugestões, use --field vocabulary=Transloadit,Uppy; flags vocabulary repetidas substituem os valores anteriores. Quem chama a API pode passar um array, incluindo termos que contêm vírgulas. Os campos de idioma descrevem a fala, nunca uma tradução. | Nenhum | fields.border_color (padrão: "000000"), fields.font_color (padrão: "FFFFFF"), fields.font_size, fields.highlight_color (padrão: "FFD60A"), fields.position (padrão: "bottom"), fields.provider (padrão: "auto"), fields.source_language (padrão: "en-US"), fields.style (padrão: "plain"), fields.target_language e fields.vocabulary (padrão: []) |
builtin/capture-webpage
| Capture uma página pública HTTP(S) ou HTML enviado por upload como PNG, JPEG ou PDF. Por padrão, gera um PNG da página inteira com 1.024 pixels de largura. Defina fullpage como false para uma área de visualização fixa. Uma URL tem precedência sobre o HTML enviado por upload. Cabeçalhos de requisição personalizados, ações do navegador e credenciais não são enviados por este Template integrado. | Nenhum | fields.delay (padrão: 0), fields.format (padrão: "png"), fields.fullpage (padrão: true), fields.height (padrão: 768), fields.url (padrão: null), fields.wait_until (padrão: "networkidle") e fields.width (padrão: 1024) |
builtin/convert-to-pdf
| Converta documentos do Office, HTML, Markdown e texto enviados por upload em PDF usando o Robot de conversão de documentos. O Markdown usa as configurações existentes de formato e tema. O tamanho do papel, as margens e a impressão de fundo se aplicam à renderização de HTML e Markdown; documentos do Office e texto mantêm o layout nativo do conversor. | Nenhum | fields.markdown_format (padrão: "gfm"), fields.markdown_theme (padrão: "github"), fields.pdf_format (padrão: "Letter"), fields.pdf_margin (padrão: "6.25mm,6.25mm,14.11mm,6.25mm") e fields.pdf_print_background (padrão: true) |
builtin/encode-hls-video
| Codifica um vídeo de entrada em versões HLS (270p, 360p, 540p) com uma playlist adaptativa. | Nenhum | Nenhum |
builtin/encode-video
| Codifique vídeos enviados por upload para a web com as predefinições existentes de MP4 e WebM. Por padrão, usa MP4 em 720p com codificação turbo. Cada dimensão fornecida substitui a dimensão correspondente da predefinição; uma dimensão omitida mantém o valor da predefinição. O tamanho da saída depende da origem e da predefinição; não é um limite rígido de bytes. | Nenhum | fields.height, fields.preset (padrão: "web/mp4/720p"), fields.turbo (padrão: true) e fields.width |
builtin/extract-text
| Extraia texto legível ou JSON de imagens, PDFs e documentos do Office enviados por upload. As imagens usam OCR; os documentos do Office são convertidos primeiro em PDF. Por padrão, a extração de documentos tenta obter o texto nativo antes do OCR, usando a AWS, a menos que o GCP seja selecionado. Senhas, seleção de páginas e agrupamento por página exigem extração nativa de documentos. Formatos de entrada não compatíveis são ignorados. | Nenhum | fields.ocr_provider (padrão: "aws"), fields.page_range, fields.password, fields.text_format (padrão: "txt"), fields.text_granularity (padrão: "document") e fields.text_method (padrão: "auto") |
builtin/generate-image
| Gera uma imagem a partir de um prompt usando /image/generate. | fields.prompt | Nenhum |
builtin/generate-video
| Gera um vídeo a partir de um prompt usando /video/generate. | fields.prompt | Nenhum |
builtin/prepare-image
| Prepare imagens enviadas por upload para um site: oriente automaticamente, ajuste para caber em 1600×1600, codifique como WebP com qualidade 75, remova metadados e preserve a transparência. Configure w/h (1–8000), f, q (1–100), r, bg e strip. Defina strip com um booleano JSON em params.fields.strip. A saída JPEG exige um bg opaco, como #ffffff. | Nenhum | fields.bg (padrão: "#00000000"), fields.f (padrão: "webp"), fields.h (padrão: 1600), fields.q (padrão: 75), fields.r (padrão: "fit"), fields.strip (padrão: true) e fields.w (padrão: 1600) |
builtin/public-preview
| Visualize uma versão exata retida no armazenamento sob um prefixo público declarado, com uma única codificação final da imagem. Exige fields.input (asset_id) e fields.v (version_id). A autorização usa o caminho atual do ativo. As transformações públicas são limitadas a 4.096 px e qualidade 85; versões verificadas permitem armazenamento em cache imutável. | fields.input e fields.v | fields.bg (padrão: "#ffffff"), fields.cdn, fields.f (padrão: "jpg"), fields.h (padrão: 300), fields.q (padrão: 75), fields.r (padrão: "pad") e fields.w (padrão: 400) |
builtin/public-serve
| Sirva uma versão exata retida no armazenamento sob um prefixo público declarado. Exige fields.input (asset_id) e fields.v (version_id). A autorização usa o caminho atual do ativo; versões verificadas permitem armazenamento em cache imutável. Os bytes em cache não podem ser revogados após a remoção do acesso. | fields.input e fields.v | fields.cdn |
builtin/remove-background
| Remova o fundo de fotos enviadas por upload, mantendo o primeiro plano como PNG transparente. Usa o provedor automático do Robot por padrão. Outros formatos ou a seleção de fundo exigem o provedor transloadit. | Nenhum | fields.format (padrão: "png"), fields.provider (padrão: "auto") e fields.select (padrão: "foreground") |
builtin/storage-preview
| Visualize uma versão exata retida no armazenamento. Exige fields.input (asset_id) e fields.v (version_id). Mantém os controles de visualização e a transparência da versão 0.0.2. Exige uma URL assinada; os IDs não concedem acesso. | fields.input e fields.v | fields.bg (padrão: "#ffffff"), fields.cdn, fields.f (padrão: "jpg"), fields.h (padrão: 300), fields.q (padrão: 75), fields.r (padrão: "pad") e fields.w (padrão: 400) |
builtin/storage-serve
| Sirva os bytes exatos retidos no armazenamento. Exige input (asset_id) e v (version_id) assinados. O parâmetro opcional download é um nome de arquivo Unicode para o anexo; quando omitido, o conteúdo é servido inline. Oferece suporte a HTTP Range sem transcodificação. | fields.input e fields.v | fields.cdn e fields.download (padrão: "") |
builtin/transcribe
| Transcreva áudio ou vídeo enviado por upload em JSON com marcações de tempo, texto simples, SRT ou WebVTT. Usa seleção automática de provedor. source_language é o código do idioma falado para AWS/GCP; target_language é uma indicação opcional do idioma falado para Replicate, nunca uma tradução. vocabulary fornece sugestões de grafia para nomes de marcas e jargões com Replicate ou GCP; a AWS rejeita vocabulary não vazio. Na CLI, execute transloadit assemblies create --template builtin/transcribe@0.0.2 --field vocabulary=Transloadit,Uppy -i audio.mp3 -o out/. Flags vocabulary repetidas substituem os valores anteriores. Quem chama a API pode passar um array, incluindo termos que contêm vírgulas. | Nenhum | fields.format (padrão: "json"), fields.provider (padrão: "auto"), fields.source_language (padrão: "en-US"), fields.target_language e fields.vocabulary (padrão: []) |
builtin/video-covers
| Extraia imagens de capa de vídeos em intervalos regulares ou posições exatas, com a opção de selecionar quadros de destaque por pontuação inteligente com IA. Usa os padrões e limites do Robot de miniaturas. Defina smart como o booleano JSON false para posições exatas; a seleção inteligente usa count em vez disso. Por padrão, as dimensões são as do vídeo de entrada. A pontuação com IA pode recorrer a uma alternativa, com um aviso na Assembly. | Nenhum | fields.count (padrão: 8), fields.format (padrão: "jpeg"), fields.height, fields.offsets (padrão: []), fields.smart (padrão: false), fields.smart_max_candidates (padrão: 20) e fields.width |
Instructions e 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",
"description": "Output format for this text-only Template. Images are not returned.",
"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.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}"
},
"previewed": {
"background": "${fields.bg}",
"format": "${fields.f}",
"height": "${fields.h}",
"optimize": false,
"quality": "${fields.q}",
"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": "previewed"
}
}
},
"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}",
"optimize": false,
"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"
}
}