Skip to content

Tasks

GET
/v1/tasks
curl --request GET \
--url 'https://api.threadkite.app/v1/tasks?assignee=me&status=open&due=overdue&limit=100' \
--header 'Authorization: Bearer <token>'

Open tasks soonest first (or done tasks, most recent first). Tasks on threads you can see, and tasks on no thread that are yours or that you set (all of them for owners, admins, managers and API keys). Filter by who it is for (assignee=me), thread, contact, and due (overdue, today or later, in your time zone). Returns up to limit; hasMore says when there are more.

assignee

me, or a user id. Every task you can see when left out.

string
>= 1 characters <= 100 characters

Example

me

me, or a user id. Every task you can see when left out.

status
string
default: open
Allowed values: open done
due

Open tasks overdue, due today or later (days in your time zone)

string
Allowed values: overdue today upcoming

Open tasks overdue, due today or later (days in your time zone)

threadId
string format: uuid
contactId

Tasks on the contact’s threads

string format: uuid

Tasks on the contact’s threads

limit
integer
default: 100 >= 1 <= 200
Media typeapplication/json
object
items
required
Array<object>
object
id
required
string format: uuid
threadId
required
string format: uuid
nullable
inboxId
required

The thread’s inbox

string format: uuid
nullable
contact
required
One of:
object
id
required
string format: uuid
name
required
string
nullable
title
required
string
note
required
string
nullable
dueAt
required

When it is due; for an all-day task, 9am on its day (when it is reminded)

string format: date-time
dueAllDay
required
boolean
timeZone
required

The time zone its day belongs to

string
dueState
required

Against today, in your time zone

string
Allowed values: overdue today upcoming done
dueLabel
required
string
assignee
required
object
id
required
string
name
required
string
avatarUrl
required

Their picture; null to show their initials

string
nullable
completedAt
required
string format: date-time
nullable
completedBy
required
One of:
object
id
required
string
name
required
string
createdBy
required
One of:
object
id
required
string
name
required
string
origin
required
string
Allowed values: person api flow ai
canEdit
required

You can change, complete and delete it

boolean
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
hasMore
required

More matched than limit

boolean

Example

{
"items": [
{
"contact": {
"name": "Sarah Turner"
},
"title": "Follow up with Sarah",
"timeZone": "Europe/London",
"dueState": "overdue",
"dueLabel": "Tomorrow, 9am",
"assignee": {
"id": "usr_8f2c",
"name": "James Patel",
"avatarUrl": "https://api.threadkite.app/avatars/0b7c3a52-5d9e-4f3a-9a51-2f1e8c6d4b10.jpg"
},
"completedBy": {
"id": "usr_8f2c",
"name": "James Patel"
},
"createdBy": {
"id": "usr_8f2c",
"name": "James Patel"
},
"origin": "person"
}
]
}
Media typeapplication/json
object
statusCode
required
number
code
required

Stable machine-readable reason

string
message
required
string
errors

With code invalid: every problem with the request, by field (message is the first)

Array<object>
object
path
required

Dotted path inside the item, e.g. attributes.price.amountMinor

string
message
required
string

Example

{
"statusCode": 403,
"code": "forbidden",
"message": "You do not have permission to do that.",
"errors": [
{
"message": "Enter the make"
}
]
}

Missing or invalid API key

Media typeapplication/json
object
statusCode
required
number
code
required

Stable machine-readable reason

string
message
required
string
errors

With code invalid: every problem with the request, by field (message is the first)

Array<object>
object
path
required

Dotted path inside the item, e.g. attributes.price.amountMinor

string
message
required
string

Example

{
"statusCode": 403,
"code": "forbidden",
"message": "You do not have permission to do that.",
"errors": [
{
"message": "Enter the make"
}
]
}

The organisation is on the Free plan (code upgrade_required)

Media typeapplication/json
object
statusCode
required
number
code
required

Stable machine-readable reason

string
message
required
string
feature
required

The feature that needs Pro

string
nullable
Allowed values: extraSeats connections aiAssistant aiReplies rules fullReports api inboxes bulkMessages videoMessages
upgradePath
required

Where to upgrade or pay, in the web app

string

Example

{
"statusCode": 402,
"code": "upgrade_required",
"message": "Connections are part of Pro. Upgrade to connect texts, calls and more.",
"feature": "extraSeats",
"upgradePath": "/settings/billing"
}

The key does not have the scope (or the person the permission)

Media typeapplication/json
object
statusCode
required
number
code
required

Stable machine-readable reason

string
message
required
string
errors

With code invalid: every problem with the request, by field (message is the first)

Array<object>
object
path
required

Dotted path inside the item, e.g. attributes.price.amountMinor

string
message
required
string

Example

{
"statusCode": 403,
"code": "forbidden",
"message": "You do not have permission to do that.",
"errors": [
{
"message": "Enter the make"
}
]
}
Media typeapplication/json
object
statusCode
required
number
code
required

Stable machine-readable reason

string
message
required
string
errors

With code invalid: every problem with the request, by field (message is the first)

Array<object>
object
path
required

Dotted path inside the item, e.g. attributes.price.amountMinor

string
message
required
string

Example

{
"statusCode": 403,
"code": "forbidden",
"message": "You do not have permission to do that.",
"errors": [
{
"message": "Enter the make"
}
]
}

Rate limit reached

Media typeapplication/json
object
statusCode
required
number
code
required

Stable machine-readable reason

string
message
required
string
retryAfter
required

Seconds until another request will be accepted

number

Example

{
"statusCode": 429,
"code": "rate_limited",
"message": "Too many requests. Each key can make 120 requests a minute; try again in 12 seconds.",
"retryAfter": 12
}