NAV
shell javascript

Introduction

Welcome to the Base for Music Partner documentation!

Copy to Clipboard
API_URL='https://partners.api.baseformusic.com'; SWAGGER_DOCUMENTATION='https://partners.api.baseformusic.com/#api';

The Base for Music Partner API offers a powerful set of tools for creating and tracking marketing campaigns from your website or application. Through this API, all generated campaigns are optimised and tracked by Base for Music's administrator solution, allowing you to obtain maximum results. By integrating our tools, you'll make it easy for your users to launch effective marketing campaigns to promote their music.

Key Features

Authentication

Get started

To get started with the Base for Music Partner API, please sign up for an API key by contacting us at team@baseformusic.fr

Copy to Clipboard
# Contact team@baseformusic.fr to get your clientId and clientSecret PARTNER_TOKEN=$(echo -n "$client_id:$client_secret" | base64)

This key will serve as your authentication token, granting access to the API's functionalities securely.

Authorization

The Base for Music Partner API supports OAuth 2.0 for secure authentication. When making requests to the API, you will need to include your API key in the Authorization header. This API key serves as your access token, granting permission to interact with the API on behalf of your account.

REQUEST SAMPLE

Copy to Clipboard
#!/bin/bash client_id="VotreClientID" client_secret="VotreClientSecret" API_URL="https://partners.api.baseformusic.com/partners-api/token" PARTNER_TOKEN=$(echo -n "$client_id:$client_secret" | base64) curl -X GET "$API_URL/token" \ -H "Authorization: Basic $PARTNER_TOKEN" \ --data-urlencode "grant_type=client_credentials"

HTTP Request

GET https://partners.api.baseformusic.com/partners-api/token

Parameter Default Description
token partnerToken client_id:client_secret in base64

RESPONSE SAMPLE

Copy to Clipboard
{ "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.XXXXXX.6KuKQS--bngGOmseavD7CdSOlp5GawUD5hEVKBGrkX4" }

Security

To ensure the security of your account and data, it is crucial to keep your API key confidential and avoid sharing it publicly. Treat your API key as sensitive information and only share it with authorized personnel who need access to the API for development or integration purposes.

Please refer to the API documentation for detailed instructions on how to obtain and use your API key for authentication. If you have any questions or concerns about the authentication process, feel free to contact our support team at team@baseformusic.fr. We are here to assist you with a smooth and secure integration experience.

Campaigns

Create a campaign

REQUEST SAMPLE

Copy to Clipboard
curl -X 'POST' \ 'https://partners.api.baseformusic.com/partners-api/campaigns' \ -H 'accept: application/json' \ -H 'Authorization: Bearer ACCESS_TOKEN' \ -H 'Content-Type: application/json' \ -d '{ externalUserId: '2b9e689a-d57a-4c54-b0a9-772c77993f7e', budget: 50, startDate: '2023-07-24T15:37:12.362Z', playbookContent: '[Object PlaybookContent]', playbookName: 'instagramFollowersMeta', }'

RESPONSE SAMPLE:

Copy to Clipboard
{ "id": "6f89d7b4-0682-4b73-be80-cbfb810e7b80", "config": { "profile": { "artist": { "id": "6eukzxakkcvih0ku9w2n3v" } }, "content": { "auto": { "track": { "id": "3n3ppam7vgava1iaruc9lp" } } }, "redirection": { "id": "3n3ppam7vgava1iaruc9lp", "resourceType": "track" }, "targeting": { "auto": { "musicalGenre": "hiphop", "language": "all" } } }, "budget": 2000, "startDate": "2023-09-13T14:48:14.518Z", "endDate": "2023-10-28T14:48:14.518Z", "reportingURL": "https://baseformusic.com/apps/reporting/kKBLj4cp1W", "externalUserId": "string", "playbook": "spotifyEngagementAdStudio", "createdAt": "2023-09-13T14:48:14.514Z", "btobName": null, }

HTTP Request

POST https://partners.api.baseformusic.com/partners-api/campaigns

Body Parameters


Parameter Description
externalUserId User ID in your system
budget Campaign budget between 50€ and 2000€
startDate Start date of campaign
playbookName Campaign playbookName (specific to each playbook) see Playbook section.
playbookContent Campaign content (specific to each playbook) see Playbook Content section.

Get a Specific Campaign

REQUEST SAMPLE

Copy to Clipboard
curl -X 'GET' \ 'https://partners.api.baseformusic.com/partners-api/campaigns/614fe44b-e3d8-4f61-b646-0a59ad190ee7' \ -H 'accept: application/json' \ -H 'Authorization: Bearer ACCESS_TOKEN'

RESPONSE SAMPLE

Copy to Clipboard
{ "id": "6f89d7b4-0682-4b73-be80-cbfb810e7b80", "config": { "profile": { "artist": { "id": "6eukzxakkcvih0ku9w2n3v" } }, "content": { "auto": { "track": { "id": "3n3ppam7vgava1iaruc9lp" } } }, "redirection": { "id": "3n3ppam7vgava1iaruc9lp", "resourceType": "track" }, "targeting": { "auto": { "musicalGenre": "hiphop", "language": "all" } } }, "budget": 2000, "startDate": "2023-09-13T14:48:14.518Z", "endDate": "2023-10-28T14:48:14.518Z", "reportingURL": "https://baseformusic.com/apps/reporting/kKBLj4cp1W", "externalUserId": "string", "playbook": "spotifyEngagementAdStudio", "createdAt": "2023-09-13T14:48:14.514Z", "btobName": null, }

This endpoint retrieves a specific campaign.

HTTP Request

GET https://partners.api.baseformusic.com/partners-api/campaign/<ID_CAMPAIGN>


Query Parameters

Parameter Description
ID The ID of the campaign to retrieve

Response

Parameter Description
id Campaign ID
config Campaign config ( see playbookContent reporting )
externalUserId User ID in your system
playbookName Campaign playbook name
budget Campaign budget
startDate Campaign start date
endDate Campaign end date
createdAt Campaign created at date
progress Campaign progress
reportingURL Campaign reporting URL reporting

Response sample

