curl --request POST \
--url https://api.quiva.ai/workspaces/task \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"description": "<string>",
"assignees": [
"<string>"
],
"attachments": [
"<string>"
],
"priority": "<string>",
"folder": "<string>",
"reporter": "<string>",
"status": "<string>",
"space_id": "<string>",
"due_date": "2023-11-07T05:31:56Z",
"scheduled_at": "2023-11-07T05:31:56Z",
"archived": true,
"tags": [
"<string>"
],
"parent": "<string>",
"source": "<string>",
"source_detail": "<string>",
"value": 123,
"currency": "<string>",
"expected_close": "<string>",
"external_id": "<string>",
"metadata": {},
"time_tracking": {},
"order": 123,
"identity": {},
"suppress_events": true,
"implementation_date": "<string>",
"assigned_qa": "<string>"
}
'import requests
url = "https://api.quiva.ai/workspaces/task"
payload = {
"title": "<string>",
"description": "<string>",
"assignees": ["<string>"],
"attachments": ["<string>"],
"priority": "<string>",
"folder": "<string>",
"reporter": "<string>",
"status": "<string>",
"space_id": "<string>",
"due_date": "2023-11-07T05:31:56Z",
"scheduled_at": "2023-11-07T05:31:56Z",
"archived": True,
"tags": ["<string>"],
"parent": "<string>",
"source": "<string>",
"source_detail": "<string>",
"value": 123,
"currency": "<string>",
"expected_close": "<string>",
"external_id": "<string>",
"metadata": {},
"time_tracking": {},
"order": 123,
"identity": {},
"suppress_events": True,
"implementation_date": "<string>",
"assigned_qa": "<string>"
}
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({
title: '<string>',
description: '<string>',
assignees: ['<string>'],
attachments: ['<string>'],
priority: '<string>',
folder: '<string>',
reporter: '<string>',
status: '<string>',
space_id: '<string>',
due_date: '2023-11-07T05:31:56Z',
scheduled_at: '2023-11-07T05:31:56Z',
archived: true,
tags: ['<string>'],
parent: '<string>',
source: '<string>',
source_detail: '<string>',
value: 123,
currency: '<string>',
expected_close: '<string>',
external_id: '<string>',
metadata: {},
time_tracking: {},
order: 123,
identity: {},
suppress_events: true,
implementation_date: '<string>',
assigned_qa: '<string>'
})
};
fetch('https://api.quiva.ai/workspaces/task', 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.quiva.ai/workspaces/task",
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' => '<string>',
'description' => '<string>',
'assignees' => [
'<string>'
],
'attachments' => [
'<string>'
],
'priority' => '<string>',
'folder' => '<string>',
'reporter' => '<string>',
'status' => '<string>',
'space_id' => '<string>',
'due_date' => '2023-11-07T05:31:56Z',
'scheduled_at' => '2023-11-07T05:31:56Z',
'archived' => true,
'tags' => [
'<string>'
],
'parent' => '<string>',
'source' => '<string>',
'source_detail' => '<string>',
'value' => 123,
'currency' => '<string>',
'expected_close' => '<string>',
'external_id' => '<string>',
'metadata' => [
],
'time_tracking' => [
],
'order' => 123,
'identity' => [
],
'suppress_events' => true,
'implementation_date' => '<string>',
'assigned_qa' => '<string>'
]),
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://api.quiva.ai/workspaces/task"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"assignees\": [\n \"<string>\"\n ],\n \"attachments\": [\n \"<string>\"\n ],\n \"priority\": \"<string>\",\n \"folder\": \"<string>\",\n \"reporter\": \"<string>\",\n \"status\": \"<string>\",\n \"space_id\": \"<string>\",\n \"due_date\": \"2023-11-07T05:31:56Z\",\n \"scheduled_at\": \"2023-11-07T05:31:56Z\",\n \"archived\": true,\n \"tags\": [\n \"<string>\"\n ],\n \"parent\": \"<string>\",\n \"source\": \"<string>\",\n \"source_detail\": \"<string>\",\n \"value\": 123,\n \"currency\": \"<string>\",\n \"expected_close\": \"<string>\",\n \"external_id\": \"<string>\",\n \"metadata\": {},\n \"time_tracking\": {},\n \"order\": 123,\n \"identity\": {},\n \"suppress_events\": true,\n \"implementation_date\": \"<string>\",\n \"assigned_qa\": \"<string>\"\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://api.quiva.ai/workspaces/task")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"assignees\": [\n \"<string>\"\n ],\n \"attachments\": [\n \"<string>\"\n ],\n \"priority\": \"<string>\",\n \"folder\": \"<string>\",\n \"reporter\": \"<string>\",\n \"status\": \"<string>\",\n \"space_id\": \"<string>\",\n \"due_date\": \"2023-11-07T05:31:56Z\",\n \"scheduled_at\": \"2023-11-07T05:31:56Z\",\n \"archived\": true,\n \"tags\": [\n \"<string>\"\n ],\n \"parent\": \"<string>\",\n \"source\": \"<string>\",\n \"source_detail\": \"<string>\",\n \"value\": 123,\n \"currency\": \"<string>\",\n \"expected_close\": \"<string>\",\n \"external_id\": \"<string>\",\n \"metadata\": {},\n \"time_tracking\": {},\n \"order\": 123,\n \"identity\": {},\n \"suppress_events\": true,\n \"implementation_date\": \"<string>\",\n \"assigned_qa\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.quiva.ai/workspaces/task")
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 \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"assignees\": [\n \"<string>\"\n ],\n \"attachments\": [\n \"<string>\"\n ],\n \"priority\": \"<string>\",\n \"folder\": \"<string>\",\n \"reporter\": \"<string>\",\n \"status\": \"<string>\",\n \"space_id\": \"<string>\",\n \"due_date\": \"2023-11-07T05:31:56Z\",\n \"scheduled_at\": \"2023-11-07T05:31:56Z\",\n \"archived\": true,\n \"tags\": [\n \"<string>\"\n ],\n \"parent\": \"<string>\",\n \"source\": \"<string>\",\n \"source_detail\": \"<string>\",\n \"value\": 123,\n \"currency\": \"<string>\",\n \"expected_close\": \"<string>\",\n \"external_id\": \"<string>\",\n \"metadata\": {},\n \"time_tracking\": {},\n \"order\": 123,\n \"identity\": {},\n \"suppress_events\": true,\n \"implementation_date\": \"<string>\",\n \"assigned_qa\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"url": "<string>",
"title": "<string>",
"description": "<string>",
"assignees": [
"<string>"
],
"attachments": [
"<string>"
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"priority": "<string>",
"folder": "<string>",
"reporter": "<string>",
"status": "<string>",
"space_id": "<string>",
"due_date": "2023-11-07T05:31:56Z",
"scheduled_at": "2023-11-07T05:31:56Z",
"archived": true,
"order": 123,
"tags": [
"<string>"
],
"metadata": {},
"watchers": [
"<string>"
],
"muted": [
"<string>"
],
"parent": "<string>",
"source": "<string>",
"source_detail": "<string>",
"value": 123,
"currency": "<string>",
"expected_close": "<string>",
"time_tracking": {
"estimate": {
"time_in_seconds": 123
},
"logs": [
{
"time_spent": {
"time_in_seconds": 2
},
"started_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"description": "<string>",
"user": {
"id": "<string>",
"name": "<string>"
},
"created_at": "2023-11-07T05:31:56Z"
}
],
"spent": {
"time_in_seconds": 123
},
"remaining": {
"time_in_seconds": 123
},
"progress_percent": 123
},
"version": 123,
"sync_key": "<string>",
"sync_conflict": {},
"external_id": "<string>",
"activity_at": "2023-11-07T05:31:56Z",
"subtasks": [
{}
],
"task_actions": [
{
"description": "Confirm the report has been proofread",
"id": "ta_a1b2c3",
"done": true,
"resources": [
{
"resource_id": "onboarding-checklist",
"resource_type": "record-config",
"metadata": {}
}
]
}
],
"implementation_date": "<string>",
"assigned_qa": "<string>",
"base_record_skipped": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}Create a task
Changed: accepts external_id, which is a plain indexed attribute here (no uniqueness, no map entry; use the upsert route for that). Integration callers get strict ids.
curl --request POST \
--url https://api.quiva.ai/workspaces/task \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"description": "<string>",
"assignees": [
"<string>"
],
"attachments": [
"<string>"
],
"priority": "<string>",
"folder": "<string>",
"reporter": "<string>",
"status": "<string>",
"space_id": "<string>",
"due_date": "2023-11-07T05:31:56Z",
"scheduled_at": "2023-11-07T05:31:56Z",
"archived": true,
"tags": [
"<string>"
],
"parent": "<string>",
"source": "<string>",
"source_detail": "<string>",
"value": 123,
"currency": "<string>",
"expected_close": "<string>",
"external_id": "<string>",
"metadata": {},
"time_tracking": {},
"order": 123,
"identity": {},
"suppress_events": true,
"implementation_date": "<string>",
"assigned_qa": "<string>"
}
'import requests
url = "https://api.quiva.ai/workspaces/task"
payload = {
"title": "<string>",
"description": "<string>",
"assignees": ["<string>"],
"attachments": ["<string>"],
"priority": "<string>",
"folder": "<string>",
"reporter": "<string>",
"status": "<string>",
"space_id": "<string>",
"due_date": "2023-11-07T05:31:56Z",
"scheduled_at": "2023-11-07T05:31:56Z",
"archived": True,
"tags": ["<string>"],
"parent": "<string>",
"source": "<string>",
"source_detail": "<string>",
"value": 123,
"currency": "<string>",
"expected_close": "<string>",
"external_id": "<string>",
"metadata": {},
"time_tracking": {},
"order": 123,
"identity": {},
"suppress_events": True,
"implementation_date": "<string>",
"assigned_qa": "<string>"
}
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({
title: '<string>',
description: '<string>',
assignees: ['<string>'],
attachments: ['<string>'],
priority: '<string>',
folder: '<string>',
reporter: '<string>',
status: '<string>',
space_id: '<string>',
due_date: '2023-11-07T05:31:56Z',
scheduled_at: '2023-11-07T05:31:56Z',
archived: true,
tags: ['<string>'],
parent: '<string>',
source: '<string>',
source_detail: '<string>',
value: 123,
currency: '<string>',
expected_close: '<string>',
external_id: '<string>',
metadata: {},
time_tracking: {},
order: 123,
identity: {},
suppress_events: true,
implementation_date: '<string>',
assigned_qa: '<string>'
})
};
fetch('https://api.quiva.ai/workspaces/task', 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.quiva.ai/workspaces/task",
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' => '<string>',
'description' => '<string>',
'assignees' => [
'<string>'
],
'attachments' => [
'<string>'
],
'priority' => '<string>',
'folder' => '<string>',
'reporter' => '<string>',
'status' => '<string>',
'space_id' => '<string>',
'due_date' => '2023-11-07T05:31:56Z',
'scheduled_at' => '2023-11-07T05:31:56Z',
'archived' => true,
'tags' => [
'<string>'
],
'parent' => '<string>',
'source' => '<string>',
'source_detail' => '<string>',
'value' => 123,
'currency' => '<string>',
'expected_close' => '<string>',
'external_id' => '<string>',
'metadata' => [
],
'time_tracking' => [
],
'order' => 123,
'identity' => [
],
'suppress_events' => true,
'implementation_date' => '<string>',
'assigned_qa' => '<string>'
]),
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://api.quiva.ai/workspaces/task"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"assignees\": [\n \"<string>\"\n ],\n \"attachments\": [\n \"<string>\"\n ],\n \"priority\": \"<string>\",\n \"folder\": \"<string>\",\n \"reporter\": \"<string>\",\n \"status\": \"<string>\",\n \"space_id\": \"<string>\",\n \"due_date\": \"2023-11-07T05:31:56Z\",\n \"scheduled_at\": \"2023-11-07T05:31:56Z\",\n \"archived\": true,\n \"tags\": [\n \"<string>\"\n ],\n \"parent\": \"<string>\",\n \"source\": \"<string>\",\n \"source_detail\": \"<string>\",\n \"value\": 123,\n \"currency\": \"<string>\",\n \"expected_close\": \"<string>\",\n \"external_id\": \"<string>\",\n \"metadata\": {},\n \"time_tracking\": {},\n \"order\": 123,\n \"identity\": {},\n \"suppress_events\": true,\n \"implementation_date\": \"<string>\",\n \"assigned_qa\": \"<string>\"\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://api.quiva.ai/workspaces/task")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"assignees\": [\n \"<string>\"\n ],\n \"attachments\": [\n \"<string>\"\n ],\n \"priority\": \"<string>\",\n \"folder\": \"<string>\",\n \"reporter\": \"<string>\",\n \"status\": \"<string>\",\n \"space_id\": \"<string>\",\n \"due_date\": \"2023-11-07T05:31:56Z\",\n \"scheduled_at\": \"2023-11-07T05:31:56Z\",\n \"archived\": true,\n \"tags\": [\n \"<string>\"\n ],\n \"parent\": \"<string>\",\n \"source\": \"<string>\",\n \"source_detail\": \"<string>\",\n \"value\": 123,\n \"currency\": \"<string>\",\n \"expected_close\": \"<string>\",\n \"external_id\": \"<string>\",\n \"metadata\": {},\n \"time_tracking\": {},\n \"order\": 123,\n \"identity\": {},\n \"suppress_events\": true,\n \"implementation_date\": \"<string>\",\n \"assigned_qa\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.quiva.ai/workspaces/task")
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 \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"assignees\": [\n \"<string>\"\n ],\n \"attachments\": [\n \"<string>\"\n ],\n \"priority\": \"<string>\",\n \"folder\": \"<string>\",\n \"reporter\": \"<string>\",\n \"status\": \"<string>\",\n \"space_id\": \"<string>\",\n \"due_date\": \"2023-11-07T05:31:56Z\",\n \"scheduled_at\": \"2023-11-07T05:31:56Z\",\n \"archived\": true,\n \"tags\": [\n \"<string>\"\n ],\n \"parent\": \"<string>\",\n \"source\": \"<string>\",\n \"source_detail\": \"<string>\",\n \"value\": 123,\n \"currency\": \"<string>\",\n \"expected_close\": \"<string>\",\n \"external_id\": \"<string>\",\n \"metadata\": {},\n \"time_tracking\": {},\n \"order\": 123,\n \"identity\": {},\n \"suppress_events\": true,\n \"implementation_date\": \"<string>\",\n \"assigned_qa\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"url": "<string>",
"title": "<string>",
"description": "<string>",
"assignees": [
"<string>"
],
"attachments": [
"<string>"
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"priority": "<string>",
"folder": "<string>",
"reporter": "<string>",
"status": "<string>",
"space_id": "<string>",
"due_date": "2023-11-07T05:31:56Z",
"scheduled_at": "2023-11-07T05:31:56Z",
"archived": true,
"order": 123,
"tags": [
"<string>"
],
"metadata": {},
"watchers": [
"<string>"
],
"muted": [
"<string>"
],
"parent": "<string>",
"source": "<string>",
"source_detail": "<string>",
"value": 123,
"currency": "<string>",
"expected_close": "<string>",
"time_tracking": {
"estimate": {
"time_in_seconds": 123
},
"logs": [
{
"time_spent": {
"time_in_seconds": 2
},
"started_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"description": "<string>",
"user": {
"id": "<string>",
"name": "<string>"
},
"created_at": "2023-11-07T05:31:56Z"
}
],
"spent": {
"time_in_seconds": 123
},
"remaining": {
"time_in_seconds": 123
},
"progress_percent": 123
},
"version": 123,
"sync_key": "<string>",
"sync_conflict": {},
"external_id": "<string>",
"activity_at": "2023-11-07T05:31:56Z",
"subtasks": [
{}
],
"task_actions": [
{
"description": "Confirm the report has been proofread",
"id": "ta_a1b2c3",
"done": true,
"resources": [
{
"resource_id": "onboarding-checklist",
"resource_type": "record-config",
"metadata": {}
}
]
}
],
"implementation_date": "<string>",
"assigned_qa": "<string>",
"base_record_skipped": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}Authorizations
JWT Authorization header using the Bearer scheme
Body
Markdown / rich-text content
Assigned user IDs.
Initial status id. If omitted and space_id is set, the task inherits the space's default_status.
Parent space id. If omitted, the task lands in the default space. The task id is server-generated; any id you send is ignored.
RFC3339 date-time. A date-only value can fail to round-trip.
RFC3339 date-time to schedule the task.
Create the task in an archived state.
Free-form tag ids.
Id of the parent task, when this is a subtask. Setting it needs read access to the parent's space.
Your own id for the task, at most 256 bytes of UTF-8.
256Arbitrary metadata bag stored on the task.
Set estimate only, as {"estimate": {"time_in_seconds": n}}. Logged time goes through the time-log route.
Sort order of the task within its column/board.
Keys the Space's base record, for example {"email": "jo@example.com"}. Request-only. If the contact link cannot be made the task is still created and the response carries base_record_skipped.
Show child attributes
Show child attributes
Hides the write from flow task triggers. The changes feed and webhooks still see it.
Response
Created task
UI URL to navigate directly to this task
Markdown / rich-text content
Assigned user IDs.
A status id of the space.
RFC3339 date-time at which the task is scheduled. Archiving the task clears it.
Whether the task is archived.
Sort order of the task within its column/board.
Free-form tag ids on the task.
Arbitrary metadata bag stored on the task.
User ids watching the task. Only present on the get-task response, not stored on the task record.
User ids who muted the task. Only present on the get-task response.
Id of the parent task, when this is a subtask. Setting it needs read access to the parent's space.
Show child attributes
Show child attributes
1 on create, +1 on every task write. Comments, time logs and activity stamps never bump it.
Set when the task is shared with a connected account. Its version then belongs to that shared lineage.
Present when an incoming change from a connected account conflicted with a local edit.
Your own id for the task, at most 256 bytes of UTF-8.
256Moves on task, comment, time-log and action writes.
Present on list and get responses.
Show child attributes
Show child attributes
Estimated go-live date, ISO. Stored only; nothing schedules on it.
User id, offered from the Space's assigned QA users. Not validated against them.