Recipes
List, create, and run background workflow recipes against retained artifacts or prior job outputs.
https://api.filemorf.com/api/public
Bearer API key created from the workspace.
Signed uploads, queued jobs, retained artifacts, refreshable URLs.
Automation
Recipes chain retained outputs in the background
Recipes are saved server-side workflows. They let you push repeated transformations into background execution without re-uploading intermediate files.
/recipes
List saved workflow recipes.
/recipes
Create a background workflow recipe through the public API.
/recipes/:id/runs
Run a saved recipe against a retained artifact or prior job output.
/recipe-runs/:id
Poll a workflow run and inspect step-level execution state.
Rules
Recipe execution has a few important constraints
The recipe engine is intentionally strict so run state remains resumable and predictable.
- Recipes run entirely on the server against retained artifacts.
- Recipes support up to 8 ordered steps.
- Intermediate steps must produce exactly one retained output artifact.
- pdf-split can only be used as the final recipe step.
- ocr can only be used as the final recipe step.
- A recipe run can start from an inputArtifactId directly or from an inputJobId plus inputOutputIndex.
Create
Create recipes through the API or the workspace
Public API recipe creation uses the same underlying validation as the workspace builder.
curl -X POST https://api.filemorf.com/api/public/recipes \
-H "Authorization: Bearer $FILEMORF_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "PDF to text then HTML",
"description": "Created through the public API",
"steps": [
{
"name": "PDF to text",
"jobType": "document-convert",
"config": {
"tab": "document",
"processingMode": "server",
"document": {
"outputFormat": "txt"
}
}
},
{
"name": "Text to HTML",
"jobType": "document-convert",
"config": {
"tab": "document",
"processingMode": "server",
"document": {
"outputFormat": "html"
}
}
}
]
}'Run
Run recipes against retained inputs
A run can target an explicit retained artifact id or a prior job id plus output index. That is especially useful after split or merge workflows.
curl -X POST https://api.filemorf.com/api/public/recipes/$RECIPE_ID/runs \
-H "Authorization: Bearer $FILEMORF_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: recipe-run-2026-03-25-source-001" \
-d '{
"inputJobId": "$JOB_ID",
"inputOutputIndex": 0
}'