Topolo Docs Topolo Platform
Open workspace

List QR codes

Lists non-deleted workspace codes with filters, page metadata, tier counts and scan counts; basic codes remain in the same canonical inventory.

Outcome

Lists non-deleted workspace codes with filters, page metadata, tier counts and scan counts; basic codes remain in the same canonical inventory.

Before you start

  • Verify identity, environment and the intended organization before discovery.
  • Discover the published codes:read permission and the target policy.
  • Select an accessible canonical Auth workspace and set WORKSPACE_ID to its returned id. Workspace binding is separate from input.

Discover the target

topolo whoami --json
topolo workspaces list topolo-quro --json
topolo actions get app_topolo_quro.qurocodes.list --detail --json
  • statusId: Discovered code status id for generation or filtering.
  • categoryId: Discovered category id used by a code filter or series generation.
  • seriesId: Discovered numeric series id used to filter inventory or assets.

Request

GET /qurocodes

Inspect parameters and test this action.

Input fields

FieldRequiredMeaning
pageNoOne-based numbered page. Continue while meta.hasMore is true, preserving other filters.
perPageNoRequested page size capped at 100. This is numbered pagination, not a cursor.
limitNoDeclared bounded result count. Event/rollup results have no continuation cursor; narrow the window when the limit is reached.
tierNoDeclared basic, standard or premium tier; listing can also accept all where the input enum allows it. This field is not a pricing or entitlement check.
searchNoText filter for codes or templates; it does not change stored records.
statusIdNoDiscovered code status id for generation or filtering.
categoryIdNoDiscovered category id used by a code filter or series generation.
fromNoRequested beginning of the analytics/date filter window. Inspect the effective from returned by the handler.
toNoRequested end of the analytics/date filter window. Inspect the effective to returned by the handler.
seriesIdNoDiscovered numeric series id used to filter inventory or assets.

Worked examples

Actual exported Quro Worker with local Miniflare D1/KV and every committed app/analytics migration. Auth, service tokens, Nexus, destination probes and platform archival are synthetic responses; outbound fetch is sealed. Notifications remain in the local outbox. No live redirect propagation, QR scan, destination health, provider delivery, archival or production erasure is established.

Save reviewed input as payload.json, replacing fixture identifiers through discovery.

topolo actions validate app_topolo_quro.qurocodes.list --data @payload.json --json
topolo actions plan app_topolo_quro.qurocodes.list --resource-type workspace --resource-id "$WORKSPACE_ID" --data @payload.json --json
topolo actions call app_topolo_quro.qurocodes.list --resource-type workspace --resource-id "$WORKSPACE_ID" --data @payload.json --detail --json

MCP uses the same reviewed input and separately discovered resource binding:

{
  "tool": "topolo_prepare_action",
  "arguments": {
    "actionId": "app_topolo_quro.qurocodes.list",
    "input": {
      "perPage": 1
    },
    "resourceType": "workspace",
    "resourceId": "ws_quro_fixture"
  }
}
{
  "tool": "topolo_read_action",
  "arguments": {
    "actionId": "app_topolo_quro.qurocodes.list",
    "input": {
      "perPage": 1
    },
    "resourceType": "workspace",
    "resourceId": "ws_quro_fixture",
    "detail": true
  }
}

Worked response 1 · HTTP 200

Input · payload.json:

{
  "perPage": 1
}

Captured SDK response:

{
  "success": true,
  "data": [
    {
      "id": 1,
      "slug": "quro-fixture",
      "url": "https://example.com/fixture",
      "status_id": 1,
      "category_id": 1,
      "created_at": "2026-10-06T11:16:12.268Z",
      "created_by": "user_quro_fixture",
      "tier": "standard",
      "series_id": 1,
      "design_version": 1,
      "deleted_at": null,
      "valid_from": null,
      "valid_to": null,
      "max_usage": null,
      "name": "Fixture QR",
      "series_name": "Fixture campaign",
      "series_status": "active",
      "design": {
        "version": 1,
        "source": "plain",
        "foreground": "#000000",
        "background": "#ffffff",
        "moduleStyle": "square",
        "finderStyle": "square",
        "brand": null
      },
      "delivery_mode": "redirect",
      "supports_publishing_state": true,
      "supports_tier_selection": true,
      "management_model": "standard",
      "scan_count": 0
    }
  ],
  "meta": {
    "page": 1,
    "perPage": 1,
    "total": 1,
    "counts": {
      "total": 1,
      "basic": 0,
      "standard": 1,
      "premium": 0,
      "unassigned": 0
    },
    "hasMore": false
  }
}

