> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rewind.rest/llms.txt
> Use this file to discover all available pages before exploring further.

# Artist detail

> Returns detailed information about an artist including top albums and tracks.



## OpenAPI

````yaml get /v1/listening/artists/{id}
openapi: 3.1.0
info:
  title: Rewind API
  version: 1.0.0
  description: >-
    Personal data aggregation API. Syncs and serves data from Last.fm, Apple
    Music, Strava, Plex, Letterboxd, Discogs, Trakt, Instapaper, Google
    Calendar, and Gmail.


    ## Domains


    | Domain | Source | Description |

    |--------|--------|-------------|

    | **Listening** | Last.fm, Apple Music | Scrobbles, top
    artists/albums/tracks, streaks, stats |

    | **Running** | Strava | Activities, splits, gear, personal records, year
    summaries |

    | **Watching** | Plex, Letterboxd | Movies, TV shows, watch history,
    ratings, reviews |

    | **Collecting** | Discogs, Trakt | Vinyl/CD collection, physical media,
    wantlist |

    | **Reading** | Instapaper | Articles, highlights, reading progress, word
    count |

    | **Attending** | Google Calendar, Gmail | Live events, tickets, sports
    games, concerts, venues |


    ## Authentication


    All endpoints require a Bearer token. There are two key types:


    - **Read keys** (`rw_live_...`) — access all GET endpoints

    - **Admin keys** (`rw_admin_...`) — access all endpoints including sync
    triggers and data management


    Pass your key in the Authorization header: `Authorization: Bearer
    rw_live_...`


    ## Pagination


    List endpoints return paginated responses:


    ```json

    {
      "data": [...],
      "pagination": { "page": 1, "limit": 20, "total": 150, "total_pages": 8 }
    }

    ```


    The activity feed uses cursor-based pagination instead.


    ## Quick Start


    ```bash

    # Check the API is up

    curl https://api.rewind.rest/v1/health


    # Fetch recent scrobbles (requires read key)

    curl -H "Authorization: Bearer rw_live_..." \
      https://api.rewind.rest/v1/listening/recent

    # Fetch running stats

    curl -H "Authorization: Bearer rw_live_..." \
      https://api.rewind.rest/v1/running/stats
    ```


    ## Errors


    All errors follow the same envelope:


    ```json

    { "error": "Not found", "status": 404 }

    ```


    Common status codes: 400 (bad request), 401 (unauthorized), 404 (not found),
    500 (server error).
  contact:
    url: https://github.com/pdugan20/rewind
servers:
  - url: https://api.rewind.rest
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Listening
    description: Last.fm scrobbles, top charts, streaks, and stats.
  - name: Running
    description: Strava activities, splits, gear, records, and year summaries.
  - name: Watching
    description: >-
      Movies, TV shows, watch history, ratings, and reviews from Plex and
      Letterboxd.
  - name: Collecting
    description: Vinyl/CD collection from Discogs and physical media from Trakt.
  - name: Reading
    description: Articles, highlights, and reading stats from Instapaper.
  - name: Attending
    description: >-
      Live events you bought tickets for — sports games, concerts, theater.
      Sourced from Google Calendar and ticket-vendor email.
  - name: Feed
    description: Cross-domain activity feed with cursor-based pagination.
  - name: Search
    description: Full-text search across all domains.
  - name: Images
    description: Image proxy with on-the-fly transforms via Cloudflare Images.
  - name: System
    description: Health checks and sync status.
  - name: Admin
    description: >-
      API key management, sync triggers, and data administration. Requires admin
      key.
  - name: Webhooks
    description: Inbound webhook receivers for Strava and Plex. No auth required.
