{
  "info": {
    "name": "SoundStat API",
    "description": "SoundStat is an independent music audio-analysis API (a Spotify audio-features alternative). Base URL: https://soundstat.info/api/v1. All requests authenticate with an x-api-key header. Track analysis is billed per unique track; the similar, by-features, and mixed recommendation endpoints are free.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "apikey",
    "apikey": [
      {
        "key": "key",
        "value": "x-api-key",
        "type": "string"
      },
      {
        "key": "value",
        "value": "{{apiKey}}",
        "type": "string"
      },
      {
        "key": "in",
        "value": "header",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://soundstat.info/api/v1",
      "type": "string"
    },
    {
      "key": "apiKey",
      "value": "",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "Track Analysis",
      "item": [
        {
          "name": "Get Track Analysis",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/track/:track_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "track",
                ":track_id"
              ]
            },
            "description": "Get detailed audio analysis for a specific track.\n\nParameters:\n----------\n<b>track_id</b> : str (Spotify track ID)<br>\n<b>x_api_key</b> : str (API key for authentication)<br>\n\nReturns:\n-------\nTrackAnalysis<br>\n    Basic track info (name, artists, genre)<br>\n    Track duration in milliseconds<br>\n    Audio features (tempo, key, mode, energy etc.)<br>\n\n\nNotes:\n-----\nIf track hasn't been analyzed, initiates analysis and returns processing status."
          }
        },
        {
          "name": "Track Status Updates",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/track/:track_id/status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "track",
                ":track_id",
                "status"
              ]
            },
            "description": "Get real-time status updates for track analysis via Server-Sent Events (SSE).\n\nParameters:\n----------\n<b>track_id</b> : str (Spotify track ID)<br>\n<b>x_api_key</b> : str (API key for authentication)<br>\n\nReturns:\n-------\nEventSourceResponse<br>\n    Status updates as SSE events<br>\n    Event types: status, complete, error<br>\n\nNotes:\n-----\nMaintains an active connection until analysis is complete or fails."
          }
        }
      ]
    },
    {
      "name": "Search & Discovery",
      "item": [
        {
          "name": "Search Tracks",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/tracks/search?genre=&limit=&offset=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "tracks",
                "search"
              ],
              "query": [
                {
                  "key": "genre",
                  "value": "",
                  "description": "optional"
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "optional"
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "optional"
                }
              ]
            },
            "description": "Search for analyzed tracks with filtering options.\n\nParameters:\n----------\n<b>x_api_key</b> : str (API key for authentication)<br>\n<b>genre</b> : str, optional (Filter by specific genre)<br>\n<b>limit</b> : int, default=50 (Maximum number of results, max 100)<br>\n<b>offset</b> : int, default=0 (Number of results to skip)<br>\n<b>filters</b> : AnalysisFilters, optional (Audio feature filters)<br>\n\nReturns:\n-------\nTrackIDList<br>\n    List of matching track IDs<br>\n\nNotes:\n-----\nSupports pagination and complex audio feature filtering.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get Available Genres",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/genres",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "genres"
              ]
            },
            "description": "Get list of all available genres in the database.\n\nParameters:\n----------\n<b>x_api_key</b> : str (API key for authentication)<br>\n\nReturns:\n-------\nDict<br>\n    genres: List[str] (List of unique genre names)<br>\n\nNotes:\n-----\nOnly returns genres that have at least one analyzed track."
          }
        },
        {
          "name": "Get Analysis Stats",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/stats",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "stats"
              ]
            },
            "description": "Get comprehensive statistics about analyzed tracks.\n\nParameters:\n----------\n<b>x_api_key</b> : str (API key for authentication)<br>\n\nReturns:\n-------\nDict<br>\n    general: Dict (Overall statistics)<br>\n        - total_tracks: int<br>\n        - analyzed_tracks: int<br>\n        - unique_genres: int<br>\n        - avg_popularity: float<br>\n    top_genres: List[Dict] (Most common genres)<br>\n    audio_characteristics: Dict (Average audio features)<br>\n\nNotes:\n-----\nProvides a statistical overview of the analyzed music database."
          }
        }
      ]
    },
    {
      "name": "Recommendations",
      "item": [
        {
          "name": "Get Similar Tracks",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/recommendations/similar?seed_track_id=&limit=&min_popularity=&genre_match=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "recommendations",
                "similar"
              ],
              "query": [
                {
                  "key": "seed_track_id",
                  "value": "",
                  "description": "required"
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "optional"
                },
                {
                  "key": "min_popularity",
                  "value": "",
                  "description": "optional"
                },
                {
                  "key": "genre_match",
                  "value": "",
                  "description": "optional"
                }
              ]
            },
            "description": "Get track recommendations based on a seed track.\n\nParameters:\n----------\n<b>seed_track_id</b> : str (Spotify ID of the reference track)<br>\n<b>limit</b> : int, default=20 (Number of recommendations, max 100)<br>\n<b>min_popularity</b> : int, optional (Minimum popularity score 0-100)<br>\n<b>genre_match</b> : bool, default=False (Prioritize same genre)<br>\n<b>x_api_key</b> : str (API key for authentication)<br>\n\nReturns:\n-------\nTrackIDList<br>\n    List of recommended track IDs<br>\n\nNotes:\n-----\nUses audio features to find tracks with similar characteristics."
          }
        },
        {
          "name": "Get Recommendations By Features",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/recommendations/by-features",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "recommendations",
                "by-features"
              ]
            },
            "description": "Get track recommendations matching specific audio features.\n\nParameters:\n----------\n<b>features</b> : TargetFeatures (Target audio characteristics)<br>\n    - tempo: float, optional (Target BPM, 0-300)<br>\n    - energy: float, optional (Target energy level, 0-1)<br>\n    - danceability: float, optional (Target danceability, 0-1)<br>\n    - duration_ms: int, optional (Target duration in ms, 30000-900000)<br>\n    - other audio features...<br>\n<b>x_api_key</b> : str (API key for authentication)<br>\n\nReturns:\n-------\nTrackIDList<br>\n    List of matching track IDs<br>\n\nNotes:\n-----\nFinds tracks that best match the specified audio characteristics.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"limit\": 20\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get Mixed Recommendations",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/recommendations/mixed",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "recommendations",
                "mixed"
              ]
            },
            "description": "Get Mixed Recommendations",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"seed_tracks\": [\n    \"3n3Ppam7vgaVa1iaRUc9Lp\"\n  ],\n  \"limit\": 20\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get Progression Recommendations",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/recommendations/progression",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "recommendations",
                "progression"
              ]
            },
            "description": "Get tracks with progressively changing audio characteristics.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"parameter\": \"\",\n  \"direction\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get Compatible Tracks",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/recommendations/compatible",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "recommendations",
                "compatible"
              ]
            },
            "description": "Get tracks that are musically compatible with a reference track.\n\nParameters:\n----------\n<b>params</b> : CompatibleParams<br>\n    - track_id: str (Reference track ID)<br>\n    - compatibility_type: str, default=\"both\" (key, bpm, both)<br>\n    - limit: int, default=20 (Number of recommendations)<br>\n    - min_popularity: int, optional (Minimum popularity score)<br>\n<b>x_api_key</b> : str (API key for authentication)<br>\n\nReturns:\n-------\nTrackIDList<br>\n    List of tracks compatible with the reference track<br>\n\nNotes:\n-----\nUseful for DJ mixing, creating smooth transitions, or harmonic playlists.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"track_id\": \"\",\n  \"limit\": 20\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get Contrast Recommendations",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/recommendations/contrast",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "recommendations",
                "contrast"
              ]
            },
            "description": "Get tracks with characteristics contrasting to a reference track.\n\nParameters:\n----------\n<b>params</b> : ContrastParams<br>\n    - track_id: str (Reference track ID)<br>\n    - contrast_features: List[str], default=[\"energy\", \"valence\"] (Features to contrast)<br>\n    - limit: int, default=20 (Number of recommendations)<br>\n<b>x_api_key</b> : str (API key for authentication)<br>\n\nReturns:\n-------\nTrackIDList<br>\n    List of tracks with contrasting characteristics<br>\n\nNotes:\n-----\nCreates variety in playlists by finding tracks with opposite characteristics.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"track_id\": \"\",\n  \"limit\": 20\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get Cross Genre Recommendations",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/recommendations/cross-genre",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "recommendations",
                "cross-genre"
              ]
            },
            "description": "Get tracks from different genres with similar audio characteristics.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"track_id\": \"\",\n  \"limit\": 20\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get Time Of Day Recommendations",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/recommendations/time-of-day",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "recommendations",
                "time-of-day"
              ]
            },
            "description": "Get track recommendations suitable for a specific time of day.\n\nParameters:\n----------\n<b>params</b> : TimeOfDayParams<br>\n    - time: str (One of: morning, afternoon, evening, night)<br>\n    - genre: str, optional (Specific genre filter)<br>\n    - limit: int, default=20 (Number of recommendations)<br>\n<b>x_api_key</b> : str (API key for authentication)<br>\n\nReturns:\n-------\nTrackIDList<br>\n    List of recommended track IDs suitable for the time of day<br>\n\nNotes:\n-----\nDifferent times of day have different energy/mood profiles.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"time\": \"evening\",\n  \"limit\": 20\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get Hidden Gems Recommendations",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/recommendations/hidden-gems",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "recommendations",
                "hidden-gems"
              ]
            },
            "description": "Get recommendations for lesser-known tracks with high-quality audio features.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"limit\": 20\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get Beat Structure Recommendations",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/recommendations/beat-structure",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "recommendations",
                "beat-structure"
              ]
            },
            "description": "Get recommendations for tracks with specific beat structure characteristics.\n\nParameters:\n----------\n<b>params</b> : BeatStructureParams<br>\n    - min_regularity: float, default=0.7 (Minimum beat regularity score 0-1)<br>\n    - tempo_min: float, optional (Minimum tempo in BPM)<br>\n    - tempo_max: float, optional (Maximum tempo in BPM)<br>\n    - genre: str, optional (Specific genre filter)<br>\n    - limit: int, default=20 (Number of recommendations)<br>\n<b>x_api_key</b> : str (API key for authentication)<br>\n\nReturns:\n-------\nTrackIDList<br>\n    List of recommended track IDs matching beat structure criteria<br>\n\nNotes:\n-----\nUseful for finding tracks with consistent, predictable beat patterns.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"limit\": 20\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get Duration Recommendations",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/recommendations/duration",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "recommendations",
                "duration"
              ]
            },
            "description": "Get track recommendations based on specific duration requirements.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"limit\": 20\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get Mood Recommendations",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/recommendations/mood",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "recommendations",
                "mood"
              ]
            },
            "description": "Get track recommendations based on desired mood.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"mood\": \"happy\",\n  \"limit\": 20\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get Activity Recommendations",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/recommendations/activity",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "recommendations",
                "activity"
              ]
            },
            "description": "Get track recommendations suitable for specific activities.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"activity\": \"workout\",\n  \"limit\": 20\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get Instrumental Recommendations",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/recommendations/instrumental",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "recommendations",
                "instrumental"
              ]
            },
            "description": "Get recommendations for instrumental tracks.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"limit\": 20\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get Acoustic Recommendations",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/recommendations/acoustic",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "recommendations",
                "acoustic"
              ]
            },
            "description": "Get recommendations for acoustic tracks.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"limit\": 20\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    }
  ]
}