curl --request POST \
--url https://{organization}.rescueconsole.com/api/tasks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"title": "Book Biscuit's dental cleaning",
"notes": "Contoso Veterinary Clinic has Tuesday mornings free.",
"priority": "high",
"due_on": "2026-10-06",
"assignee_person_id": "5c1d8e2a-7b41-4f0e-9a63-2d8f4b7c1e90",
"entity_type": "animal",
"entity_id": "a3f9c0d2-6e14-4b8a-b5d7-91c2e8f04a17"
}
EOFconst options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'Book Biscuit\'s dental cleaning',
notes: 'Contoso Veterinary Clinic has Tuesday mornings free.',
priority: 'high',
due_on: '2026-10-06',
assignee_person_id: '5c1d8e2a-7b41-4f0e-9a63-2d8f4b7c1e90',
entity_type: 'animal',
entity_id: 'a3f9c0d2-6e14-4b8a-b5d7-91c2e8f04a17'
})
};
fetch('https://{organization}.rescueconsole.com/api/tasks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{organization}.rescueconsole.com/api/tasks"
payload = {
"title": "Book Biscuit's dental cleaning",
"notes": "Contoso Veterinary Clinic has Tuesday mornings free.",
"priority": "high",
"due_on": "2026-10-06",
"assignee_person_id": "5c1d8e2a-7b41-4f0e-9a63-2d8f4b7c1e90",
"entity_type": "animal",
"entity_id": "a3f9c0d2-6e14-4b8a-b5d7-91c2e8f04a17"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"task": {
"id": "<string>",
"title": "<string>",
"status": "open",
"priority": "low",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"notes": "<string>",
"due_on": "<string>",
"assignee_person_id": "<string>",
"entity_type": "person",
"entity_id": "<string>",
"medical_record_id": "<string>",
"created_by_person_id": "<string>",
"completed_at": "2023-11-07T05:31:56Z"
}
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}Create a task
Creates a task, on a record or on none. Only the title is required. On a record, the task needs write on that record’s area (see List tasks), and the record must exist in your organization. On no record, it needs write on any one area. If you assign it, the person is sent a notice in the app, and by email unless they have turned that off; the notice names the person who made your key as the one who assigned it, and that person is not sent one about their own task.
curl --request POST \
--url https://{organization}.rescueconsole.com/api/tasks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"title": "Book Biscuit's dental cleaning",
"notes": "Contoso Veterinary Clinic has Tuesday mornings free.",
"priority": "high",
"due_on": "2026-10-06",
"assignee_person_id": "5c1d8e2a-7b41-4f0e-9a63-2d8f4b7c1e90",
"entity_type": "animal",
"entity_id": "a3f9c0d2-6e14-4b8a-b5d7-91c2e8f04a17"
}
EOFconst options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'Book Biscuit\'s dental cleaning',
notes: 'Contoso Veterinary Clinic has Tuesday mornings free.',
priority: 'high',
due_on: '2026-10-06',
assignee_person_id: '5c1d8e2a-7b41-4f0e-9a63-2d8f4b7c1e90',
entity_type: 'animal',
entity_id: 'a3f9c0d2-6e14-4b8a-b5d7-91c2e8f04a17'
})
};
fetch('https://{organization}.rescueconsole.com/api/tasks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{organization}.rescueconsole.com/api/tasks"
payload = {
"title": "Book Biscuit's dental cleaning",
"notes": "Contoso Veterinary Clinic has Tuesday mornings free.",
"priority": "high",
"due_on": "2026-10-06",
"assignee_person_id": "5c1d8e2a-7b41-4f0e-9a63-2d8f4b7c1e90",
"entity_type": "animal",
"entity_id": "a3f9c0d2-6e14-4b8a-b5d7-91c2e8f04a17"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"task": {
"id": "<string>",
"title": "<string>",
"status": "open",
"priority": "low",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"notes": "<string>",
"due_on": "<string>",
"assignee_person_id": "<string>",
"entity_type": "person",
"entity_id": "<string>",
"medical_record_id": "<string>",
"created_by_person_id": "<string>",
"completed_at": "2023-11-07T05:31:56Z"
}
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}Authorizations
An API key from Settings, API keys. It starts with rc_live_.
Body
Cannot be empty.
done creates it already completed, with completed_at set to now.
open, done low, normal, high The day it is due, YYYY-MM-DD.
The record ID of a person in your organization.
The kind of record it is on. Send it with entity_id, or neither for an organization to-do.
person, animal, location_unit, donation, campaign, shift, volunteer_event, shift_signup, adoption_application The record ID of the record it is on. Send it with entity_type.
Response
The task, as it was created.
A task. The list returns exactly these fields; creating and changing a task return it as stored, which can carry more.
Show child attributes
Show child attributes