# SongBPM API: Get song tempo and key

> Finds the best SongBPM match for a song title and artist and returns its tempo, musical key, Camelot key, length and time signature.

Unofficial. Not affiliated with or endorsed by SongBPM.

- Page: https://fous.com/methods/songbpm.com/get-song-tempo-and-key
- Method: `songbpm.com/get_song_tempo_and_key`, version 1
- Website: songbpm.com
- Returns: song, artist, tempo_bpm, musical_key, camelot_key, length, time_signature, songbpm_link
- Effect: read (it gets data and changes nothing)
- Sign-in: none needed
- Cost: 1 credit per completed run (1¢ with pay as you go); failed runs are free
- Verified: Nov 2, 2026

## Inputs

| Field | Type | Required | In the run below | Description |
|---|---|---|---|---|
| `song` | string | yes | `"Blinding Lights"` | Song title, for example Blinding Lights. |
| `artist` | string | yes | `"The Weeknd"` | Performing artist, for example The Weeknd. |

## Output

From a run on Oct 23, 2026. Its input:

```json
{
  "song": "Blinding Lights",
  "artist": "The Weeknd"
}
```

Its output:

```json
{
  "song": "Blinding Lights",
  "album": null,
  "artist": "The Weeknd",
  "energy": null,
  "length": "3:20",
  "tempo_bpm": 171,
  "camelot_key": "3B",
  "musical_key": "C♯/D♭ major",
  "acousticness": null,
  "danceability": null,
  "songbpm_link": "https://songbpm.com/@the-weeknd/blinding-lights-c8d0a298-1020-47aa-a9a2-99bcf096cb84",
  "length_seconds": 200,
  "time_signature": "4/4"
}
```

## Run it

From code, with a Fous API key in `FOUS_API_KEY`; the answer's `data` holds the output:

```bash
curl https://api.fous.com/v1/runs \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"method":"songbpm.com/get_song_tempo_and_key","input":{"song":"Blinding Lights","artist":"The Weeknd"}}'
```

From an AI agent connected to the Fous MCP server: its `run` with the same method and input. To connect one, give it `set up https://fous.com/SKILL.md`.

## Ask your agent

- What is the tempo in BPM and musical key of Blinding Lights by The Weeknd?
- I'm DJing tonight and need the Camelot key for Levitating by Dua Lipa, can you check songbpm.com?
- How long is Shape of You by Ed Sheeran and what time signature is it in?
- Look up the BPM and key for Bad Guy by Billie Eilish so I can match it with my playlist.
- Find the tempo, key, and length of Watermelon Sugar by Harry Styles.

## Input schema

```json
{
  "type": "object",
  "required": [
    "song",
    "artist"
  ],
  "properties": {
    "song": {
      "type": "string",
      "description": "Song title, for example Blinding Lights."
    },
    "artist": {
      "type": "string",
      "description": "Performing artist, for example The Weeknd."
    }
  },
  "additionalProperties": false
}
```

## Output schema

```json
{
  "type": "object",
  "required": [
    "song",
    "artist",
    "album",
    "tempo_bpm",
    "musical_key",
    "camelot_key",
    "length",
    "length_seconds",
    "time_signature",
    "danceability",
    "energy",
    "acousticness",
    "songbpm_link"
  ],
  "properties": {
    "song": {
      "type": "string",
      "description": "Matched song title."
    },
    "album": {
      "type": [
        "string",
        "null"
      ],
      "description": "Album name, when available."
    },
    "artist": {
      "type": "string",
      "description": "Matched artist."
    },
    "energy": {
      "type": [
        "number",
        "null"
      ],
      "description": "Energy on a 0–100 scale when shown."
    },
    "length": {
      "type": [
        "string",
        "null"
      ],
      "description": "Song length, such as 3:20."
    },
    "tempo_bpm": {
      "type": "number",
      "description": "Tempo in beats per minute."
    },
    "camelot_key": {
      "type": [
        "string",
        "null"
      ],
      "description": "Camelot mixing key derived from musical key and mode."
    },
    "musical_key": {
      "type": [
        "string",
        "null"
      ],
      "description": "Musical key and mode, when shown."
    },
    "acousticness": {
      "type": [
        "number",
        "null"
      ],
      "description": "Acousticness on a 0–100 scale when shown."
    },
    "danceability": {
      "type": [
        "number",
        "null"
      ],
      "description": "Danceability on a 0–100 scale when shown."
    },
    "songbpm_link": {
      "type": "string",
      "description": "Link to the matched SongBPM song page."
    },
    "length_seconds": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Song length in seconds.",
      "x-fous-developer": true
    },
    "time_signature": {
      "type": [
        "string",
        "null"
      ],
      "description": "Beats per bar as a time signature when shown."
    }
  },
  "additionalProperties": false
}
```

## See more

- [Deezer API: Get song details](https://fous.com/methods/deezer.com/get-song-details.md): Gets a Deezer song's tempo, ISRC, loudness gain and recording details from its title, track link or track ID. An artist name helps pick the right recording.
- [MusicBrainz API: Get song identifiers](https://fous.com/methods/musicbrainz.org/get-song-identifiers.md): Finds the best-matching studio recording on MusicBrainz for a song title and artist. Returns its ISRCs, first release date and up to 25 of its earliest releases.
- [Spotify API: Get song](https://fous.com/methods/open.spotify.com/get-song.md): Finds a Spotify song by title (optionally narrowed by artist), track link, URI or track ID and returns its public play count and details. Without an artist, the most-played exact title match wins. Previews and ISRC may be unavailable for some tracks.
- [Apple API: Search songs](https://fous.com/methods/music.apple.com/search-songs.md): Searches the Apple Music song catalog by title and artist words, returning matching tracks in relevance order with prices and previews when available.
- [SoundCloud API: Get track](https://fous.com/methods/soundcloud.com/get-track.md): Gets a public SoundCloud track and its stats from a title and optional artist, or from a track link. Search picks the artist's matching upload with the most plays; unavailable fields are null.
- [Billboard API: Get an artist's chart history](https://fous.com/methods/billboard.com/get-artist-chart-history.md): Returns an artist's Billboard Hot 100 song history or Billboard 200 album history: chart totals (entries, No. 1 hits, top 10 hits) and each title's debut, peak and weeks on chart, most recent debut first.
- [Last.fm API: Get artist](https://fous.com/methods/last.fm/get-artist.md): Looks up a Last.fm artist by name and returns listening statistics, profile, top tracks and albums, similar artists, and upcoming events.
- [Songkick API: Get artist tour dates](https://fous.com/methods/songkick.com/get-artist-tour-dates.md): Gets an artist's upcoming concerts and tour dates on Songkick, optionally filtered by country, with ticket links and start times when listed.
