Create an AI Agent Task
curl --request POST \
--url https://eu1.api.matillion.com/dpc/v1/ai/agents/tasks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"agentConfig": {
"name": "data_engineer_agent",
"environmentName": "development",
"mode": "ACT",
"projectId": "550e8400-e29b-41d4-a716-446655440001",
"sourceBranchName": "main",
"generateBranch": true,
"graphId": "my-pipeline",
"targetBranchName": "feature/my-pipeline",
"workingDirectory": "/pipelines"
},
"message": "Build a pipeline to load sales data from S3 into Snowflake",
"grantedPermissions": [
{
"toolName": "execute_sql"
}
]
}
'import requests
url = "https://eu1.api.matillion.com/dpc/v1/ai/agents/tasks"
payload = {
"agentConfig": {
"name": "data_engineer_agent",
"environmentName": "development",
"mode": "ACT",
"projectId": "550e8400-e29b-41d4-a716-446655440001",
"sourceBranchName": "main",
"generateBranch": True,
"graphId": "my-pipeline",
"targetBranchName": "feature/my-pipeline",
"workingDirectory": "/pipelines"
},
"message": "Build a pipeline to load sales data from S3 into Snowflake",
"grantedPermissions": [{ "toolName": "execute_sql" }]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
agentConfig: {
name: 'data_engineer_agent',
environmentName: 'development',
mode: 'ACT',
projectId: '550e8400-e29b-41d4-a716-446655440001',
sourceBranchName: 'main',
generateBranch: true,
graphId: 'my-pipeline',
targetBranchName: 'feature/my-pipeline',
workingDirectory: '/pipelines'
},
message: 'Build a pipeline to load sales data from S3 into Snowflake',
grantedPermissions: [{toolName: 'execute_sql'}]
})
};
fetch('https://eu1.api.matillion.com/dpc/v1/ai/agents/tasks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://eu1.api.matillion.com/dpc/v1/ai/agents/tasks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'agentConfig' => [
'name' => 'data_engineer_agent',
'environmentName' => 'development',
'mode' => 'ACT',
'projectId' => '550e8400-e29b-41d4-a716-446655440001',
'sourceBranchName' => 'main',
'generateBranch' => true,
'graphId' => 'my-pipeline',
'targetBranchName' => 'feature/my-pipeline',
'workingDirectory' => '/pipelines'
],
'message' => 'Build a pipeline to load sales data from S3 into Snowflake',
'grantedPermissions' => [
[
'toolName' => 'execute_sql'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eu1.api.matillion.com/dpc/v1/ai/agents/tasks"
payload := strings.NewReader("{\n \"agentConfig\": {\n \"name\": \"data_engineer_agent\",\n \"environmentName\": \"development\",\n \"mode\": \"ACT\",\n \"projectId\": \"550e8400-e29b-41d4-a716-446655440001\",\n \"sourceBranchName\": \"main\",\n \"generateBranch\": true,\n \"graphId\": \"my-pipeline\",\n \"targetBranchName\": \"feature/my-pipeline\",\n \"workingDirectory\": \"/pipelines\"\n },\n \"message\": \"Build a pipeline to load sales data from S3 into Snowflake\",\n \"grantedPermissions\": [\n {\n \"toolName\": \"execute_sql\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://eu1.api.matillion.com/dpc/v1/ai/agents/tasks")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"agentConfig\": {\n \"name\": \"data_engineer_agent\",\n \"environmentName\": \"development\",\n \"mode\": \"ACT\",\n \"projectId\": \"550e8400-e29b-41d4-a716-446655440001\",\n \"sourceBranchName\": \"main\",\n \"generateBranch\": true,\n \"graphId\": \"my-pipeline\",\n \"targetBranchName\": \"feature/my-pipeline\",\n \"workingDirectory\": \"/pipelines\"\n },\n \"message\": \"Build a pipeline to load sales data from S3 into Snowflake\",\n \"grantedPermissions\": [\n {\n \"toolName\": \"execute_sql\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://eu1.api.matillion.com/dpc/v1/ai/agents/tasks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"agentConfig\": {\n \"name\": \"data_engineer_agent\",\n \"environmentName\": \"development\",\n \"mode\": \"ACT\",\n \"projectId\": \"550e8400-e29b-41d4-a716-446655440001\",\n \"sourceBranchName\": \"main\",\n \"generateBranch\": true,\n \"graphId\": \"my-pipeline\",\n \"targetBranchName\": \"feature/my-pipeline\",\n \"workingDirectory\": \"/pipelines\"\n },\n \"message\": \"Build a pipeline to load sales data from S3 into Snowflake\",\n \"grantedPermissions\": [\n {\n \"toolName\": \"execute_sql\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"taskId": "550e8400-e29b-41d4-a716-446655440000",
"status": "RUNNING",
"agentName": "data_engineer_agent",
"createdAt": "2024-01-15T10:30:00.000Z"
}{
"detail": "<string>",
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"violations": [
"<string>"
]
}{
"detail": "<string>",
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"violations": [
"<string>"
]
}{
"detail": "<string>",
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"violations": [
"<string>"
]
}{
"detail": "<string>",
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"violations": [
"<string>"
]
}{
"detail": "<string>",
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"violations": [
"<string>"
]
}{
"detail": "<string>",
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"violations": [
"<string>"
]
}AI Agent Tasks
Create an AI Agent Task
Creates a new AI agent task and starts async execution. Poll the messages endpoint to retrieve results.
POST
/
v1
/
ai
/
agents
/
tasks
Create an AI Agent Task
curl --request POST \
--url https://eu1.api.matillion.com/dpc/v1/ai/agents/tasks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"agentConfig": {
"name": "data_engineer_agent",
"environmentName": "development",
"mode": "ACT",
"projectId": "550e8400-e29b-41d4-a716-446655440001",
"sourceBranchName": "main",
"generateBranch": true,
"graphId": "my-pipeline",
"targetBranchName": "feature/my-pipeline",
"workingDirectory": "/pipelines"
},
"message": "Build a pipeline to load sales data from S3 into Snowflake",
"grantedPermissions": [
{
"toolName": "execute_sql"
}
]
}
'import requests
url = "https://eu1.api.matillion.com/dpc/v1/ai/agents/tasks"
payload = {
"agentConfig": {
"name": "data_engineer_agent",
"environmentName": "development",
"mode": "ACT",
"projectId": "550e8400-e29b-41d4-a716-446655440001",
"sourceBranchName": "main",
"generateBranch": True,
"graphId": "my-pipeline",
"targetBranchName": "feature/my-pipeline",
"workingDirectory": "/pipelines"
},
"message": "Build a pipeline to load sales data from S3 into Snowflake",
"grantedPermissions": [{ "toolName": "execute_sql" }]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
agentConfig: {
name: 'data_engineer_agent',
environmentName: 'development',
mode: 'ACT',
projectId: '550e8400-e29b-41d4-a716-446655440001',
sourceBranchName: 'main',
generateBranch: true,
graphId: 'my-pipeline',
targetBranchName: 'feature/my-pipeline',
workingDirectory: '/pipelines'
},
message: 'Build a pipeline to load sales data from S3 into Snowflake',
grantedPermissions: [{toolName: 'execute_sql'}]
})
};
fetch('https://eu1.api.matillion.com/dpc/v1/ai/agents/tasks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://eu1.api.matillion.com/dpc/v1/ai/agents/tasks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'agentConfig' => [
'name' => 'data_engineer_agent',
'environmentName' => 'development',
'mode' => 'ACT',
'projectId' => '550e8400-e29b-41d4-a716-446655440001',
'sourceBranchName' => 'main',
'generateBranch' => true,
'graphId' => 'my-pipeline',
'targetBranchName' => 'feature/my-pipeline',
'workingDirectory' => '/pipelines'
],
'message' => 'Build a pipeline to load sales data from S3 into Snowflake',
'grantedPermissions' => [
[
'toolName' => 'execute_sql'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eu1.api.matillion.com/dpc/v1/ai/agents/tasks"
payload := strings.NewReader("{\n \"agentConfig\": {\n \"name\": \"data_engineer_agent\",\n \"environmentName\": \"development\",\n \"mode\": \"ACT\",\n \"projectId\": \"550e8400-e29b-41d4-a716-446655440001\",\n \"sourceBranchName\": \"main\",\n \"generateBranch\": true,\n \"graphId\": \"my-pipeline\",\n \"targetBranchName\": \"feature/my-pipeline\",\n \"workingDirectory\": \"/pipelines\"\n },\n \"message\": \"Build a pipeline to load sales data from S3 into Snowflake\",\n \"grantedPermissions\": [\n {\n \"toolName\": \"execute_sql\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://eu1.api.matillion.com/dpc/v1/ai/agents/tasks")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"agentConfig\": {\n \"name\": \"data_engineer_agent\",\n \"environmentName\": \"development\",\n \"mode\": \"ACT\",\n \"projectId\": \"550e8400-e29b-41d4-a716-446655440001\",\n \"sourceBranchName\": \"main\",\n \"generateBranch\": true,\n \"graphId\": \"my-pipeline\",\n \"targetBranchName\": \"feature/my-pipeline\",\n \"workingDirectory\": \"/pipelines\"\n },\n \"message\": \"Build a pipeline to load sales data from S3 into Snowflake\",\n \"grantedPermissions\": [\n {\n \"toolName\": \"execute_sql\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://eu1.api.matillion.com/dpc/v1/ai/agents/tasks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"agentConfig\": {\n \"name\": \"data_engineer_agent\",\n \"environmentName\": \"development\",\n \"mode\": \"ACT\",\n \"projectId\": \"550e8400-e29b-41d4-a716-446655440001\",\n \"sourceBranchName\": \"main\",\n \"generateBranch\": true,\n \"graphId\": \"my-pipeline\",\n \"targetBranchName\": \"feature/my-pipeline\",\n \"workingDirectory\": \"/pipelines\"\n },\n \"message\": \"Build a pipeline to load sales data from S3 into Snowflake\",\n \"grantedPermissions\": [\n {\n \"toolName\": \"execute_sql\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"taskId": "550e8400-e29b-41d4-a716-446655440000",
"status": "RUNNING",
"agentName": "data_engineer_agent",
"createdAt": "2024-01-15T10:30:00.000Z"
}{
"detail": "<string>",
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"violations": [
"<string>"
]
}{
"detail": "<string>",
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"violations": [
"<string>"
]
}{
"detail": "<string>",
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"violations": [
"<string>"
]
}{
"detail": "<string>",
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"violations": [
"<string>"
]
}{
"detail": "<string>",
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"violations": [
"<string>"
]
}{
"detail": "<string>",
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"violations": [
"<string>"
]
}Authorizations
a valid bearer token
Body
application/json
Configuration specifying the agent type and its parameters
Show child attributes
Show child attributes
The instruction or question to send to the agent
Minimum string length:
1Example:
"Build a pipeline to load sales data from S3 into Snowflake"
Permissions pre-granted to the agent for this task. Each entry must be unique
Show child attributes
Show child attributes
Response
Agent task created successfully
The name of the agent handling the task
Example:
"data_engineer_agent"
The date and time the task was created
Example:
"2024-01-15T10:30:00.000Z"
The current status of the task
Available options:
RUNNING, STOPPED, STOPPING, ERRORED Example:
"RUNNING"
The unique identifier of the created task
Example:
"550e8400-e29b-41d4-a716-446655440000"
Was this page helpful?
⌘I
