Get a task
US Region: https://public-api.sessionboard.com · EU Region: https://public-api-eu.sessionboard.com
One task. Needs read:tasks.
Request example
curl --request GET \ --url 'https://public-api.sessionboard.com/v1/tasks/{taskId}' \ --header 'x-access-token: <api-token>'const response = await fetch('https://public-api.sessionboard.com/v1/tasks/{taskId}', { method: 'GET', headers: { "x-access-token": "<api-token>" },});
const data = await response.json();console.log(data);import requests
response = requests.request( "GET", "https://public-api.sessionboard.com/v1/tasks/{taskId}", headers={ "x-access-token": "<api-token>" },)
print(response.json())<?php
$curl = curl_init();
curl_setopt_array($curl, [ CURLOPT_URL => "https://public-api.sessionboard.com/v1/tasks/{taskId}", CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "x-access-token: <api-token>", ],]);
$response = curl_exec($curl);curl_close($curl);
echo $response;package main
import ( "fmt" "io" "net/http")
func main() { req, _ := http.NewRequest("GET", "https://public-api.sessionboard.com/v1/tasks/{taskId}", nil) req.Header.Add("x-access-token", "<api-token>")
res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))}HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://public-api.sessionboard.com/v1/tasks/{taskId}")) .header("x-access-token", "<api-token>") .method("GET", HttpRequest.BodyPublishers.noBody()) .build();
HttpResponse<String> response = HttpClient.newHttpClient() .send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());Try it
Response headers
Authorizations
x-access-tokenstringheaderOrganization API token. Generate from Organization Settings → API Tokens.
AuthorizationBearer <token>headerorOAuth 2.1 access token. Obtained via the OAuth PKCE flow at
/oauth/token.
Send one of these. See Authentication.
Path parameters
taskIdstring<uuid>pathrequiredThe task's
id.
Responses
200application/json
OK
dataTaskA to-do for your team, about one or more records, in an event or across the organization.
Show child attributes
idstring<uuid>org_idstringevent_idinteger | nulleventobject | nullShow child attributes
idintegernamestringtimezonestring
kindstring- Allowed values
"task", "milestone"
titlestringdescriptionstring | nullstatusstring- Allowed values
"open", "in_progress", "completed", "cancelled"
prioritystring- Allowed values
"low", "normal", "high", "urgent"
assigneeTaskPerson | any | nullShow child attributes
idintegerfirst_namestring | nulllast_namestring | nullemailstringphoto_urlstring | null
creatorTaskPerson | any | nullShow child attributes
idintegerfirst_namestring | nulllast_namestring | nullemailstringphoto_urlstring | null
completed_byTaskPerson | any | nullShow child attributes
idintegerfirst_namestring | nulllast_namestring | nullemailstringphoto_urlstring | null
recordsTaskRecord[]Show child attributes
typestringA submission is a
session.- Allowed values
"contact", "session", "sponsor", "exhibitor", "group"
idstringlabelstring | nullThe contact's name, the session's title, or the sponsor's, exhibitor's or group's name.
nullwhenrestricted.restrictedbooleanThe key's user cannot read this record, so its label is withheld.
due_atstring<date-time> | nullhas_due_timebooleanfalsewhen only a date was set (due at 23:59 that day in the time zone).due_datestring<date> | nullThe due date in
timezone.due_timestring | nullThe due time (
HH:mm) intimezone;nullwhenhas_due_timeisfalse.timezonestringThe IANA time zone of
due_dateanddue_time— the event's, or for an organization task the assignee's (elseAmerica/New_York).record_typestring | nullThe primary record's type (the same as
records[0].type).record_idstring | nullThe primary record's id.
parent_idstring | nullstart_atstring<date-time> | nullreminderstring- Allowed values
"none", "due", "9am", "1h", "1d", "1w"
reminder_atstring<date-time> | nullWhen the reminder goes to the assignee.
milestoneobject | nullShow child attributes
idstringtitlestringdue_atstring<date-time> | null
sourcestring | nullWhere the task came from, such as
api,custom,noteormilestone.source_note_idstring | nullThe note this task follows up, when it was created from one.
completion_notestring | nullcompleted_atstring<date-time> | nullfollower_idsinteger[]is_overduebooleancan_editbooleanThe key's user can update, complete or reopen it.
can_deletebooleancreated_atstring<date-time>updated_atstring<date-time>
401
Unauthorized
403application/json
TASKS_PLATFORM_ONLY: the organization uses a self-serve Sessionboard product; Tasks are part of Sessionboard Platform.SCOPE_REQUIRED: the key lacksread:tasks(reads) orwrite:tasks(writes). Legacy keys with no scopes can read but not write.ORG_WIDE_TOKEN_REQUIRED: the key is restricted to particular events; Tasks need a key without an event restriction.FORBIDDEN: the key's user can read this task but not change it (only the assignee, the creator, a follower or an admin can; only the creator or an admin can delete), or cannot use Tasks (reviewers and portal users).
errorstringVALIDATION_ERROR,USER_REQUIRED,FORBIDDEN,NOT_FOUND,TASKS_PLATFORM_ONLY,SCOPE_REQUIRED,ORG_WIDE_TOKEN_REQUIREDorINTERNAL_ERROR.messagestring
404
No such task, or the key's user cannot read it (NOT_FOUND).
Response examples
{ "data": { "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "org_id": "<string>", "event_id": 123, "event": { "id": 123, "name": "<string>", "timezone": "<string>" }, "kind": "task", "title": "<string>", "description": "<string>", "status": "open", "priority": "low", "assignee": { "id": 123, "first_name": "<string>", "last_name": "<string>", "email": "<string>", "photo_url": "<string>" }, "creator": { "id": 123, "first_name": "<string>", "last_name": "<string>", "email": "<string>", "photo_url": "<string>" }, "completed_by": { "id": 123, "first_name": "<string>", "last_name": "<string>", "email": "<string>", "photo_url": "<string>" }, "records": [ { "type": "contact", "id": "<string>", "label": "<string>", "restricted": true } ], "due_at": "2026-01-15T09:30:00Z", "has_due_time": true, "due_date": "2026-01-15", "due_time": "<string>", "timezone": "<string>", "record_type": "<string>", "record_id": "<string>", "parent_id": "<string>", "start_at": "2026-01-15T09:30:00Z", "reminder": "none", "reminder_at": "2026-01-15T09:30:00Z", "milestone": { "id": "<string>", "title": "<string>", "due_at": "2026-01-15T09:30:00Z" }, "source": "<string>", "source_note_id": "<string>", "completion_note": "<string>", "completed_at": "2026-01-15T09:30:00Z", "follower_ids": [ 123 ], "is_overdue": true, "can_edit": true, "can_delete": true, "created_at": "2026-01-15T09:30:00Z", "updated_at": "2026-01-15T09:30:00Z" }}{ "error": "TASKS_PLATFORM_ONLY", "message": "Tasks are part of Sessionboard Platform."}{ "error": "SCOPE_REQUIRED", "message": "Token missing required scope: write:tasks"}