curl --request GET \
--url https://www.fmdb.net/api/resolve \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.fmdb.net/api/resolve"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://www.fmdb.net/api/resolve', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://www.fmdb.net/api/resolve",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://www.fmdb.net/api/resolve"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://www.fmdb.net/api/resolve")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.fmdb.net/api/resolve")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"type": "Resolution",
"id": "/api/resolve",
"attributes": {
"entity_type": "release",
"entity_id": "9a3ef3c2-8d41-4f6b-a1e7-5c0b2d9f4e18",
"slug": "bandolero-9a3ef3",
"url": "https://www.fmdb.net/releases/bandolero-9a3ef3",
"redirected": true
}
}
}{
"errors": [
{
"status": "429",
"title": "Rate Limit Exceeded",
"detail": "You have exceeded the rate limit of 300 requests per 60 seconds. The budget resets at 2026-01-15T10:00:42+00:00."
}
]
}Resolve a slug or FMDB page URL to a UUID
Maps a slug of an artist, production, release, label or organization, or the URL of its public page, to the record’s UUID. Pass either type and slug, or url. A slug that has since changed, or the UUID of a record merged into another, is followed to the current record and reported with redirected: true. A sub-page URL, such as a production’s episodes, resolves to its record. Records hidden from the caller’s detail endpoints answer 404.
curl --request GET \
--url https://www.fmdb.net/api/resolve \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.fmdb.net/api/resolve"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://www.fmdb.net/api/resolve', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://www.fmdb.net/api/resolve",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://www.fmdb.net/api/resolve"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://www.fmdb.net/api/resolve")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.fmdb.net/api/resolve")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"type": "Resolution",
"id": "/api/resolve",
"attributes": {
"entity_type": "release",
"entity_id": "9a3ef3c2-8d41-4f6b-a1e7-5c0b2d9f4e18",
"slug": "bandolero-9a3ef3",
"url": "https://www.fmdb.net/releases/bandolero-9a3ef3",
"redirected": true
}
}
}{
"errors": [
{
"status": "429",
"title": "Rate Limit Exceeded",
"detail": "You have exceeded the rate limit of 300 requests per 60 seconds. The budget resets at 2026-01-15T10:00:42+00:00."
}
]
}Authorizations
API token authentication
Query Parameters
Type of the record the slug belongs to. Required with slug.
artist, production, release, label, organization Current or former slug of the record, e.g. bandolero-9a3ef3: lowercase letters, digits and hyphens. Required with type.
^[a-z0-9-]+$Public FMDB page URL of the record, by slug or UUID, e.g. https://www.fmdb.net/releases/bandolero-9a3ef3. Excludes type and slug.
Response
The record the slug or URL names, under its current slug
Show child attributes
Show child attributes
