명세서 페이지
인증
Authorization
string
Required
Api Key

Cursor 기반 음원 조회

GET
/v1/music/cursor
클라이언트가 가져간 마지막 ROW의 다음 ROW들을 N개 요청/응답합니다.
cUrl
curl -X GET "https://api-prod.linkmusic.io/v1/music/cursor?genre=Deep_House&mood=Groovy&duration_start=10&duration_end=150&take=1&id=5aba06bb-6b42-4c90-a249-b60d46523ff4&created_at=2024-02-05T11:53:08.000Z" \ -H "accept:*/*" \ -H "Authorization: Bearer YOUR_API_KEY"

Request (Parameter)

Genre (장르)
string
Optional
(query)
연주 방법, 분위기 등의 특징에 따라 구분된 음악의 스타일 입니다.
사용자는 여러 개의 장르 중 1개의 장르 선택이 가능합니다.
Mood (분위기)
string
Optional
(query)
음악의 장르, 청음 특징에 따른 분류입니다.
사용자는 여러 개의 분위기 중 1개의 분위기 선택이 가능합니다.
Duration_Start (길이)
number
Optional
(query)
조회할 음원의 길이를 ‘초(sec) 단위 구간’ 으로 호출합니다.
e.g. Start 55초, End 67초 의 조건으로 호출 시, 해당하는 길이의 음원을 N 개 호출합니다.
Duration_End (길이)
number
Optional
(query)
조회할 음원의 길이를 ‘초(sec) 단위 구간’ 으로 호출합니다.
e.g. Start 55초, End 67초 의 조건으로 호출 시, 해당하는 길이의 음원을 N 개 호출합니다.
Take (호출 개수)
number
Required
(query)
호출/조회 할 음원의 개수를 지정합니다.
1회 호출 당 최소 1개, 최대 100개 음원을 조회할 수 있습니다.
ID (음원 파일 ID)
string
Optional
(query)
LINK MUSIC 에서 지정한 음원 파일의 고유 코드입니다.
데이터베이스 내의 음원 정보 조회(메타데이터) 용도로 활용합니다.
Created_at (음원 파일 생성일)
string
Optional
(query)
해당하는 음원 파일의 생성일 및 시간을 의미합니다.
UTC 기준을 따릅니다.
Response
200
Success
{ "musics": [ { "id": "MUSIC_ID", "duration": 120, "source": "MUSIC_SOURCE_LOCATION", "created_at": "YYYY-MM-DDTHH:MM:SS.SSSZ", "updated_at": "YYYY-MM-DDTHH:MM:SS.SSSZ", "deleted_at": null, "genre": { "id": "GENRE_ID", "name": "GENRE_NAME", "created_at": "YYYY-MM-DDTHH:MM:SS.SSSZ", "updated_at": "YYYY-MM-DDTHH:MM:SS.SSSZ", "deleted_at": null }, "moods": [ { "music_id": "MUSIC_ID", "mood_id": "MOOD_ID", "detail": { "name": "MOOD_NAME", "created_at": "YYYY-MM-DDTHH:MM:SS.SSSZ", "updated_at": "YYYY-MM-DDTHH:MM:SS.SSSZ", "deleted_at": null } } ] } ], "cursor": { "id": "MUSIC_ID", "created_at": "YYYY-MM-DDTHH:MM:SS.SSSZ" } }
400
Bad Request
{ "message": "Take number has exceeded the limit. Take <= 100", "error": "Bad Request", "statusCode": 400 }
400
Bad Request
{ "message": "Number of music tracks to be called is missing.", "error": "Bad Request", "statusCode": 400 }
400
Bad Request
{ "message": "Invalid duration input.", "error": "Bad Request", "statusCode": 400 }
400
Bad Request
{ "message": "Invalid Parameter Value", "error": "Bad Request", "statusCode": 400 }
400
Bad Request
{ "message": "Undefined API Key", "error": "Bad Request", "statusCode": 400 }
400
Bad Request
{ "message": "Malformed API Key", "error": "Bad Request", "statusCode": 400 }
400
Bad Request
{ "message": "Expired API Key", "error": "Bad Request", "statusCode": 400 }
401
Unauthorized
{ "message": "Authorization undefined.", "error": "Bad Request", "statusCode": 401 }
404
Not Found
{ "message": "Requested resource was not found.", "error": "Bad Request", "statusCode": 404 }
500
Internal Server Error
{ "message": "Unknown error has occurred.", "error": "Bad Request", "statusCode": 500 }

Offset 기반 음원 조회

GET
/v1/music/offset
DB의 limit, offset 쿼리를 사용하여 ‘페이지’ 단위로 구분하고 요청/응답 합니다.
cUrl
curl -X GET "https://api-prod.linkmusic.io/v1/music/offset?genre=Cinematic&mood=Dramatic&duration_start=64&duration_end=85&take=5&skip=10" \ -H "accept:*/*" \ -H "Authorization: Bearer YOUR_API_KEY"

Request (Parameter)

