Listening: artwork preservation and fallback
- CD artwork preserves existing transparency during registration, including translucent hubs.
- Album artwork lookups can return
fallback_artworkwith a generic disc and Rewind-hosted PNG or WebP URLs. - Failed fallback replacements keep their candidate images unpublished.
Listening: disc artwork and album identity
- Listening tools can attach accepted CD artwork alongside album results, with the existing cover fallback when disc artwork is unavailable.
- Accepted disc artwork can include an optional lossless WebP variant while preserving the canonical PNG and its transparency.
- Listening history preserves the album associated with each play, so later metadata enrichment does not move that play to another album.
Prepared latest music and movie
UseGET /v1/lately to fetch a prepared pair of the latest completed listen and movie watch without waiting for live provider requests. Keep the response fixed for the page visit; the endpoint returns 503 until its first background publication.MCP server: tool titles and output schemas
MCP tools are now clearer to read in the client and to consume programmatically.- Display titles — every tool, resource, and prompt shows a readable name in Claude Desktop and iOS, like “Now playing” or “Recent runs”, instead of a raw identifier like
get_now_playing. - Output schemas — schema-aware clients can render labeled fields from a tool’s structured response; every tool now declares an
outputSchema. get_on_this_dayfix — callingget_on_this_daywith no arguments returned an error; it now defaults to today.
Reading domain: full Instapaper archive
Reading endpoints now serve your full Instapaper archive instead of the live API’s recent slice. Older articles are searchable and retrievable viaget_article.GET /v1/reading/articlesandGET /v1/reading/recentacceptinclude_no_body=1to include rows that exist but couldn’t be body-extracted (paywalled sources). Default hides them.- Single-article responses include a
body_unavailableflag for those placeholder rows so cards can render “read on source” instead of empty content.
Single-entity cards
Three interactive cards for MCP Apps clients (Claude Desktop + iOS) that render alongside Claude’s text answer when you ask about one specific article, artist, or athlete.- Article card —
get_article— hero image, title, byline, read time, top highlights, link out to source. - Artist card —
get_artist_details— portrait, bio, total plays, all-time rank, yearly sparkline, top 5 tracks, top 3 albums, and similar artists scoped to your own scrobble history. - Athlete card —
get_attended_player— headshot, team logo, position, current-season stats, your-attended summary across every game you’ve seen them play, recent appearances. MLB-only for live stats; other leagues surface appearance history.
Listening
- Per-artist top tracks —
GET /v1/listening/top/tracksacceptsartist_idorartist_nameto scope to a single artist. Combine withperiodfor “what Olivia Rodrigo songs have I been listening to lately”. - Extended artist detail —
GET /v1/listening/artists/{id}now carries bio, last-played timestamp, all-time rank, distinct tracks/albums counts, similar artists, and a yearly sparkline.
Team logos and colors on attending responses
Team metadata now ships inline on every attending endpoint that mentions a team — no follow-up call to render a logo or tint a card.- New
teamsreference table seeded from MLB Stats API (roster, division, home venue) and ESPN (brand colors). 30 MLB teams to start; NFL, NBA, MLS, and NCAA can be added on the same shape. event_data.home_teamandevent_data.away_teamonGET /v1/attending/eventsandGET /v1/attending/events/{id}now return a full team object withlogo_url,logo_dark_url,logo_light_url,primary_color,secondary_color,ui_tint_color,conference, anddivision.primary_teamonGET /v1/attending/playersandGET /v1/attending/players/{id}replaces the oldprimary_team_idfield with the full team shape.- Per-game player appearances expose a
teamobject instead ofteam_id, reflecting the in-game team — handles mid-season trades correctly without conflating with the player’s current primary team. - Logos hot-link from
mlbstatic.comSVG with on-light and on-dark cap variants;<picture>+prefers-color-schemepicks the right one in both Claude Desktop and iOS hosts.
Attending domain
New fifth domain for live events — sports games, concerts, theater. 193 events backfilled from Google Calendar and Gmail across 2016–2026.GET /v1/attending/events— list attended events with filters for category (sports/music/arts),event_type,season,year,venue_id, andattended(separates “I went” from “I bought tickets but didn’t go”).GET /v1/attending/events/{id}— single event with venue, multiple ticket rows, and league-specificevent_data(scores, winning pitcher, my_team_won).GET /v1/attending/seasons/{league}/{season}— attended games in a sports season with W/L record. Counts only games you actually attended, not the team’s full record.GET /v1/attending/venues— venue catalog with city, capacity, and lat/long.GET /v1/attending/stats— counts by category,event_type, and year.- Seven Gmail parsers — Ticketmaster, SeatGeek, Ticket Club, AXS, StubHub, VividSeats, and Eventbrite. Universal
schema.org/EventReservationJSON-LD parser as a fallback. - Sports enrichment via MLB Stats API (baseball) and ESPN (NFL, NBA, WNBA, MLS, NCAAF, NCAAB) attaches scores and outcomes to past games.
- Cross-domain link — concert performers can carry a
lastfm_artist_idso a single artist row drives both your scrobble history and your concert attendance. - Daily incremental sync at 4:00 AM Pacific. See Attending domain.
MCP server
Interactive card UIs for reading and music, plus inline clickable links across list tools.- Article list UI for
get_recent_readsvia MCP Apps — titles, authors, domains, read time, excerpts, and thumbnails. - Cover grid for
get_top_albumsand portrait grid forget_top_artists— both click through to Apple Music (or Last.fm when no match). - Inline markdown links in
search,semantic_search,find_similar_articles,get_recent_reads,get_top_artists,get_top_albums, andget_top_tracks— clickable in every client. - Author names render correctly when a source article’s
article:authortag is URL-shaped. get_top_artistsacceptsinclude_sparklinesand forwards the new per-artist play-count series.
Listening
- Sparklines on top artists — pass
include_sparklines=truetoGET /v1/listening/top/artiststo attach a zero-filled play-count series per artist. Supported for1month,3month,6month, and12month. See Listening domain. - Album and artist artwork now resolves for ampersand-named artists like Matt & Kim, Simon & Garfunkel, and Hall & Oates.
- Listening image placeholders auto-expire after 7 days, matching reading-domain behavior.
Search
GET /v1/searchresults now includeimageURLs and thumbhashes for listening, watching, collecting, and reading hits. The field was previously always null in keyword mode.
API discovery
The OpenAPI 3.1 spec is reachable without auth athttps://api.rewind.rest/openapi.json (redirects to the canonical /v1/openapi.json). Use it to generate clients, drive agent tools, or import into Postman or Insomnia.Reading
- Reading articles now have thumbnails for most paywalled sources (NYT, Reuters, WSJ) via multi-tier OG extraction.
descriptionnow falls back toog_descriptionwhen the editorial field is null.POST /v1/admin/reenrich-readinggains amodeparam:failed(default) ormissing-images.- Reading image placeholders auto-expire after 7 days (previously permanent).
MCP server
- Interactive poster grid for
get_recent_watchesvia MCP Apps — renders inline in Claude Desktop, Claude web, VS Code GitHub Copilot, and Goose. - Semantic and hybrid search for reading via new
semantic_searchandfind_similar_articlestools;searchgains amodeparam (keyword|semantic|hybrid). - Full article text via new
get_article(id)tool — returns the Instapaper body, including paywalled NYT / WSJ / Atlantic. - Instapaper deep-links on every reading article:
instapaper_url(paywall-free web archive) andinstapaper_app_url(iOS app). - New prompts:
letterboxd-review-draft,training-report,film-diet, andfind-article.
API
GET /v1/search?mode=keyword|semantic|hybrid— three ranking modes; semantic/hybrid are reading-only.GET /v1/reading/articles/{id}— gainscontent,instapaper_url,instapaper_app_url.GET /v1/reading/articles/{id}/related?limit=5— related articles via semantic similarity.GET /v1/reading/highlights/{id}— highlight detail with parent-article context.- All
/recentendpoints:limitcap raised from 20 to 50, newpageparam for offset pagination.
MCP server
New MCP server for connecting AI assistants to your Rewind data. Published asrewind-mcp-server on npm.- 30 tools across all five domains: listening, running, watching, collecting, reading.
- Cross-domain search, unified feed, and on-this-day.
- Built-in prompt templates for weekly summaries, year-in-review, and period comparisons.
- Works with Claude Desktop, Claude Code, Claude iOS/web, and any MCP-compatible client.
- Local mode via
npxor remote mode viamcp.rewind.rest.
Reading domain
New Reading domain powered by Instapaper. Track articles, reading progress, and highlights.GET /reading/articles— browse and filter articles by status, domain, or tag.GET /reading/currently-reading— articles in progress.GET /reading/highlights— highlighted passages across all articles.GET /reading/highlights/random— random highlight for a daily quote.GET /reading/stats— reading statistics and streaks.GET /reading/year/{year}— year in review.
Public API documentation
Launched interactive API documentation at docs.rewind.rest powered by Mintlify. Includes getting started guides, domain overviews, and a full API reference with response examples and an interactive playground.Genres, on-this-day, and date filtering
- New
GET /listening/genresendpoint with genre breakdown over time. - Artists now tagged with genres from Last.fm (
genrefield on artist responses). - New
GET /feed/on-this-dayendpoint for what happened on this date in previous years. - Artist and album detail endpoints now include
first_scrobbled_at. - All recent, stats, and feed endpoints now accept
date,from, andtoquery parameters. - Album and artist artwork falls back to Deezer when Apple Music and iTunes don’t have a match.
Trakt physical media collection
New physical media endpoints in the Collecting domain. Track your Blu-ray, DVD, and 4K UHD collection synced from Trakt, with cross-referencing against your Plex watch history.GET /collecting/media— list physical media collection.GET /collecting/media/:id— media item detail.GET /collecting/media/stats— collection statistics by format.GET /collecting/media/cross-reference— owned vs. watched comparison.
Cross-domain features
New endpoints that work across all data domains:GET /feed— unified activity feed with cursor-based pagination.GET /feed/domain/:domain— filter feed to a single domain.GET /search— full-text search across listening, running, watching, and collecting.GET /health— API health check.GET /health/sync— sync status for all domains.