Skip to main content
GET
/
v1
/
api
/
schedules
List schedules
curl --request GET \
  --url https://api.hq.zone/v1/api/schedules \
  --header 'Authorization: Bearer <token>'
{
  "messages": [
    {
      "body_markdown": "<string>",
      "delivered_at": "2023-11-07T05:31:56Z",
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "source_kind": "<string>",
      "title": "<string>",
      "ui_strings": "<unknown>",
      "read_at": "2023-11-07T05:31:56Z",
      "schedule_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "schedule_name": "<string>"
    }
  ],
  "page": 123,
  "page_size": 123,
  "total": 123,
  "unread_count": 123
}

Authorizations

Authorization
string
header
required

Personal Access Token. Send as Authorization: Bearer hq_pat_....

Query Parameters

scope
string | null

mine (default) or workspace (admin only).

state
string | null

Explicit lifecycle state filter - passes through verbatim. When set (e.g. state=archived), include_archived is ignored.

include_archived
boolean

When no explicit state filter is supplied, default behaviour EXCLUDES archived rows so the "your schedules" view shows the working set (active + paused + quarantined). Set include_archived=true for the audit history view.

limit
integer<int64> | null
offset
integer<int64> | null

Row offset for the admin paginator. Ignored for scope=mine.

owner_user_id
string<uuid> | null

Restrict a workspace-scope listing to one owner (the admin "filter by user" dropdown). Ignored for scope=mine (which is already pinned to the caller).

Response

Schedules

messages
object[]
required
page
integer<int64>
required
page_size
integer<int64>
required
total
integer<int64>
required

Total rows matching the unread + search filter, before paging.

unread_count
integer<int64>
required

Unread across the whole inbox (drives the nav badge) - independent of the current page / search / sort.