{ "id": "614fe44b-e3d8-4f61-b646-0a59ad190ee7", "nameOrder": "#4510", "budget": 210, "playbookName": "spotifyEngagementAdStudio", "playbookContent": "[]", "startDate": "2023-07-24T00:00:00.000Z", "endDate": "2023-08-09T00:00:00.000Z", "progress": 100, }

Get All Campaigns

REQUEST SAMPLE

Copy to Clipboard
curl -X 'GET' \ 'https://partners.api.baseformusic.com/partners-api/campaigns/614fe44b-e3d8-4f61-b646-0a59ad190ee7' \ -H 'accept: application/json' \ -H 'Authorization: Bearer ACCESS_TOKEN'

RESPONSE SAMPLE:

Copy to Clipboard
[ { [Object campaign] } { [Object campaign] } ]

This endpoint retrieves all campaigns.

HTTP Request

GET https://partners.api.baseformusic.com/partners-api/campaigns


Query Parameters

Parameter Description
externalUserId The ID of the user in your system

Response

The response is an array of campaign objects. Each campaign object has the following properties:

Parameter Description
id Campaign ID
nameOrder Campaign name ( generate by baseformusic )
budget Campaign budget
startDate Campaign start date
endDate Campaign end date
progress Campaign progress
reportingURL Reporting id
playbookName Campaign playbook name
content Campaign playbook content

Smartlinks

REQUEST SAMPLE

Copy to Clipboard
curl -X 'POST' \ 'https://partners.api.baseformusic.com/partners-api/smartlinks' \ -H 'accept: */*' \ -H 'Authorization: Bearer ACCESS_TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "externalUserId": "1bfd4ae9", "defaultCoverUrl": "https://placehold.co/200x200", "name": "Smart Link 12", "title": "Sauvage", "description": "Dorian", "snapchatPixelId": "12314241432", "metaPixelId": "12314241432", "googleAnalyticsId": "12314241432", "releaseDate": "2026-06-05T13:50:37.622Z", "type": "PRESAVE" }'

RESPONSE SAMPLE:

Copy to Clipboard
{ "id": "ae7096ae-f50a-4a6b-be11-0d59d927e2c5", "name": "Smart Link 12", "title": "Sauvage", "description": "Dorian", "snapchatPixelId": "12314241432", "metaPixelId": "12314241432", "googleAnalyticsId": "12314241432", "shortId": "h74JusEW", "defaultCoverUrl": "https://placehold.co/200x200", "releaseDate": "2026-06-05T13:50:37.622Z", "externalUserId": "1bfd4ae9", "type": "PRESAVE", "customCanvasUrl": null, "defaultCanvasUrl": null, "coverUrl": null, "spotifyUri": null, "bioLinkData": null, "userId": null, "selectedCover": "default", "createdAt": "2024-07-24T15:39:45.009Z", "links": [ { "id": "4891f4c7-ee35-4edc-9fb6-91002bff1161", "linkType": "SPOTIFY", "url": "", "position": 0, "presave": true, "widgetType": "PRESAVE" }, { "id": "6a539e0b-51eb-4818-86e2-7a9295bb05c7", "linkType": "DEEZER", "url": "", "position": 1, "presave": true, "widgetType": "PRESAVE" }, { "id": "ee7fa8b1-6bda-4714-9a26-a173cd6164ff", "linkType": "APPLE_MUSIC", "url": "", "position": 2, "presave": true, "widgetType": "PRESAVE" }, { "id": "5ccff403-b63a-4b74-9ba9-2c687546ccbd", "linkType": "CUSTOM", "url": "", "position": 3, "presave": true, "widgetType": "PRESAVE" } ] }

HTTP Request

POST https://partners.api.baseformusic.com/partners-api/smartlinks

Body Parameters

Parameter Type Description Optional Validation
defaultCoverUrl string The default cover URL for the smart link No Must be a valid URL
name string The name of the smart link Yes
title string The title of the smart link No
description string The description of the smart link No
snapchatPixelId string The Snapchat Pixel ID Yes
metaPixelId string The Meta (Facebook) Pixel ID Yes
googleAnalyticsId string The Google Analytics ID Yes
externalUserId string The external user ID No
releaseDate string (ISO 8601) The release date for presave links Yes Format: YYYY-MM-DDTHH:MM:SS.sssZ; required for PRESAVE type
type enum (PRESAVE, MUSIC, FAN, BIO) The type of smart link No Must be one of the defined enum values
spotifyUri string The Spotify URI for music links Yes Format: spotify:resource:id; required for MUSIC type

Response

Parameter Type Description
id string (UUID) The unique identifier for the smart link
name string The name of the smart link
title string The title of the smart link
description string The description of the smart link
snapchatPixelId string The Snapchat Pixel ID
metaPixelId string The Meta (Facebook) Pixel ID
googleAnalyticsId string The Google Analytics ID
shortId string The shortened identifier for the smart link
defaultCoverUrl string The default cover URL for the smart link
releaseDate string (ISO 8601) The release date for presave links
externalUserId string The external user ID
type enum (PRESAVE, MUSIC, FAN, BIO) The type of smart link
customCanvasUrl string The custom canvas URL
defaultCanvasUrl string The default canvas URL
coverUrl string The cover URL
spotifyUri string The Spotify URI for music links
bioLinkData object The bio link data
userId string (UUID) The user ID
selectedCover string The selected cover (e.g., 'default')
createdAt string (ISO 8601) The creation timestamp
links array of link objects The list of associated links
Parameter Type Description
id string (UUID) The unique identifier for the link
linkType enum (CUSTOM, SPOTIFY, YOUTUBE, YOUTUBE_MUSIC, SOUNDCLOUD, DEEZER, APPLE_MUSIC, PRIME_MUSIC, FNAC, TIDAL, BEATPORT, MIXCLOUD, QUOBUZZ, BANDCAMP, NAPSTER) The type of the link (e.g., 'SPOTIFY')
url string The URL of the link
position number The position of the link
presave boolean Indicates if the link is a presave link
widgetType string The widget type of the link (e.g., 'PRESAVE')

REQUEST SAMPLE

Copy to Clipboard
curl -X 'GET' \ 'https://partners.api.baseformusic.com/partners-api/smartlinks/ae7096ae-f50a-4a6b-be11-0d59d927e2c5' \ -H 'accept: application/json' \ -H 'Authorization: Bearer TOKEN'