HTTP 200. Continue numbered pages while meta.hasMore is true, preserving filters. Compare returned ids and slugs rather than assuming names are unique.

Worked response 2 · HTTP 200

Input · payload.json:

{}

Captured SDK response:

{
  "success": true,
  "data": [
    {
      "id": 4,
      "slug": "fixture-collision",
      "url": "https://example.com/collision/1",
      "status_id": 1,
      "category_id": 1,
      "created_at": "2026-10-06T11:16:12.461Z",
      "created_by": "user_quro_fixture",
      "tier": "standard",
      "series_id": 1,
      "design_version": 1,
      "deleted_at": null,
      "valid_from": null,
      "valid_to": null,
      "max_usage": null,
      "name": "Fixture collision",
      "series_name": "Fixture campaign",
      "series_status": "completed",
      "design": {
        "version": 1,
        "source": "plain",
        "foreground": "#000000",
        "background": "#ffffff",
        "moduleStyle": "square",
        "finderStyle": "square",
        "brand": null
      },
      "delivery_mode": "redirect",
      "supports_publishing_state": true,
      "supports_tier_selection": true,
      "management_model": "standard",
      "scan_count": 0
    },
    {
      "id": 5,
      "slug": "fixture-collision-1",
      "url": "https://example.com/collision/2",
      "status_id": 1,
      "category_id": 1,
      "created_at": "2026-10-06T11:16:12.461Z",
      "created_by": "user_quro_fixture",
      "tier": "standard",
      "series_id": 1,
      "design_version": 1,
      "deleted_at": null,
      "valid_from": null,
      "valid_to": null,
      "max_usage": null,
      "name": "Fixture collision",
      "series_name": "Fixture campaign",
      "series_status": "completed",
      "design": {
        "version": 1,
        "source": "plain",
        "foreground": "#000000",
        "background": "#ffffff",
        "moduleStyle": "square",
        "finderStyle": "square",
        "brand": null
      },
      "delivery_mode": "redirect",
      "supports_publishing_state": true,
      "supports_tier_selection": true,
      "management_model": "standard",
      "scan_count": 0
    },
    {
      "id": 6,
      "slug": "fixture-collision-2",
      "url": "https://example.com/collision/3",
      "status_id": 1,
      "category_id": 1,
      "created_at": "2026-10-06T11:16:12.461Z",
      "created_by": "user_quro_fixture",
      "tier": "standard",
      "series_id": 1,
      "design_version": 1,
      "deleted_at": null,
      "valid_from": null,
      "valid_to": null,
      "max_usage": null,
      "name": "Fixture collision",
      "series_name": "Fixture campaign",
      "series_status": "completed",
      "design": {
        "version": 1,
        "source": "plain",
        "foreground": "#000000",
        "background": "#ffffff",
        "moduleStyle": "square",
        "finderStyle": "square",
        "brand": null
      },
      "delivery_mode": "redirect",
      "supports_publishing_state": true,
      "supports_tier_selection": true,
      "management_model": "standard",
      "scan_count": 0
    },
    {
      "id": 7,
      "slug": "fixture-collision-3",
      "url": "https://example.com/collision/4",
      "status_id": 1,
      "category_id": 1,
      "created_at": "2026-10-06T11:16:12.461Z",
      "created_by": "user_quro_fixture",
      "tier": "standard",
      "series_id": 1,
      "design_version": 1,
      "deleted_at": null,
      "valid_from": null,
      "valid_to": null,
      "max_usage": null,
      "name": "Fixture collision",
      "series_name": "Fixture campaign",
      "series_status": "completed",
      "design": {
        "version": 1,
        "source": "plain",
        "foreground": "#000000",
        "background": "#ffffff",
        "moduleStyle": "square",
        "finderStyle": "square",
        "brand": null
      },
      "delivery_mode": "redirect",
      "supports_publishing_state": true,
      "supports_tier_selection": true,
      "management_model": "standard",
      "scan_count": 0
    },
    {
      "id": 8,
      "slug": "fixture-collision-4",
      "url": "https://example.com/collision/5",
      "status_id": 1,
      "category_id": 1,
      "created_at": "2026-10-06T11:16:12.461Z",
      "created_by": "user_quro_fixture",
      "tier": "standard",
      "series_id": 1,
      "design_version": 1,
      "deleted_at": null,
      "valid_from": null,
      "valid_to": null,
      "max_usage": null,
      "name": "Fixture collision",
      "series_name": "Fixture campaign",
      "series_status": "completed",
      "design": {
        "version": 1,
        "source": "plain",
        "foreground": "#000000",
        "background": "#ffffff",
        "moduleStyle": "square",
        "finderStyle": "square",
        "brand": null
      },
      "delivery_mode": "redirect",
      "supports_publishing_state": true,
      "supports_tier_selection": true,
      "management_model": "standard",
      "scan_count": 0
    },
    {
      "id": 9,
      "slug": "fixture-collision-5",
      "url": "https://example.com/collision/6",
      "status_id": 1,
      "category_id": 1,
      "created_at": "2026-10-06T11:16:12.461Z",
      "created_by": "user_quro_fixture",
      "tier": "standard",
      "series_id": 1,
      "design_version": 1,
      "deleted_at": null,
      "valid_from": null,
      "valid_to": null,
      "max_usage": null,
      "name": "Fixture collision",
      "series_name": "Fixture campaign",
      "series_status": "completed",
      "design": {
        "version": 1,
        "source": "plain",
        "foreground": "#000000",
        "background": "#ffffff",
        "moduleStyle": "square",
        "finderStyle": "square",
        "brand": null
      },
      "delivery_mode": "redirect",
      "supports_publishing_state": true,
      "supports_tier_selection": true,
      "management_model": "standard",
      "scan_count": 0
    },
    {
      "id": 10,
      "slug": "fixture-collision-6",
      "url": "https://example.com/collision/7",
      "status_id": 1,
      "category_id": 1,
      "created_at": "2026-10-06T11:16:12.461Z",
      "created_by": "user_quro_fixture",
      "tier": "standard",
      "series_id": 1,
      "design_version": 1,
      "deleted_at": null,
      "valid_from": null,
      "valid_to": null,
      "max_usage": null,
      "name": "Fixture collision",
      "series_name": "Fixture campaign",
      "series_status": "completed",
      "design": {
        "version": 1,
        "source": "plain",
        "foreground": "#000000",
        "background": "#ffffff",
        "moduleStyle": "square",
        "finderStyle": "square",
        "brand": null
      },
      "delivery_mode": "redirect",
      "supports_publishing_state": true,
      "supports_tier_selection": true,
      "management_model": "standard",
      "scan_count": 0
    },
    {
      "id": 11,
      "slug": "fixture-collision-7",
      "url": "https://example.com/collision/8",
      "status_id": 1,
      "category_id": 1,
      "created_at": "2026-10-06T11:16:12.461Z",
      "created_by": "user_quro_fixture",
      "tier": "standard",
      "series_id": 1,
      "design_version": 1,
      "deleted_at": null,
      "valid_from": null,
      "valid_to": null,
      "max_usage": null,
      "name": "Fixture collision",
      "series_name": "Fixture campaign",
      "series_status": "completed",
      "design": {
        "version": 1,
        "source": "plain",
        "foreground": "#000000",
        "background": "#ffffff",
        "moduleStyle": "square",
        "finderStyle": "square",
        "brand": null
      },
      "delivery_mode": "redirect",
      "supports_publishing_state": true,
      "supports_tier_selection": true,
      "management_model": "standard",
      "scan_count": 0
    },
    {
      "id": 12,
      "slug": "fixture-collision-8",
      "url": "https://example.com/collision/9",
      "status_id": 1,
      "category_id": 1,
      "created_at": "2026-10-06T11:16:12.461Z",
      "created_by": "user_quro_fixture",
      "tier": "standard",
      "series_id": 1,
      "design_version": 1,
      "deleted_at": null,
      "valid_from": null,
      "valid_to": null,
      "max_usage": null,
      "name": "Fixture collision",
      "series_name": "Fixture campaign",
      "series_status": "completed",
      "design": {
        "version": 1,
        "source": "plain",
        "foreground": "#000000",
        "background": "#ffffff",
        "moduleStyle": "square",
        "finderStyle": "square",
        "brand": null
      },
      "delivery_mode": "redirect",
      "supports_publishing_state": true,
      "supports_tier_selection": true,
      "management_model": "standard",
      "scan_count": 0
    },
    {
      "id": 13,
      "slug": "fixture-collision-9",
      "url": "https://example.com/collision/10",
      "status_id": 1,
      "category_id": 1,
      "created_at": "2026-10-06T11:16:12.461Z",
      "created_by": "user_quro_fixture",
      "tier": "standard",
      "series_id": 1,
      "design_version": 1,
      "deleted_at": null,
      "valid_from": null,
      "valid_to": null,
      "max_usage": null,
      "name": "Fixture collision",
      "series_name": "Fixture campaign",
      "series_status": "completed",
      "design": {
        "version": 1,
        "source": "plain",
        "foreground": "#000000",
        "background": "#ffffff",
        "moduleStyle": "square",
        "finderStyle": "square",
        "brand": null
      },
      "delivery_mode": "redirect",
      "supports_publishing_state": true,
      "supports_tier_selection": true,
      "management_model": "standard",
      "scan_count": 0
    },
    {
      "id": 2,
      "slug": "fixture-001",
      "url": "https://example.com/item/1",
      "status_id": 1,
      "category_id": 1,
      "created_at": "2026-10-06T11:16:12.428Z",
      "created_by": "user_quro_fixture",
      "tier": "basic",
      "series_id": 1,
      "design_version": 1,
      "deleted_at": null,
      "valid_from": null,
      "valid_to": null,
      "max_usage": null,
      "name": "Fixture 001",
      "series_name": "Fixture campaign",
      "series_status": "completed",
      "design": {
        "version": 1,
        "source": "plain",
        "foreground": "#000000",
        "background": "#ffffff",
        "moduleStyle": "square",
        "finderStyle": "square",
        "brand": null
      },
      "delivery_mode": "redirect",
      "supports_publishing_state": true,
      "supports_tier_selection": true,
      "management_model": "basic",
      "scan_count": 0
    },
    {
      "id": 3,
      "slug": "fixture-002",
      "url": "https://example.com/item/2",
      "status_id": 1,
      "category_id": 1,
      "created_at": "2026-10-06T11:16:12.428Z",
      "created_by": "user_quro_fixture",
      "tier": "basic",
      "series_id": 1,
      "design_version": 1,
      "deleted_at": null,
      "valid_from": null,
      "valid_to": null,
      "max_usage": null,
      "name": "Fixture 002",
      "series_name": "Fixture campaign",
      "series_status": "completed",
      "design": {
        "version": 1,
        "source": "plain",
        "foreground": "#000000",
        "background": "#ffffff",
        "moduleStyle": "square",
        "finderStyle": "square",
        "brand": null
      },
      "delivery_mode": "redirect",
      "supports_publishing_state": true,
      "supports_tier_selection": true,
      "management_model": "basic",
      "scan_count": 0
    },
    {
      "id": 1,
      "slug": "quro-fixture",
      "url": "https://example.com/updated",
      "status_id": 1,
      "category_id": 1,
      "created_at": "2026-10-06T11:16:12.268Z",
      "created_by": "user_quro_fixture",
      "tier": "standard",
      "series_id": 1,
      "design_version": 1,
      "deleted_at": null,
      "valid_from": null,
      "valid_to": null,
      "max_usage": null,
      "name": "Updated fixture QR",
      "series_name": "Fixture campaign",
      "series_status": "completed",
      "design": {
        "version": 1,
        "source": "plain",
        "foreground": "#000000",
        "background": "#ffffff",
        "moduleStyle": "square",
        "finderStyle": "square",
        "brand": null
      },
      "delivery_mode": "redirect",
      "supports_publishing_state": true,
      "supports_tier_selection": true,
      "management_model": "standard",
      "scan_count": 0
    }
  ],
  "meta": {
    "page": 1,
    "perPage": 50,
    "total": 13,
    "counts": {
      "total": 13,
      "basic": 2,
      "standard": 11,
      "premium": 0,
      "unassigned": 0
    },
    "hasMore": false
  }
}

