Create a Task
curl --request POST \
--url https://api.monaco.com/v1/tasks/ \
--header 'Content-Type: application/json' \
--data '
{
"title": "Send follow-up proposal",
"description": "Send the updated pricing proposal to the procurement team",
"account_id": "550e8400-e29b-41d4-a716-446655440000",
"opportunity_id": "550e8400-e29b-41d4-a716-446655440001",
"task_type": "EMAIL",
"assignee_id": "550e8400-e29b-41d4-a716-446655440002",
"due_at": "2025-07-01T17:00:00Z",
"message_draft": {
"recipients": [
{
"name": "Jane Smith",
"email": "jane@acme.com"
}
],
"cc": [
{
"name": "John Doe",
"email": "john@acme.com"
}
],
"subject": "Pricing follow-up",
"body": "Hi Jane, following up on the proposal we discussed..."
}
}
'import requests
url = "https://api.monaco.com/v1/tasks/"
payload = {
"title": "Send follow-up proposal",
"description": "Send the updated pricing proposal to the procurement team",
"account_id": "550e8400-e29b-41d4-a716-446655440000",
"opportunity_id": "550e8400-e29b-41d4-a716-446655440001",
"task_type": "EMAIL",
"assignee_id": "550e8400-e29b-41d4-a716-446655440002",
"due_at": "2025-07-01T17:00:00Z",
"message_draft": {
"recipients": [
{
"name": "Jane Smith",
"email": "jane@acme.com"
}
],
"cc": [
{
"name": "John Doe",
"email": "john@acme.com"
}
],
"subject": "Pricing follow-up",
"body": "Hi Jane, following up on the proposal we discussed..."
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'Send follow-up proposal',
description: 'Send the updated pricing proposal to the procurement team',
account_id: '550e8400-e29b-41d4-a716-446655440000',
opportunity_id: '550e8400-e29b-41d4-a716-446655440001',
task_type: 'EMAIL',
assignee_id: '550e8400-e29b-41d4-a716-446655440002',
due_at: '2025-07-01T17:00:00Z',
message_draft: {
recipients: [{name: 'Jane Smith', email: 'jane@acme.com'}],
cc: [{name: 'John Doe', email: 'john@acme.com'}],
subject: 'Pricing follow-up',
body: JSON.stringify('Hi Jane, following up on the proposal we discussed...')
}
})
};
fetch('https://api.monaco.com/v1/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.monaco.com/v1/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([
'title' => 'Send follow-up proposal',
'description' => 'Send the updated pricing proposal to the procurement team',
'account_id' => '550e8400-e29b-41d4-a716-446655440000',
'opportunity_id' => '550e8400-e29b-41d4-a716-446655440001',
'task_type' => 'EMAIL',
'assignee_id' => '550e8400-e29b-41d4-a716-446655440002',
'due_at' => '2025-07-01T17:00:00Z',
'message_draft' => [
'recipients' => [
[
'name' => 'Jane Smith',
'email' => 'jane@acme.com'
]
],
'cc' => [
[
'name' => 'John Doe',
'email' => 'john@acme.com'
]
],
'subject' => 'Pricing follow-up',
'body' => 'Hi Jane, following up on the proposal we discussed...'
]
]),
CURLOPT_HTTPHEADER => [
"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://api.monaco.com/v1/tasks/"
payload := strings.NewReader("{\n \"title\": \"Send follow-up proposal\",\n \"description\": \"Send the updated pricing proposal to the procurement team\",\n \"account_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"opportunity_id\": \"550e8400-e29b-41d4-a716-446655440001\",\n \"task_type\": \"EMAIL\",\n \"assignee_id\": \"550e8400-e29b-41d4-a716-446655440002\",\n \"due_at\": \"2025-07-01T17:00:00Z\",\n \"message_draft\": {\n \"recipients\": [\n {\n \"name\": \"Jane Smith\",\n \"email\": \"jane@acme.com\"\n }\n ],\n \"cc\": [\n {\n \"name\": \"John Doe\",\n \"email\": \"john@acme.com\"\n }\n ],\n \"subject\": \"Pricing follow-up\",\n \"body\": \"Hi Jane, following up on the proposal we discussed...\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
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.monaco.com/v1/tasks/")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"Send follow-up proposal\",\n \"description\": \"Send the updated pricing proposal to the procurement team\",\n \"account_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"opportunity_id\": \"550e8400-e29b-41d4-a716-446655440001\",\n \"task_type\": \"EMAIL\",\n \"assignee_id\": \"550e8400-e29b-41d4-a716-446655440002\",\n \"due_at\": \"2025-07-01T17:00:00Z\",\n \"message_draft\": {\n \"recipients\": [\n {\n \"name\": \"Jane Smith\",\n \"email\": \"jane@acme.com\"\n }\n ],\n \"cc\": [\n {\n \"name\": \"John Doe\",\n \"email\": \"john@acme.com\"\n }\n ],\n \"subject\": \"Pricing follow-up\",\n \"body\": \"Hi Jane, following up on the proposal we discussed...\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.monaco.com/v1/tasks/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"Send follow-up proposal\",\n \"description\": \"Send the updated pricing proposal to the procurement team\",\n \"account_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"opportunity_id\": \"550e8400-e29b-41d4-a716-446655440001\",\n \"task_type\": \"EMAIL\",\n \"assignee_id\": \"550e8400-e29b-41d4-a716-446655440002\",\n \"due_at\": \"2025-07-01T17:00:00Z\",\n \"message_draft\": {\n \"recipients\": [\n {\n \"name\": \"Jane Smith\",\n \"email\": \"jane@acme.com\"\n }\n ],\n \"cc\": [\n {\n \"name\": \"John Doe\",\n \"email\": \"john@acme.com\"\n }\n ],\n \"subject\": \"Pricing follow-up\",\n \"body\": \"Hi Jane, following up on the proposal we discussed...\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "tsk_abc123",
"account_id": "acc_def456",
"title": "Send follow-up proposal",
"description": "Send the updated pricing proposal to the procurement team",
"task_type": "General Action Item",
"assignee": {
"id": "usr_abc123",
"first_name": "Jane",
"last_name": "Smith"
},
"status": "To Do",
"due_at": "2025-07-01T17:00:00Z",
"created_at": "2026-04-21T12:00:00Z",
"updated_at": "2026-04-21T12:00:00Z"
},
"meta": {
"timestamp": "2026-04-21T12:00:00Z"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Tasks
Create a Task
Creates a new task.
Tasks can be associated with an account (via account_id) and/or an opportunity (via opportunity_id). If no assignee_id is provided, the task is assigned to the caller.
POST
/
v1
/
tasks
/
Create a Task
curl --request POST \
--url https://api.monaco.com/v1/tasks/ \
--header 'Content-Type: application/json' \
--data '
{
"title": "Send follow-up proposal",
"description": "Send the updated pricing proposal to the procurement team",
"account_id": "550e8400-e29b-41d4-a716-446655440000",
"opportunity_id": "550e8400-e29b-41d4-a716-446655440001",
"task_type": "EMAIL",
"assignee_id": "550e8400-e29b-41d4-a716-446655440002",
"due_at": "2025-07-01T17:00:00Z",
"message_draft": {
"recipients": [
{
"name": "Jane Smith",
"email": "jane@acme.com"
}
],
"cc": [
{
"name": "John Doe",
"email": "john@acme.com"
}
],
"subject": "Pricing follow-up",
"body": "Hi Jane, following up on the proposal we discussed..."
}
}
'import requests
url = "https://api.monaco.com/v1/tasks/"
payload = {
"title": "Send follow-up proposal",
"description": "Send the updated pricing proposal to the procurement team",
"account_id": "550e8400-e29b-41d4-a716-446655440000",
"opportunity_id": "550e8400-e29b-41d4-a716-446655440001",
"task_type": "EMAIL",
"assignee_id": "550e8400-e29b-41d4-a716-446655440002",
"due_at": "2025-07-01T17:00:00Z",
"message_draft": {
"recipients": [
{
"name": "Jane Smith",
"email": "jane@acme.com"
}
],
"cc": [
{
"name": "John Doe",
"email": "john@acme.com"
}
],
"subject": "Pricing follow-up",
"body": "Hi Jane, following up on the proposal we discussed..."
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'Send follow-up proposal',
description: 'Send the updated pricing proposal to the procurement team',
account_id: '550e8400-e29b-41d4-a716-446655440000',
opportunity_id: '550e8400-e29b-41d4-a716-446655440001',
task_type: 'EMAIL',
assignee_id: '550e8400-e29b-41d4-a716-446655440002',
due_at: '2025-07-01T17:00:00Z',
message_draft: {
recipients: [{name: 'Jane Smith', email: 'jane@acme.com'}],
cc: [{name: 'John Doe', email: 'john@acme.com'}],
subject: 'Pricing follow-up',
body: JSON.stringify('Hi Jane, following up on the proposal we discussed...')
}
})
};
fetch('https://api.monaco.com/v1/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.monaco.com/v1/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([
'title' => 'Send follow-up proposal',
'description' => 'Send the updated pricing proposal to the procurement team',
'account_id' => '550e8400-e29b-41d4-a716-446655440000',
'opportunity_id' => '550e8400-e29b-41d4-a716-446655440001',
'task_type' => 'EMAIL',
'assignee_id' => '550e8400-e29b-41d4-a716-446655440002',
'due_at' => '2025-07-01T17:00:00Z',
'message_draft' => [
'recipients' => [
[
'name' => 'Jane Smith',
'email' => 'jane@acme.com'
]
],
'cc' => [
[
'name' => 'John Doe',
'email' => 'john@acme.com'
]
],
'subject' => 'Pricing follow-up',
'body' => 'Hi Jane, following up on the proposal we discussed...'
]
]),
CURLOPT_HTTPHEADER => [
"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://api.monaco.com/v1/tasks/"
payload := strings.NewReader("{\n \"title\": \"Send follow-up proposal\",\n \"description\": \"Send the updated pricing proposal to the procurement team\",\n \"account_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"opportunity_id\": \"550e8400-e29b-41d4-a716-446655440001\",\n \"task_type\": \"EMAIL\",\n \"assignee_id\": \"550e8400-e29b-41d4-a716-446655440002\",\n \"due_at\": \"2025-07-01T17:00:00Z\",\n \"message_draft\": {\n \"recipients\": [\n {\n \"name\": \"Jane Smith\",\n \"email\": \"jane@acme.com\"\n }\n ],\n \"cc\": [\n {\n \"name\": \"John Doe\",\n \"email\": \"john@acme.com\"\n }\n ],\n \"subject\": \"Pricing follow-up\",\n \"body\": \"Hi Jane, following up on the proposal we discussed...\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
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.monaco.com/v1/tasks/")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"Send follow-up proposal\",\n \"description\": \"Send the updated pricing proposal to the procurement team\",\n \"account_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"opportunity_id\": \"550e8400-e29b-41d4-a716-446655440001\",\n \"task_type\": \"EMAIL\",\n \"assignee_id\": \"550e8400-e29b-41d4-a716-446655440002\",\n \"due_at\": \"2025-07-01T17:00:00Z\",\n \"message_draft\": {\n \"recipients\": [\n {\n \"name\": \"Jane Smith\",\n \"email\": \"jane@acme.com\"\n }\n ],\n \"cc\": [\n {\n \"name\": \"John Doe\",\n \"email\": \"john@acme.com\"\n }\n ],\n \"subject\": \"Pricing follow-up\",\n \"body\": \"Hi Jane, following up on the proposal we discussed...\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.monaco.com/v1/tasks/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"Send follow-up proposal\",\n \"description\": \"Send the updated pricing proposal to the procurement team\",\n \"account_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"opportunity_id\": \"550e8400-e29b-41d4-a716-446655440001\",\n \"task_type\": \"EMAIL\",\n \"assignee_id\": \"550e8400-e29b-41d4-a716-446655440002\",\n \"due_at\": \"2025-07-01T17:00:00Z\",\n \"message_draft\": {\n \"recipients\": [\n {\n \"name\": \"Jane Smith\",\n \"email\": \"jane@acme.com\"\n }\n ],\n \"cc\": [\n {\n \"name\": \"John Doe\",\n \"email\": \"john@acme.com\"\n }\n ],\n \"subject\": \"Pricing follow-up\",\n \"body\": \"Hi Jane, following up on the proposal we discussed...\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "tsk_abc123",
"account_id": "acc_def456",
"title": "Send follow-up proposal",
"description": "Send the updated pricing proposal to the procurement team",
"task_type": "General Action Item",
"assignee": {
"id": "usr_abc123",
"first_name": "Jane",
"last_name": "Smith"
},
"status": "To Do",
"due_at": "2025-07-01T17:00:00Z",
"created_at": "2026-04-21T12:00:00Z",
"updated_at": "2026-04-21T12:00:00Z"
},
"meta": {
"timestamp": "2026-04-21T12:00:00Z"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Body
application/json
Request body for creating a task via POST.
Title of the task
Example:
"Send follow-up proposal"
Detailed description of the task
Example:
"Send the updated pricing proposal to the procurement team"
ID of the account to associate the task with
ID of the opportunity to associate the task with
Type of task. One of GENERAL_ACTION_ITEM, EMAIL.
Example:
"GENERAL_ACTION_ITEM"
User ID to assign the task to. Defaults to the caller if not provided.
Due date and time for the task
Example:
"2025-07-01T17:00:00Z"
Optional draft message contents. Only valid when task_type is EMAIL.
Show child attributes
Show child attributes
⌘I