ACRCloud Console API
Bearer-token administrative API for managing projects, base/UCF projects, access keys, and the developer access tokens used to authenticate the Console, file-scanning, and broadcast-monitoring resources.
Bearer-token administrative API for managing projects, base/UCF projects, access keys, and the developer access tokens used to authenticate the Console, file-scanning, and broadcast-monitoring resources.
openapi: 3.0.1
info:
title: ACRCloud API
description: >-
Specification of the ACRCloud automatic content recognition (ACR) APIs. The
Identification API recognizes music, custom audio, live channels, and humming
from a short audio sample or a precomputed fingerprint using HMAC-SHA1 signed
requests. The Console API (api-v2.acrcloud.com) manages buckets, audio files,
file-scanning containers, and broadcast-monitoring projects using bearer-token
access tokens, and the external Metadata API enriches tracks with third-party
music metadata.
termsOfService: https://www.acrcloud.com/terms/
contact:
name: ACRCloud Support
email: support@acrcloud.com
url: https://www.acrcloud.com
version: '1.0'
servers:
- url: https://identify-eu-west-1.acrcloud.com
description: Identification API (EU West region; other regions use identify-{region}.acrcloud.com)
- url: https://api-v2.acrcloud.com
description: Console API and bucket/file/project management
- url: https://eu-api-v2.acrcloud.com
description: External Metadata API (region-specific host)
tags:
- name: Identification
description: Recognize music, custom audio, and humming from a sample or fingerprint.
- name: Buckets
description: Manage custom recognition buckets.
- name: Audio Files
description: Upload and manage audio files and fingerprints within a bucket.
- name: File Scanning
description: Manage file-scanning containers that detect content from buckets.
- name: Broadcast Monitoring
description: Manage broadcast-database monitoring projects and result callbacks.
- name: Metadata
description: Look up enriched third-party music metadata.
paths:
/v1/identify:
post:
operationId: identify
tags:
- Identification
summary: Identify music or custom audio from a sample or fingerprint.
description: >-
Submits a short audio sample (recommended under 15 seconds) or a
precomputed fingerprint and returns matched track metadata. The request
is authenticated with an HMAC-SHA1 signature computed from the access
secret over a string built from the HTTP method, endpoint URI, access
key, data type, signature version, and timestamp joined by newlines.
security:
- acrSignature: []
requestBody:
required: true
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/IdentifyRequest'
responses:
'200':
description: Identification result (a status code of 0 indicates success).
content:
application/json:
schema:
$ref: '#/components/schemas/IdentifyResponse'
/api/buckets:
get:
operationId: listBuckets
tags:
- Buckets
summary: List buckets.
security:
- bearerAuth: []
parameters:
- name: region
in: query
schema:
type: string
- name: type
in: query
schema:
type: string
- name: page
in: query
schema:
type: integer
- name: per_page
in: query
schema:
type: integer
responses:
'200':
description: Paginated list of buckets.
content:
application/json:
schema:
$ref: '#/components/schemas/BucketList'
post:
operationId: createBucket
tags:
- Buckets
summary: Create a bucket.
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BucketCreate'
responses:
'201':
description: The created bucket.
content:
application/json:
schema:
$ref: '#/components/schemas/Bucket'
/api/buckets/{id}:
parameters:
- name: id
in: path
required: true
schema:
type: string
get:
operationId: getBucket
tags:
- Buckets
summary: Retrieve a bucket.
security:
- bearerAuth: []
responses:
'200':
description: The requested bucket.
content:
application/json:
schema:
$ref: '#/components/schemas/Bucket'
put:
operationId: updateBucket
tags:
- Buckets
summary: Update a bucket.
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BucketCreate'
responses:
'200':
description: The updated bucket.
content:
application/json:
schema:
$ref: '#/components/schemas/Bucket'
delete:
operationId: deleteBucket
tags:
- Buckets
summary: Delete a bucket (the bucket must be emptied first).
security:
- bearerAuth: []
responses:
'204':
description: Bucket deleted.
/api/buckets/{bucket_id}/files:
parameters:
- name: bucket_id
in: path
required: true
schema:
type: string
get:
operationId: listAudioFiles
tags:
- Audio Files
summary: List audio files in a bucket.
security:
- bearerAuth: []
parameters:
- name: search
in: query
schema:
type: string
- name: state
in: query
schema:
type: integer
- name: page
in: query
schema:
type: integer
- name: per_page
in: query
schema:
type: integer
responses:
'200':
description: Paginated list of audio files.
content:
application/json:
schema:
$ref: '#/components/schemas/AudioFileList'
post:
operationId: uploadAudioFile
tags:
- Audio Files
summary: Upload an audio file or fingerprint to a bucket.
security:
- bearerAuth: []
requestBody:
required: true
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/AudioFileUpload'
responses:
'201':
description: The created audio file record.
content:
application/json:
schema:
$ref: '#/components/schemas/AudioFile'
/api/buckets/{bucket_id}/files/{ids}:
parameters:
- name: bucket_id
in: path
required: true
schema:
type: string
- name: ids
in: path
required: true
description: Comma-separated file IDs or ACR IDs.
schema:
type: string
get:
operationId: getAudioFiles
tags:
- Audio Files
summary: Retrieve one or more audio files by ID or ACR ID.
security:
- bearerAuth: []
responses:
'200':
description: Matching audio file records.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AudioFile'
delete:
operationId: deleteAudioFiles
tags:
- Audio Files
summary: Delete one or more audio files.
security:
- bearerAuth: []
responses:
'204':
description: Files deleted.
/api/fs-containers:
get:
operationId: listFileScanningContainers
tags:
- File Scanning
summary: List file-scanning containers.
security:
- bearerAuth: []
parameters:
- name: region
in: query
schema:
type: string
- name: name
in: query
schema:
type: string
responses:
'200':
description: List of file-scanning containers.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/FsContainer'
post:
operationId: createFileScanningContainer
tags:
- File Scanning
summary: Create a file-scanning container.
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/FsContainerCreate'
responses:
'201':
description: The created container.
content:
application/json:
schema:
$ref: '#/components/schemas/FsContainer'
/api/fs-containers/{container_id}:
parameters:
- name: container_id
in: path
required: true
schema:
type: string
get:
operationId: getFileScanningContainer
tags:
- File Scanning
summary: Retrieve a file-scanning container.
security:
- bearerAuth: []
responses:
'200':
description: The requested container.
content:
application/json:
schema:
$ref: '#/components/schemas/FsContainer'
put:
operationId: updateFileScanningContainer
tags:
- File Scanning
summary: Update a file-scanning container.
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/FsContainerCreate'
responses:
'200':
description: The updated container.
content:
application/json:
schema:
$ref: '#/components/schemas/FsContainer'
delete:
operationId: deleteFileScanningContainer
tags:
- File Scanning
summary: Delete a file-scanning container.
security:
- bearerAuth: []
responses:
'204':
description: Container deleted.
/api/bm-bd-projects:
get:
operationId: listBroadcastProjects
tags:
- Broadcast Monitoring
summary: List broadcast-database monitoring projects.
security:
- bearerAuth: []
parameters:
- name: region
in: query
schema:
type: string
responses:
'200':
description: List of broadcast-monitoring projects.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/BmProject'
post:
operationId: createBroadcastProject
tags:
- Broadcast Monitoring
summary: Create a broadcast-database monitoring project.
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BmProjectCreate'
responses:
'201':
description: The created project.
content:
application/json:
schema:
$ref: '#/components/schemas/BmProject'
/api/bm-bd-projects/{id}:
parameters:
- name: id
in: path
required: true
schema:
type: string
put:
operationId: updateBroadcastProject
tags:
- Broadcast Monitoring
summary: Update a broadcast-monitoring project.
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BmProjectCreate'
responses:
'200':
description: The updated project.
content:
application/json:
schema:
$ref: '#/components/schemas/BmProject'
delete:
operationId: deleteBroadcastProject
tags:
- Broadcast Monitoring
summary: Delete a broadcast-monitoring project.
security:
- bearerAuth: []
responses:
'204':
description: Project deleted.
/api/bm-bd-projects/{id}/result-callback:
parameters:
- name: id
in: path
required: true
schema:
type: string
post:
operationId: setResultCallback
tags:
- Broadcast Monitoring
summary: Set the results callback URL for a broadcast-monitoring project.
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
result_callback_url:
type: string
format: uri
result_callback_send_noresult:
type: boolean
result_callback_result_type:
type: integer
description: 0 = RealTime, 1 = Delay.
responses:
'200':
description: Callback configured.
/api/external-metadata/tracks:
get:
operationId: getExternalMetadataTracks
tags:
- Metadata
summary: Look up enriched track metadata.
description: >-
Returns enriched music metadata for a track resolved by ISRC, ACR ID,
source URL, or free-text query, including platform-specific external IDs
and links across Spotify, Deezer, YouTube, and Apple Music.
security:
- bearerAuth: []
parameters:
- name: isrc
in: query
schema:
type: string
- name: acr_id
in: query
schema:
type: string
- name: source_url
in: query
schema:
type: string
- name: query
in: query
schema:
type: string
- name: platforms
in: query
description: Comma-separated platforms (max 5). Default spotify,deezer,youtube,applemusic.
schema:
type: string
- name: include_works
in: query
schema:
type: integer
- name: format
in: query
schema:
type: string
enum: [text, json]
default: text
responses:
'200':
description: Track metadata.
content:
application/json:
schema:
$ref: '#/components/schemas/MetadataTrack'
components:
securitySchemes:
acrSignature:
type: apiKey
in: query
name: signature
description: >-
HMAC-SHA1 request signing for the Identification API. The client sends
access_key, timestamp, signature_version=1, data_type, and a Base64
signature. The signature is HMAC-SHA1 of the string "POST\n/v1/identify\n
{access_key}\n{data_type}\n1\n{timestamp}" keyed with the access_secret.
bearerAuth:
type: http
scheme: bearer
description: >-
Console API access token created in the ACRCloud console developer
settings and sent as "Authorization: Bearer {token}".
schemas:
IdentifyRequest:
type: object
required:
- access_key
- data_type
- signature_version
- signature
- timestamp
properties:
sample:
type: string
format: binary
description: Audio or fingerprint payload (under 5MB).
sample_bytes:
type: integer
description: Size of the sample in bytes.
access_key:
type: string
description: Project access key.
data_type:
type: string
enum: [audio, fingerprint]
signature_version:
type: string
enum: ['1']
signature:
type: string
description: Base64-encoded HMAC-SHA1 signature.
timestamp:
type: string
description: Unix epoch timestamp.
IdentifyResponse:
type: object
properties:
status:
type: object
properties:
code:
type: integer
description: 0 indicates success.
msg:
type: string
version:
type: string
result_type:
type: integer
metadata:
type: object
properties:
timestamp_utc:
type: string
music:
type: array
items:
$ref: '#/components/schemas/MusicMatch'
custom_files:
type: array
items:
type: object
MusicMatch:
type: object
properties:
title:
type: string
acrid:
type: string
isrc:
type: string
duration_ms:
type: integer
score:
type: integer
release_date:
type: string
artists:
type: array
items:
type: object
properties:
name:
type: string
album:
type: object
properties:
name:
type: string
external_ids:
type: object
properties:
isrc:
type: string
iswc:
type: string
upc:
type: string
genres:
type: array
items:
type: object
properties:
name:
type: string
Bucket:
type: object
properties:
id:
type: string
name:
type: string
region:
type: string
type:
type: string
net_type:
type: integer
state:
type: integer
created_at:
type: string
updated_at:
type: string
BucketCreate:
type: object
required:
- name
- region
properties:
name:
type: string
region:
type: string
type:
type: string
net_type:
type: integer
labels:
type: array
items:
type: string
metadata_template:
type: object
BucketList:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Bucket'
meta:
$ref: '#/components/schemas/PageMeta'
AudioFile:
type: object
properties:
id:
type: string
acr_id:
type: string
bucket_id:
type: string
title:
type: string
state:
type: integer
duration:
type: number
user_defined:
type: object
created_at:
type: string
updated_at:
type: string
AudioFileUpload:
type: object
required:
- data_type
properties:
file:
type: string
format: binary
title:
type: string
data_type:
type: string
enum: [audio, fingerprint, audio_url, acrid]
user_defined:
type: string
description: JSON-encoded user-defined metadata.
AudioFileList:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/AudioFile'
meta:
$ref: '#/components/schemas/PageMeta'
FsContainer:
type: object
properties:
id:
type: string
name:
type: string
region:
type: string
audio_type:
type: string
state:
type: integer
created_at:
type: string
FsContainerCreate:
type: object
required:
- name
- region
- buckets
properties:
name:
type: string
region:
type: string
audio_type:
type: string
description: linein (clean) or recorded/noisy audio handling.
buckets:
type: array
items:
type: string
engine:
type: object
policy:
type: object
callback_url:
type: string
format: uri
music_detection:
type: integer
ai_detection:
type: integer
BmProject:
type: object
properties:
id:
type: string
name:
type: string
region:
type: string
state:
type: integer
created_at:
type: string
BmProjectCreate:
type: object
required:
- name
- region
properties:
name:
type: string
region:
type: string
description: e.g. eu-west-1, us-west-2, ap-southeast-1.
buckets:
type: array
items:
type: string
MetadataTrack:
type: object
properties:
name:
type: string
isrc:
type: string
duration_ms:
type: integer
release_date:
type: string
artists:
type: array
items:
type: object
properties:
name:
type: string
album:
type: object
properties:
name:
type: string
upc:
type: string
label:
type: string
genres:
type: array
items:
type: string
external_metadata:
type: object
description: Platform-specific IDs, links, and preview URLs.
works:
type: array
items:
type: object
description: Composition details and contributors (when include_works=1).
PageMeta:
type: object
properties:
page:
type: integer
per_page:
type: integer
total:
type: integer