Genre (장르)
string
Optional
(query)
연주 방법, 분위기 등의 특징에 따라 구분된 음악의 스타일 입니다.
사용자는 여러 개의 장르 중 1개의 장르 선택이 가능합니다.
Mood (분위기)
string
Optional
(query)
음악의 장르, 청음 특징에 따른 분류입니다.
사용자는 여러 개의 분위기 중 1개의 분위기 선택이 가능합니다.
Duration_Start (길이)
number
Optional
(query)
조회할 음원의 길이를 ‘초(sec) 단위 구간’ 으로 호출합니다.
e.g. Start 55초, End 67초 의 조건으로 호출 시, 해당하는 길이의 음원을 N 개 호출합니다.
Duration_End (길이)
number
Optional
(query)
조회할 음원의 길이를 ‘초(sec) 단위 구간’ 으로 호출합니다.
e.g. Start 55초, End 67초 의 조건으로 호출 시, 해당하는 길이의 음원을 N 개 호출합니다.
Take (호출 개수)
number
Required
(query)
호출/조회 할 음원의 개수를 지정합니다.
1회 호출 당 최소 1개, 최대 100개 음원을 조회할 수 있습니다.
Skip (데이터 스킵)
number
Required
(query)
Response
200
Success
{ "musics": [ { "id": "MUSIC_ID", "duration": 120, "source": "MUSIC_SOURCE_LOCATION", "created_at": "YYYY-MM-DDTHH:MM:SS.SSSZ", "updated_at": "YYYY-MM-DDTHH:MM:SS.SSSZ", "deleted_at": null, "genre": { "id": "GENRE_ID", "name": "GENRE_NAME", "created_at": "YYYY-MM-DDTHH:MM:SS.SSSZ", "updated_at": "YYYY-MM-DDTHH:MM:SS.SSSZ", "deleted_at": null }, "moods": [ { "music_id": "MUSIC_ID", "mood_id": "MOOD_ID", "detail": { "name": "MOOD_NAME", "created_at": "YYYY-MM-DDTHH:MM:SS.SSSZ", "updated_at": "YYYY-MM-DDTHH:MM:SS.SSSZ", "deleted_at": null } } ] } ], "meta": { "total_count": 1234567890, "total_pages": 1234567890, "current_page": 1, "has_next_page": true, "has_previous_page": false } }
400
Bad Request
{ "message": "Take number has exceeded the limit. Take <= 100", "error": "Bad Request", "statusCode": 400 }
400
Bad Request
{ "message": "Number of music tracks to be called is missing.", "error": "Bad Request", "statusCode": 400 }
400
Bad Request
{ "message": "Invalid duration input.", "error": "Bad Request", "statusCode": 400 }
400
Bad Request
{ "message": "Invalid Parameter Value", "error": "Bad Request", "statusCode": 400 }
400
Bad Request
{ "message": "Undefined API Key", "error": "Bad Request", "statusCode": 400 }
400
Bad Request
{ "message": "Malformed API Key", "error": "Bad Request", "statusCode": 400 }
400
Bad Request
{ "message": "Expired API Key", "error": "Bad Request", "statusCode": 400 }
401
Unauthorized
{ "message": "Authorization undefined.", "error": "Bad Request", "statusCode": 401 }
404
Not Found
{ "message": "Requested resource was not found.", "error": "Bad Request", "statusCode": 404 }
500
Internal Server Error
{ "message": "Unknown error has occurred.", "error": "Bad Request", "statusCode": 500 }

ID 기반 음원 조회

GET
/v1/music/query
음원 파일 ‘ID 정보’를 기반으로 호출합니다.
cUrl
curl -X GET "https://api-prod.linkmusic.io/v1/music/query?id=914743fa-7ff9-4d59-8753-6e271c9e972b" \ -H "accept:*/*" \ -H "Authorization: Bearer YOUR_API_KEY"

Request (Parameter)

ID
string
Optional
(query)
LINK MUSIC 에서 지정한 음원 파일의 고유 코드입니다.
데이터베이스 내의 음원 정보 조회(메타데이터) 용도로 활용합니다.
Response
200
Success
{ "id": "MUSIC_ID", "duration": 150, "source": "MUSIC_SOURCE_LOCATION", "created_at": "YYYY-MM-DDTHH:MM:SS.SSSZ", "updated_at": "YYYY-MM-DDTHH:MM:SS.SSSZ", "deleted_at": null, "genre": { "id": "GENRE_ID", "name": "GENRE_NAME", "created_at": "YYYY-MM-DDTHH:MM:SS.SSSZ", "updated_at": "YYYY-MM-DDTHH:MM:SS.SSSZ", "deleted_at": null }, "moods": [ { "music_id": "MUSIC_ID", "mood_id": "MOOD_ID", "detail": { "name": "MOOD_NAME", "created_at": "YYYY-MM-DDTHH:MM:SS.SSSZ", "updated_at": "YYYY-MM-DDTHH:MM:SS.SSSZ", "deleted_at": null } } ] }
400
Bad Request
{ "message": "Take number has exceeded the limit. Take <= 100", "error": "Bad Request", "statusCode": 400 }
400
Bad Request
{ "message": "Number of music tracks to be called is missing.", "error": "Bad Request", "statusCode": 400 }
400
Bad Request
{ "message": "Invalid duration input.", "error": "Bad Request", "statusCode": 400 }
400
Bad Request
{ "message": "Invalid Parameter Value", "error": "Bad Request", "statusCode": 400 }
400
Bad Request
{ "message": "Undefined API Key", "error": "Bad Request", "statusCode": 400 }
400
Bad Request
{ "message": "Malformed API Key", "error": "Bad Request", "statusCode": 400 }
400
Bad Request
{ "message": "Expired API Key", "error": "Bad Request", "statusCode": 400 }
401
Unauthorized
{ "message": "Authorization undefined.", "error": "Bad Request", "statusCode": 401 }
404
Not Found
{ "message": "Requested resource was not found.", "error": "Bad Request", "statusCode": 404 }
500
Internal Server Error
{ "message": "Unknown error has occurred.", "error": "Bad Request", "statusCode": 500 }