RESPONSE SAMPLE

Copy to Clipboard
{ "id": "ae7096ae-f50a-4a6b-be11-0d59d927e2c5", "name": "Smart Link 12", "title": "Sauvage", "description": "Dorian", "snapchatPixelId": "12314241432", "metaPixelId": "12314241432", "googleAnalyticsId": "12314241432", "shortId": "h74JusEW", "defaultCoverUrl": "https://placehold.co/200x200", "customCanvasUrl": null, "defaultCanvasUrl": null, "coverUrl": null, "selectedCover": "default", "spotifyUri": null, "type": "PRESAVE", "bioLinkData": null, "userId": null, "externalUserId": "1bfd4ae9", "releaseDate": "2026-06-05T13:50:37.622Z", "createdAt": "2024-07-24T15:39:45.009Z", "links": [ { "id": "4891f4c7-ee35-4edc-9fb6-91002bff1161", "linkType": "SPOTIFY", "widgetType": "PRESAVE", "presave": true, "url": "", "position": 0 }, { "id": "6a539e0b-51eb-4818-86e2-7a9295bb05c7", "linkType": "DEEZER", "widgetType": "PRESAVE", "presave": true, "url": "", "position": 1 }, { "id": "ee7fa8b1-6bda-4714-9a26-a173cd6164ff", "linkType": "APPLE_MUSIC", "widgetType": "PRESAVE", "presave": true, "url": "", "position": 2 }, { "id": "5ccff403-b63a-4b74-9ba9-2c687546ccbd", "linkType": "CUSTOM", "widgetType": "PRESAVE", "presave": true, "url": "", "position": 3 } ] }

This endpoint retrieves a specific smartlink.

HTTP Request

GET https://partners.api.baseformusic.com/partners-api/smartlinks/<ID_SMARTLINK>


Query Parameters

Parameter Description
ID The ID of the smartlink to retrieve

Response

Parameter Type Description
id string (UUID) The unique identifier for the smart link
name string The name of the smart link
title string The title of the smart link
description string The description of the smart link
snapchatPixelId string The Snapchat Pixel ID
metaPixelId string The Meta (Facebook) Pixel ID
googleAnalyticsId string The Google Analytics ID
shortId string The shortened identifier for the smart link
defaultCoverUrl string The default cover URL for the smart link
releaseDate string (ISO 8601) The release date for presave links
externalUserId string The external user ID
type enum (PRESAVE, MUSIC, FAN, BIO) The type of smart link
customCanvasUrl string The custom canvas URL
defaultCanvasUrl string The default canvas URL
coverUrl string The cover URL
spotifyUri string The Spotify URI for music links
bioLinkData object The bio link data
userId string (UUID) The user ID
selectedCover string The selected cover (e.g., 'default')
createdAt string (ISO 8601) The creation timestamp
links array of link objects The list of associated links
Parameter Type Description
id string (UUID) The unique identifier for the link
linkType enum (CUSTOM, SPOTIFY, YOUTUBE, YOUTUBE_MUSIC, SOUNDCLOUD, DEEZER, APPLE_MUSIC, PRIME_MUSIC, FNAC, TIDAL, BEATPORT, MIXCLOUD, QUOBUZZ, BANDCAMP, NAPSTER) The type of the link (e.g., 'SPOTIFY')
url string The URL of the link
position number The position of the link
presave boolean Indicates if the link is a presave link
widgetType string The widget type of the link (e.g., 'PRESAVE')

REQUEST SAMPLE

Copy to Clipboard
curl -X 'GET' \ 'https://partners.api.baseformusic.com/partners-api/smartlinks?externalUserId=1bfd4ae9' \ -H 'accept: application/json' \ -H 'Authorization: Bearer TOKEN'

RESPONSE SAMPLE:

Copy to Clipboard
[ { "id": "ae7096ae-f50a-4a6b-be11-0d59d927e2c5", "name": "Smart Link 12", "title": "Sauvage", "description": "Dorian", "snapchatPixelId": "12314241432", "metaPixelId": "12314241432", "googleAnalyticsId": "12314241432", "shortId": "h74JusEW", "defaultCoverUrl": "https://placehold.co/200x200", "customCanvasUrl": null, "defaultCanvasUrl": null, "coverUrl": null, "selectedCover": "default", "spotifyUri": null, "type": "PRESAVE", "bioLinkData": null, "userId": null, "externalUserId": "1bfd4ae9", "releaseDate": "2026-06-05T13:50:37.622Z", "createdAt": "2024-07-24T15:39:45.009Z", "linkViews": 0 } ]

This endpoint retrieves all smartlinks.

HTTP Request

GET https://partners.api.baseformusic.com/partners-api/smartlinks


Query Parameters

Parameter Description
externalUserId The ID of the user in your system

Response

The response is an array of smartlink objects. Each smartlink object has the following properties:

Parameter Type Description
id string (UUID) The unique identifier for the smart link
name string The name of the smart link
title string The title of the smart link
description string The description of the smart link
snapchatPixelId string The Snapchat Pixel ID
metaPixelId string The Meta (Facebook) Pixel ID
googleAnalyticsId string The Google Analytics ID
shortId string The shortened identifier for the smart link
defaultCoverUrl string The default cover URL for the smart link
customCanvasUrl string The custom canvas URL
defaultCanvasUrl string The default canvas URL
coverUrl string The cover URL
selectedCover string The selected cover (e.g., 'default')
spotifyUri string The Spotify URI for music links
type enum (PRESAVE, MUSIC, FAN, BIO) The type of smart link
bioLinkData object The bio link data
userId string (UUID) The user ID
externalUserId string The external user ID
releaseDate string (ISO 8601) The release date for presave links
createdAt string (ISO 8601) The creation timestamp
linkViews number The number of views for the link

REQUEST SAMPLE

