Skip to main content

Get started

The DeepL Agent API is only available to a limited set of DeepL Agent subscribers. Contact your DeepL customer success manager or our support team to enable access for your account.
Once enabled, follow the instructions in Managing API keys to create an API key. With the API key, you can trigger a DeepL Agent workflow and retrieve the results. For more information on the DeepL Agent, visit the HelpCenter. There’s no integration of the Agent API in the official DeepL SDKs yet. Use the HTTP examples below to integrate directly. We also provide specs that are auto-generated from DeepL’s Agent OpenAPI file: Trigger workflow and Get task results.

Trigger a workflow

Workflows are triggered with the help of the workflow ID. For more information on how to obtain a workflow ID, see the HelpCenter. The input object’s fields are defined by the individual workflow’s configuration. Refer to your workflow in the DeepL Agent interface to determine which input fields are required. Once triggered the workflow runs in a task.
This endpoint is only available on https://api.deepl.com. It is not available on the API Free endpoint (https://api-free.deepl.com).
Example request: Trigger a workflow
curl -X POST 'https://api.deepl.com/v1/unstable/agent/workflows/e1d78ccb-22e0-4a42-90e4-61884cf10af2/trigger' \
--header 'Authorization: DeepL-Auth-Key [yourAuthKey]' \
--form 'workflow_request={"input":{"Airline Link": "https://lufthansa.com","Departure Airport": "FRA","Destination Airport": "HND","Outbound Date": "2026-01-09 15:30:00","Inbound Date": "2026-01-17 17:30:00","Cabin Class": "economy","Number of passengers": "1"}}'
Example response
{
    "task_id": "e634159a-3414-4f66-a5cd-a1d48ff42ce3",
    "ui_url": "https://agent.deepl.com/static/chat/e634159a-3414-4f66-a5cd-a1d48ff42ce3",
    "polling_url": "/v1/unstable/agent/tasks/e634159a-3414-4f66-a5cd-a1d48ff42ce3",
    "last_modified_date": "2025-12-05T12:32:02.191089+00:00"
}
These examples are for demonstration purposes only. In production code, the authentication key should not be hard-coded but instead fetched from a configuration file or environment variable.

Request body descriptions

workflow_request
string - JSON encoded object
required
JSON string containing the workflow input parameters. The input object’s fields are defined by the individual workflow’s configuration. Refer to your workflow in the DeepL Agent interface to determine which input fields are required.
workflow_request.input
object
Workflow-specific key-value pairs.

Response body descriptions

task_id
string
required
Unique identifier for the triggered task.
polling_url
string | null
Relative URL to poll for task status.
ui_url
string | null
URL to view the task in the DeepL Agent interface.
last_modified_date
string
required
ISO 8601 timestamp.

Get the task status and result

Check the status of the task in which the workflow is running, as well as the results once the workflow is completed. If the task isn’t finished, the result is an empty object. The maximum number of requests allowed per minute is 12 per IP address. Poll at regular intervals (for example, every 5 seconds) with exponential backoff.
This endpoint is only available on https://api.deepl.com. It is not available on the API Free endpoint (https://api-free.deepl.com).
Example request: Get task status and results
curl -X GET 'https://api.deepl.com/v1/unstable/agent/tasks/[yourTaskId]' \
--header 'Authorization: DeepL-Auth-Key [yourAuthKey]'
Example response
{
    "status": "Completed",
    "last_modified_date": "2026-02-27T09:57:50.863818+00:00",
    "ui_url": "https://agent.deepl.com/static/chat/e634159a-3414-4f66-a5cd-a1d48ff42ce3",
    "result": {
        "screenshot": "https://agent.deepl.com/api/experimental/content/eyJhcnRpZmFjdF9pZCI6IjlhMjg1NmJmLTUzMzMtNGZkOC05NTAwLTNlYTI2N2I3MjliNiIsInZlcnNpb24iOjEsIm93bmVyX2lkIjoiNWM3YmIyNTQtZTU3NC00MjcyLTk0NTktZGJjN2JiM2JiMmVhIiwiZXhwaXJlcyI6MTc3MjE4NjYyM30=.686af5947238ed6920c29d83436bfc98c9d6c4015da0594e56007fff234f06e8",
        "response": "https://agent.deepl.com/api/experimental/content/eyJhcnRpZmFjdF9pZCI6IjUzOGU4OWFmLTNkN2QtNGEwZi04MDYxLWMyOTUzZjExZWEzOCIsInZlcnNpb24iOjEsIm93bmVyX2lkIjoiNWM3YmIyNTQtZTU3NC00MjcyLTk0NTktZGJjN2JiM2JiMmVhIiwiZXhwaXJlcyI6MTc3MjE4NjYyM30=.c88919cdc7bb9f7fc22ac7bd9b23c5c325a772d31310f437d4a04672c86cba32",
        "data": null
    },
    "result_data": [
        {
            "artifactId": "9a2856bf-5333-4fd8-9500-3ea267b729b6",
            "contentUrl": "https://agent.deepl.com/api/experimental/content/eyJhcnRpZmFjdF9pZCI6IjlhMjg1NmJmLTUzMzMtNGZkOC05NTAwLTNlYTI2N2I3MjliNiIsInZlcnNpb24iOjEsIm93bmVyX2lkIjoiNWM3YmIyNTQtZTU3NC00MjcyLTk0NTktZGJjN2JiM2JiMmVhIiwiZXhwaXJlcyI6MTc3MjE4NjYyM30=.686af5947238ed6920c29d83436bfc98c9d6c4015da0594e56007fff234f06e8",
            "name": "final_screenshot",
            "description": "Final browser screenshot",
            "schema": null
        },
        {
            "artifactId": "5e381ed3-1642-40f7-b8de-69338fc4698f",
            "contentUrl": "https://agent.deepl.com/api/experimental/content/eyJhcnRpZmFjdF9pZCI6IjVlMzgxZWQzLTE2NDItNDBmNy1iOGRlLTY5MzM4ZmM0Njk4ZiIsInZlcnNpb24iOjEsIm93bmVyX2lkIjoiNWM3YmIyNTQtZTU3NC00MjcyLTk0NTktZGJjN2JiM2JiMmVhIiwiZXhwaXJlcyI6MTc3MjE4NjYyM30=.f8bd75650b8112fff05b6bef8eae83d2472db96266b795f36c6820659c1feaf2",
            "name": "Vodafone_News_Last_7_Days.md",
            "description": "Top 10 news articles about Vodafone from the last 7 days",
            "schema": null
        }
    ]
}
These examples are for demonstration purposes only. In production code, the authentication key should not be hard-coded but instead fetched from a configuration file or environment variable.

