curl --request POST \
--url https://api.example.com/api/public/tools/list_user_tasks \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"limit": null,
"cursor": null,
"statuses": null,
"types": null,
"searchQuery": null,
"assignedUserId": null,
"includeTeamTasks": false,
"flowIds": null,
"taskIds": null,
"fromUtc": null,
"toUtc": null,
"email": null,
"firstName": null,
"lastName": null,
"companyDomain": null
}
'import requests
url = "https://api.example.com/api/public/tools/list_user_tasks"
payload = {
"limit": None,
"cursor": None,
"statuses": None,
"types": None,
"searchQuery": None,
"assignedUserId": None,
"includeTeamTasks": False,
"flowIds": None,
"taskIds": None,
"fromUtc": None,
"toUtc": None,
"email": None,
"firstName": None,
"lastName": None,
"companyDomain": None
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
limit: null,
cursor: null,
statuses: null,
types: null,
searchQuery: null,
assignedUserId: null,
includeTeamTasks: false,
flowIds: null,
taskIds: null,
fromUtc: null,
toUtc: null,
email: null,
firstName: null,
lastName: null,
companyDomain: null
})
};
fetch('https://api.example.com/api/public/tools/list_user_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://api.example.com/api/public/tools/list_user_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([
'limit' => null,
'cursor' => null,
'statuses' => null,
'types' => null,
'searchQuery' => null,
'assignedUserId' => null,
'includeTeamTasks' => false,
'flowIds' => null,
'taskIds' => null,
'fromUtc' => null,
'toUtc' => null,
'email' => null,
'firstName' => null,
'lastName' => null,
'companyDomain' => null
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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://api.example.com/api/public/tools/list_user_tasks"
payload := strings.NewReader("{\n \"limit\": null,\n \"cursor\": null,\n \"statuses\": null,\n \"types\": null,\n \"searchQuery\": null,\n \"assignedUserId\": null,\n \"includeTeamTasks\": false,\n \"flowIds\": null,\n \"taskIds\": null,\n \"fromUtc\": null,\n \"toUtc\": null,\n \"email\": null,\n \"firstName\": null,\n \"lastName\": null,\n \"companyDomain\": null\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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://api.example.com/api/public/tools/list_user_tasks")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"limit\": null,\n \"cursor\": null,\n \"statuses\": null,\n \"types\": null,\n \"searchQuery\": null,\n \"assignedUserId\": null,\n \"includeTeamTasks\": false,\n \"flowIds\": null,\n \"taskIds\": null,\n \"fromUtc\": null,\n \"toUtc\": null,\n \"email\": null,\n \"firstName\": null,\n \"lastName\": null,\n \"companyDomain\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/public/tools/list_user_tasks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"limit\": null,\n \"cursor\": null,\n \"statuses\": null,\n \"types\": null,\n \"searchQuery\": null,\n \"assignedUserId\": null,\n \"includeTeamTasks\": false,\n \"flowIds\": null,\n \"taskIds\": null,\n \"fromUtc\": null,\n \"toUtc\": null,\n \"email\": null,\n \"firstName\": null,\n \"lastName\": null,\n \"companyDomain\": null\n}"
response = http.request(request)
puts response.read_body{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}List User Tasks
Call get_guide with topic=tasks_and_approvals for task kinds, readiness, approval, editing, completion, and skipping guidance.
Usage notes
- List slim task summaries.
- Defaults to todo tasks assigned to the current user; callers can set includeTeamTasks=true to read tasks owned by active members of the current team, or assignedUserId for one user.
- For a general request to view pending tasks, omit types.
- Use preview_task for payload, properties, warnings, and action details.
curl --request POST \
--url https://api.example.com/api/public/tools/list_user_tasks \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"limit": null,
"cursor": null,
"statuses": null,
"types": null,
"searchQuery": null,
"assignedUserId": null,
"includeTeamTasks": false,
"flowIds": null,
"taskIds": null,
"fromUtc": null,
"toUtc": null,
"email": null,
"firstName": null,
"lastName": null,
"companyDomain": null
}
'import requests
url = "https://api.example.com/api/public/tools/list_user_tasks"
payload = {
"limit": None,
"cursor": None,
"statuses": None,
"types": None,
"searchQuery": None,
"assignedUserId": None,
"includeTeamTasks": False,
"flowIds": None,
"taskIds": None,
"fromUtc": None,
"toUtc": None,
"email": None,
"firstName": None,
"lastName": None,
"companyDomain": None
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
limit: null,
cursor: null,
statuses: null,
types: null,
searchQuery: null,
assignedUserId: null,
includeTeamTasks: false,
flowIds: null,
taskIds: null,
fromUtc: null,
toUtc: null,
email: null,
firstName: null,
lastName: null,
companyDomain: null
})
};
fetch('https://api.example.com/api/public/tools/list_user_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://api.example.com/api/public/tools/list_user_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([
'limit' => null,
'cursor' => null,
'statuses' => null,
'types' => null,
'searchQuery' => null,
'assignedUserId' => null,
'includeTeamTasks' => false,
'flowIds' => null,
'taskIds' => null,
'fromUtc' => null,
'toUtc' => null,
'email' => null,
'firstName' => null,
'lastName' => null,
'companyDomain' => null
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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://api.example.com/api/public/tools/list_user_tasks"
payload := strings.NewReader("{\n \"limit\": null,\n \"cursor\": null,\n \"statuses\": null,\n \"types\": null,\n \"searchQuery\": null,\n \"assignedUserId\": null,\n \"includeTeamTasks\": false,\n \"flowIds\": null,\n \"taskIds\": null,\n \"fromUtc\": null,\n \"toUtc\": null,\n \"email\": null,\n \"firstName\": null,\n \"lastName\": null,\n \"companyDomain\": null\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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://api.example.com/api/public/tools/list_user_tasks")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"limit\": null,\n \"cursor\": null,\n \"statuses\": null,\n \"types\": null,\n \"searchQuery\": null,\n \"assignedUserId\": null,\n \"includeTeamTasks\": false,\n \"flowIds\": null,\n \"taskIds\": null,\n \"fromUtc\": null,\n \"toUtc\": null,\n \"email\": null,\n \"firstName\": null,\n \"lastName\": null,\n \"companyDomain\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/public/tools/list_user_tasks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"limit\": null,\n \"cursor\": null,\n \"statuses\": null,\n \"types\": null,\n \"searchQuery\": null,\n \"assignedUserId\": null,\n \"includeTeamTasks\": false,\n \"flowIds\": null,\n \"taskIds\": null,\n \"fromUtc\": null,\n \"toUtc\": null,\n \"email\": null,\n \"firstName\": null,\n \"lastName\": null,\n \"companyDomain\": null\n}"
response = http.request(request)
puts response.read_body{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}Authorizations
Body
Maximum tasks to return. Defaults to 20, max 20.
Cursor returned by a previous list_user_tasks call.
Task statuses to include. Defaults to todo.
todo, done, canceled Exact stored task types: call, manual, section_approval.
- All three can contain tasks for the user to review or act on: call requires logging a call, manual requires marking manual work done, and section_approval requires reviewing and approving grouped actions.
- types is an exact task-kind filter.
- For a request for tasks the user can approve, review, or act on, omit types so all task kinds are returned.
- Use types only when the caller explicitly requests a particular task kind.
call, manual, section_approval Search text matched against prospect first name, last name, company name, and company domain.
Optional assigned user id. Use the exact current userId from get_current_user or a userId returned by list_team_members. Defaults to the current MCP user.
When true, preview tasks owned by active members of the current team, matching the UI's all-team task scope.
Optional flow/enrollment ids to filter tasks. Use exact enrollmentId values returned by add_dynamic_action, list_enrollments, list_flow_plan_enrollments, or get_flow_enrollment; do not pass flowPlanId here.
Optional task ids to fetch directly. Example item: task_123. Use taskId values returned by list_user_tasks, preview_task, get_flow_enrollment, or get_flow_workspace required actions.
Created-from timestamp in UTC.
Created-to timestamp in UTC.
Prospect email filter.
Prospect first name filter.
Prospect last name filter.
Company domain filter.
Response
Tool result.