HTTP 200. Continue numbered pages while meta.hasMore is true, preserving filters. Compare returned ids and slugs rather than assuming names are unique.

Worked response 3 · HTTP 200

Input · payload.json:

{
  "perPage": 2,
  "seriesId": 1
}

Captured SDK response:

{
  "success": true,
  "data": [
    {
      "id": 4,
      "slug": "fixture-collision",
      "url": "https://example.com/collision/1",
      "status_id": 1,
      "category_id": 1,
      "created_at": "2026-10-06T11:16:12.461Z",
      "created_by": "user_quro_fixture",
      "tier": "standard",
      "series_id": 1,
      "design_version": 1,
      "deleted_at": null,
      "valid_from": null,
      "valid_to": null,
      "max_usage": null,
      "name": "Fixture collision",
      "series_name": "Fixture campaign",
      "series_status": "completed",
      "design": {
        "version": 1,
        "source": "plain",
        "foreground": "#000000",
        "background": "#ffffff",
        "moduleStyle": "square",
        "finderStyle": "square",
        "brand": null
      },
      "delivery_mode": "redirect",
      "supports_publishing_state": true,
      "supports_tier_selection": true,
      "management_model": "standard",
      "scan_count": 0
    },
    {
      "id": 5,
      "slug": "fixture-collision-1",
      "url": "https://example.com/collision/2",
      "status_id": 1,
      "category_id": 1,
      "created_at": "2026-10-06T11:16:12.461Z",
      "created_by": "user_quro_fixture",
      "tier": "standard",
      "series_id": 1,
      "design_version": 1,
      "deleted_at": null,
      "valid_from": null,
      "valid_to": null,
      "max_usage": null,
      "name": "Fixture collision",
      "series_name": "Fixture campaign",
      "series_status": "completed",
      "design": {
        "version": 1,
        "source": "plain",
        "foreground": "#000000",
        "background": "#ffffff",
        "moduleStyle": "square",
        "finderStyle": "square",
        "brand": null
      },
      "delivery_mode": "redirect",
      "supports_publishing_state": true,
      "supports_tier_selection": true,
      "management_model": "standard",
      "scan_count": 0
    }
  ],
  "meta": {
    "page": 1,
    "perPage": 2,
    "total": 13,
    "counts": {
      "total": 13,
      "basic": 2,
      "standard": 11,
      "premium": 0,
      "unassigned": 0
    },
    "hasMore": true
  }
}

