List Projects

Beta
List the workspace's projects, newest first. The implicit Default project is not a row and is never listed; resources with no `project_id` live in it. Archived projects are hidden unless `include_archived=true`, and purged ones unless `include_purged=true`. Cursor-paginated: omit `cursor` for the first page; walk pages while `has_more` is true (default page size 50, max 200).

Authentication

AuthorizationBearer

Enter your API key with the Bearer prefix, e.g. ‘Bearer sk_…’.

Headers

Speechify-VersionstringOptional

Query parameters

cursorstringOptional
Opaque pagination cursor from a previous response.
limitintegerOptional1-200Defaults to 50

Max items per page (default 50, max 200).

include_archivedbooleanOptionalDefaults to false

Include archived projects. Defaults to false, so the list shows only live projects; archived ones stay readable by id.

include_purgedbooleanOptionalDefaults to false
Include purged projects that are still inside their 30-day restore window, each carrying the `purged_at` stamp its deadline is measured from. Defaults to `false`, so the list shows only projects that still exist. This is the only read that returns a purged project: the by-id read answers 404 for one, and a project past its window is never listed, because it is awaiting permanent deletion and a restore would refuse it. Independent of `include_archived`: a purge runs only from the archived state, so asking for purged projects never means asking for every archived one as well.

Response headers

Speechify-Request-IdstringOptional
Unique identifier for this request, present on every response (2xx and non-2xx alike). If the caller sends a `Speechify-Request-Id` request header the server echoes it back (sanitized and length-capped) so one logical request can be traced end-to-end; otherwise the server generates a fresh value. Log it on every response and quote it in support requests - it is the stable handle that ties your observation to Speechify's server-side logs, and it matches the `request_id` field in the error envelope. The legacy alias `X-Request-ID` carries the same value and is still accepted on requests, until 2027-07-24. Prefer the un-prefixed name (RFC 6648).

Response

The workspace's projects.
next_cursorstring or null

Opaque keyset cursor for the next page. Pass back as the cursor request parameter. null when the caller has reached the end of the list (has_more is also false in that case).

has_moreboolean
True when more rows exist beyond this page.
projectslist of objects

Errors

400
Bad Request Error
401
Unauthorized Error