Skip To Main Content
All modules

TV Series

Fields marked * are required. Updates keep every field they are not given. An AI app can ask vritto_describe for the same details, filtered to what its connection may use.

TV Seriestv_series

A series in the user's library, with progress and rating.

tv_series_queryTvSeriesRecordsFindthrough vritto_find

Search the user's saved TV library by text and/or watch status (e.g. status "watching" for currently-watching questions). Use this to resolve mediaRecordId values before watch-log or record writes.

FieldTypeDescription
querystringCase-insensitive text matched against title, overview, genres, and tags.
statusone of want_to_watch, watching, watched, completed, dropped, on_holdFilter by watch status.
detailone of summary, fullRow shape: "summary" (default, id/title/status/rating/year) or "full" (every field incl. journal notes and overview).
limitintegerMaximum records (default 50 in summary mode).
cursorstringPagination cursor from a previous nextCursor.
tv_series_queryTvSeriesStatsFindthrough vritto_find

Summarize the TV library: totals, watch-log counts by year and month, and rating distribution. Prefer this for how-much-TV-watched questions.

FieldTypeDescription
yearstringOptional four-digit year filter for the by-year breakdown.
tv_series_upsertTvSeriesRecordCreate or Updatethrough vritto_create or vritto_update

Save a TV series to the library. Prefer passing providerId alone to import full TMDB metadata (existing status/rating/notes/tags are preserved); pass record only for manual or full-record writes, which replace stored fields.

Note: Pass providerId from vritto_lookup (tv_catalog) to save with full details. A record body replaces stored fields.

FieldTypeDescription
providerIdstringTMDB TV series ID, pass this alone to import/save with TMDB metadata.
statusone of want_to_watch, watching, watched, completed, dropped, on_holdInitial watch status for a provider-only quick-save (providerId without record); only applied when creating, an existing record's status wins. Ignored when record is passed.
mediaRecordIdstringExisting saved record ID to overwrite; defaults to a provider-derived ID.
recordobjectFull TV series record body. The write replaces the stored record, so include every field to keep.
record.providerRef*objectProvider reference identifying the series.
record.title*stringSeries title.
record.originalTitlestring
record.overviewstring
record.firstAirDatestringYYYY-MM-DD first air date; also a default watch-date fallback.
record.runtimeMinutesnumberTypical episode runtime.
record.genreslist of string
record.numberOfSeasonsinteger
record.numberOfEpisodesinteger
record.currentSeasonintegerSeason the user is currently on.
record.currentEpisodeintegerEpisode the user is currently on.
record.statusone of want_to_watch, watching, watched, completed, dropped, on_holdWatch status; defaults to "watching". Use "completed" for finished series and "watching" for in-progress ones.
record.ratingone of dislike, okay, like, loveRating on Vritto's four-point scale.
record.journalNotesstringOwner journal notes.
record.recommendedByPersonIdslist of stringVritto People record IDs who recommended this series.
record.tagslist of stringList names/tags.
Example input
{
  "providerId": "95396",
  "status": "watching"
}
tv_series_deleteTvSeriesRecordDeletethrough vritto_delete

Remove one saved TV series plus all of its watch logs and recommendations. Only for explicit removals.

FieldTypeDescription
mediaRecordId*stringSaved TV series record ID to delete.

TV Watch Logtv_watch_log

A watched season or episode range.

tv_series_queryTvSeriesWatchLogsFindthrough vritto_find

List TV watch logs (title, date, season/episode range, platform, rating), newest first. Supports a watched-date range, ALWAYS pass from/to when the question concerns a period (a year, a month, 'recently'). Rows are compact summaries; pass detail 'full' only when the user needs full log notes.

FieldTypeDescription
mediaRecordIdstringLimit logs to one saved TV series record.
fromstringOnly logs watched ON or AFTER this YYYY-MM-DD date.
tostringOnly logs watched ON or BEFORE this YYYY-MM-DD date.
detailone of summary, fullRow shape: "summary" (default, title/date/platform/rating + notes preview) or "full" (every field incl. complete notes).
limitintegerMaximum logs (default 100 in summary mode).
cursorstringPagination cursor from a previous nextCursor.
tv_series_addTvSeriesWatchLogCreatethrough vritto_create

Log a watched season/episode range for a saved series; the record's status moves to watching (completed records stay completed). Omit watchedOn to accept the air-date default.

FieldTypeDescription
watchLogIdstringExplicit watch log ID; reusing the same ID makes retries idempotent. Defaults to a random ID.
log*objectWatch log fields. TV logs cover season/episode ranges, not individual episodes.
log.mediaRecordId*stringSaved TV series record ID; resolve it with tv_series_queryTvSeriesRecords first.
log.watchedOnstringYYYY-MM-DD watch date. Omit to default to episodeAirDate (when given) or the series first air date, marked as defaulted so the user can edit it later.
log.episodeAirDatestringYYYY-MM-DD air date of the watched episode; used as the default watch date when watchedOn is omitted.
log.seasonFromintegerStarting season of the watched range.
log.episodeFromintegerStarting episode of the watched range.
log.seasonTointegerEnding season of the watched range; must not be before seasonFrom.
log.episodeTointegerEnding episode of the watched range.
log.platformstringWhere it was watched, e.g. Netflix or Hulu.
log.platformTypeone of theater, streaming, television, otherPlatform type; defaults to "theater".
log.platformServicestringStreaming service name when platformType is streaming.
log.platformCountryone of US, INCountry whose catalog the platform was watched in; omit when unknown.
log.placeKeystringPlaces key where it was watched: google:<placeId> or manual:<uuid>, from the Places module.
log.locationLabelstringFree-text location label.
log.watchedWithPersonIdslist of stringVritto People record IDs the user watched with; must reference active People records.
log.notesstringJournal notes for this watch.
log.ratingone of dislike, okay, like, loveRating on Vritto's four-point scale.
Example input
{
  "log": {
    "mediaRecordId": "tv_severance",
    "watchedOn": "2026-09-25",
    "seasonFrom": 2,
    "episodeFrom": 1,
    "seasonTo": 2,
    "episodeTo": 3,
    "platformType": "streaming"
  }
}
tv_series_updateTvSeriesWatchLogUpdatethrough vritto_update

