# app.skyreader.feed.subscription

> Published by [skyreader.app](https://lexicon.garden/identity/did:plc:ra4jsemddo2ii4pn5jaf6x4v)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:ra4jsemddo2ii4pn5jaf6x4v/app.skyreader.feed.subscription)
- [Documentation](https://lexicon.garden/lexicon/did:plc:ra4jsemddo2ii4pn5jaf6x4v/app.skyreader.feed.subscription/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:ra4jsemddo2ii4pn5jaf6x4v/app.skyreader.feed.subscription/examples)

## Definitions

### `app.skyreader.feed.subscription`

**Type**: `record`

A subscription to an RSS/Atom feed or AT Protocol content stream

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `category` | `string` | No | User-defined category/folder for organization |
| `collectionNsid` | `string` | No | Collection NSID for atproto.collection source type (future extensibility). |
| `createdAt` | `string` (datetime) | Yes |  |
| `customIconUrl` | `string` (uri) | No | User-set custom icon URL override |
| `customTitle` | `string` | No | User-set custom display title override |
| `externalRef` | `string` (at-uri) | No | Reference to the external source record (e.g., Leaflet subscription at-uri) |
| `feedUrl` | `string` (uri) | No | The URL of the RSS/Atom feed. Required for RSS subscriptions. |
| `siteUrl` | `string` (uri) | No | The main website URL associated with the feed |
| `source` | `string` | No | Origin of this subscription (e.g., 'leaflet', 'opml', 'manual') |
| `sourceType` | `string` | No | Content source type: 'rss', 'atproto.shares', 'atproto.documents', 'atproto.collection'. Omitted means RSS. |
| `subjectDid` | `string` | No | The AT Protocol account DID. Required for atproto.* source types. |
| `tags` | `array` | No | User-defined tags for the subscription |
| `title` | `string` | No | User-provided or auto-detected feed title |
| `updatedAt` | `string` (datetime) | No |  |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A subscription to an RSS/Atom feed or AT Protocol content stream",
      "key": "tid",
      "record": {
        "properties": {
          "category": {
            "description": "User-defined category/folder for organization",
            "maxLength": 128,
            "type": "string"
          },
          "collectionNsid": {
            "description": "Collection NSID for atproto.collection source type (future extensibility).",
            "maxLength": 256,
            "type": "string"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "customIconUrl": {
            "description": "User-set custom icon URL override",
            "format": "uri",
            "maxLength": 2048,
            "type": "string"
          },
          "customTitle": {
            "description": "User-set custom display title override",
            "maxLength": 512,
            "type": "string"
          },
          "externalRef": {
            "description": "Reference to the external source record (e.g., Leaflet subscription at-uri)",
            "format": "at-uri",
            "maxLength": 2048,
            "type": "string"
          },
          "feedUrl": {
            "description": "The URL of the RSS/Atom feed. Required for RSS subscriptions.",
            "format": "uri",
            "maxLength": 2048,
            "type": "string"
          },
          "siteUrl": {
            "description": "The main website URL associated with the feed",
            "format": "uri",
            "maxLength": 2048,
            "type": "string"
          },
          "source": {
            "description": "Origin of this subscription (e.g., 'leaflet', 'opml', 'manual')",
            "maxLength": 64,
            "type": "string"
          },
          "sourceType": {
            "description": "Content source type: 'rss', 'atproto.shares', 'atproto.documents', 'atproto.collection'. Omitted means RSS.",
            "maxLength": 64,
            "type": "string"
          },
          "subjectDid": {
            "description": "The AT Protocol account DID. Required for atproto.* source types.",
            "maxLength": 2048,
            "type": "string"
          },
          "tags": {
            "description": "User-defined tags for the subscription",
            "items": {
              "maxLength": 64,
              "type": "string"
            },
            "maxLength": 10,
            "type": "array"
          },
          "title": {
            "description": "User-provided or auto-detected feed title",
            "maxLength": 512,
            "type": "string"
          },
          "updatedAt": {
            "format": "datetime",
            "type": "string"
          }
        },
        "required": [
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "app.skyreader.feed.subscription",
  "lexicon": 1
}
```
