# support.supper.discover.listPages

> Published by [supper.support](https://lexicon.garden/identity/did:plc:mcsqdltevtjpu26xthzzmm2l)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:mcsqdltevtjpu26xthzzmm2l/support.supper.discover.listPages)
- [Documentation](https://lexicon.garden/lexicon/did:plc:mcsqdltevtjpu26xthzzmm2l/support.supper.discover.listPages/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:mcsqdltevtjpu26xthzzmm2l/support.supper.discover.listPages/examples)

## Definitions

### `support.supper.discover.listPages`

**Type**: `query`

Discover canonical indexed Supper pages: first-writer-wins support.supper.actor.profile markers across all repos, optionally filtered by page type or a slug substring. Non-canonical collision claims are omitted. Also answers 'does this DID/slug have a Supper page'. Public read; outputs carry only public profile fields, never private metadata or processor identifiers.

#### Parameters

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `q` | `string` | No | Optional case-insensitive substring matched against the page slug. |
| `limit` | `integer` | No |  |
| `cursor` | `string` | No | Opaque cursor from a previous response. |
| `pageType` | `string` | No | Optional page-type filter. |

#### Output

**Encoding**: `application/json`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `pages` | `array` | Yes |  |
| `cursor` | `string` | No |  |

### `support.supper.discover.listPages#pageView`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `cid` | `string` (cid) | Yes | CID of the exact profile record generation returned in this view. |
| `did` | `string` (did) | Yes | Owner DID of the Supper page. |
| `uri` | `string` (at-uri) | Yes | AT URI of the indexed support.supper.actor.profile record. |
| `slug` | `string` | Yes | Canonical supper.support page slug bound to this DID (first-writer-wins). |
| `pageMode` | `string` | No |  |
| `pageType` | `string` | Yes |  |
| `createdAt` | `string` (datetime) | No |  |
| `indexedAt` | `string` (datetime) | Yes | When the AppView indexed this record. |

## Raw Schema

```json
{
  "id": "support.supper.discover.listPages",
  "defs": {
    "main": {
      "type": "query",
      "output": {
        "schema": {
          "type": "object",
          "required": [
            "pages"
          ],
          "properties": {
            "pages": {
              "type": "array",
              "items": {
                "ref": "#pageView",
                "type": "ref"
              }
            },
            "cursor": {
              "type": "string",
              "maxLength": 4096
            }
          }
        },
        "encoding": "application/json"
      },
      "parameters": {
        "type": "params",
        "properties": {
          "q": {
            "type": "string",
            "maxLength": 80,
            "description": "Optional case-insensitive substring matched against the page slug."
          },
          "limit": {
            "type": "integer",
            "default": 50,
            "maximum": 100,
            "minimum": 1
          },
          "cursor": {
            "type": "string",
            "maxLength": 4096,
            "description": "Opaque cursor from a previous response."
          },
          "pageType": {
            "type": "string",
            "maxLength": 32,
            "description": "Optional page-type filter.",
            "knownValues": [
              "creator",
              "project",
              "supporter"
            ]
          }
        }
      },
      "description": "Discover canonical indexed Supper pages: first-writer-wins support.supper.actor.profile markers across all repos, optionally filtered by page type or a slug substring. Non-canonical collision claims are omitted. Also answers 'does this DID/slug have a Supper page'. Public read; outputs carry only public profile fields, never private metadata or processor identifiers."
    },
    "pageView": {
      "type": "object",
      "required": [
        "uri",
        "cid",
        "did",
        "pageType",
        "slug",
        "indexedAt"
      ],
      "properties": {
        "cid": {
          "type": "string",
          "format": "cid",
          "description": "CID of the exact profile record generation returned in this view."
        },
        "did": {
          "type": "string",
          "format": "did",
          "description": "Owner DID of the Supper page."
        },
        "uri": {
          "type": "string",
          "format": "at-uri",
          "description": "AT URI of the indexed support.supper.actor.profile record."
        },
        "slug": {
          "type": "string",
          "maxLength": 253,
          "description": "Canonical supper.support page slug bound to this DID (first-writer-wins)."
        },
        "pageMode": {
          "type": "string",
          "maxLength": 32,
          "knownValues": [
            "support",
            "shop",
            "both"
          ]
        },
        "pageType": {
          "type": "string",
          "maxLength": 32,
          "knownValues": [
            "creator",
            "project",
            "supporter"
          ]
        },
        "createdAt": {
          "type": "string",
          "format": "datetime"
        },
        "indexedAt": {
          "type": "string",
          "format": "datetime",
          "description": "When the AppView indexed this record."
        }
      }
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
