Create a New Task

Create a new Task with specified prompts, model configuration, and output format. Tasks are the core building blocks that define how the LLM processes inputs and generates structured outputs. Each Task includes: - System and user prompts that guide the LLM's behavior - Input parameters that can be dynamically provided when running the Task - Output format specification that ensures consistent, structured responses - Output modality supporting multiple formats: - `json`: Structured JSON responses (default) - `image`: AI-generated images (requires image-capable model) - `audio`: Voice/audio responses - `pdf`: Formatted PDF documents - `text`: Plain text output - `csv`: Structured CSV data tables - Optional fallback model for improved reliability when primary model fails - Optional task run visibility controls for managing access to task execution history - Optional image processing capabilities - Optional RAG (Retrieval Augmented Generation) for domain-specific knowledge **LLM Configuration (`llm_config`):** Model-specific configuration options. Common parameters include: - `temperature` (0.0-2.0): Controls randomness. Lower = more focused, higher = more creative - `top_p` (0.0-1.0): Nucleus sampling. Use either temperature OR top_p, not both - `max_tokens`: Maximum tokens in the response - `quality` (for image models): "standard" or "hd" - `size` (for image models): e.g., "1024x1024", "1792x1024" **Output Format (`output_format`):** Define the structure of task outputs. Two syntaxes are supported: *Shorthand syntax* (simple fields): ```json {"field_name": "str", "count": "int", "items": "array"} ``` *Object syntax* (with descriptions and constraints): ```json { "field_name": { "type": "str", "description": "What this field contains", "options": ["option1", "option2"] } } ``` Supported types: `str`/`string`, `int`/`integer`, `number`, `bool`/`boolean`, `array`, `object` **Task Run Visibility:** - `owner_only` (default): Only task owners can view all task runs - `editors_and_owners`: Task editors and owners can view all task runs - `all_viewers`: All users with view permission can see all task runs **File Input Mode (`file_input_mode`):** Specifies what file types are accepted for visual LLM processing: - `none` (default): No file input accepted - `image`: Image file required (PNG, JPEG, WebP, GIF) - `pdf`: PDF document required (requires PDF vision model) - `image_or_pdf`: Either image or PDF accepted - `any`: Any visually processable file accepted **PDF Vision Model Compatibility:** - Gemini 1.5/2.x/3.x models: Up to 50MB, 1000 pages - Claude 3.x/4.x models: Up to 30MB, 100 pages visual - GPT-4o models: Up to 20MB - GPT-3.5 / Groq: No PDF vision support **Common Use Cases:** *Structured Data Extraction:* Create tasks with JSON output to extract structured data from unstructured text (e.g., invoice parsing, contact extraction). *Image Generation:* Set `output_modality: "image"` with DALL-E or similar models to generate images from text prompts. *Document Analysis with Vision:* Set `file_input_mode` to accept images, PDFs, or both for visual analysis by the LLM. Use PDF-capable models (Gemini, Claude, GPT-4o) for direct PDF processing without text extraction. *Knowledge Base Q&A (RAG):* Configure `rag` with collection IDs to ground responses in your organization's documents and knowledge. *Automated Reports:* Use `output_modality: "pdf"` to generate formatted reports that can be downloaded or emailed. The Task will be created with an initial revision that becomes automatically active.

Authentication

AuthorizationBearer

Bearer token authentication using JWT tokens from Ory Kratos/Hydra

Path parameters

org_idstringRequiredformat: "uuid"
The unique identifier of the organization.
project_idstringRequiredformat: "uuid"
The unique identifier of the project.

Request

This endpoint expects an object.
system_promptstringRequired
The system prompt that is used to set the LLM context.
user_promptstringRequired

The description of the Task. It is not required to mention the outputs in the prompt, but it can help the model to understand the context better. Any input strings should be referenced with the dynamic {...} syntax, this informs the model to look for those values in the input data.

llm_model_idstringRequiredformat: "uuid"
The LLM model to use for the Task.
namestringRequiredformat: "^[a-zA-Z0-9\- ]+$"<=63 characters
A name or reference for the Task.
enabledbooleanRequired

When true the Task is active and callable. false denotes the Task is not yet operational.

