Skip to content

Audio Tagging and Captioning

Analyze audio files to get AI-powered tags and captions.

Analyze Audio

Analyze an audio file to get tags and captions without storing it in your library.

POST /api/v1/audio/analyze

Terminal window
curl -X POST https://api.songpot.space/api/v1/audio/analyze \
-H "X-API-Key: YOUR_API_KEY" \
-F "file=@/path/to/track.mp3"

Response

{
"filename": "track.mp3",
"analysis": {
"duration": 185.4,
"bpm": 124.0,
"key": "cMajor",
"vocal_gender": "Female",
"genres": ["Electronic", "Pop", "House"],
"moods": ["Energetic", "Happy", "Uplifting"],
"instruments": ["Synths", "Drums", "Vocals"],
"caption": "Upbeat electronic track with tropical vibes"
}
}

Supported Formats

MP3, WAV, FLAC, OGG, M4A, AAC, WebM, Opus

Limits

  • File size: 150 MB max

Audio Analysis Response Fields

When you retrieve a track, you get these analysis fields:

FieldTypeDescription
bpmnumberBeats per minute
keystringMusical key (e.g., cMajor, aMinor)
durationnumberLength in seconds
vocal_genderstringMale, Female, Male and Female, Children, Choral, or Not Present
genresstring[]Genre tags (families and specific styles in one flat list)
moodsstring[]Mood/emotion tags
instrumentsstring[]Detected instruments
descriptionstringAI-generated caption

Get Track from Library

Retrieve details for a track in your library.

GET /api/v1/tracks/{track_id}

Terminal window
curl "https://api.songpot.space/api/v1/tracks/abc123" \
-H "X-API-Key: YOUR_API_KEY"

Response

{
"track": {
"id": "abc123",
"name": "Summer Vibes",
"duration": 185.4,
"bpm": 124.0,
"key": "cMajor",
"vocal_gender": "Female",
"genres": ["Electronic", "Pop", "House"],
"moods": ["Energetic", "Happy", "Uplifting"],
"instruments": ["Synths", "Drums", "Vocals"],
"description": "Upbeat electronic track with tropical vibes",
"created_at": "2026-01-15T10:30:00Z"
}
}

List All Tracks

Get a paginated list of all tracks in your library.

GET /api/v1/tracks

Terminal window
curl "https://api.songpot.space/api/v1/tracks?page=1&per_page=50" \
-H "X-API-Key: YOUR_API_KEY"

Response

{
"total": 42,
"page": 1,
"per_page": 50,
"tracks": [
{
"id": "abc123",
"name": "Summer Vibes",
"duration": 185.4,
"bpm": 124.0,
"key": "cMajor"
}
]
}