paths:
  /v1/listening/artists/{id}:
    get:
      tags:
        - Listening
      summary: Artist detail
      description: >-
        Returns detailed information about an artist including top albums and
        tracks.
      operationId: getListeningArtist
      parameters:
        - schema:
            type: string
            example: '42'
          required: true
          name: id
          in: path
      responses:
        '200':
          description: Artist detail
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: number
                  name:
                    type: string
                  mbid:
                    type:
                      - string
                      - 'null'
                  url:
                    type:
                      - string
                      - 'null'
                  apple_music_url:
                    type:
                      - string
                      - 'null'
                  playcount:
                    type: number
                  scrobble_count:
                    type: number
                  first_scrobbled_at:
                    type:
                      - string
                      - 'null'
                  last_played_at:
                    type:
                      - string
                      - 'null'
                  all_time_rank:
                    type:
                      - number
                      - 'null'
                  distinct_tracks:
                    type: number
                  distinct_albums:
                    type: number
                  genre:
                    type:
                      - string
                      - 'null'
                  tags:
                    type:
                      - array
                      - 'null'
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: Rock
                        count:
                          type: number
                          example: 100
                      required:
                        - name
                        - count
                  bio_summary:
                    type:
                      - string
                      - 'null'
                  bio_content:
                    type:
                      - string
                      - 'null'
                  bio_synced_at:
                    type:
                      - string
                      - 'null'
                  image: {}
                  sparkline:
                    type:
                      - object
                      - 'null'
                    properties:
                      granularity:
                        type: string
                        enum:
                          - day
                          - week
                          - month
                          - year
                      points:
                        type: array
                        items:
                          type: object
                          properties:
                            at:
                              type: string
                            count:
                              type: number
                          required:
                            - at
                            - count
                    required:
                      - granularity
                      - points
                  top_albums:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                        name:
                          type: string
                        playcount:
                          type: number
                        apple_music_url:
                          type:
                            - string
                            - 'null'
                        image: {}
                      required:
                        - id
                        - name
                        - playcount
                        - apple_music_url
                  top_tracks:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                        name:
                          type: string
                        album_id:
                          type:
                            - number
                            - 'null'
                        album_name:
                          type:
                            - string
                            - 'null'
                        scrobble_count:
                          type: number
                        apple_music_url:
                          type:
                            - string
                            - 'null'
                        preview_url:
                          type:
                            - string
                            - 'null'
                        image: {}
                      required:
                        - id
                        - name
                        - album_id
                        - album_name
                        - scrobble_count
                        - apple_music_url
                        - preview_url
                  similar_artists:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                        name:
                          type: string
                        genre:
                          type:
                            - string
                            - 'null'
                        your_scrobble_count:
                          type: number
                        similarity_score:
                          type: number
                        image: {}
                      required:
                        - id
                        - name
                        - genre
                        - your_scrobble_count
                        - similarity_score
                required:
                  - id
                  - name
                  - mbid
                  - url
                  - apple_music_url
                  - playcount
                  - scrobble_count
                  - first_scrobbled_at
                  - last_played_at
                  - all_time_rank
                  - distinct_tracks
                  - distinct_albums
                  - genre
                  - tags
                  - bio_summary
                  - bio_content
                  - bio_synced_at
                  - sparkline
                  - top_albums
                  - top_tracks
                  - similar_artists
              example:
                id: 189
                name: Nirvana
                mbid: null
                url: https://www.last.fm/music/Nirvana
                apple_music_url: https://music.apple.com/us/artist/nirvana/112018?uo=4
                playcount: 2179
                scrobble_count: 2193
                first_scrobbled_at: '2012-05-02T18:32:15.000Z'
                last_played_at: '2026-04-12T20:11:00.000Z'
                all_time_rank: 12
                distinct_tracks: 84
                distinct_albums: 7
                genre: Grunge
                tags:
                  - name: Grunge
                    count: 100
                  - name: Rock
                    count: 49
                bio_summary: American rock band formed in Aberdeen, Washington in 1987.
                bio_content: null
                bio_synced_at: '2026-04-12T20:11:00.000Z'
                image:
                  url: >-
                    https://cdn.rewind.rest/listening/artists/189/original.jpg?width=300&height=300&fit=cover&format=auto&quality=85&v=1
                  thumbhash: GggGBwDN+CSBp7VXcmVmlyZ2BgAAAAAA
                  dominant_color: '#191919'
                  accent_color: '#7e7e7e'
                sparkline:
                  granularity: year
                  points:
                    - at: '2024-01-01T00:00:00.000Z'
                      count: 80
                    - at: '2025-01-01T00:00:00.000Z'
                      count: 65
                    - at: '2026-01-01T00:00:00.000Z'
                      count: 22
                top_albums:
                  - id: 300
                    name: MTV Unplugged in New York
                    playcount: 428
                    apple_music_url: null
                    image: null
                top_tracks:
                  - id: 595
                    name: Come as You Are
                    album_id: 300
                    album_name: MTV Unplugged in New York
                    scrobble_count: 101
                    apple_music_url: >-
                      https://music.apple.com/us/album/come-as-you-are/1440783617?i=1440783636&uo=4
                    preview_url: null
                    image: null
                similar_artists:
                  - id: 244
                    name: Pearl Jam
                    genre: Grunge
                    your_scrobble_count: 612
                    similarity_score: 0.86
                    image: null
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          example: Not found
        status:
          type: integer
          example: 404
      required:
        - error
        - status
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key. Read keys (rw_live_...) access GET endpoints. Admin keys
        (rw_admin_...) access all endpoints.

````