openapi: 3.0.1 info: title: ACRCloud Audio Files Identification 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. 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' components: schemas: 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 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 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. 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}".'