API Documentation Upload JSON format

Recommended for software engineers only ! 😉

Draft version - last updated 2022-10-25

 

Upload

You can use our API /api/v1/import/upload/ to ingest new tracks.

In a JSON string you specify the metadata.

You can (a) upload the audio file with the API call or (b) specify a url in the JSON string ("url_audio").

 

Mandatory fields in the JSON string are:

field comment
id_client unique identifier for a track in your system/platform/database
url_audio url where we can download the audio file. If the file is on AWS S3 and not public, create a signed url valid for 7 days. Important: If you upload a file, leave the value empty or omit the field url_audio. If you upload a file and provide a url, the API will respond with an error.
label_name name of the label or catalog
album_name name of the album
title title of the track
composer composer(s) of the track. Important: if you list the writers/composers in the writers array (first_name, last_name...), too, we will use that information instead and you can omit the field composer.

 

All other fields are optional.

 

All fields are type string except:

field type
track_number int
bpm int
ownership_share int
maintracknumber
int

 

 

JSON fields

field comment
hook_url url we call once the track has been processed
id_client unique identifier for a track in your system/platform/database
url_audio url where we can download the audio file. If the file is on AWS S3 and not public, create a signed url valid for 7 days. Important: If you upload a file, leave the value empty or omit the field url_audio. If you upload a file and provide a url, the API will respond with an error.
url_album_image url where we can download the album image. If the file is on AWS S3 and not public, create a signed url valid for 7 days. If no url is provided we will try to use the album image from the ID3 tag (if available) in the audio file.
label_name name of the label or catalog, db_name: label
label_code label code, db_name: labelcode
label_lc_name label code name
album_name name of the album, db_name: LibraryCDTitle
album_code code or number of the album, db_name: LibraryCDno
album_description description for the album, db_name: LibraryCDdescription
title title of the track
track_number number of the track, db_name: track
track_version version of the track. e.g. Main , db_name: trackversion
has_vocals possible values: yes, no
explicit possible values: yes, no
music_key e.g. D#m
music_meter e.g. 4/4
mainversion possible values: yes, no
trackspertitle track numbers of alternate versions in the same album, comma delimited. e.g. 15,24,39. You can instead use maintracknumber, which is often available on 3rd party platforms. Used to link alternate versions to the main version.
maintracknumber
when mainversion = no, specify the track_number of the main version. e.g. 4. Used to link alternate versions to the main version.
lyrics make sure you encode special characters like line breaks etc.
lyrics_language e.g.: en
description description of track
keywords keywords for track
bpm beats per minute
tempo tempo of track , db_name: tempos
isrc ISRC
iswc ISWC
release_date format as YYYY-MM-DD e.g. 2022-12-30, db_name: releasedate
moods comma delimited list of moods for track. e.g. Dark, Heroic, Tragic, Powerful
genres comma delimited list of genres for track , db_name: music_styles
music_for comma delimited list of words that describe what the track can be best used for. e.g. Documentaries , News
style_of comma delimited list of words the track is similar to. e.g. American Beauty. db_name: well_known_tunes
featured_instruments comma delimited list of (featured) instruments for track , db_name: instruments
artist artist name
composer comma delimited list of composer(s) of the track. if you list the writers/composers in the writers array (first_name, last_name...), we will use writers information instead and you can omit the field composer.
publisher comma delimited list of publisher(s) of the track. if you list the publishers in the publishers array, too, we will use that information instead and you can omit the field publisher.
writers array of writer(s). last_name is madatory. See JSON example for more information
publishers array of publisher(s). See JSON example for more information

 

JSON example:

{
"hook_url":"https://www.example.com/api/hook/",
"id_client":"985698349_AHN",
"url_audio": "https://www.example.com/sample.wav",
"url_album_image": "https://www.example.com/albumimage.jpg",
"label_name": "Voice",
"label_code": "",
"label_lc_name": "",
"album_name": "Voice - Compilation",
"album_code": "VMV030",
"album_description": "A variety for every need, from promos to ads, film and trailers, games and documentaries",
"title": "Final Hour",
"track_number": "1",
"track_version": "Full",
"has_vocals": "no",
"explicit": "no",
"music_key":"D#m",
"music_meter":"4/4",
"mainversion": "yes",
"lyrics": "dancing in the sun",
"lyrics_language": "en",
"description": "confident, attitude, assertive, bold",
"keywords": "",
"bpm": "76",
"tempo": "slow",
"isrc": "QM-GWH-13-00040",
"iswc": "",
"release_date": "2022-12-31",
"moods": "dramatic, mysterious",
"genres": "Soundtrack, Score",
"music_for": "Documentaries, News",
"style_of":"American Beauty",
"featured_instruments": "hammond",
"artist": "",
"composer": "Karina Tammy Byrne (PRS),DURIEUX (PRS)",
"publisher": "Cavendish Music Library (PRS)",
"writers": [
{
"first_name": "Karina Tammy",
"last_name": "Byrne",
"pro_affiliation": "PRS",
"ownership_share": "50",
"cae_ipi": "872609216"
},
{
"first_name": "",
"last_name": "DURIEUX",
"pro_affiliation": "PRS",
"ownership_share": "50",
"cae_ipi": "1101541034"
}
],
"publishers": [
{
"company_name": "Cavendish Music Library",
"pro_affiliation": "PRS",
"ownership_share": "100",
"cae_ipi": "1007849852",
"role": "Original Publisher",
"territory": "world"
}
]
}

Webhooks

Specify the hook_url field in the request. The processing pipeline will call this URL once it processes the track.

 

Have more questions? Submit a request

0 Comments

Article is closed for comments.
Powered by Zendesk