This document describes version 5 of the Audiosocket MaaS™ API, which provides easy access to our music search and streaming features. The format and transport are JSON over HTTPS. The API is versioned, and URLs look something like this:
https://api.audiosocket.com/v5/...
We bump the API version when we make incompatible changes to data structures or remove features. New features, resources, and data do not bump the API version, so please handle unknown keys gracefully. New versions of the API are distributed along with a release plan, including timelines for removing older versions of the API.
Authentication
Access to the API is granted by your Audiosocket API token (to get or
reset yours, email us). Your token must be included with every
request you make in the X-Audiosocket-Token
HTTP header.
All API calls are logged. If you wish to store additional audit
information about a request (e.g., the user in your system responsible
for initiating the call), you can optionally provide a tag in the
X-Audiosocket-Tag
HTTP header.
(All examples will be presented as curl
commands. If you’re on a
unixish system, curl
is probably already available. In all examples,
SERVER
is used instead of the actual API server name.)
Example: Authenticate via Request Header
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
https://SERVER/v5/ping
Example: Provide an Audit Tag
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
-H "X-Audiosocket-Tag:user@example.org" \
https://SERVER/v5/ping
Failures
API requests for missing or invalid API keys, inactive accounts, or
restricted resources will receive a 401 UNAUTHORIZED
response with a
JSON body in the API’s standard error format:
{ "errors": { "request": ["Unauthorized."] } }
The "errors"
object may contain additional information about the
issue, but is not intended for end-user display.
Attributes
The detailed documentation for each resource includes a list of available attributes. In some cases, different data may be returned depending on whether the resource is rendered in a scoped or unscoped context.
For example, an album with ID 17
included in the
/artists/42/albums
resource will not contain an attribute with
artist
information, as it is implied by scope, but an unscoped
/albums/17
resource will.
Pagination
All top-level collection data returned by the API is paginated, and all GET requests to collection resources accept the following optional parameters:
Parameter | Description |
---|---|
p |
Results Page (default is 1) |
pp |
Results Per Page (default is 100, capped at 1000) |
All top-level collection data is returned in a consistent JSON document format:
{
"data": [ ... ],
"page": 1,
"pages": 3,
"per": 50,
"total": 105
}
An empty result set is returned in the same format, with an empty
data
array, total: 0
, and pages: 1
.
Searching for Music
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
https://SERVER/v5/tracks?q=love&g=6,30
This resource returns a list of tracks matching the given parameters. By default, results are ordered by relevance and freshness. The example above searches for tracks related to “love” in the “Blues” or “Rock” genres.
Many parameters take comma-separated lists of IDs. Depending on your account, various search restrictions may be applied automatically. Available query parameters (all optional):
Parameter | Description |
---|---|
d |
Duration |
e |
Ending ID |
g |
Genre IDs |
i |
Instrument IDs |
in |
Intro IDs |
l |
Language IDs |
m |
Mood IDs |
noop |
No-Op Flag |
o |
Sort Order |
q |
Free Text |
t |
Tempo IDs |
th |
Theme IDs |
v |
Vocal IDs |
with |
Request additional data in results. See /tracks for details. |
x |
Include Explicit Content |
Successful track searches return a 200 OK
and a set of
JSON-formatted results. See the /tracks resource
for examples of JSON results.
Track Search Parameters
Duration
d
is the desired length in seconds of matching track. By default
tracks are given some slack: They’re allowed to be up to 20 seconds
shorter or longer than the specified duration.
To change the amount of slack, additional information can be passed:
d=120:00
requires tracks to be two minutes long, with no
slack. d=120:30
allows tracks to be anywhere from 1:30 to 2:30.
To show only tracks longer or shorter than the duration, prefix with
>
or <
. d=<60
requires tracks to be less than a minute long. If
>
or <
are specified, any slack is ignored.
Ending ID
e
is an ending ID, which specifies how a track ends. Does it fade out?
Does it end abruptly? See the /endings resource
for a list of valid endings.
Genre IDs
g
is a list of genre IDs, which specify the musical genres for a
track. Tracks can (and often do) belong to multiple genres, and
multiple IDs can be specified in this parameter. g=34,18
might
search for tracks that belong to the “Upbeat Rock” and “Latin Rock”
genres, for example.
Genres are organized in a two-level tree, so requests for a top-level genre like “Rock” will also match tracks attached to any sub-genre of “Rock.” See the /genres resource for a list of valid genres.
Instrument IDs
i
is a list of instrument IDs, which specify the musical instruments
used to perform the track. As with genres above, instruments are
organized in a tree and multiple comma-separated IDs can be
specified. See the /instruments resource
for a list of valid instruments.
Intro ID
in
is an intro ID, specifying the vocal or instrumental intro style
that starts the track. See the /intros
resource for a list of valid intros.
Language IDs
l
is a list of language IDs, which specify the languages used in a
track with vocals. Multiple comma-separated IDs can be specified. See
the /languages resource for a list of valid
languages.
Mood IDs
m
is a list of mood IDs, which describe the emotional landscape of a
track. Multiple comma-separated IDs can be specified. See the /moods resource for a list of valid moods.
No-Op Flag
noop
can be set to true to log searches without executing the search
or returning results. When the No-Op flag is used, the results
will simply be { success:true }
Sort Order
o
controls the sort order of search results. By default, search
results are returned in an order which favors newer, hotter
tracks. Order is specified as a list of comma-separated
attribute/direction pairs. For example, o=duration:desc,name:asc
would sort first by duration, favoring longer tracks, and then by
name, favoring track names starting at the begininng of the alphabet.
Free Text
q
is a free-text search, referencing artist names, album names,
track names, lyrics, the names of similar artists, and many of the
more structured classification elements as well. Any text may be
passed.
Tempo IDs
t
is a list of tempo IDs, which represent the speed of the
track. Multiple comma-separated IDs can be specified. See the /tempos resource for a list of valid tempos.
Theme IDs
th
is a list of theme IDs, which represent the overall thematic
content of a vocal track’s lyrics. Multiple comma-separated IDs can be
specified. See the /themes resource for a list
of valid themes.
Vocal IDs
v
is a list of vocal IDs, which represent the kind of voices present
in a vocal track. Multiple comma-separated IDs can be specified. See
the /vocals resource for a list of valid vocals.
Explicit
x
is a flag specifying the explicit content of a track. Explicit
tracks may contain profanity or references to R-rated situations or
behavior. By default, both explicit and non-explicit tracks are
available. Set x=false
to filter out explicit tracks.
Streaming and Downloading with HTTP
The API supports many different audio encodings and quality levels, though all encodings may not be available for all files. The following encodings are widely available:
- 64k mono MP3
- 128k stereo MP3 (the default)
- 192k stereo MP3
- FLAC
- WAV
Most other variants are created on demand. If your project requires a specific quality or encoding, let us know! Our system probably already supports it.
To stream/download a track via HTTP, use the track’s ID to construct a URL. By default, MP3s will be delivered in 128k stereo.
Example: Download a 128k stereo MP3 of track 10005
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
https://SERVER/v5/tracks/10005.mp3
To request a different quality or encoding variant, you can add extra
requirements to the track :id
. A dot-separated list of requirements
must start with the requested quality in KBPS and the requested number
of channels (1
for mono, 2
for
stereo). Other requirements will be ignored unless your API account
has special powers.
The format:
https://SERVER/v5/tracks/:id[.:kbps[.:channels][.:extras]].[:format]
Example: Download a 192k stereo MP3 of track 10005
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
https://SERVER/v5/tracks/10005.192.mp3
Example: Download a 32k mono MP3 of track 10005
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
https://SERVER/v5/tracks/10005.32.1.mp3
An authorized request to this URL will redirect you to a signed,
secure version of the track on one of our content delivery
network. Redirects are only valid for a few seconds, so don’t wait too
long to follow them. Requests for invalid or unavailable encodings
will return 404 NOT FOUND
.
If you need a URL that’s accessible without authentication, you can
add /url
for a JSON response. An optional lifetime
parameter
(expressed in seconds) is supported. lifetime
defaults to five
minutes, and can’t be longer than 12 hours.
Example: Request a pre-authenticated download URL
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
https://SERVER/v5/tracks/10005.mp3/url?lifetime=600
Response
{
"until": 1283184660,
"url": "http://big-url-pointing-to-our-cdn/10005.mp3"
}
The url
key is the signed URL of the actual track file you’ve
requested, and the until
key is the time in epoch seconds when the
URL will become invalid.
Albums
Albums are a collection of tracks for a specific artist.
Attributes
Attribute | Description | Visible |
---|---|---|
artist |
An object representing the album's artist. | Unscoped |
id |
A unique identifier. | Always |
name |
A descriptive name. | Always |
tracks |
The number of active tracks on the album. | Unscoped |
/albums/:id
The album represented by :id
.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/albums/3
Response
{
id: 3,
name: "Button"
}
/albums/:id/tracks
Tracks matching a specific album :id
. See the /tracks resource for example results.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/albums/1/tracks
Artists
Artists are the performers and composers of all music in the service.
Attributes
Attribute | Description | Visible |
---|---|---|
id |
A unique identifier. | Always |
name |
A descriptive name. | Always |
tracks |
The number of active tracks this artist has created. | Singular |
/artists
A list of artists.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/artists
Response
{
data: [
{
id: 466,
name: "11 Acorn Lane"
},
{
id: 873,
name: "17th Century Italian Music"
},
{
id: 122,
name: "17th Chapter"
},
]
// ...
}
/artists/:id
The artist represented by :id
.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/artists/3
Response
{
id: 1,
name: "Fono",
tracks: 17
}
/artist/:id/albums
Albums matching a specific artist :id
. See the /albums resource for example results.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/artists/1/albums
/artists/:id/tracks
Tracks matching a specific artist :id
. See the /tracks resource for example results.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/artists/1/tracks
Context
Rather than requiring requests to a bunch of discrete resources to get
the available genres, moods, tempos, et cetera, /context
provides
everything in one big unpaginated data bomb. This is useful for
initialization: Make the big call at the beginning, and call the
specific resources if a refresh is necessary.
Each context value is equivalent to the contents of the data
key on
a corresponding top-level resource request.
/context
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/context
Response
{
endings: [...],
genres: [...],
instruments: [...],
intros: [...],
languages: [...],
moods: [...],
restrictions: [...],
tempos: [...],
themes: [...],
vocals: [...]
}
Endings
Endings describe what happens in the last few seconds of a track.
Attributes
Attribute | Description | Visible |
---|---|---|
id |
A unique identifier. | Always |
name |
A descriptive name. | Always |
/endings
A list of endings.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/endings
Response
{
data: [
{
id: 3,
name: "Button"
},
{
id: 4,
name: "Clean"
},
{
id: 2,
name: "Fade Out"
},
{
id: 1,
name: "Sustain"
}
]
// ...
}
/endings/:id
The ending represented by :id
.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/endings/3
Response
{
id: 3,
name: "Button"
}
/endings/:ids/tracks
Tracks matching one or more comma-separated ending :ids
. See the /tracks resource for example results.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/endings/1,2/tracks
Genres
A genre is a category of music, grouping similar tracks together. Genres are organized in a tree.
Attributes
Attribute | Description | Visible |
---|---|---|
children |
An Array of more specific sub-genres. | If children exist. |
id |
A unique identifier. | Always |
name |
A descriptive name. | Always |
parent |
The ID of the parent genre. | Singular, if parent exists. |
/genres
A list of root genres with nested children.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/genres
Response
{
data: [
{
children: [
{
id: 246,
name: "Ambient/Textural"
},
],
id: 4,
name: "Ambient"
},
{
children: [
{
id: 132,
name: "Electronic"
},
{
id: 318,
name: "Noise"
}
{
id: 319,
name: "Sound Sculpture"
}
],
id: 131,
name: "Avant Garde"
}
// ...
}
}
/genres/:id
The genre represented by :id
.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/genres/4
Response
{
id: 4,
name: "Ambient",
children: [...]
}
/genres/:ids/tracks
Tracks matching one or more comma-separated genre :ids
. Tracks
associated with a sub-genre will be merged into the parent. See the /tracks resource for example results.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/genres/4,5/tracks
Instruments
Various nefarious devices used to produce music. Instruments are organized in a tree.
Attributes
Attribute | Description | Visible |
---|---|---|
children |
An Array of more specific sub-instruments. | If children exist. |
id |
A unique identifier. | Always |
name |
A descriptive name. | Always |
parent |
The ID of the parent instrument. | Singular, if parent exists. |
/instruments
A list of root instruments with nested children.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/instruments
Response
{
data: [
{
children: [
{
id: 12,
name: "Acoustic Guitar"
},
{
id: 13,
name: "Banjo, Dobro, Fiddle, Mandolin"
},
{
id: 14,
name: "Upright Bass, Acoustic Bass"
}
],
id: 11,
name: "Acoustic Stringed Instruments"
}
]
// ...
}
/instruments/:id
The instrument represented by :id
.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/instruments/4
Response
{
children: [...],
id: 11,
name: "Acoustic Stringed Instruments"
}
/instruments/:ids/tracks
Tracks matching one or more comma-separated instrument :ids
. Tracks
associated with a sub-instrument will be merged into the parent. See the /tracks resource for example results.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/instruments/4,5/tracks
Intros
Intros describe the contents of the first few seconds of a track, primarily whether or not it immediately contains vocals.
Attributes
Attribute | Description | Visible |
---|---|---|
id |
A unique identifier. | Always |
name |
A descriptive name. | Always |
/intros
A list of intros.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/intros
Response
{
data: [
{
id: 1,
name: "Instrumental"
},
{
id: 2,
name: "Vocal"
}
]
// ...
}
/intros/:id
The intro represented by :id
.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/intros/1
Response
{
id: 1,
name: "Instrumental"
}
/intros/:ids/tracks
Tracks matching one or more comma-separated intro :ids
. See the /tracks resource for example results.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/intros/1,2/tracks
Languages
Languages describe the spoken or sung language used in tracks with vocals.
Attributes
Attribute | Description | Visible |
---|---|---|
id |
A unique identifier. | Always |
name |
A descriptive name. | Always |
/languages
A list of languages.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/languages
Response
{
data: [
{
id: 113,
name: "Aboriginal"
},
{
id: 21,
name: "Africa - Afrikaans"
},
{
id: 22,
name: "Africa - Ndebele"
}
]
// ...
}
/languages/:id
The language represented by :id
.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/languages/1
Response
{
id: 113,
name: "Aboriginal"
}
/languages/:ids/tracks
Tracks matching one or more comma-separated language :ids
. See the /tracks resource for example results.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/languages/1,2/tracks
Moods
Moods describe the overall state of mind or feeling conveyed by a track.
Attributes
Attribute | Description | Visible |
---|---|---|
id |
A unique identifier. | Always |
name |
A descriptive name. | Always |
/moods
A list of moods.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/moods
Response
{
data: [
{
id: 17,
name: "Aggressive / Intense"
},
{
id: 29,
name: "Calm / Peaceful"
},
{
id: 38,
name: "Dramatic"
}
]
// ...
}
/moods/:id
The mood represented by :id
.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/moods/1
Response
{
id: 17,
name: "Aggressive / Intense"
}
/moods/:ids/tracks
Tracks matching one or more comma-separated mood :ids
. See the /tracks resource for example results.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/moods/1,2/tracks
Ping
This resource exists for uptime and performance checking, and it’s the only API method that can be requested without authentication.
curl http://SERVER/v5/ping
Response
{
ok: {
d: 38190,
m: 0,
r: [429, 40]
s: 1,
}
}
Success is defined as a 200 OK
response with a JSON object
containing an ok
key. The contents of ok
can vary wildly depending
on account, cluster load, and time of day, and should be considered
opaque.
Restrictions
Restrictions describe situations in which a track shouldn’t be used. For example, an artist may wish their music to never be used in a film, show, or game where violence is celebrated.
Attributes
Attribute | Description | Visible |
---|---|---|
id |
A unique identifier. | Always |
name |
A descriptive name. | Always |
/restrictions
A list of restrictions.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/restrictions
Response
{
data: [
{
id: 2,
name: "No Alcohol"
},
{
id: 6,
name: "No Sexual Content"
},
{
id: 1,
name: "No Tobacco"
}
]
// ...
}
/restrictions/:id
The restriction represented by :id
.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/restrictions/1
Response
{
id: 2,
name: "No Alcohol"
}
/restrictions/:ids/tracks
Tracks matching one or more comma-separated restriction :ids
. See the /tracks resource for example results.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/restrictions/1,2/tracks
Tempos
Tempos describe the relative speed of a track.
Attributes
Attribute | Description | Visible |
---|---|---|
id |
A unique identifier. | Always |
name |
A descriptive name. | Always |
/tempos
A list of tempos.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/tempos
Response
{
data: [
{
id: 2,
name: "Fast (140-160)"
},
{
id: 4,
name: "Medium (80-110)"
},
{
id: 3,
name: "Medium Fast (110-140)"
}
]
// ...
}
/tempos/:id
The tempo represented by :id
.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/tempos/1
Response
{
id: 2,
name: "Fast (140-160)"
}
/tempos/:ids/tracks
Tracks matching one or more comma-separated tempo :ids
. See the /tracks resource for example results.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/tempos/1,2/tracks
Themes
Themes describe the overall subject of a track’s lyrics. Themes are organized in a tree.
Attributes
Attribute | Description | Visible |
---|---|---|
children |
An Array of more specific sub-themes. | If children exist. |
id |
A unique identifier. | Always |
name |
A descriptive name. | Always |
parent |
The ID of the parent theme. | Singular, if parent exists. |
/themes
A list of root themes with nested children.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/themes
Response
{
data: [
{
children: [
{
id: 2,
name: "Sports"
},
{
id: 9,
name: "Bullriding"
},
{
id: 242,
name: "Gardening"
}
]
id: 1,
name: "Activities"
}
]
// ...
}
/themes/:id
The theme represented by :id
.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/themes/4
Response
{
id: 1,
name: "Activities",
children: [...]
}
/themes/:ids/tracks
Tracks matching one or more comma-separated theme :ids
. Tracks
associated with a sub-theme will be merged into the parent. See the /tracks resource for example results.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/themes/4,5/tracks
Tracks
Tracks are the heart of the platform, and represent a playable piece
of music. Methods for Searching and streaming tracks are documented in detail
above. For speedy results, many track attributes are omitted when
showing results for a collection or search. All attributes can be
retrieved from the track’s /tracks/:id
singular resource.
Attributes
Attribute | Description | Visible |
---|---|---|
artist |
An object representing the track's artist. | Always |
album |
An object representing the track's album. | Always |
children |
An array of instrumental or stem variants tracks. | Singular, if children exist. |
ending |
The ID of the track's ending. | Singular, plural if requested. |
explicit |
Does this track contain adult language? A boolean. | Singular, plural if requested. |
genres |
An array of genre IDs. | Singular, plural if requested. |
id |
A unique identifier. | Always |
instruments |
An array of instrument IDs. | Singular, plural if requested. |
intro |
The ID of the track's intro. | Singular, plural if requested. |
languages |
An array of language IDs. | Singular, plural if requested. |
moods |
An array of mood IDs. | Singular, plural if requested. |
restrictions |
An array of restriction IDs. | Singular, plural if requested. |
tempos |
An array of tempo IDs. | Singular, plural if requested. |
themes |
An array of theme IDs. | Singular, plural if requested. |
vocals |
An array of vocal IDs. | Singular, plural if requested. |
length |
The track duration in seconds as a floating-point number. | Always |
name |
The title of the track. | Always |
/tracks
Search a collection of tracks, as described above. Many other resources present a scoped track resource, but search options and results are consistent.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/tracks
Response
{
data: [
{
length: 226.351,
album: {
id: 1,
name: "Too Broken To Break"
},
artist: {
id: 1,
name: "Fono"
},
id: 10005,
name: "Dangerous"
}
]
// ...
}
Optional Attributes
Track search results are optimized for speed and delivery size by
default, but additional information can be requested by using the
with
query parameter, which contains a comma-separated list of
additional attributes to include. Attribute abbreviations are
consistent with the query parameters from searching above.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/tracks?with=g,m,t
The response to this query would include genres
, moods
, and
tempos
attributes for each matching track.
/tracks/:id
The track represented by :id
.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/tracks/10005
Response
{
id: 10005,
name: "Dangerous",
album: {
id: 1,
name: "Too Broken To Break"
},
artist: {
id: 1,
name: "Fono"
},
ending: 1,
explicit: false,
genres: [...],
instruments: [...],
intro: 1,
languages: [...],
length: 226.351,
moods: [...],
restrictions: [...],
tempos: [...],
themes: [...],
vocals: [...],
children: [
{
id: 35089,
name: "Dangerous (instrumental)"
}
]
}
/tracks/:id/lyrics
The lyrics for a track. Because lyrics are generally large, they’re not included in the normal track attributes.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/tracks/10005/lyrics
Response
{ lyrics: "..." }
/tracks/:ids/exist
Given a set of track ids, returns whether they exist.
If more than 1000 ids are passed, only the first 1000 will be
included in the results.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/tracks/10005,10006/exist
Response
[
{ track: 10005, exists: true },
{ track: 10006, exists: false }
]
Vocals
Vocals describe the arrangement and usage of voices in a track.
Attributes
Attribute | Description | Visible |
---|---|---|
id |
A unique identifier. | Always |
name |
A descriptive name. | Always |
/vocals
A list of vocals.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/vocals
Response
{
data: [
{
id: 6,
name: "A Cappella"
},
{
id: 4,
name: "Duet"
},
{
id: 2,
name: "Female"
}
]
// ...
}
/vocals/:id
The vocal represented by :id
.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/vocals/1
Response
{
id: 6,
name: "A Cappella"
}
/vocals/:ids/tracks
Tracks matching one or more comma-separated vocal :ids
. See the /tracks resource for example results.
curl -H "X-Audiosocket-Token:YOUR-API-TOKEN" \
http://SERVER/v5/vocals/1,2/tracks
As Always, Thanks!
Please drop an email to api@audiosocket.com with any feature requests, bug reports, or documentation improvements. We really appreciate all feedback. We periodically send updates to api-announce@audiosocket.com: If there are folks in your organization who would like to receive API updates, please let us know.