One viewing of a movie, or of a TV show, season or episode, in crepe's private diary. A watch with no rating and no review text is a plain play (for example an episode Plex reported) and stays out of the diary log.
tid
Timestamp-based ID
Properties
containsSpoilers
boolean
Optional
No description available.
createdAt
string
datetime
Required
When this record was created (not the watch time).
episodeNumber
integer
Optional
Required for episode watches.
minimum: 0episodeTitle
string
Optional
No description available.
maxLength: 1000 bytesepisodeTmdbId
string
Optional
The episode's own TMDB id, when known.
maxLength: 32 bytesgenres
array
of
string
Optional
No description available.
maxLength: 20 itemsimdbId
string
Optional
No description available.
maxLength: 32 byteskind
string
Required
What was watched.
movie, show, season, episodemainCredit
string
Optional
No description available.
maxLength: 300 bytesmainCreditRole
string
Optional
No description available.
director, creatorplace
ref
#place
Optional
Where it was watched: a movie theater from the Foursquare places catalog, or any place of the user's own ("Steve's house").
rating
integer
Optional
Half stars out of five, times two. Absent means unrated.
minimum: 1maximum: 10releaseDate
string
Optional
Snapshot, YYYY-MM-DD.
maxLength: 32 bytesrewatch
boolean
Optional
deprecated 2026-09-29: derived by readers, no longer written
seasonNumber
integer
Optional
Required for season and episode watches.
minimum: 0source
string
Optional
Where this watch was first recorded.
crepe, plex, popfeed, letterboxdstamps
unknown
Optional
Map of field group name to hybrid logical clock stamp, for field-level last-write-wins merge between devices and the sync server.
tags
array
of
string
Optional
No description available.
maxLength: 50 itemstext
string
Optional
Review text, plain.
maxLength: 100000 bytesmaxGraphemes: 10000 graphemestitle
string
Optional
Snapshot of the movie or show title, for offline display.
maxLength: 1000 bytestmdbId
string
Required
TMDB id of the movie, or of the show for show, season and episode watches. Never an episode's own id.
maxLength: 32 bytesupdatedAt
string
datetime
Required
An RFC 3339 formatted timestamp.
watchedAt
string
datetime
Optional
When it was watched. Absent for a watch logged without a date.
View raw schema
{
"description": "One viewing of a movie, or of a TV show, season or episode, in crepe's private diary. A watch with no rating and no review text is a plain play (for example an episode Plex reported) and stays out of the diary log.",
"key": "tid",
"record": {
"properties": {
"containsSpoilers": {
"type": "boolean"
},
"createdAt": {
"description": "When this record was created (not the watch time).",
"format": "datetime",
"type": "string"
},
"episodeNumber": {
"description": "Required for episode watches.",
"minimum": 0,
"type": "integer"
},
"episodeTitle": {
"maxLength": 1000,
"type": "string"
},
"episodeTmdbId": {
"description": "The episode's own TMDB id, when known.",
"maxLength": 32,
"type": "string"
},
"genres": {
"items": {
"maxLength": 100,
"type": "string"
},
"maxLength": 20,
"type": "array"
},
"imdbId": {
"maxLength": 32,
"type": "string"
},
"kind": {
"description": "What was watched.",
"knownValues": [
"movie",
"show",
"season",
"episode"
],
"type": "string"
},
"mainCredit": {
"maxLength": 300,
"type": "string"
},
"mainCreditRole": {
"knownValues": [
"director",
"creator"
],
"type": "string"
},
"place": {
"description": "Where it was watched: a movie theater from the Foursquare places catalog, or any place of the user's own (\"Steve's house\").",
"ref": "#place",
"type": "ref"
},
"rating": {
"description": "Half stars out of five, times two. Absent means unrated.",
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"releaseDate": {
"description": "Snapshot, YYYY-MM-DD.",
"maxLength": 32,
"type": "string"
},
"rewatch": {
"description": "deprecated 2026-09-29: derived by readers, no longer written",
"type": "boolean"
},
"seasonNumber": {
"description": "Required for season and episode watches.",
"minimum": 0,
"type": "integer"
},
"source": {
"description": "Where this watch was first recorded.",
"knownValues": [
"crepe",
"plex",
"popfeed",
"letterboxd"
],
"type": "string"
},
"stamps": {
"description": "Map of field group name to hybrid logical clock stamp, for field-level last-write-wins merge between devices and the sync server.",
"type": "unknown"
},
"tags": {
"items": {
"maxGraphemes": 64,
"maxLength": 640,
"type": "string"
},
"maxLength": 50,
"type": "array"
},
"text": {
"description": "Review text, plain.",
"maxGraphemes": 10000,
"maxLength": 100000,
"type": "string"
},
"title": {
"description": "Snapshot of the movie or show title, for offline display.",
"maxLength": 1000,
"type": "string"
},
"tmdbId": {
"description": "TMDB id of the movie, or of the show for show, season and episode watches. Never an episode's own id.",
"maxLength": 32,
"type": "string"
},
"updatedAt": {
"format": "datetime",
"type": "string"
},
"watchedAt": {
"description": "When it was watched. Absent for a watch logged without a date.",
"format": "datetime",
"type": "string"
}
},
"required": [
"kind",
"tmdbId",
"createdAt",
"updatedAt"
],
"type": "object"
},
"type": "record"
}