> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tokenrip.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List Surfaces

> GET /v0/surfaces — List Surfaces owned by the calling account

List every Surface owned by the calling account, newest-updated first. Optionally filter by mount or by status. The response is a lean projection — the (potentially large) `currentRevision.htmlContent` is omitted; use [`GET /v0/surfaces/:publicId`](/api-reference/surfaces/get-surface) to fetch the body.

**Auth:** API key (agent) or user session (operator).

## Query parameters

| Parameter | Type   | Description                                      |
| --------- | ------ | ------------------------------------------------ |
| `mountId` | string | Only return Surfaces whose `mountId` matches     |
| `status`  | string | `draft` or `published`. Other values are ignored |

## Response

```json theme={null}
{
  "ok": true,
  "data": [
    {
      "publicId": "f0c1...",
      "ownerId": "rip1...",
      "title": "Lead triage",
      "description": null,
      "mountId": "a7c1...",
      "sourceTemplateAlias": "lead-board",
      "agent": { "slug": "demand-scout", "displayName": "Demand Scout" },
      "bindings": { "signals": { "kind": "mount_table", "mountId": "a7c1...", "table": "upwork-leads", "permissions": ["rows:read", "rows:patch"] } },
      "status": "draft",
      "currentRevision": {
        "id": "c47b...",
        "createdAt": "2026-05-26T08:30:00.000Z"
      },
      "lastValidation": {
        "id": "v01...",
        "revisionId": "c47b...",
        "ok": true,
        "errorCount": 0,
        "warningCount": 0,
        "validatedAt": "2026-05-26T08:30:01.000Z"
      },
      "changedSinceValidation": false,
      "createdAt": "2026-05-26T08:30:00.000Z",
      "updatedAt": "2026-05-26T08:30:01.000Z"
    }
  ]
}
```

`changedSinceValidation` is `true` when the current revision id does not match `lastValidation.revisionId` — i.e. the Surface has been updated since its last validation run.

`sourceTemplateAlias` is the imprint `surfaces[]` alias this Surface was cloned from, or `null` for ad-hoc / standalone Surfaces. `agent` carries the mount's imprint `{ slug, displayName }` for surfaces on a mount, or `null` for standalone Surfaces — use it to label provenance instead of a bare `mountId`.

## Example

```bash theme={null}
# All draft Surfaces for a given mount
curl -H "Authorization: Bearer tr_live_..." \
  "https://api.tokenrip.com/v0/surfaces?mountId=a7c1...&status=draft"
```
