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

# Create a release player

> Register one reusable listening page plus provider embeds. Returns player, listenUrl, spotifyEmbedUrl, appleEmbedUrl. MCP: create_release_player. No site generation is required. This feature requires its API/app/database releases.



## OpenAPI

````yaml api-reference/openapi/players.json POST /api/players
openapi: 3.1.0
info:
  title: Recoup API - Release Players
  version: 1.0.0
servers:
  - url: https://api.recoupable.dev
security: []
paths:
  /api/players:
    post:
      summary: Create a release player
      description: >-
        Register one reusable listening page plus provider embeds. Returns
        player, listenUrl, spotifyEmbedUrl, appleEmbedUrl. MCP:
        create_release_player. No site generation is required. This feature
        requires its API/app/database releases.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
                - artistId
                - name
              properties:
                organizationId:
                  type:
                    - string
                    - 'null'
                  format: uuid
                  description: >-
                    Authorized workspace; omit for the authenticated account.
                    Never send account_id.
                artistId:
                  type: string
                  format: uuid
                  description: Artist account belonging to this workspace.
                name:
                  type: string
                  minLength: 1
                  maxLength: 120
                spotifyUrl:
                  type:
                    - string
                    - 'null'
                  format: uri
                  description: >-
                    Spotify track, album, or playlist URL. Share parameters are
                    removed.
                appleUrl:
                  type:
                    - string
                    - 'null'
                  format: uri
                  description: >-
                    Apple Music song or album URL, optionally an album ?i= song
                    selection.
                artwork:
                  type:
                    - string
                    - 'null'
                  format: uri
                  description: Optional public HTTPS artwork.
                allowedOrigins:
                  type: array
                  maxItems: 10
                  items:
                    type: string
                    format: uri
                  description: >-
                    Exact HTTPS origins authorized to embed this player; no
                    path, query, credentials, or fragment.
                enabled:
                  type: boolean
                  default: false
                  description: >-
                    Publishing requires an active paid workspace. Disabled
                    players are unavailable publicly.
                freePlayback:
                  type: string
                  enum:
                    - spotify
                    - audio
                  default: spotify
                  description: >-
                    Release-owner choice for verified Spotify Free accounts.
                    spotify opens the configured Spotify release; audio plays a
                    workspace-owned uploaded file. Premium continues using
                    Spotify streaming.
                audioUrl:
                  type:
                    - string
                    - 'null'
                  format: uri
                  description: >-
                    MP3 or WAV URL returned by POST /api/sites/assets for the
                    same workspace. Requires an existing audio object; arbitrary
                    or other-workspace URLs are rejected. Required when
                    freePlayback is audio. Uploads currently have a 4 MB limit.
              description: >-
                At least one of spotifyUrl or appleUrl is required. Disabled by
                default.
              anyOf:
                - required:
                    - spotifyUrl
                  properties:
                    spotifyUrl:
                      type: string
                      format: uri
                - required:
                    - appleUrl
                  properties:
                    appleUrl:
                      type: string
                      format: uri
      responses:
        '201':
          description: PlayerResource fields returned by the release player service.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlayerResource'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlayerError'
        '401':
          description: Missing/invalid authentication or failed provider authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlayerError'
        '402':
          description: Publishing requires an active paid workspace
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlayerError'
        '403':
          description: Workspace, origin, or session access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlayerError'
        '404':
          description: Player not available
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlayerError'
        '429':
          description: Request rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlayerError'
        '503':
          description: Feature/configuration temporarily unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlayerError'
      security:
        - apiKeyAuth: []
        - bearerAuth: []
components:
  schemas:
    PlayerResource:
      type: object
      properties:
        player:
          $ref: '#/components/schemas/ReleasePlayer'
        listenUrl:
          type: string
          format: uri
        spotifyEmbedUrl:
          type: string
          format: uri
          description: >-
            Stable provider route. This URL is returned even when that provider
            is unconfigured; inspect the corresponding destination in player
            before displaying it.
        appleEmbedUrl:
          type: string
          format: uri
          description: >-
            Stable provider route. This URL is returned even when that provider
            is unconfigured; inspect the corresponding destination in player
            before displaying it.
      required:
        - player
        - listenUrl
        - spotifyEmbedUrl
        - appleEmbedUrl
    PlayerError:
      type: object
      properties:
        error:
          type: string
        status:
          type: string
      required:
        - error
    ReleasePlayer:
      type: object
      properties:
        id:
          type: string
          format: uuid
        owner_id:
          type: string
          format: uuid
        artist_id:
          type: string
          format: uuid
        created_by:
          type: string
          format: uuid
        name:
          type: string
        spotify_url:
          type:
            - string
            - 'null'
          format: uri
        apple_url:
          type:
            - string
            - 'null'
          format: uri
        artwork:
          type:
            - string
            - 'null'
          format: uri
        allowed_origins:
          type: array
          items:
            type: string
            format: uri
        enabled:
          type: boolean
        revision:
          type: integer
          minimum: 1
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        free_playback:
          type: string
          enum:
            - spotify
            - audio
          default: spotify
          description: >-
            Release-owner choice for verified Spotify Free accounts. spotify
            opens the configured Spotify release; audio plays a workspace-owned
            uploaded file. Premium continues using Spotify streaming.
        audio_url:
          type:
            - string
            - 'null'
          format: uri
          description: >-
            MP3 or WAV URL returned by POST /api/sites/assets for the same
            workspace. Requires an existing audio object; arbitrary or
            other-workspace URLs are rejected. Required when freePlayback is
            audio. Uploads currently have a 4 MB limit.
      required:
        - id
        - owner_id
        - artist_id
        - name
        - spotify_url
        - apple_url
        - allowed_origins
        - enabled
        - revision
        - free_playback
        - audio_url
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
    bearerAuth:
      type: http
      scheme: bearer

````

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