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

# Get the authenticated user's scrobble mirror sources (Last.fm, ListenBrainz, Teal.fm).



## OpenAPI

````yaml /api-reference/openapi.json get /app.rocksky.mirror.getMirrorSources
openapi: 3.1.0
info:
  title: AT Protocol XRPC API
  summary: >-
    An unofficial conversion of AT Protocol's lexicons to OpenAPI's schema
    format.
  version: 0.0.0
  license:
    name: MIT License
    identifier: MIT
servers:
  - url: https://api.rocksky.app/xrpc/
    description: AT Protocol AppView XRPC server
security: []
tags:
  - name: app.rocksky.actor
  - name: app.bsky.actor
  - name: app.rocksky.album
  - name: app.rocksky.apikey
  - name: app.rocksky.apikeys
  - name: app.rocksky.artist
  - name: app.rocksky.charts
  - name: app.rocksky.feed
  - name: app.rocksky.graph
  - name: app.rocksky.like
  - name: app.rocksky.mirror
  - name: app.rocksky.player
  - name: app.rocksky.playlist
  - name: app.rocksky.playlistItem
  - name: app.rocksky.scrobble
  - name: app.rocksky.shout
  - name: app.rocksky.song
  - name: app.rocksky.spotify
  - name: app.rocksky.stats
  - name: com.atproto.repo
paths:
  /app.rocksky.mirror.getMirrorSources:
    get:
      tags:
        - app.rocksky.mirror
      summary: >-
        Get the authenticated user's scrobble mirror sources (Last.fm,
        ListenBrainz, Teal.fm).
      operationId: app.rocksky.mirror.getMirrorSources
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - sources
                properties:
                  sources:
                    type: array
                    items:
                      $ref: >-
                        #/components/schemas/app.rocksky.mirror.defs.mirrorSourceView
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                  - message
                properties:
                  error:
                    type: string
                    oneOf:
                      - const: InvalidRequest
                      - const: ExpiredToken
                      - const: InvalidToken
                  message:
                    type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                  - message
                properties:
                  error:
                    const: AuthMissing
                  message:
                    type: string
      security:
        - Bearer: []
components:
  schemas:
    app.rocksky.mirror.defs.mirrorSourceView:
      type: object
      required:
        - provider
        - enabled
        - hasCredentials
      properties:
        provider:
          type: string
          description: 'One of: lastfm, listenbrainz, tealfm'
        enabled:
          type: boolean
          description: Whether scrobbles from this source are being mirrored into Rocksky.
        externalUsername:
          type: string
          description: >-
            Username on the external service (Last.fm / ListenBrainz). Null for
            Teal.fm.
        hasCredentials:
          type: boolean
          description: >-
            True when an API key is stored. Last.fm/ListenBrainz only; always
            false for Teal.fm.
        lastPolledAt:
          type: string
          description: The last time the mirror process successfully polled this source.
          format: date-time
        lastScrobbleSeenAt:
          type: string
          description: >-
            Watermark — scrobbles from the external service older than this are
            skipped.
          format: date-time
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer

````