> ## Documentation Index
> Fetch the complete documentation index at: https://developer.ammdistro.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Look up UPCs and ISRCs

> Whether releases (by UPC) or recordings (by ISRC) are in AMM Distro, and how far along. Needs `ingestion:read`. Up to 50 identifiers; unknown ones come back with `found: false`.



## OpenAPI

````yaml /api-reference/openapi.json get /ingestion/lookup
openapi: 3.1.0
info:
  title: AMM Distro API
  version: '2026-10-22'
  description: >-
    Deliver releases and catalog transfers to AMM Distro from your own systems,
    check readiness, and follow each release's status.


    API access is turned on per account by AMM Distro. The account's admins then
    create keys in **Settings → API**.
  contact:
    name: AMM Distro support
    email: support@ammdistro.com
    url: https://ammdistro.com
servers:
  - url: https://api.ammdistro.com/api/v2/external
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Accounts
  - name: Releases
    description: Create, update, validate and submit releases, and read their status.
  - name: Files
    description: Upload artwork and audio yourself instead of sending URLs.
  - name: Catalog transfers
    description: Move already-released catalog from another distributor.
  - name: Reference data
  - name: Ingestion check
    description: Look up any UPC or ISRC in the account's catalog.
paths:
  /ingestion/lookup:
    get:
      tags:
        - Ingestion check
      summary: Look up UPCs and ISRCs
      description: >-
        Whether releases (by UPC) or recordings (by ISRC) are in AMM Distro, and
        how far along. Needs `ingestion:read`. Up to 50 identifiers; unknown
        ones come back with `found: false`.
      operationId: lookupGet
      parameters:
        - name: upc
          in: query
          description: Repeat or comma-separate.
          schema:
            type: array
            items:
              type: string
          style: form
          explode: true
        - name: isrc
          in: query
          description: Repeat or comma-separate.
          schema:
            type: array
            items:
              type: string
          style: form
          explode: true
      responses:
        '200':
          description: Results in request order.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LookupResult'
        '400':
          description: Bad identifiers.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                invalid_request:
                  value:
                    error: invalid_request
                    message: Provide at least one UPC or ISRC.
                too_many_identifiers:
                  value:
                    error: too_many_identifiers
                    message: At most 50 identifiers per request.
                invalid_identifier:
                  value:
                    error: invalid_identifier
                    message: One or more identifiers are malformed.
        '401':
          description: No key, or a revoked key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                missing_api_key:
                  value:
                    error: missing_api_key
                    message: 'Send your API key as `Authorization: Bearer <key>`.'
                invalid_api_key:
                  value:
                    error: invalid_api_key
                    message: API key is invalid or has been revoked.
        '403':
          description: The key can't do this, or API access is off for its accounts.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                insufficient_scope:
                  value:
                    error: insufficient_scope
                    message: This key does not grant delivery:write.
                api_access_disabled:
                  value:
                    error: api_access_disabled
                    message: >-
                      API access is not turned on for the accounts this key
                      covers.
        '429':
          description: >-
            Rate limit reached. Wait for the time in the `RateLimit-Reset`
            header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                rate_limited:
                  value:
                    error: rate_limited
                    message: >-
                      Rate limit of 60 requests per minute exceeded for this
                      key.
components:
  schemas:
    LookupResult:
      type: object
      properties:
        upcs:
          type: array
          items:
            type: object
            properties:
              input:
                type: string
              upc:
                type: string
              found:
                type: boolean
              matches:
                type: array
                items:
                  type: object
                  properties:
                    matchedOn:
                      type: string
                      enum:
                        - release_upc
                        - alternate_delivery_upc
                    release:
                      $ref: '#/components/schemas/LookupRelease'
        isrcs:
          type: array
          items:
            type: object
            properties:
              input:
                type: string
              isrc:
                type: string
              found:
                type: boolean
              matches:
                type: array
                items:
                  type: object
                  properties:
                    matchedOn:
                      type: string
                      enum:
                        - isrc
                        - dolby_isrc
                        - isrc_alias
                    track:
                      type: object
                      properties:
                        id:
                          type: string
                        title:
                          type: string
                        artists:
                          type: array
                          items:
                            type: string
                        isrc:
                          type: string
                        discNumber:
                          type: integer
                        trackNumber:
                          type: integer
                    release:
                      $ref: '#/components/schemas/LookupRelease'
        summary:
          type: object
          properties:
            requested:
              type: integer
            found:
              type: integer
            notFound:
              type: integer
        checkedAt:
          type: string
          format: date-time
    Error:
      type: object
      required:
        - error
        - message
      properties:
        error:
          type: string
          description: Stable code to branch on.
          example: invalid_payload
        message:
          type: string
          description: What happened, in plain words.
        details:
          type: array
          description: >-
            Per-field problems (payload errors) or per-release problems
            (transfer submit).
          items:
            oneOf:
              - $ref: '#/components/schemas/PayloadProblem'
              - $ref: '#/components/schemas/Issue'
              - $ref: '#/components/schemas/TransferReleaseProblem'
    LookupRelease:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        artists:
          type: array
          items:
            type: string
        releaseType:
          type: string
        upc:
          type:
            - string
            - 'null'
        status:
          type: string
          enum:
            - draft
            - in_review
            - rejected
            - approved
            - delivering
            - on_hold
            - delivered
            - live
            - takedown_requested
            - taken_down
            - unknown
        ingested:
          type: boolean
          description: True once the release is accepted for distribution.
        releaseDate:
          type:
            - string
            - 'null'
          format: date
        createdAt:
          type: string
          format: date-time
        submittedAt:
          type:
            - string
            - 'null'
        reviewedAt:
          type:
            - string
            - 'null'
        deliveryQueuedAt:
          type:
            - string
            - 'null'
        updatedAt:
          type: string
          format: date-time
    PayloadProblem:
      type: object
      required:
        - path
        - message
      properties:
        path:
          type: string
          description: Where in your request body the problem is.
          example: tracks[2].credits[0].roles[1]
        message:
          type: string
          example: '"Wizard" is not a known role (see GET /reference/credit-roles)'
    Issue:
      type: object
      required:
        - severity
        - message
      properties:
        severity:
          type: string
          enum:
            - error
            - warning
        rule:
          type: string
          description: Stable rule code, when the problem comes from a release rule.
          example: credit.production
        field:
          type:
            - string
            - 'null'
          example: credits
        track:
          type: object
          description: Which track, when the problem is on one.
          properties:
            externalId:
              type:
                - string
                - 'null'
            discNumber:
              type: integer
            trackNumber:
              type: integer
        message:
          type: string
    TransferReleaseProblem:
      type: object
      properties:
        externalId:
          type: string
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Issue'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: An API key from Settings → API in AMM Distro.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.