Get Music Genres
curl --request GET \
--url https://api.pictory.ai/pictoryapis/v1/music/genres \
--header 'Authorization: <authorization>'import requests
url = "https://api.pictory.ai/pictoryapis/v1/music/genres"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.pictory.ai/pictoryapis/v1/music/genres', 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://api.pictory.ai/pictoryapis/v1/music/genres",
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: <authorization>"
],
]);
$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://api.pictory.ai/pictoryapis/v1/music/genres"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.pictory.ai/pictoryapis/v1/music/genres")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pictory.ai/pictoryapis/v1/music/genres")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body[
"Film Score (Electronic)",
"Orchestral Hip Hop",
"Dramedy",
"Drone",
"Horror",
"Trip Hop",
"Gypsy Jazz",
"Polka",
"Alternative Grunge",
"Classic Rock",
"Metal",
"Indie Rock",
"Pop Rock",
"Punk Rock",
"Acid Jazz",
"Acoustic Blues",
"Bebop",
"Dixieland",
"Electric Blues",
"Exotica",
"Jazz Ballad",
"Jazz Fusion",
"Latin Jazz",
"Lounge",
"Ragtime",
"Smooth Jazz",
"Swing",
"Americana",
"Bluegrass",
"Country Folk",
"Country Pop",
"Country Rock",
"Breakbeat",
"Dance Pop",
"Dubstep",
"House",
"Industrial",
"Techno",
"Trance",
"Ambient",
"Chill Out",
"Downtempo",
"Soft Rock",
"Surf Rock",
"African",
"Brazilian / Samba",
"Cuban / Salsa",
"Indian",
"Island",
"Japanese",
"Middle Eastern",
"Reggae",
"Reggaeton",
"Tango",
"Solo Piano",
"Big Band",
"Electro Rock",
"Ska",
"World Elements",
"Synthwave",
"Chiptune",
"Acoustic",
"Folk Pop",
"Neo Soul",
"R&B Pop",
"Soul",
"Big Beat",
"Dancehall",
"Afrobeat",
"French",
"European",
"British",
"New Wave",
"Nu-Folk",
"Lo-Fi",
"Dub",
"Drill",
"Latin American",
"Bachata",
"Cumbia",
"Rock-n-Roll",
"Asian",
"Celtic",
"Spanish / Flamenco",
"Bush Ballad",
"Film Score (Orchestral)",
"Folk Rock",
"Gangsta",
"Classic Hip Hop",
"Trap",
"20th Century",
"Baroque",
"Classical Period",
"Romantic Period",
"Adult Contemporary",
"Bubblegum",
"Easy Listening",
"Electro Pop",
"Indie Pop",
"Singer-Songwriter",
"Disco",
"Funk",
"Italian",
"Klezmer",
"Australiana"
]
{
"message": "Unauthorized"
}
Music Search
Get Music Genres
Retrieve a list of available music genres for filtering and searching music tracks
GET
/
pictoryapis
/
v1
/
music
/
genres
Get Music Genres
curl --request GET \
--url https://api.pictory.ai/pictoryapis/v1/music/genres \
--header 'Authorization: <authorization>'import requests
url = "https://api.pictory.ai/pictoryapis/v1/music/genres"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.pictory.ai/pictoryapis/v1/music/genres', 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://api.pictory.ai/pictoryapis/v1/music/genres",
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: <authorization>"
],
]);
$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://api.pictory.ai/pictoryapis/v1/music/genres"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.pictory.ai/pictoryapis/v1/music/genres")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pictory.ai/pictoryapis/v1/music/genres")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body[
"Film Score (Electronic)",
"Orchestral Hip Hop",
"Dramedy",
"Drone",
"Horror",
"Trip Hop",
"Gypsy Jazz",
"Polka",
"Alternative Grunge",
"Classic Rock",
"Metal",
"Indie Rock",
"Pop Rock",
"Punk Rock",
"Acid Jazz",
"Acoustic Blues",
"Bebop",
"Dixieland",
"Electric Blues",
"Exotica",
"Jazz Ballad",
"Jazz Fusion",
"Latin Jazz",
"Lounge",
"Ragtime",
"Smooth Jazz",
"Swing",
"Americana",
"Bluegrass",
"Country Folk",
"Country Pop",
"Country Rock",
"Breakbeat",
"Dance Pop",
"Dubstep",
"House",
"Industrial",
"Techno",
"Trance",
"Ambient",
"Chill Out",
"Downtempo",
"Soft Rock",
"Surf Rock",
"African",
"Brazilian / Samba",
"Cuban / Salsa",
"Indian",
"Island",
"Japanese",
"Middle Eastern",
"Reggae",
"Reggaeton",
"Tango",
"Solo Piano",
"Big Band",
"Electro Rock",
"Ska",
"World Elements",
"Synthwave",
"Chiptune",
"Acoustic",
"Folk Pop",
"Neo Soul",
"R&B Pop",
"Soul",
"Big Beat",
"Dancehall",
"Afrobeat",
"French",
"European",
"British",
"New Wave",
"Nu-Folk",
"Lo-Fi",
"Dub",
"Drill",
"Latin American",
"Bachata",
"Cumbia",
"Rock-n-Roll",
"Asian",
"Celtic",
"Spanish / Flamenco",
"Bush Ballad",
"Film Score (Orchestral)",
"Folk Rock",
"Gangsta",
"Classic Hip Hop",
"Trap",
"20th Century",
"Baroque",
"Classical Period",
"Romantic Period",
"Adult Contemporary",
"Bubblegum",
"Easy Listening",
"Electro Pop",
"Indie Pop",
"Singer-Songwriter",
"Disco",
"Funk",
"Italian",
"Klezmer",
"Australiana"
]
{
"message": "Unauthorized"
}
Overview
Retrieve a comprehensive list of available music genres for filtering and searching music tracks. Use these genre values to find music that matches the specific musical style and sound of your video content.You need a valid API key to use this endpoint. Get your API key from the API Access page in your Pictory dashboard.
API Endpoint
GET https://api.pictory.ai/pictoryapis/v1/music/genres
Request Parameters
Headers
API key for authentication (starts with
pictai_)Authorization: YOUR_API_KEY
Response
Array of available music genre names. Each genre represents a distinct musical style or category for filtering music tracks in search queries.
Response Examples
[
"Film Score (Electronic)",
"Orchestral Hip Hop",
"Dramedy",
"Drone",
"Horror",
"Trip Hop",
"Gypsy Jazz",
"Polka",
"Alternative Grunge",
"Classic Rock",
"Metal",
"Indie Rock",
"Pop Rock",
"Punk Rock",
"Acid Jazz",
"Acoustic Blues",
"Bebop",
"Dixieland",
"Electric Blues",
"Exotica",
"Jazz Ballad",
"Jazz Fusion",
"Latin Jazz",
"Lounge",
"Ragtime",
"Smooth Jazz",
"Swing",
"Americana",
"Bluegrass",
"Country Folk",
"Country Pop",
"Country Rock",
"Breakbeat",
"Dance Pop",
"Dubstep",
"House",
"Industrial",
"Techno",
"Trance",
"Ambient",
"Chill Out",
"Downtempo",
"Soft Rock",
"Surf Rock",
"African",
"Brazilian / Samba",
"Cuban / Salsa",
"Indian",
"Island",
"Japanese",
"Middle Eastern",
"Reggae",
"Reggaeton",
"Tango",
"Solo Piano",
"Big Band",
"Electro Rock",
"Ska",
"World Elements",
"Synthwave",
"Chiptune",
"Acoustic",
"Folk Pop",
"Neo Soul",
"R&B Pop",
"Soul",
"Big Beat",
"Dancehall",
"Afrobeat",
"French",
"European",
"British",
"New Wave",
"Nu-Folk",
"Lo-Fi",
"Dub",
"Drill",
"Latin American",
"Bachata",
"Cumbia",
"Rock-n-Roll",
"Asian",
"Celtic",
"Spanish / Flamenco",
"Bush Ballad",
"Film Score (Orchestral)",
"Folk Rock",
"Gangsta",
"Classic Hip Hop",
"Trap",
"20th Century",
"Baroque",
"Classical Period",
"Romantic Period",
"Adult Contemporary",
"Bubblegum",
"Easy Listening",
"Electro Pop",
"Indie Pop",
"Singer-Songwriter",
"Disco",
"Funk",
"Italian",
"Klezmer",
"Australiana"
]
{
"message": "Unauthorized"
}
Code Examples
Replace
YOUR_API_KEY with your actual API key that starts with pictai_curl --request GET \
--url https://api.pictory.ai/pictoryapis/v1/music/genres \
--header 'Authorization: YOUR_API_KEY' \
--header 'accept: application/json' | python -m json.tool
import requests
url = "https://api.pictory.ai/pictoryapis/v1/music/genres"
headers = {
"Authorization": "YOUR_API_KEY",
"accept": "application/json"
}
response = requests.get(url, headers=headers)
genres = response.json()
# Print all available genres
for genre in genres:
print(genre)
const response = await fetch(
'https://api.pictory.ai/pictoryapis/v1/music/genres',
{
method: 'GET',
headers: {
'Authorization': 'YOUR_API_KEY',
'accept': 'application/json'
}
}
);
const genres = await response.json();
console.log('Available genres:', genres);
Usage Notes
Use these exact genre values when searching for music to ensure valid selection from available categories. Genre values are case-sensitive and must match exactly as returned by this endpoint.
Genre Diversity: The API provides over 100 distinct genre options spanning diverse musical styles, from classical (Baroque, Romantic Period) to contemporary (Trap, Synthwave) to world music (African, Middle Eastern, Celtic), enabling precise matching of music style to your video’s theme.
Common Use Cases
1. Populate a Genre Selector
Fetch all available genres to populate a dropdown or selection interface in your application:genres = requests.get(
"https://api.pictory.ai/pictoryapis/v1/music/genres",
headers={"Authorization": "YOUR_API_KEY"}
).json()
# Use genres to populate UI dropdown
genre_options = [{"label": genre, "value": genre} for genre in genres]
2. Categorize Genres by Music Family
Organize genres into broader musical categories for simplified user selection:const response = await fetch('https://api.pictory.ai/pictoryapis/v1/music/genres', {
headers: { 'Authorization': 'YOUR_API_KEY' }
});
const genres = await response.json();
// Categorize genres
const rockGenres = genres.filter(g =>
g.includes('Rock') && !g.includes('Folk')
);
const jazzGenres = genres.filter(g =>
g.includes('Jazz')
);
const classicalGenres = genres.filter(g =>
g.includes('Classical') || g.includes('Baroque') || g.includes('Romantic')
);
const electronicGenres = genres.filter(g =>
['House', 'Techno', 'Trance', 'Dubstep', 'Electro'].some(e => g.includes(e))
);
3. Validate User Selection
Ensure user-selected genres are valid before using them in music search requests:valid_genres = requests.get(
"https://api.pictory.ai/pictoryapis/v1/music/genres",
headers={"Authorization": "YOUR_API_KEY"}
).json()
user_genre = "Synthwave"
if user_genre in valid_genres:
# Proceed with music search using this genre
print(f"Searching for {user_genre} music...")
else:
print("Invalid genre selected")
4. Display Genre Categories
Create a user-friendly categorized display of genres:import requests
genres = requests.get(
"https://api.pictory.ai/pictoryapis/v1/music/genres",
headers={"Authorization": "YOUR_API_KEY"}
).json()
# Organize by main category
categories = {
"Rock": [g for g in genres if 'Rock' in g and 'Folk' not in g],
"Jazz": [g for g in genres if 'Jazz' in g],
"Electronic": [g for g in genres if any(x in g for x in ['House', 'Techno', 'Electronic', 'Electro'])],
"Classical": [g for g in genres if any(x in g for x in ['Classical', 'Baroque', 'Romantic', '20th Century'])],
"Hip Hop": [g for g in genres if 'Hip Hop' in g or g in ['Trap', 'Gangsta', 'Drill']],
"World": [g for g in genres if any(x in g for x in ['African', 'Asian', 'Brazilian', 'Cuban', 'Indian', 'Japanese', 'Middle Eastern', 'Reggae', 'Celtic', 'Spanish'])],
"Country": [g for g in genres if 'Country' in g or g in ['Americana', 'Bluegrass']],
"Pop": [g for g in genres if 'Pop' in g and 'Hip Hop' not in g]
}
for category, genre_list in categories.items():
print(f"\n{category}:")
for genre in sorted(genre_list):
print(f" - {genre}")
Was this page helpful?
⌘I