Copy to Clipboard
curl -X 'PATCH' \ 'https://partners.api.baseformusic.com/partners-api/smartlinks/ae7096ae-f50a-4a6b-be11-0d59d927e2c5' \ -H 'accept: */*' \ -H 'Authorization: Bearer ACCESS_TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "name": "Updated Smart Link Name", "description": "Updated Description", "title": "Updated Title", "coverUrl": "https://placehold.co/300x300", "snapchatPixelId": "98765432100", "metaPixelId": "98765432100", "googleAnalyticsId": "98765432100", "spotifyUri": "spotify:track:4iV5W9uYEdYUVa79Axb6Wv", "selectedCover": "custom", "bioLinkData": {}, "links": [ { "linkType": "SPOTIFY", "url": "https://spotify.com/track/12345", "position": 0, "presave": true }, { "linkType": "DEEZER", "url": "https://deezer.com/track/12345", "position": 1, "presave": true } ] }'

HTTP Request

PATCH https://partners.api.baseformusic.com/partners-api/smartlinks/<ID_SMARTLINK>

Body Parameters

Parameter Type Description Optional Validation
name string The name of the smart link Yes
coverUrl string The cover URL for the smart link Yes Must be a valid URL
customCanvasUrl string The custom canvas URL Yes Must be a valid URL
selectedCover enum (default, custom) The selected cover type Yes Must be one of the defined enum values
spotifyUri string The Spotify URI for music links Yes Format: spotify:resource:id; required for MUSIC type
title string The title of the smart link Yes
description string The description of the smart link Yes
snapchatPixelId string The Snapchat Pixel ID Yes
metaPixelId string The Meta (Facebook) Pixel ID Yes
googleAnalyticsId string The Google Analytics ID Yes
bioLinkData object The bio link data Yes Must be a valid object
links array of link objects The list of associated links Yes Must be an array of valid link objects
Parameter Type Description
id string (UUID) The unique identifier for the link
linkType enum (CUSTOM, SPOTIFY, YOUTUBE, YOUTUBE_MUSIC, SOUNDCLOUD, DEEZER, APPLE_MUSIC, PRIME_MUSIC, FNAC, TIDAL, BEATPORT, MIXCLOUD, QUOBUZZ, BANDCAMP, NAPSTER) The type of the link (e.g., 'SPOTIFY')
url string The URL of the link
position number The position of the link
presave boolean Indicates if the link is a presave link
widgetType string The widget type of the link (e.g., 'PRESAVE')

Playbook

A playbook is a type of a campaign that you can create in Base for Music.

This is a marketing campaign linked to an advertising format, set up and optimized to achieve a specific objective. It allows your user to simply select the right advertising format according to the content they want to promote and their promotional objective.

Playbook name list

In this section, you will find the list of all the available playbooks and a summary of how they work.

playbookList

Copy to Clipboard
# Define the playbook filter PLAYBOOK_FILTER=( "youtubeViewersEngagementsGoogleAds" "youtubeViewersGoogleAds" "spotifyEngagementAdStudio" "spotifyAudioMeta" "spotifyPlaylistMeta" "instagramFollowersMeta" "streamingListenersMeta" "tikTokFollowersTikTokBusiness" "bToB" "instagramTrafficMeta" "facebookTrafficMeta" "youtubeEngagementGoogleAds" "instagramViewsMeta" "instagramEngagementMeta" "tiktokViewsTikTokBusiness" "tiktokEngagementTikTokBusiness" )
Playbook name Playbook Content Objective Description
youtubeViewersEngagementsGoogleAds Google Ads Youtube Viewers & Engagement Get more views and engagement on your Youtube videos
youtubeViewersGoogleAds Google Ads Youtube Viewers Get more views on your Youtube videos
youtubeEngagementGoogleAds Google Ads Youtube Engagement Get more engagement on your Youtube videos
spotifyEngagementAdStudio Spotify Ad Studio Spotify Engagement Get more engagement on your Spotify account
spotifyListenersMeta Meta Spotify Listeners Get more listeners on your Spotify account
spotifyPlaylistMeta Meta Spotify Playlist Followers Get more followers on your Spotify playlist
instagramFollowersMeta Meta Instagram Followers Get more followers on your Instagram account
streamingListenersMeta Meta Streaming Listeners Get more listeners on your streaming accounts
instagramTrafficMeta Meta Instagram Traffic Get more traffic on your website / link
facebookTrafficMeta Meta Facebook Traffic Get more traffic on your website / link
instagramViewsMeta Meta Instagram Views Get more views on your Instagram account
instagramEngagementMeta Meta Instagram Engagement Get more engagement on your Instagram account
tiktokViewsTikTokBusiness TikTok for Business TikTok Views Get more views on your TikTok account
tiktokEngagementTikTokBusiness TikTok for Business TikTok Engagement Get more engagement on your TikTok account
tikTokFollowersTikTokBusiness TikTok for Business TikTok Followers Get more followers on your TikTok account
bToB bTob Custom playbook Specific playbook for partners

Youtube viewers

Reach people likely to become new viewers on your video clip. It will be promoted as an ad at the beginning of video on Youtube via Google Ads. All audiences reached are optimized according to the number of new viewers they generate.

Youtube viewers engagements

Reach people likely to become new viewers and engage with actions on your video clip. It will be promoted as an ad at the beginning of video and as a recommendation on Youtube via Google Ads. All audiences reached are optimized according to the number of new viewers they generate and their rate of engagement (likes, playlists, shares, follows).

Spotify Engagement

Reach Spotify listeners likely to become highly engaged with your music to support your integration into Spotify's automatic playlists. It will be promoted as an audio ad on Spotify freemium via Spotify Ad Studio. All audiences reached are optimized according to the number of new listeners they generate and their engagement rate (average stream/listener, add to playlist, save, like.).

Instagram followers

Reach people likely to become new followers for your Instagram page. It will be promoted with a sponsored post or personalized ad content on Instagram via Meta and will redirect to your Instagram page. All audiences reached are optimized according to the number of new followers they generate.

Spotify listeners

Redirect maximum Spotify listeners to your music to support your inclusion in Spotify's automatic playlists. It will be promoted as a sponsored post or personalized ad content on Facebook & Instagram via Meta and redirect these people to Spotify. All audiences reached are optimized according to the number of new listeners identified who have been redirected from Meta to Spotify.

Spotify playlist followers

Redirect maximum Spotify listeners to your playlist to get new followers. It will be promoted as a sponsored post or personalized ad content on Facebook & Instagram via Meta and redirect those people to Spotify. All audiences reached are optimized according to the number of new listeners identified who have been redirected from Meta to Spotify.