HTTP 200. Continue numbered pages while meta.hasMore is true, preserving filters. Compare returned ids and slugs rather than assuming names are unique.

Worked response 4 · HTTP 200

Input · payload.json:

{
  "search": "fixture",
  "tier": "premium",
  "statusId": 2,
  "categoryId": 2,
  "from": "2000-01-01",
  "to": "2100-01-01",
  "limit": 2
}

Captured SDK response:

{
  "success": true,
  "data": [
    {
      "id": 14,
      "slug": "premium-fixture",
      "url": "https://example.com/item/premium",
      "status_id": 2,
      "category_id": 2,
      "created_at": "2026-10-06T11:16:13.017Z",
      "created_by": "user_quro_fixture",
      "tier": "premium",
      "series_id": null,
      "design_version": 2,
      "deleted_at": null,
      "valid_from": null,
      "valid_to": null,
      "max_usage": null,
      "name": null,
      "series_name": null,
      "series_status": null,
      "design": {
        "version": 1,
        "source": "plain",
        "foreground": "#000000",
        "background": "#ffffff",
        "moduleStyle": "square",
        "finderStyle": "square",
        "brand": null
      },
      "delivery_mode": "redirect",
      "supports_publishing_state": true,
      "supports_tier_selection": true,
      "management_model": "premium",
      "scan_count": 2
    }
  ],
  "meta": {
    "page": 1,
    "perPage": 2,
    "total": 1,
    "counts": {
      "total": 1,
      "basic": 0,
      "standard": 0,
      "premium": 1,
      "unassigned": 1
    },
    "hasMore": false
  }
}

