Skip to content

List tasks

GET/v1/tasks

US Region: https://public-api.sessionboard.com · EU Region: https://public-api-eu.sessionboard.com

Your organization's tasks, open ones first by due date. Filters combine.

  • assignee: me (the API key's user), a user id, the email of a member of your organization, none (unassigned) or any (everyone).
  • due: overdue, today, upcoming or none (no due date), judged in each task's time zone. due_from / due_to bound the due date (YYYY-MM-DD, inclusive).
  • record_type + record_id: tasks linked to that record.

counts gives open, today, overdue, upcoming, no-date, milestone and completed totals for the same filters, ignoring status and due.

Tasks are read as the API key's user: a key that belongs to no user gets 400 USER_REQUIRED. Needs read:tasks. Tasks are part of Sessionboard Platform.

Request example

Terminal window
curl --request GET \
--url 'https://public-api.sessionboard.com/v1/tasks' \
--header 'x-access-token: <api-token>'

Try it

Authorization

Your token stays in this page. It is sent only to the region above and is never saved; it is gone when you leave or reload the page.

Query parameters
GET

Authorizations

  • x-access-tokenstringheader

    Organization API token. Generate from Organization Settings → API Tokens.

  • AuthorizationBearer <token>headeror

    OAuth 2.1 access token. Obtained via the OAuth PKCE flow at /oauth/token.

Send one of these. See Authentication.

Query parameters

  • event_idintegerquery

    Only this event's tasks.

  • assigneestringquery

    me, a user id, an email, none or any.

  • statusstringquery

    open (the default; includes in progress) or completed.

    Allowed values
    "open", "completed"
  • duestringquery

    With no status, only open tasks.

    Allowed values
    "overdue", "today", "upcoming", "none"
  • kindstringquery
    Allowed values
    "task", "milestone"
    Default
    "task"
  • prioritystringquery
    Allowed values
    "low", "normal", "high", "urgent"
  • due_fromstring<date>query

    Due on or after this date.

  • due_tostring<date>query

    Due on or before this date.

  • record_typestringquery
    Allowed values
    "contact", "session", "sponsor", "exhibitor", "group"
  • record_idstringquery

    With record_type, the linked record's id.

  • qstringquery

    Words in the title or description.

  • sortstringquery
    Allowed values
    "due", "title", "assignee", "priority", "event", "created", "records"
    Default
    "due"
  • dirstringquery
    Allowed values
    "asc", "desc"
  • tzstringquery

    IANA time zone that decides "today" for due and counts. Defaults to the key's user's time zone.

  • limitintegerquery
    Default
    25
    Minimum
    1
    Maximum
    100
  • offsetintegerquery
    Default
    0
    Minimum
    0

Responses

200application/json

OK

  • dataTask[]
    Show child attributes
    • idstring<uuid>
    • org_idstring
    • event_idinteger | null
    • eventobject | null
      Show child attributes
      • idinteger
      • namestring
      • timezonestring
    • kindstring
      Allowed values
      "task", "milestone"
    • titlestring
    • descriptionstring | null
    • statusstring
      Allowed values
      "open", "in_progress", "completed", "cancelled"
    • prioritystring
      Allowed values
      "low", "normal", "high", "urgent"
    • assigneeTaskPerson | any | null
      Show child attributes
      • idinteger
      • first_namestring | null
      • last_namestring | null
      • emailstring
      • photo_urlstring | null
    • creatorTaskPerson | any | null
      Show child attributes
      • idinteger
      • first_namestring | null
      • last_namestring | null
      • emailstring
      • photo_urlstring | null
    • completed_byTaskPerson | any | null
      Show child attributes
      • idinteger
      • first_namestring | null
      • last_namestring | null
      • emailstring
      • photo_urlstring | null
    • recordsTaskRecord[]
      Show child attributes
      • typestring

        A submission is a session.

        Allowed values
        "contact", "session", "sponsor", "exhibitor", "group"
      • idstring
      • labelstring | null

        The contact's name, the session's title, or the sponsor's, exhibitor's or group's name. null when restricted.

      • restrictedboolean

        The key's user cannot read this record, so its label is withheld.

    • due_atstring<date-time> | null
    • has_due_timeboolean

      false when only a date was set (due at 23:59 that day in the time zone).

    • due_datestring<date> | null

      The due date in timezone.

    • due_timestring | null

      The due time (HH:mm) in timezone; null when has_due_time is false.

    • timezonestring

      The IANA time zone of due_date and due_time — the event's, or for an organization task the assignee's (else America/New_York).

    • record_typestring | null

      The primary record's type (the same as records[0].type).

    • record_idstring | null

      The primary record's id.

    • parent_idstring | null
    • start_atstring<date-time> | null
    • reminderstring
      Allowed values
      "none", "due", "9am", "1h", "1d", "1w"
    • reminder_atstring<date-time> | null

      When the reminder goes to the assignee.

    • milestoneobject | null
      Show child attributes
      • idstring
      • titlestring
      • due_atstring<date-time> | null
    • sourcestring | null

      Where the task came from, such as api, custom, note or milestone.

    • source_note_idstring | null

      The note this task follows up, when it was created from one.

    • completion_notestring | null
    • completed_atstring<date-time> | null
    • follower_idsinteger[]
    • is_overdueboolean
    • can_editboolean

      The key's user can update, complete or reopen it.

    • can_deleteboolean
    • created_atstring<date-time>
    • updated_atstring<date-time>
  • paginationobject
    Show child attributes
    • total_resultsinteger
    • limitinteger
    • offsetinteger
    • has_moreboolean
  • countsobject

    Totals for the same filters, ignoring status, due and kind.

    Show child attributes
    • openinteger
    • todayinteger
    • overdueinteger
    • upcominginteger
    • noneinteger
    • milestonesinteger
    • completedinteger

400application/json

An invalid filter (VALIDATION_ERROR), or a key that belongs to no user (USER_REQUIRED).

  • errorstring

    VALIDATION_ERROR, USER_REQUIRED, FORBIDDEN, NOT_FOUND, TASKS_PLATFORM_ONLY, SCOPE_REQUIRED, ORG_WIDE_TOKEN_REQUIRED or INTERNAL_ERROR.

  • messagestring

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 lacks read:tasks (reads) or write: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).
  • errorstring

    VALIDATION_ERROR, USER_REQUIRED, FORBIDDEN, NOT_FOUND, TASKS_PLATFORM_ONLY, SCOPE_REQUIRED, ORG_WIDE_TOKEN_REQUIRED or INTERNAL_ERROR.

  • messagestring

