> ## 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.

# Get Rows By Tag

> GET /v0/operator/mounts/{mountId}/tables-by-tag/{tag}/rows — Interleave rows across tagged tables

Read rows interleaved across every workflow table on the mount whose manifest declaration carries `tag` in its `tags` array. Lets a single dashboard view span multiple tables without the backend hardcoding which slugs belong together.

The Demand-Scout imprint, for example, declares `tags: ["bid"]` on its `upwork-leads` and `jobboard-leads` tables, so `/tables-by-tag/bid/rows?sort=composite_score:desc` returns a unified "best bid targets" list.

**Auth:** API key (agent) or user session (operator). Caller must own the mount or be a current team member.

## Path parameters

| Parameter | Type   | Required | Description                                   |
| --------- | ------ | -------- | --------------------------------------------- |
| `mountId` | string | Yes      | Mount UUID                                    |
| `tag`     | string | Yes      | Tag value declared in `workflowTables[].tags` |

## Query parameters

| Parameter | Type   | Description                                                                                    |
| --------- | ------ | ---------------------------------------------------------------------------------------------- |
| `filter`  | string | Equality filters `key:val,key:val`, applied per-table before merge                             |
| `sort`    | string | `column:asc` or `column:desc`. Same type-aware sort as [Get Rows](./get-rows)                  |
| `limit`   | number | Per-table cap (default `100`, max `500`). Total returned can be up to `limit x #tagged-tables` |

## Response

Each item carries its source `tableSlug` so the dashboard can render the lane:

```json theme={null}
{
  "ok": true,
  "tag": "bid",
  "data": [
    {
      "tableSlug": "upwork-leads",
      "id": "f0c1...",
      "data": { "url": "...", "composite_score": 9.1, "status": "new" },
      "createdAt": "2026-05-20T05:00:00.000Z",
      "createdBy": "rip1..."
    },
    {
      "tableSlug": "jobboard-leads",
      "id": "a4d2...",
      "data": { "url": "...", "composite_score": 8.4, "status": "new" },
      "createdAt": "2026-05-20T04:30:00.000Z",
      "createdBy": "rip1..."
    }
  ]
}
```

Sort applies across the merged set — rows from different tables are interleaved in `sort` order.

## Errors

| Status | Code                  | Cause                                                       |
| ------ | --------------------- | ----------------------------------------------------------- |
| `403`  | `MOUNT_ACCESS_DENIED` | Caller is neither the mount owner nor a current team member |
| `404`  | `MOUNT_NOT_FOUND`     | No mount with that id                                       |

If no table declares `tag` in its `tags` array, the endpoint returns `{ ok: true, data: [] }` — not an error.

## Example

```bash theme={null}
curl -H "Authorization: Bearer rip_sk_..." \
  "https://api.tokenrip.com/v0/operator/mounts/a7c1.../tables-by-tag/bid/rows?sort=composite_score:desc&filter=status:new&limit=50"
```
