Skip To Main Content
All modules

Games

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.

Gamegame

A game in the user's library, with status and rating.

games_queryGameRecordsFindthrough vritto_find

Search the user's saved game library by text and/or play status. Use this to resolve mediaRecordId values before play-log or record writes.

FieldTypeDescription
querystringCase-insensitive text matched against title, overview, genres, and tags.
statusone of want_to_play, playing, beaten, completed, on_hold, droppedFilter by play 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.
games_queryGameStatsFindthrough vritto_find

Summarize the game library: totals, play-log counts by year and month, and rating distribution. Prefer this for how-many-games-played questions.

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

Save a game to the library. Prefer passing providerId alone to import full IGDB 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 (game_catalog) to save with full details. A record body replaces stored fields.

FieldTypeDescription
providerIdstringIGDB game ID: pass this alone to import/save with IGDB metadata.
statusone of want_to_play, playing, beaten, completed, on_hold, droppedInitial play 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 game record body. The write replaces the stored record, so include every field to keep.
record.providerRef*objectProvider reference identifying the game.
record.title*stringGame title.
record.originalTitlestring
record.overviewstring
record.releaseDatestringYYYY-MM-DD release date; also the default first-play date.
record.genreslist of string
record.storylinestringIGDB storyline text.
record.platformsAvailablelist of stringPlatforms the game is available on.
record.developerslist of string
record.publisherslist of string
record.gameModeslist of stringGame modes, e.g. Single player, Multiplayer, Co-operative.
record.playerPerspectiveslist of stringPlayer perspectives, e.g. First person, Third person.
record.themeslist of stringIGDB themes.
record.keywordslist of stringIGDB keywords.
record.franchiseslist of stringFranchises the game belongs to.
record.serieslist of stringGame series/collections the game belongs to.
record.timeToBeatobjectHow long to beat, in hours.
record.startedOnstringYYYY-MM-DD the user started playing.
record.finishedOnstringYYYY-MM-DD the user beat/finished the game.
record.platformPlayedstringPlatform the user played on, e.g. PS5 or Steam Deck.
record.replayCountintegerCompleted replays beyond the first playthrough.
record.metacriticintegerCritic score 0-100.
record.igdbRatingintegerIGDB rating 0-100.
record.statusone of want_to_play, playing, beaten, completed, on_hold, droppedPlay status; defaults to "want_to_play".
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 game.
record.tagslist of stringList names/tags.
Example input
{
  "providerId": "217590",
  "status": "playing"
}
games_deleteGameRecordDeletethrough vritto_delete

Remove one saved game plus all of its play logs and recommendations. Only for explicit removals.

FieldTypeDescription
mediaRecordId*stringSaved game record ID to delete.

Game Play Loggame_play_log

One play session of a saved game.

games_queryGamePlayLogsFindthrough vritto_find

List game play logs (title, date, platform, hours, rating), newest first. Supports a played-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 session notes.

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

Log a play session of a saved game and mark the record playing. Use this to mark games as played after resolving the mediaRecordId; omit watchedOn when the release-date default is acceptable.

FieldTypeDescription
watchLogIdstringExplicit play log ID; reusing the same ID makes retries idempotent. Defaults to a random ID.
log*objectPlay log fields.
log.mediaRecordId*stringSaved game record ID; resolve it with games_queryGameRecords first.
log.watchedOnstringYYYY-MM-DD play date. Omit to default to the IGDB release date, marked as defaulted so the user can edit it later.
log.platformstringWhere it was played, e.g. PS5 or Steam Deck.
log.platformTypeone of pc, playstation, xbox, nintendo, mobile, handheld, otherPlatform family; defaults to "pc".
log.platformServicestringStorefront/service name, e.g. Steam or Game Pass.
log.hoursPlayednumberHours played in this session.
log.platformCountryone of US, INCountry whose catalog the platform was played in; omit when unknown.
log.placeKeystringPlaces key where it was played: google:<placeId> or manual:<uuid>, from the Places module.
log.locationLabelstringFree-text location label.
log.watchedWithPersonIdslist of stringVritto People record IDs the user played with; must reference active People records.
log.notesstringJournal notes for this session.
log.ratingone of dislike, okay, like, loveRating on Vritto's four-point scale.
Example input
{
  "log": {
    "mediaRecordId": "game_hades2",
    "watchedOn": "2026-09-25",
    "platformType": "pc",
    "hoursPlayed": 2.5,
    "rating": "love"
  }
}
games_updateGamePlayLogUpdatethrough vritto_update

Rewrite an existing game play 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 play log ID.
log*objectPlay log fields.
log.mediaRecordId*stringSaved game record ID; resolve it with games_queryGameRecords first.
log.watchedOnstringYYYY-MM-DD play date. Omit to default to the IGDB release date, marked as defaulted so the user can edit it later.
log.platformstringWhere it was played, e.g. PS5 or Steam Deck.
log.platformTypeone of pc, playstation, xbox, nintendo, mobile, handheld, otherPlatform family; defaults to "pc".
log.platformServicestringStorefront/service name, e.g. Steam or Game Pass.
log.hoursPlayednumberHours played in this session.
log.platformCountryone of US, INCountry whose catalog the platform was played in; omit when unknown.
log.placeKeystringPlaces key where it was played: google:<placeId> or manual:<uuid>, from the Places module.
log.locationLabelstringFree-text location label.
log.watchedWithPersonIdslist of stringVritto People record IDs the user played with; must reference active People records.
log.notesstringJournal notes for this session.
log.ratingone of dislike, okay, like, loveRating on Vritto's four-point scale.
games_deleteGamePlayLogDeletethrough vritto_delete

Delete one game play log and refresh the record's play count and last-played date. Only for explicit removals.

FieldTypeDescription
watchLogId*stringPlay log ID to delete.

Game Recommendationgame_recommendation

A person's recommendation of a saved game.

games_upsertGameRecommendationCreate or Updatethrough vritto_create or vritto_update

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

FieldTypeDescription
recommendationIdstringExisting recommendation ID; defaults to a game+person derived ID.
recommendation*object
recommendation.mediaRecordId*stringSaved game 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 Game Tastegame_taste

A person's favorite or disliked game.

games_upsertGamePersonTasteCreate or Updatethrough vritto_create or vritto_update

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

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

Game Cataloggame_catalog

IGDB reference data, for saving a game with full details.

games_discoverGamesLook Upthrough vritto_lookup

Browse IGDB discovery lists (popular, new releases, upcoming, top rated) when the user wants suggestions rather than a title search.

FieldTypeDescription
categoryone of popular, new_releases, upcoming, top_ratedDiscovery list; defaults to "popular".
games_getGameDetailsLook Upthrough vritto_lookup

Fetch full IGDB details (summary, genres, platforms, developers, publishers, ratings) for one game by IGDB ID.

FieldTypeDescription
providerId*stringIGDB game ID (numeric string).
games_searchGamesLook Upthrough vritto_lookup

Search IGDB for games by title; an empty query returns popular games. Returns provider metadata, not the user's saved library: use games_queryGameRecords for saved games.

FieldTypeDescription
querystringSearch text. Omit to return popular games.