HTTP 200. Continue numbered pages while meta.hasMore is true, preserving filters. Compare returned ids and slugs rather than assuming names are unique.

Worked response 5 · HTTP 200

Input · payload.json:

{}

Captured SDK response:

{
  "success": true,
  "data": [],
  "meta": {
    "page": 1,
    "perPage": 50,
    "total": 0,
    "counts": {
      "total": 0,
      "basic": 0,
      "standard": 0,
      "premium": 0,
      "unassigned": 0
    },
    "hasMore": false
  }
}

HTTP 200. Continue numbered pages while meta.hasMore is true, preserving filters. Compare returned ids and slugs rather than assuming names are unique.

Verify the result

  • Continue numbered pages while meta.hasMore is true, preserving filters. Compare returned ids and slugs rather than assuming names are unique.

Errors and recovery

  • HTTP 401 · auth_error: Authenticate again in the intended environment and organization.
  • HTTP 403 · action_permission_required: Inspect the actual refusal. The action permission and the verified workspace access are both required; a caller cannot name an ungranted workspace.

Inspect the original handler body as well as the SDK error code. These are observed local refusals, not an exhaustive provider-failure list.

Recovery boundary

Read again with the same filters after transient failures; the list excludes soft-deleted records.

  • Get QR code: Reads one code by exact numeric id or slug within the verified workspace, including its design, scan count and series. Exact reads can return soft-deleted records.

Evidence

Actual exported Quro Worker with local Miniflare D1/KV and every committed app/analytics migration. Auth, service tokens, Nexus, destination probes and platform archival are synthetic responses; outbound fetch is sealed. Notifications remain in the local outbox. No live redirect propagation, QR scan, destination health, provider delivery, archival or production erasure is established.