Streaming listeners

Redirect maximum streaming listeners to your music to support your inclusion in automatic playlists. It will be promoted as a sponsored post or personalized ad content on Facebook & Instagram via Meta and redirect those people to the streaming platforms. All audiences reached are optimized according to the number of new listeners identified who have been redirected from Meta to streaming platforms.

Instagram traffic

Reach people likely to visit your website or link. It will be promoted with a sponsored post or personalized ad content on Instagram via Meta and will redirect to your website or link. All audiences reached are optimized according to the number of new visitors they generate.

Facebook traffic

Reach people likely to visit your website or link. It will be promoted with a sponsored post or personalized ad content on Facebook via Meta and will redirect to your website or link. All audiences reached are optimized according to the number of new visitors they generate.

Instagram views

Reach people likely to view your Instagram content. It will be promoted with a sponsored post or personalized ad content on Instagram via Meta and will redirect to your Instagram page. All audiences reached are optimized according to the number of new views they generate.

Instagram engagement

Reach people likely to engage with your Instagram content. It will be promoted with a sponsored post or personalized ad content on Instagram via Meta and will redirect to your Instagram page. All audiences reached are optimized according to the number of new engagements they generate.

TikTok views

Reach people likely to view your TikTok content. It will be promoted with a sponsored post on TikTok via TikTok for Business and will redirect to your page. All audiences reached are optimized according to the number of new views they generate.

TikTok engagement

Reach people likely to engage with your TikTok content. It will be promoted with a sponsored post on TikTok via TikTok for Business and will redirect to your page. All audiences reached are optimized according to the number of new engagements they generate.

TikTok followers

Reach people likely to become new followers for your TikTok page. It will be promoted with a sponsored post on TikTok via TikTok for Business and will redirect to your page. All audiences reached are optimized according to the number of new followers they generate.

Playbook custom

The BtoB playbook is a campaign that is optimized for a specific business objective.

Playbook content

This section provides detailed explanations of the playbookContent that should be followed when creating a campaign for each playbook. We recommend using auto targeting for your initial campaign and then transitioning to manual targeting for optimizing subsequent campaigns.

The playbookContent is a JSON object containing the information needed to create a campaign.

All content playbooks are categorized according to the partner advertising network :

  1. Spotify Ad Studio
  2. Meta
  3. Tiktok for Business
  4. GoogleAds
  5. bTob

Example playbookContent:

