ReccoBeats Track API

Track metadata lookup by ReccoBeats or Spotify ID.

OpenAPI Specification

reccobeats-track-api-openapi.yml Raw ↑
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.