Response examples

{
"data": [
{
"id": "7d1c2b8e-4f0a-4c3e-9b1d-2a6f8e0c41a1",
"org_id": "3f6a1c2e-8d7b-4e90-a1b2-c3d4e5f60718",
"event_id": 7001,
"event": {
"id": 7001,
"name": "Annual Meeting 2027",
"timezone": "America/Chicago"
},
"kind": "task",
"title": "Chase Dr. Okafor's disclosure",
"description": null,
"status": "open",
"priority": "high",
"assignee": {
"id": 4211,
"first_name": "Dana",
"last_name": "Reyes",
"email": "dana@example.org",
"photo_url": null
},
"creator": {
"id": 3087,
"first_name": "Sam",
"last_name": "Lee",
"email": "sam@example.org",
"photo_url": null
},
"completed_by": null,
"records": [
{
"type": "contact",
"id": "9b2e4c1a-0d3f-4a5b-8c7d-6e5f4a3b2c1d",
"label": "Dr. Ada Okafor",
"restricted": false
}
],
"due_at": "2026-11-13T23:00:00.000Z",
"has_due_time": true,
"due_date": "2026-11-13",
"due_time": "17:00",
"timezone": "America/Chicago",
"record_type": "contact",
"record_id": "9b2e4c1a-0d3f-4a5b-8c7d-6e5f4a3b2c1d",
"parent_id": null,
"start_at": null,
"reminder": "9am",
"reminder_at": "2026-11-13T15:00:00.000Z",
"milestone": null,
"source": "api",
"source_note_id": null,
"completion_note": null,
"completed_at": null,
"follower_ids": [
3087
],
"is_overdue": true,
"can_edit": true,
"can_delete": false,
"created_at": "2026-11-09T16:12:44.000Z",
"updated_at": "2026-11-09T16:12:44.000Z"
}
],
"pagination": {
"total_results": 1,
"limit": 25,
"offset": 0,
"has_more": false
},
"counts": {
"open": 4,
"today": 0,
"overdue": 1,
"upcoming": 2,
"none": 1,
"milestones": 0,
"completed": 7
}
}

Get release notes by email

A short digest on the days something new goes live — each change with a link to its note in the release notes. No marketing, and one click to stop.

Company email addresses only. We’ll send one email to confirm it’s you. Already use Sessionboard? You can also turn this on under Community → What’s new.