Copy to Clipboard
{ "profile":{ "artist":{ "id":"6eUKZXaKkcviH0Ku9w2n3V" } }, "content":{ // you have to choice between auto or custom "auto":{ "track":{ "id":"3n3Ppam7vgaVa1iaRUc9Lp" } }, "custom":{ "url":"https://drive.google.com/file/d/1RQ12X7Q9aWVaB6dpWSFI7FXPkG8FWe0/view", "description":"Spotify" } }, "redirection":{ "resourceType":"artist", "id":"6eUKZXaKkcviH0Ku9w2n3V" }, "targeting":{ // you have to choice between auto or custom "auto":{ "musicalGenre":"reggae", "language":"all" }, "custom": { "demographics": { "ageRanges": ["18-24", "25-34"], "countries": ["US"], "gender": "all", }, "audiences": { "fanbase": [ { "id": "6eUKZXaKkcviH0Ku9w2n3V", }, ], "genres": ["classical"], "interests": ["chill"], }, }, } }
Parameter Type Description
profile object Profile to promote
content object Content to promote
redirection object Redirection to artist or brand
targeting object Targeting details

Profile: In this section, you will provide information about the profile ChannelId / ArtistId you intend to promote.

Example:

Parameter Type Description
artist object Artist

Content: In this section, you will provide information about the content you intend to promote.

Example:

Parameter Type Description
auto object Auto content
custom object Custom content

Targeting: In this section, you will specify the targeting details for your campaign.

Parameter Type Description
auto object Auto targeting
custom object Custom targeting

auto

LanguageEnum

LanguageEnum

Copy to Clipboard
['fr','en','es','de','pt','it','hi','all']

MusicalGenreEnum

MusicalGenreEnum

Copy to Clipboard
["hiphop","pop","traditional","classical","rock","jazz","electronica","traditional","reggae"",country","metal","traditional","latin","general"]
Parameter Type Description
musicalGenre string MusicalGenreEnum ( see MusicalGenreEnum )
language string LanguageEnum ( see LanguageEnum )

custom

AgeEnum

AgeEnum

Copy to Clipboard
["16-17","18-24","25-34","35-44","45-54","55-64","65+"]

GenderEnum

GenderEnum

Copy to Clipboard
["male","female","all"]

CountryCodeEnum

CountryCodeEnum

Copy to Clipboard
[ "DZ", "AR", "AT","BH","BE","BO","BR","CA","CL","CO","CR","DO","EC","EG","SV","FI","FR","DE","GH","GT","HN","HK","IN","ID","IE","IT","JM","JP","KE","KW","LB","LI","LU","MY","MX","MA","NL","NZ","NI","NG","NO","OM","PS","PA","PY","PE","PH","PT","PR","QA","SA","SG","ZA","ES","SE","CH","TW","TZ","TN","TR","UG","AE","GB","US","UY", ]
Parameter Type Description
ageRanges array AgeEnum ( see AgeEnum )
countries array countryCodeEnum ( see CountryCodeEnum
gender string GenderEnum ( see GenderEnum )

Meta

Documentation for the following playbooks: spotifyListenersMeta, spotifyPlaylistMeta, streamingListenersMeta

Example Meta playbookContent

Copy to Clipboard
{ "profile":{ "profileReference":{ "id":"6eUKZXaKkcviH0Ku9w2n3V" } }, "content":{ "auto":{ "track":{ "id":"6eUKZXaKkcviH0Ku9w2n3V" } }, "custom":{ "description":"This is a sample text", "url":"https://i.scdn.co/image/ab67616d0000b273e8b4e3e0b9c9f5b9e1b9e3a0" } }, "redirectionURL":{ "id":"6eUKZXaKkcviH0Ku9w2n3V", "resourceType":"track" }, "targeting":{ // you have to choice between auto or custom "auto":{ "musicalGenre":"reggae", "language":"all" }, "custom":{ "demographics":{ "ageRanges": ["18-24", "25-34"], "countries":[ "US" ], "gender": "all" }, "audiences":{ "fanbase":[ { "id":"6eUKZXaKkcviH0Ku9w2n3V", "resourceType":"artist" } ] } } } }
Parameter Type Description
profile object The profile of the artist you want to promote
profile.profileReference object The profile reference of the artist you want to promote
profile.profileReference.id string The id of the artist you want to promote
content object The content you want to promote
content.auto object The content you want to promote automatically
content.auto.track object The track you want to promote
redirectionURL object The redirection URL
targeting object The targeting of the campaign
targeting.auto object The targeting of the campaign
targeting.auto.musicalGenre string The musical genre of the campaign ( see MusicalGenreEnum )
targeting.auto.language string The language of the campaign ( see LanguageEnum )
targeting.custom object The custom targeting of the campaign
targeting.custom.demographics object The demographics of the campaign
targeting.custom.demographics.ageRanges array The age ranges of the campaign ( see AgeRangesEnum )
targeting.custom.demographics.countries array The countries of the campaign ( see CountryCodeEnum )
targeting.custom.demographics.gender array The Gender of the artist you want to promote ( see GenderEnum )
targeting.custom.audiences object The audiences of the campaign
targeting.custom.audiences.fanbase array The fanbase of the campaign

Documentation for the following playbooks: instagramFollowersMeta,

Example instagramFollowersMeta playbookContent

Copy to Clipboard
{ "profile":{ "profileReference":{ "id":"6eUKZXaKkcviH0Ku9w2n3V" } }, "content":{ "auto":{ "track":{ "id":"6eUKZXaKkcviH0Ku9w2n3V" } }, }, "targeting":{ // you have to choice between auto or custom "auto":{ "musicalGenre":"reggae", "language":"all" }, "custom":{ "demographics":{ "ageRanges": ["18-24", "25-34"], "countries":[ "US" ], "gender": "all" }, "audiences":{ "fanbase":[ { "id":"6eUKZXaKkcviH0Ku9w2n3V", "resourceType":"artist" } ] } } } }
Parameter Type Description
profile object The profile of the artist you want to promote
profile.profileReference object The profile reference of the artist you want to promote
profile.profileReference.id string The id of the artist you want to promote
content object The content you want to promote
content.auto object The content you want to promote automatically
targeting object The targeting of the campaign
targeting.auto object The targeting of the campaign
targeting.auto.musicalGenre string The musical genre of the campaign ( see MusicalGenreEnum )
targeting.auto.language string The language of the campaign ( see LanguageEnum )
targeting.custom object The custom targeting of the campaign
targeting.custom.demographics object The demographics of the campaign
targeting.custom.demographics.ageRanges array The age ranges of the campaign ( see AgeRangesEnum )
targeting.custom.demographics.countries array The countries of the campaign ( see CountryCodeEnum )
targeting.custom.demographics.gender array The Gender of the artist you want to promote ( see GenderEnum )
targeting.custom.audiences object The audiences of the campaign
targeting.custom.audiences.fanbase array The fanbase of the campaign

Documentation for the following playbooks: youtubeViewersEngagementsGoogleAds, youtubeViewersGoogleAds

Example Youtube playbookContent

Copy to Clipboard
{ "profile": { "channelReference": { "id": "6eUKZXaKkcviH0Ku9w2n3V" }, "mail": "test@baseformusic.com" }, "content": { "videoURL": { "id": "6eUKZXaKkcviH0Ku9w2n3V" } }, "targeting": { // you have to choice between auto or custom "auto": { "auto": { "musicalGenre": "reggae", "language": "all" } }, "custom": { "demographics": { "ageRanges": ["AGE_18_24"], "countries": ["US"], "gender": "ALL" }, "audiences": { "fanbase": [ { "id": "6eUKZXaKkcviH0Ku9w2n3V", } ], "topics": ["1001", "1286"], "interests": ["91900", "91902"], } } } }
Parameter Type Description
profile object The profile of the artist you want to promote
profile.channelReference object The channel reference of the artist you want to promote
profile.channelReference.id string The channel id of the artist you want to promote
profile.mail string The mail of the artist you want to promote
content object The content you want to promote
content.videoURL object The video URL of the artist you want to promote
content.videoURL.id string The id of the video URL of the artist you want to promote
targeting object The targeting of the campaign
targeting.auto object The targeting of the campaign
targeting.auto.musicalGenre string The musical genre of the campaign ( see MusicalGenreEnum )
targeting.auto.language string The language of the campaign ( see LanguageEnum )
targeting.custom object The custom targeting of the campaign
targeting.custom.demographics object The demographics you want to target
targeting.custom.demographics.ageRanges array The age ranges you want to target ( see AgeRangeEnum )
targeting.custom.demographics.countries array The countries you want to target ( see CountryCodeEnum )
targeting.audiences object The audiences you want to target
targeting.audiences.fanbase array The fanbase you want to target
targeting.audiences.fanbase.id string The channeld id of the fanbase you want to target
targeting.audiences.topics array The topics you want to target ( see YoutubeTopicsEnum )
targeting.audiences.interests array The interests you want to target ( see YoutubeInterestsEnum )
YoutubeTopicsEnum ( see Enum in the code section )

YoutubeTopicsEnum

Copy to Clipboard
{ "42":"Jazz", "217":"CD & Audio Shopping", "218":"Music Art & Memorabilia", "220":"Music Streams & Downloads", "585":"Christian & Gospel Music", "586":"Classical Music", "587":"Country Music", "588":"Dance & Electronic Music", "617":"Song Lyrics & Tabs", "618":"Vocals & Show Tunes", "809":"Podcasts", "892":"Sheet Music", "893":"Soundtracks", "1021":"Pop Music", "1022":"Experimental & Industrial Music", "1023":"Folk & Traditional Music", "1025":"DJ Resources & Equipment", "1026":"Music Recording Technology", "1028":"Music Composition & Theory", "1030":"Rap & Hip-Hop", "1031":"Reggae & Caribbean Music", "1032":"South Asian Music", "1034":"Middle Eastern & North African Music", "1035":"Hard Rock & Progressive", "1036":"Metal (Music)", "1037":"Classic Rock & Oldies", "1038":"Indie & Alternative Music", "1039":"Soul & R&B", "1040":"Blues", "1041":"Punk (Music)", "1087":"Music Education & Instruction", "1091":"Samples & Sound Libraries", "1186":"Talk Radio", "1208":"African Music", "1242":"Reggaeton", "1285":"Latin Pop", "1286":"Salsa & Tropical Music", "1287":"Brazilian Music", "1325":"Guitars", "1326":"Pianos & Keyboards", "1327":"Drums & Percussion", "1408":"Music Videos", "1806":"Southeast Asian Music", "1898":"Korean Pop" }
YoutubeInterestsEnum ( see Enum in the code section )

YoutubeInterestsEnum

Copy to Clipboard
{ "91900": "Music Lovers", "91901": "Pop Music Fans", "91902": "Rock Music Fans", "91903": "Classical Music Enthusiasts", "91904": "Country Music Fans", "91905": "Jazz Enthusiasts", "91906": "Blues Fans", "91907": "Electronic Dance Music Fans", "91908": "Folk & Traditional Music Enthusiasts", "91909": "Rap & Hip Hop Fans", "91910": "Metalheads", "91911": "Spanish-Language Music Fans", "91912": "Indie & Alternative Rock Fans" };

Spotify Ad Studio

Documentation for the following playbook: spotifyEngagementAdStudio

Example spotifyEngagementAdStudio playbookContent

Copy to Clipboard
{ "profile":{ "artist":{ "id":"6eUKZXaKkcviH0Ku9w2n3V" } }, "content":{ // you have to choice between auto or custom "auto":{ "track":{ "id":"3n3Ppam7vgaVa1iaRUc9Lp" } }, "custom":{ "url":"https://drive.google.com/file/d/1RQ12X7Q9aWVaB6dpWSFI7FXPkG8FWe0/view", "description":"Spotify" } }, "redirection":{ "resourceType":"artist", "id":"6eUKZXaKkcviH0Ku9w2n3V" }, "targeting":{ // you have to choice between auto or custom "auto":{ "musicalGenre":"reggae", "language":"all" }, "custom": { "demographics": { "ageRanges": ["18-24", "25-34"], "countries": ["US"], "gender": "all", }, "audiences": { "fanbase": [ { "id": "6eUKZXaKkcviH0Ku9w2n3V", }, ], "genres": ["classical"], "interests": ["chill"], }, }, } }
Parameter Type Description
profile object The profile of the artist you want to promote
profile.artist object The artist you want to promote
profile.artist.id string The Spotify id of the artist you want to promote
content object The content you want to promote
content.auto object The content you want to promote automatically
content.auto.track object The track you want to promote
content.auto.track.id string The Spotify id of the track you want to promote
content.custom object The content you want to promote manually
content.custom.url string The url of the content in you want to promote. ( see drive )
content.custom.description string The description of the content you want to promote
redirection object The redirection you want to use
redirection.resourceType string The type of resource you want to redirect to
redirection.id string The id of the resource you want to redirect to
targeting object The targeting you want to use
targeting.auto object The targeting you want to use automatically
targeting.custom object The targeting you want to use manually
targeting.auto.musicalGenre string The musical genre you want to target ( see MusicalGenreEnum )
targeting.auto.language string The language you want to target ( see LanguageEnum )
targeting.custom.demographics object The demographics you want to target
targeting.custom.audiences object The audiences you want to target
targeting.custom.demographics.ageRanges array The age ranges you want to target ( see AgeRangesEnum )
targeting.custom.demographics.countries array The countries you want to target ( see CountryCodeEnum )
targeting.custom.demographics.gender array The Gender of the artist you want to promote ( see GenderEnum )

TikTok for Business

Documentation for the following playbook: tikTokFollowersTikTokBusiness

Example TikTok playbookContent

Copy to Clipboard
{ "profile":{ "post":{ "id":"21321EAZDSSQD" } }, "targeting":{ // you have to choice between auto or custom "auto":{ "auto":{ "musicalGenre":"reggae", "language":"all" } }, "custom":{ "demographics":{ "ageRanges":[ "18-24", "25-34" ], "countries":[ "US" ], "gender":"all" }, "audiences":{ "fanbase":[ { "id":"6eUKZXaKkcviH0Ku9w2n3V" } ], "genres":[ "classical" ], "interests":[ "chill" ] } } } }
Parameter Type Description
profile object The profile of the artist you want to promote
profile.post object The post of the artist you want to promote
profile.post.id string The id of the post of the artist you want to promote
targeting object The targeting of the artist you want to promote
targeting.auto object The auto targeting of the artist you want to promote
targeting.auto.musicalGenre string The musical genre of the artist you want to promote
targeting.auto.language string The language of the artist you want to promote
targeting.custom object The custom targeting of the artist you want to promote
targeting.custom.demographics object The demographics of the artist you want to promote
targeting.custom.demographics.ageRanges array The age ranges of the artist you want to promote ( see AgeRangesEnum )
targeting.custom.demographics.countries array The countries of the artist you want to promote ( see CountryCodeEnum )
targeting.custom.demographics.gender array The Gender of the artist you want to promote ( see GenderEnum )

Reporting

The API provides a shared reporting feature that allows you to share campaign reports with your users. You can create a unique URL for each campaign and share it. Users can then access the campaign reports by visiting the URL in their browser.

You can obtain a reporting URL. by either making a request to the get a Specific Campaign API endpoint or by retrieving it when listing all campaigns using the list campaign API endpoint.

Customize the reporting with your brand colors and logo by adding the following query parameters to the reporting URL:

Copy to Clipboard
- `SLUG_PARTNER_NAME` is the ID of the partner. ## Image example > Reporting URL example [https://baseformusic.com/apps/reporting/Kt86Nrxncy](https://prod-base.netlify.app/apps/reporting/Kt16Nrxncy) Each playbook have a unique reporting, see the example below with the Playbook "Spotify Engagement" <div class="image-container"> <img src="https://cdn.shopify.com/s/files/1/0262/6414/1875/files/Reporting_Share1.png?v=1693912509" class="image-item" /> <img src="https://cdn.shopify.com/s/files/1/0262/6414/1875/files/Reporting_Share2.png?v=1693912539" class="image-item" /> </div>

External content

Benefit from our various connectors to easily obtain the elements needed to launch a campaign

REQUEST SAMPLE

Copy to Clipboard
curl -X 'GET' \ 'https://partners.api.baseformusic.com/external-content/youtube/search?query=Mr%20Beasts&type=channel&limit=10' \ -H 'accept: */*' \ -H 'Authorization: Bearer ACCESS_TOKEN'

HTTP Request

GET https://partners.api.baseformusic.com/external-content/youtube/search

Query Parameters

Parameter Type Description
query string The query to search
type YoutubeSearchEnum channel or video ( see YoutubeSearchEnum )
limit string The number of results to return

YoutubeSearchEnum

YoutubeSearchEnum

Copy to Clipboard
[ "channel","video" ]
Enum Description
channel Search for channels
video Search for videos

Youtube API video

REQUEST SAMPLE

Copy to Clipboard
curl -X 'GET' \ 'https://partners.api.baseformusic.com/external-content/youtube/video/aQJif5ic-lo' \ -H 'accept: application/json' \ -H 'Authorization: Bearer ACCESS_TOKEN'

Get a video by id

HTTP Request

GET https://partners.api.baseformusic.com/external-content/youtube/video/{videoId}

Parameters

Parameter Type Description
videoId string The youtube Video id

Youtube API channel

Get a channel by id

REQUEST SAMPLE

Copy to Clipboard
curl -X 'GET' \ 'https://partners.api.baseformusic.com/external-content/youtube/channel/UCjIWry0c3Z0fZEf4VdoJ3mA' \ -H 'accept: application/json' \ -H 'Authorization: Bearer ACCESS_TOKEN'

HTTP Request

GET https://partners.api.baseformusic.com/external-content/youtube/channel/{channelId}

Parameters

Parameter Type Description
channelId string The youtube Channel id
Copy to Clipboard
curl -X 'GET' \ 'https://partners.api.baseformusic.com/external-content/spotify/search?query=Dams&type=artist&limit=10' \ -H 'accept: */*' \ -H 'Authorization: Bearer ACCESS_TOKEN'

Spotify search for an artist, album, track or playlist

HTTP Request

GET https://partners.api.baseformusic.com/external-content/spotify/search

Query Parameters

Parameter Type Description
query string The query to search
type SpotifySearchEnum track,artist,album or playlist ( see SpotifySearchEnum )
limit string The number of results to return

SpotifySearchEnum

SpotifySearchEnum

Copy to Clipboard
[ "track","artist","album", "playlist" ]
Enum Description
tracks Search for tracks
artist Search for artists
album Search for albums
playlist Search for playlists

Spotify API track

Copy to Clipboard
curl -X 'GET' \ 'https://partners.api.baseformusic.com/external-content/spotify/track/4sjpqDVERhsIu8pIJJUjes?si=5abf2fea3d534edf \ -H 'accept: */*' \ -H 'Authorization: Bearer ACCESS_TOKEN'

HTTP Request

GET https://partners.api.baseformusic.com/external-content/spotify/track/{trackId}

Parameters

Parameter Type Description
trackId string The spotify track id

Spotify API artist

Copy to Clipboard
curl -X 'GET' \ 'https://partners.api.baseformusic.com/external-content/spotify/artist/1k0U51DXyjFk4YnLZUIMP9 \ -H 'accept: */*' \ -H 'Authorization: Bearer ACCESS_TOKEN'

HTTP Request

GET https://partners.api.baseformusic.com/external-content/spotify/artist/{artistId}

Parameters

Parameter Type Description
artistId string The spotify artist id

Spotify API album

Copy to Clipboard
curl -X 'GET' \ 'https://partners.api.baseformusic.com/external-content/spotify/album/6fBWeagrf7IOjz4unH1j9D \ -H 'accept: */*' \ -H 'Authorization: Bearer ACCESS_TOKEN'

HTTP Request

GET https://partners.api.baseformusic.com/external-content/spotify/album/{albumId}

Parameters

Parameter Type Description
albumId string The spotify album id

Spotify API playlist

Copy to Clipboard
curl -X 'GET' \ 'https://partners.api.baseformusic.com/external-content/spotify/playlist/19fEnBDlfxU6VL7fFtBWZg \ -H 'accept: */*' \ -H 'Authorization: Bearer ACCESS_TOKEN'

HTTP Request

GET https://partners.api.baseformusic.com/external-content/spotify/playlist/{playlistId}

Parameters

Parameter Type Description
playlistId string The spotify playlist id

Drive API

To create the content.custom.url, you can use the endpoint below:

HTTP Request

POST https://partners.api.baseformusic.com/external-content/drive/upload

Body Parameters

Parameter Type Description
file File The file to upload
name string The name of the file
Copy to Clipboard
curl -X 'POST' \ 'http://localhost:3010/external-content/drive/upload' \ -H 'accept: */*' \ -H 'Authorization: Bearer ACCESS_TOKEN' \ -H 'Content-Type: multipart/form-data' \ -F 'name=oigdkjsx.mp4' \ -F 'video=@IOS - Fleets - 1.mp4;type=video/mp4'

Change log

Version Release date Description
1.O 2023-09-01 Initial release Partners API
1.1 2023-10-01 Add external content API
1.2 2024-01-01 Add new playbook
2.0 2024-06-01 Add smartlink endpoint

Status Codes

BaseForMusic uses the following error codes:

Status Code Meaning
200 OK -- Everything worked as expected.
201 Created -- The object is gonna be created.
400 Bad Request -- Your request is invalid.
401 Unauthorized -- Your API key is wrong.
403 Forbidden -- The resource requested is hidden for administrators only.
404 Not Found -- The specified endpoint could not be found.
500 Internal Server Error -- We had a problem with our server. Try again later.
503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.

Support

Our team is here to support you throughout your integration journey. If you encounter any issues, have questions, or need assistance, please feel free to reach out to our support team at team@baseformusic.fr. We highly value your feedback, which helps us improve the API and documentation for all our partners.