Sites

List your sites

Every site you can open: the ones in your workspace, plus sites other workspaces shared with you (shared: true, with your role). Without limit you get the whole list in one response, newest-updated first, and no nextCursor. With limit (1–1000) the list is ordered by slug instead, so a page boundary cannot move while you read, and nextCursor is the cursor for the next page (null on the last). Send the same limit, q and scope with every cursor. A page of up to 100 sites costs the same however many sites you have.

Each site carries its stable id; use it, or the slug, in the {slug} path of every site operation.

get/api/v1/sites

Request

  • Base URL: https://api.dotsy.ai
  • URL: https://api.dotsy.ai/api/v1/sites
  • Auth: HTTP bearer

Query parameters

limitinteger

Page size (1–1000). Omit it to get the whole list in one response, without nextCursor.

cursorstring

Opaque cursor from the previous page's nextCursor. Send it with limit to get the next page.

qstring

Optional case-insensitive substring filter on slug and title, applied before paging. Use with limit for the dashboard site switcher search.

scope'owned' | 'shared'

owned lists only the sites in your workspace, shared only the ones other workspaces shared with you. Anything else (or omitted) lists both.

Headers

X-Dotsy-Workspacestring

Org id or slug to act as for this request (session/MCP user actors only — ignored for pga_ keys). Validated against the caller's own memberships (id match first, then slug); 403 if not a member. Takes precedence over session.activeOrganizationId and the auto-provisioned home-workspace fallback.

Response

The sites.

nextCursorstring nullable

Only present when limit was sent. Pass it as cursor (with the same limit) for the next page; null on the last page.

Example response

{
  "sites": [
    {
      "id": "3f6c1d52-8a4b-4e0e-9c57-2f1b7a9d6e10",
      "slug": "acme-studio",
      "title": "Acme Studio",
      "updatedAt": 1759401600000,
      "publishedAt": 1759315200000,
      "hasPendingChanges": true,
      "shared": false,
      "publicUrl": "https://acme-studio.dotsy.site/",
      "liveUrl": "https://acme-studio.dotsy.site/",
      "liveReady": true
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.