Rewrite an existing TV watch log. The log body replaces the stored fields, so include mediaRecordId and every field to keep.

Note: The log body replaces the stored fields; read the log first and send every field to keep.

FieldTypeDescription
watchLogId*stringExisting watch log ID.
log*objectWatch log fields. TV logs cover season/episode ranges, not individual episodes.
log.mediaRecordId*stringSaved TV series record ID; resolve it with tv_series_queryTvSeriesRecords first.
log.watchedOnstringYYYY-MM-DD watch date. Omit to default to episodeAirDate (when given) or the series first air date, marked as defaulted so the user can edit it later.
log.episodeAirDatestringYYYY-MM-DD air date of the watched episode; used as the default watch date when watchedOn is omitted.
log.seasonFromintegerStarting season of the watched range.
log.episodeFromintegerStarting episode of the watched range.
log.seasonTointegerEnding season of the watched range; must not be before seasonFrom.
log.episodeTointegerEnding episode of the watched range.
log.platformstringWhere it was watched, e.g. Netflix or Hulu.
log.platformTypeone of theater, streaming, television, otherPlatform type; defaults to "theater".
log.platformServicestringStreaming service name when platformType is streaming.
log.platformCountryone of US, INCountry whose catalog the platform was watched in; omit when unknown.
log.placeKeystringPlaces key where it was watched: google:<placeId> or manual:<uuid>, from the Places module.
log.locationLabelstringFree-text location label.
log.watchedWithPersonIdslist of stringVritto People record IDs the user watched with; must reference active People records.
log.notesstringJournal notes for this watch.
log.ratingone of dislike, okay, like, loveRating on Vritto's four-point scale.
tv_series_deleteTvSeriesWatchLogDeletethrough vritto_delete

Delete one TV watch log and refresh the record's watch count and last-watched date. Only for explicit removals.

FieldTypeDescription
watchLogId*stringWatch log ID to delete.

TV Recommendationtv_recommendation

A person's recommendation of a saved series.

tv_series_upsertTvSeriesRecommendationCreate or Updatethrough vritto_create or vritto_update

Record that a Vritto person recommended a saved TV series, and track the recommendation's status. Also links the person on the series record.

FieldTypeDescription
recommendationIdstringExisting recommendation ID; defaults to a series+person derived ID.
recommendation*object
recommendation.mediaRecordId*stringSaved TV series record ID.
recommendation.personId*stringVritto People record ID of the recommender.
recommendation.statusone of open, accepted, dismissed, watchedRecommendation status; defaults to "open".
recommendation.notestringWhy they recommended it.

Person's TV Tastetv_taste

A person's favorite or disliked series.

tv_series_upsertTvSeriesPersonTasteCreate or Updatethrough vritto_create or vritto_update

Record a Vritto person's favorite/dislike taste for a TV series identified by provider reference (the series does not need to be saved).

FieldTypeDescription
personTasteIdstringExisting taste record ID; defaults to a person+series derived ID.
personTaste*object
personTaste.personId*stringVritto People record ID.
personTaste.providerRef*objectProvider reference identifying the series.
personTaste.taste*one of favorite, dislikeWhether the person loves or avoids it.
personTaste.notestring

TV Catalogtv_catalog

TMDB reference data for series and seasons.

tv_series_discoverTvSeriesLook Upthrough vritto_lookup

Browse TMDB TV discovery lists (popular, airing today, on the air, top rated) when the user wants suggestions rather than a title search.

FieldTypeDescription
categoryone of popular, airing_today, on_the_air, top_ratedDiscovery list; defaults to "popular".
pageintegerTMDB result page, starting at 1.
tv_series_getTvSeriesDetailsLook Upthrough vritto_lookup

Fetch full TMDB details (overview, seasons, episodes, genres, cast/crew) for one TV series by TMDB ID.

FieldTypeDescription
providerId*stringTMDB TV series ID (numeric string).
tv_series_getTvSeriesSeasonDetailsLook Upthrough vritto_lookup

Fetch TMDB details for one season of a TV series: episode list with names, numbers, and air dates. Use this to resolve an episodeAirDate before logging a watch.

FieldTypeDescription
providerId*stringTMDB TV series ID (numeric string).
seasonNumber*integerSeason number (0 is usually specials).
tv_series_searchTvSeriesLook Upthrough vritto_lookup

Search TMDB for TV series by title; an empty query returns popular series. Returns provider metadata, not the user's saved library: use tv_series_queryTvSeriesRecords for saved series.

FieldTypeDescription
querystringSearch text. Omit to return popular series.
pageintegerTMDB result page, starting at 1.