> ## 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.

# Run Valuation

> Generate a catalog from a Spotify artist in one call. Resolves the artist's releases, captures current Spotify play counts (spending the account's credits), materializes an account-owned catalog from the resulting snapshot (idempotent - see [Create catalog](/api-reference/songs/catalogs-create)), and returns the catalog with its estimated value band. The owning account is taken from the credentials, never the body. The searched artist is also linked to the caller's roster (so a funnel signup lands with a populated `GET /api/artists` it can confirm); when the catalog's songs already resolve a canonical artist that one is used, otherwise the searched Spotify artist is linked directly. Synchronous: the request waits for the capture to land (typically under two minutes).



## OpenAPI

````yaml post /api/valuation
openapi: 3.1.0
info:
  title: Recoup API - Releases
  description: >-
    API documentation for the Recoup platform - an AI agent platform for the
    music industry
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.recoupable.dev
security: []
paths:
  /api/valuation:
    post:
      summary: Run valuation
      description: >-
        Generate a catalog from a Spotify artist in one call. Resolves the
        artist's releases, captures current Spotify play counts (spending the
        account's credits), materializes an account-owned catalog from the
        resulting snapshot (idempotent - see [Create
        catalog](/api-reference/songs/catalogs-create)), and returns the catalog
        with its estimated value band. The owning account is taken from the
        credentials, never the body. The searched artist is also linked to the
        caller's roster (so a funnel signup lands with a populated `GET
        /api/artists` it can confirm); when the catalog's songs already resolve
        a canonical artist that one is used, otherwise the searched Spotify
        artist is linked directly. Synchronous: the request waits for the
        capture to land (typically under two minutes).
      requestBody:
        description: The Spotify artist to value.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RunValuationRequest'
      responses:
        '200':
          description: >-
            Catalog created (or idempotently re-fetched) with its estimated
            value band.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RunValuationResponse'
        '400':
          description: Bad request - missing or invalid spotify_artist_id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogSongsErrorResponse'
        '401':
          description: Unauthorized - missing or invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogSongsErrorResponse'
        '402':
          description: Insufficient credits to measure the catalog
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogSongsErrorResponse'
        '404':
          description: Not found - no releases found for the Spotify artist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogSongsErrorResponse'
        '504':
          description: >-
            The measurement did not complete within the wait window - retry
            shortly
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogSongsErrorResponse'
      security:
        - apiKeyAuth: []
        - bearerAuth: []
components:
  schemas:
    RunValuationRequest:
      type: object
      required:
        - spotify_artist_id
      properties:
        spotify_artist_id:
          type: string
          description: >-
            The Spotify artist id to value (e.g. from a Spotify artist search).
            The endpoint resolves this artist's releases, measures them, and
            builds the catalog.
    RunValuationResponse:
      type: object
      description: >-
        Result of a valuation run: the materialized catalog and its estimated
        value band.
      properties:
        status:
          type: string
          enum:
            - success
            - error
          description: Status of the request
        catalog:
          $ref: '#/components/schemas/Catalog'
        band:
          $ref: '#/components/schemas/ValuationBand'
        songs_measured:
          type: integer
          description: >-
            Number of tracks with a captured play count that were materialized
            into the catalog.
        error:
          type: string
          description: Error message (only present if status is 'error')
    CatalogSongsErrorResponse:
      type: object
      properties:
        status:
          type: string
          enum:
            - error
          description: Status of the request
        error:
          type: string
          description: Error message describing what went wrong
    Catalog:
      type: object
      description: A catalog with its metadata
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the catalog
        name:
          type: string
          description: Name of the catalog
        created_at:
          type: string
          format: date-time
          description: ISO timestamp of when the catalog was created
        updated_at:
          type: string
          format: date-time
          description: ISO timestamp of when the catalog was last updated
    ValuationBand:
      type: object
      description: >-
        Estimated catalog value in USD, derived at read time from the latest
        measurements - the same model as the recoupable.dev valuation card.
        Annual run-rate = lifetime streams / catalog age (lifetime-average
        proxy), converted to net label share (all-DSP gross-up 1.25/1.4/1.6, 15%
        distribution fee, 25% royalty share, $0.0035 per Spotify stream) and
        multiplied by a 10x/13x/16x master-catalog market multiple.
      properties:
        low:
          type: number
          description: Low estimate in USD (1.25x gross-up, 10x multiple)
        mid:
          type: number
          description: Central estimate in USD (1.4x gross-up, 13x multiple)
        high:
          type: number
          description: High estimate in USD (1.6x gross-up, 16x multiple)
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Your Recoup API key. [Learn more](/quickstart#api-keys).
    bearerAuth:
      type: http
      scheme: bearer

````