ACRCloud Identification API

Recognize music, custom audio, and humming from a sample or fingerprint.

OpenAPI Specification

acrcloud-identification-api-openapi.yml Raw ↑
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}".'