# social.popfeed.feed.listItem

> Published by [bookhive.buzz](https://lexicon.garden/identity/did:plc:enu2j5xjlqsjaylv3du4myh4)

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:enu2j5xjlqsjaylv3du4myh4/social.popfeed.feed.listItem)
- [Documentation](https://lexicon.garden/lexicon/did:plc:enu2j5xjlqsjaylv3du4myh4/social.popfeed.feed.listItem/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:enu2j5xjlqsjaylv3du4myh4/social.popfeed.feed.listItem/examples)

## Definitions

### `social.popfeed.feed.listItem`

**Type**: `record`

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `title` | `string` | No | Title of the creative work. |
| `genres` | `array` | No |  |
| `poster` | `blob` | No |  |
| `status` | `string` | No |  |
| `addedAt` | `string` (datetime) | Yes | Timestamp when the creative work was added to the list. |
| `listUri` | `string` (uri) | Yes | URI of the list where the item is stored. |
| `backdrop` | `blob` | No |  |
| `listType` | `string` | No | The type of list, e.g., 'watchlist', 'favorites', 'to-read', etc. |
| `position` | `integer` | No | DEPRECATED |
| `posterUrl` | `string` (uri) | No | Poster or cover image URL for the creative work. Soon to be deprecated in favor of the 'poster' blob field |
| `startedAt` | `string` (datetime) | No | Timestamp when the user started the creative work. Most relevant for books, TV shows, and video games. |
| `mainCredit` | `string` | No | Main actor, director, author, or artist of the creative work. |
| `backdropUrl` | `string` (uri) | No | Backdrop image URL for the creative work. Soon to be deprecated in favor of the 'backdrop' blob field |
| `completedAt` | `string` (datetime) | No | Timestamp when the user finished the creative work. Most relevant for books, TV shows, and video games. |
| `description` | `string` | No | Optional description or commentary for the list item. |
| `identifiers` | `ref` → `#identifiers` | Yes | External identifiers for the creative work. |
| `releaseDate` | `string` (datetime) | No | Release date of the creative work. |
| `bookProgress` | `ref` → `#bookProgress` | No | Reading progress for books or book series (also supports audiobooks via time fields). |
| `mainCreditRole` | `string` | No | The role of the main credit. |
| `watchedEpisodes` | `array` | No | For TV shows, the episodes the user has watched. |
| `creativeWorkType` | `string` | Yes | The type of creative work this item represents. |

### `social.popfeed.feed.listItem#identifiers`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `asin` | `string` | No | Amazon Standard ID |
| `mbId` | `string` | No | DEPRECATED - soon to be ignored |
| `other` | `string` | No | Other external ID |
| `hiveId` | `string` | No | BookHive ID for fast local lookup |
| `igdbId` | `string` | No | IGDB ID for games |
| `imdbId` | `string` | No | IMDb ID |
| `isbn10` | `string` | No | ISBN-10 for books |
| `isbn13` | `string` | No | ISBN-13 for books |
| `tmdbId` | `string` | No | TMDb ID for movies/TV shows |
| `mbReleaseId` | `string` | No | MusicBrainz ID for specific releases (albums, EPs, tracks) |
| `seasonNumber` | `integer` | No | Season number for TV shows or series |
| `episodeNumber` | `integer` | No | Episode number for TV shows or series |
| `tmdbTvSeriesId` | `string` | No | TMDb ID for TV series |
| `parentMbReleaseId` | `string` | No | MusicBrainz ID for parent release (e.g., album for a track) |

### `social.popfeed.feed.listItem#bookProgress`

**Type**: `object`

Tracks reading/listening progress for a book or book series item.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `status` | `string` | Yes | Overall progress state. |
| `percent` | `integer` | No | Optional explicit progress percentage (0–100). |
| `updatedAt` | `string` (datetime) | Yes | Last time progress was updated. |
| `totalPages` | `integer` | No | Total pages (if known). |
| `currentPage` | `integer` | No | Current page number (if applicable). |
| `totalChapters` | `integer` | No | Total chapters (if known). |
| `currentChapter` | `integer` | No | Current chapter number (optional alternative to pages). |

### `social.popfeed.feed.listItem#watchedEpisode`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `tmdbId` | `string` | No |  |
| `seasonNumber` | `integer` | Yes |  |
| `episodeNumber` | `integer` | Yes |  |

## Raw Schema

```json
{
  "id": "social.popfeed.feed.listItem",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "identifiers",
          "creativeWorkType",
          "addedAt",
          "listUri"
        ],
        "properties": {
          "title": {
            "type": "string",
            "maxLength": 1000,
            "description": "Title of the creative work."
          },
          "genres": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 50
            }
          },
          "poster": {
            "type": "blob",
            "accept": [
              "image/*"
            ],
            "maxSize": 2000000
          },
          "status": {
            "type": "string",
            "knownValues": [
              "#finished",
              "#in_progress",
              "#backlog",
              "#abandoned"
            ]
          },
          "addedAt": {
            "type": "string",
            "format": "datetime",
            "description": "Timestamp when the creative work was added to the list."
          },
          "listUri": {
            "type": "string",
            "format": "uri",
            "description": "URI of the list where the item is stored."
          },
          "backdrop": {
            "type": "blob",
            "accept": [
              "image/*"
            ],
            "maxSize": 4000000
          },
          "listType": {
            "type": "string",
            "maxLength": 50,
            "description": "The type of list, e.g., 'watchlist', 'favorites', 'to-read', etc."
          },
          "position": {
            "type": "integer",
            "description": "DEPRECATED"
          },
          "posterUrl": {
            "type": "string",
            "format": "uri",
            "description": "Poster or cover image URL for the creative work. Soon to be deprecated in favor of the 'poster' blob field"
          },
          "startedAt": {
            "type": "string",
            "format": "datetime",
            "description": "Timestamp when the user started the creative work. Most relevant for books, TV shows, and video games."
          },
          "mainCredit": {
            "type": "string",
            "maxLength": 1000,
            "description": "Main actor, director, author, or artist of the creative work."
          },
          "backdropUrl": {
            "type": "string",
            "format": "uri",
            "description": "Backdrop image URL for the creative work. Soon to be deprecated in favor of the 'backdrop' blob field"
          },
          "completedAt": {
            "type": "string",
            "format": "datetime",
            "description": "Timestamp when the user finished the creative work. Most relevant for books, TV shows, and video games."
          },
          "description": {
            "type": "string",
            "maxLength": 5000,
            "description": "Optional description or commentary for the list item."
          },
          "identifiers": {
            "ref": "#identifiers",
            "type": "ref",
            "description": "External identifiers for the creative work."
          },
          "releaseDate": {
            "type": "string",
            "format": "datetime",
            "description": "Release date of the creative work."
          },
          "bookProgress": {
            "ref": "#bookProgress",
            "type": "ref",
            "description": "Reading progress for books or book series (also supports audiobooks via time fields)."
          },
          "mainCreditRole": {
            "enum": [
              "director",
              "author",
              "artist",
              "showrunner",
              "lead_actor",
              "creator",
              "studio",
              "publisher",
              "developer",
              "performer",
              "network"
            ],
            "type": "string",
            "description": "The role of the main credit."
          },
          "watchedEpisodes": {
            "type": "array",
            "items": {
              "ref": "#watchedEpisode",
              "type": "ref"
            },
            "description": "For TV shows, the episodes the user has watched."
          },
          "creativeWorkType": {
            "enum": [
              "movie",
              "tv_show",
              "video_game",
              "album",
              "book",
              "book_series",
              "episode",
              "album",
              "ep",
              "tv_season",
              "tv_episode",
              "track"
            ],
            "type": "string",
            "description": "The type of creative work this item represents."
          }
        }
      }
    },
    "identifiers": {
      "type": "object",
      "properties": {
        "asin": {
          "type": "string",
          "description": "Amazon Standard ID"
        },
        "mbId": {
          "type": "string",
          "description": "DEPRECATED - soon to be ignored"
        },
        "other": {
          "type": "string",
          "description": "Other external ID"
        },
        "hiveId": {
          "type": "string",
          "description": "BookHive ID for fast local lookup"
        },
        "igdbId": {
          "type": "string",
          "description": "IGDB ID for games"
        },
        "imdbId": {
          "type": "string",
          "description": "IMDb ID"
        },
        "isbn10": {
          "type": "string",
          "description": "ISBN-10 for books"
        },
        "isbn13": {
          "type": "string",
          "description": "ISBN-13 for books"
        },
        "tmdbId": {
          "type": "string",
          "description": "TMDb ID for movies/TV shows"
        },
        "mbReleaseId": {
          "type": "string",
          "description": "MusicBrainz ID for specific releases (albums, EPs, tracks)"
        },
        "seasonNumber": {
          "type": "integer",
          "description": "Season number for TV shows or series"
        },
        "episodeNumber": {
          "type": "integer",
          "description": "Episode number for TV shows or series"
        },
        "tmdbTvSeriesId": {
          "type": "string",
          "description": "TMDb ID for TV series"
        },
        "parentMbReleaseId": {
          "type": "string",
          "description": "MusicBrainz ID for parent release (e.g., album for a track)"
        }
      }
    },
    "bookProgress": {
      "type": "object",
      "required": [
        "status",
        "updatedAt"
      ],
      "properties": {
        "status": {
          "enum": [
            "in_progress",
            "completed",
            "paused"
          ],
          "type": "string",
          "description": "Overall progress state."
        },
        "percent": {
          "type": "integer",
          "description": "Optional explicit progress percentage (0–100)."
        },
        "updatedAt": {
          "type": "string",
          "format": "datetime",
          "description": "Last time progress was updated."
        },
        "totalPages": {
          "type": "integer",
          "description": "Total pages (if known)."
        },
        "currentPage": {
          "type": "integer",
          "description": "Current page number (if applicable)."
        },
        "totalChapters": {
          "type": "integer",
          "description": "Total chapters (if known)."
        },
        "currentChapter": {
          "type": "integer",
          "description": "Current chapter number (optional alternative to pages)."
        }
      },
      "description": "Tracks reading/listening progress for a book or book series item."
    },
    "watchedEpisode": {
      "type": "object",
      "required": [
        "seasonNumber",
        "episodeNumber"
      ],
      "properties": {
        "tmdbId": {
          "type": "string"
        },
        "seasonNumber": {
          "type": "integer"
        },
        "episodeNumber": {
          "type": "integer"
        }
      }
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