llm_configmap from strings to anyOptional
Specific configuration parameters for the LLM model.
output_formatmap from strings to objects or enums or nullOptional

This gives control over the structure of how the Task responds. Supports shorthand notation or an object with type can be specified for each attribute. In most instances, the LLM will be able to generate the desired output into the relevant property, but an optional description can be passed to provide it with additional context.

task_forwarder_idstring or nullOptionalformat: "uuid"
The unique identifier for a valid Task Forwarder. It is used to forward the Task output to another system or service.
ragobject or nullOptional

Note: This is a Paid Tier feature. Provide additional domain specific input to the LLM so that it is able to reference user specific information when executing the Task. Examples of this could be a product catalogue, terms and conditions or a user manual.

file_input_modeenumOptional

Specifies what file types are accepted for visual LLM processing. Values: ‘none’ (default), ‘image’, ‘pdf’, ‘image_or_pdf’, ‘any’.

optimise_imagesbooleanOptionalDefaults to true

When true (default) images will be automatically optimised before processing. Set to false to disable lossy image optimisation.

testbooleanOptionalDefaults to false

True if revision is a test revision. Test revisions cannot be live and are used for rapid Task testing/iteration.

input_processorslist of objectsOptional
annotationstring or nullOptional<=255 characters
Optional note or comment about this revision. Useful for tracking changes, experiments, or the purpose of test revisions.
fallback_llm_model_idstring or nullOptionalformat: "uuid"
The LLM model to use as fallback if the primary model fails.
fallback_llm_configmap from strings to any or nullOptional
Specific configuration parameters for the fallback LLM model.
tool_choiceenum or nullOptional
Tool invocation mode when MCP tools are attached.
task_mcp_tool_idslist of stringsOptional
Task MCP tool IDs attached to this revision.
descriptionstring or nullOptional
A longer description of the Task for internal reference.
publicbooleanOptionalDefaults to false

When true the Task is public and can be accessed by any User.

exposed_to_agentsbooleanOptionalDefaults to false

When true the Task is accessible to agents through the unauthenticated agent endpoint.

output_modalityenumOptional
Specifies the output modality of the task. Can be 'json', 'image', 'audio', 'pdf', 'text', or 'csv'. Defaults to 'json'.
task_run_visibilityenumOptionalDefaults to owner_only

Controls who can view all task runs. ‘owner_only’ - only task owners see all runs (default), ‘editors_and_owners’ - task editors and owners see all runs, ‘all_viewers’ - all users with view permission see all runs.

tagslist of strings or nullOptional
revision_tagslist of strings or nullOptional

Response

Successful Response
namestringformat: "^[a-zA-Z0-9\- ]+$"
A name or reference for the Task.
enabledboolean

When true the Task is active and callable. false denotes the Task is not yet operational.

idstringformat: "uuid"
The unique identifier of the Task.
project_idstringformat: "uuid"
The Project that the Task belongs to.
createdstring
When the Task was created.
access_tokenstring or null
Task specific Bearer token that can be used to authenticated when executing this Task.
active_revisionslist of objects
The revision currently active for this Task.
descriptionstring or null
A longer description of the Task for internal reference.
publicbooleanDefaults to false

When true the Task is public and can be accessed by any User.

exposed_to_agentsbooleanDefaults to false

When true the Task is accessible to agents through the unauthenticated agent endpoint.

output_modalityenum
Specifies the output modality of the task. Can be 'json', 'image', 'audio', 'pdf', 'text', or 'csv'. Defaults to 'json'.
task_run_visibilityenumDefaults to owner_only

Controls who can view all task runs. ‘owner_only’ - only task owners see all runs (default), ‘editors_and_owners’ - task editors and owners see all runs, ‘all_viewers’ - all users with view permission see all runs.

modifiedstring or null
When the Task was last updated.
deletedstring or null
Timestamp when the task was deleted, if applicable.
revisionslist of objects

Each update to a Task results in a new Revision being created. Task Revisions are a powerful concept that can be used to assist with A/B testing, comparing responses from different LLM’s, etc.

cloned_from_task_revision_idstring or nullformat: "uuid"
The unique identifier of the task revision this task was cloned from, if applicable.
tagslist of objects

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
422
Unprocessable Entity Error
500
Internal Server Error