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

# Get a musical work's recordings

> One ISWC in, the recordings of that musical work out, 25 to a page.

The reverse of the administrators lookup, by the same rule: a recording appears here only where this work's registration is the one governing it. So every ISRC returned is one the administrators lookup will report administrators for.

An ISWC we do not hold is an empty `result_list`, never a 404.



## OpenAPI

````yaml /enterprises/publishing/openapi.json post /ws/1.1/recording.musicalwork.details.search.post
openapi: 3.1.0
info:
  title: Musixmatch Publishing API
  version: 1.0.0
  description: >-
    Read the publishing side of the Musixmatch catalog: given a recording, who
    administers and owns its musical works; given a musical work, which
    recordings exist of it; given a writer, which works are credited to them.


    Every method answers over HTTP 200. The outcome of the call is
    `message.header.status_code`, and a 4xx carries a prose `hint` beside a
    machine-readable `hint_code`.
servers:
  - url: https://api.musixmatch.com
security:
  - apiKey: []
paths:
  /ws/1.1/recording.musicalwork.details.search.post:
    post:
      tags:
        - Musical works
      summary: Get a musical work's recordings
      description: >-
        One ISWC in, the recordings of that musical work out, 25 to a page.


        The reverse of the administrators lookup, by the same rule: a recording
        appears here only where this work's registration is the one governing
        it. So every ISRC returned is one the administrators lookup will report
        administrators for.


        An ISWC we do not hold is an empty `result_list`, never a 404.
      operationId: recordingMusicalworkDetailsSearchPost
      parameters:
        - $ref: '#/components/parameters/page'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - iswc
              properties:
                iswc:
                  type: string
                  description: >-
                    The musical work's ISWC, accepted hyphenated, e.g.
                    `T9214745718` or `T-921.474.571-8`
            example:
              iswc: T9214745718
      responses:
        '200':
          description: One page of the work's recordings.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkRecordingsEnvelope'
              example:
                message:
                  header:
                    status_code: 200
                    execute_time: 0.652
                  body:
                    pagination:
                      available: 34
                      returned_elements: 25
                      current_page: 1
                      page_size: 25
                      total_pages: 2
                    result_list:
                      - isrc: USRC17607839
                        title: Rolling in the Deep
                        artist_list:
                          - Adele
                      - isrc: USUM71618176
                        title: Rolling in the Deep
                        artist_list:
                          - Linkin Park
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
components:
  parameters:
    page:
      name: page
      in: query
      required: false
      schema:
        type: integer
        minimum: 1
        default: 1
      description: >-
        The 1-based page to return. A page past the end is an empty
        `result_list`, not an error.
  schemas:
    WorkRecordingsEnvelope:
      type: object
      properties:
        message:
          type: object
          properties:
            header:
              $ref: '#/components/schemas/Header'
            body:
              type: object
              properties:
                pagination:
                  $ref: '#/components/schemas/Pagination'
                result_list:
                  type: array
                  items:
                    $ref: '#/components/schemas/RecordingSummary'
    Header:
      type: object
      properties:
        status_code:
          type: integer
          description: The outcome of the call. The HTTP status is always 200.
        execute_time:
          type: number
          description: Server-side execution time in seconds
    Pagination:
      type: object
      properties:
        available:
          type: integer
          description: How many rows exist in total
        returned_elements:
          type: integer
          description: How many rows this page carries
        current_page:
          type: integer
        page_size:
          type: integer
          description: Fixed at 25. `page_size` is not accepted as a parameter.
        total_pages:
          type: integer
    RecordingSummary:
      type: object
      properties:
        isrc:
          type:
            - string
            - 'null'
        title:
          type:
            - string
            - 'null'
        artist_list:
          type: array
          items:
            type: string
    ErrorResponse:
      type: object
      properties:
        message:
          type: object
          properties:
            header:
              type: object
              properties:
                status_code:
                  type: integer
                execute_time:
                  type: number
                hint:
                  type: string
                  description: What is wrong with the request, in prose
                hint_code:
                  type: string
                  description: >-
                    A stable slug for the same fault. Part of the contract; the
                    prose is not.
                  enum:
                    - invalid_request
                    - unknown_property
                    - too_many_items
                    - invalid_isrc
                    - invalid_iswc
                    - invalid_ipi
                    - page_unreachable
            body:
              type: array
              items: {}
  responses:
    BadRequest:
      description: >-
        The request is not usable. Returned over HTTP 200 with `status_code` 400
        in the header, alongside `hint` and `hint_code`. Any fault fails the
        whole request: there is no per-row invalid state.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: >-
        The API key is not entitled to this method. Returned over HTTP 200 with
        `status_code` 403 in the header.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    ServerError:
      description: >-
        A read failed. Returned over HTTP 200 with `status_code` 500 in the
        header. A failed read is never an empty result.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    apiKey:
      type: apiKey
      name: apikey
      in: query

````