openapi: 3.0.3 info: title: ReccoBeats Album Track API description: ReccoBeats is a free music recommendation and database API. It serves track, artist, and album metadata from a database of millions of tracks, generates track recommendations from seed tracks/artists/albums, and returns Spotify-style audio features (acousticness, danceability, energy, instrumentalness, liveness, loudness, speechiness, tempo, valence) either for a catalog track by ID or extracted directly from an uploaded audio file. Resources are addressed by a ReccoBeats UUID (v4) or by a Spotify Base-62 ID. No API key or authentication is required. The API enforces internal rate limits and returns HTTP 429 with a Retry-After header when throttled. version: '1.0' contact: name: ReccoBeats url: https://reccobeats.com servers: - url: https://api.reccobeats.com/v1 description: ReccoBeats production API tags: - name: Track description: Track metadata lookup by ReccoBeats or Spotify ID. paths: /track: get: operationId: getTracks tags: - Track summary: Get multiple tracks description: Retrieve metadata for multiple tracks in one request. Accepts a list of ReccoBeats UUIDs or Spotify IDs via the ids query parameter. parameters: - name: ids in: query required: true description: Comma-separated list of ReccoBeats UUIDs or Spotify IDs. schema: type: string responses: '200': description: A list of tracks. content: application/json: schema: type: object properties: content: type: array items: $ref: '#/components/schemas/Track' '400': $ref: '#/components/responses/BadRequest' '429': $ref: '#/components/responses/TooManyRequests' /track/{id}: get: operationId: getTrackById tags: - Track summary: Get track detail description: Retrieve detailed metadata for a single track by its ReccoBeats UUID. parameters: - $ref: '#/components/parameters/TrackId' responses: '200': description: The requested track. content: application/json: schema: $ref: '#/components/schemas/Track' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' components: schemas: Artist: type: object description: An artist in the ReccoBeats database. properties: id: type: string description: The ReccoBeats UUID for the artist. name: type: string href: type: string Track: type: object description: A track in the ReccoBeats database. properties: id: type: string description: The ReccoBeats UUID for the track. trackTitle: type: string artists: type: array items: $ref: '#/components/schemas/Artist' durationMs: type: integer isrc: type: string ean: type: string upc: type: string href: type: string availableCountries: type: string popularity: type: integer parameters: TrackId: name: id in: path required: true description: The ReccoBeats UUID of the track. schema: type: string responses: NotFound: description: The requested resource was not found. BadRequest: description: The request was malformed or missing required parameters. TooManyRequests: description: Rate limit exceeded. Inspect the Retry-After header to determine how long to wait before retrying.