Task status response body descriptions

status
string
required
Current task status.
last_modified_date
string
required
The date the task was last modified.
ui_url
string | null
URL to the task in the DeepL Agent.
result
object
required
Workflow result containing presigned URLs to retrieve output artifacts. Present in all responses; empty object {} while the task is in progress.
result.response
string | null
Presigned URL to retrieve the primary workflow result content. Valid for five minutes.
result.screenshot
string | null
Presigned URL to retrieve a screenshot artifact from the workflow. Valid for five minutes.
result.data
object | null
Optional additional workflow result data. Not used – deprecated.
result_data
array | null
List of all artifacts produced by the workflow, with metadata and presigned content URLs.
result_data[].artifactId
string
Unique identifier of the artifact.
result_data[].contentUrl
string
Presigned URL to retrieve the artifact content. Valid for five minutes.
result_data[].name
string
Filename or identifier of the artifact.
result_data[].description
string
Human-readable description of the artifact.
result_data[].schema
object | null
Optional schema describing the artifact’s data structure.

Retrieve the workflow result

Once the task status is Completed, retrieve the workflow result by fetching the presigned URL returned in the result.response field. Use the presigned URL exactly as returned in result.response — it is hosted on agent.deepl.com and is valid for five minutes.
Example request: Get content from the presigned URL
# Replace with your presigned URL
curl 'https://agent.deepl.com/api/experimental/content/eyJhcnRpZmFjdF9pZCI6IjUzOGU4OWFmLTNkN2QtNGEwZi04MDYxLWMyOTUzZjExZWEzOCIsInZlcnNpb24iOjEsIm93bmVyX2lkIjoiNWM3YmIyNTQtZTU3NC00MjcyLTk0NTktZGJjN2JiM2JiMmVhIiwiZXhwaXJlcyI6MTc3MjE4NjYyM30=.c88919cdc7bb9f7fc22ac7bd9b23c5c325a772d31310f437d4a04672c86cba32'
Example response
{
    "message": "I've successfully completed the flight price research for your Frankfurt (FRA) to Tokyo Haneda (HND) trip.\n\n**Flight Details:**\n- Route: Frankfurt (FRA) \u2192 Tokyo Haneda (HND)\n- Dates: January 9-17, 2026\n- Passengers: 1\n- Class: Economy\n\n**Best Price Found:**\n- **EUR 514.43** for Economy class\n- Flight: 11:35 FRA \u2192 08:45+1 HND (next day arrival)\n- Direct flight (0 stops)\n- Operated by All Nippon Airways\n- Duration: 13h 10m\n\n**Other Options:**\n- Premium Economy: from EUR 1,464.43\n- Business Class: from EUR 2,189.43\n\n**Results Document:** [results.json](artifact://4c31b6a4-d9f0-43e7-9f0c-dd851334d5b8)\n\n**Screenshot:** [Flight Search Results](artifact://24a01ad9-c64e-4a27-9d2c-6246fb341be2)\n\nThe pricing is displayed in Euros and includes all available cabin classes for your selected dates.", 
    "content_type": "text", 
    "language": "en"
}

Presigned URL response body descriptions

message
string
required
The workflow result as a text string.
content_type
string
required
The type of content returned. For example, text.
language
string
required
The language code of the returned content. For example, en.