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

# Preview Asset Defaults

> **POST /defaultsettings/preview/asset**

## Description

**POST /defaultsettings/preview/asset**

**Description:**
Preview how defaults will be applied to an asset, showing original data,
data with defaults, and which defaults were applied from which sources.

**Method:**
`POST`

**Request Body:**

| Parameter | Type   | Description                | Required |
| --------- | ------ | -------------------------- | -------- |
| labelId   | uuid   | Label context              | No       |
| artistId  | uuid   | Artist context             | No       |
| userId    | uuid   | User context               | No       |
| assetData | object | Partial asset data to test | No       |

## Code Examples

<CodeGroup>
  ```javascript Node.js theme={null}
  const response = await fetch('https://api.royalti.io/defaultsettings/preview/asset', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      "labelId": "sample-labelId",
      "artistId": "sample-artistId",
      "userId": "sample-userId",
      "assetData": {}
    })
  });

  const data = await response.json();
  console.log(data);
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
    'https://api.royalti.io/defaultsettings/preview/asset',
    json={"labelId":"sample-labelId","artistId":"sample-artistId","userId":"sample-userId","assetData":{}}
  )

  data = response.json()
  print(data)
  ```

  ```bash cURL theme={null}
  curl -X POST https://api.royalti.io/defaultsettings/preview/asset \
    -H "Content-Type: application/json" \
    -d '{"labelId":"sample-labelId","artistId":"sample-artistId","userId":"sample-userId","assetData":{}}'

  ```
</CodeGroup>


## OpenAPI

````yaml post /defaultsettings/preview/asset
openapi: 3.0.0
info:
  title: Royalti.io API
  description: "# Royalti API\r\n\r\nThis is the Royalti music royalty management platform API server.\r\n\r\n## Overview\r\n\r\nThe Royalti API provides comprehensive music royalty management services including:\r\n- Music publishing and writer management\r\n- Royalty processing and analytics\r\n- DDEX integration for music industry standards\r\n- File processing and pattern recognition\r\n- Payment processing and distribution\r\n\r\n## Authentication\r\n\r\nThe API uses JWT-based authentication with multiple protection levels:\r\n- Public endpoints for basic operations\r\n- Protected endpoints requiring valid JWT tokens\r\n- Admin endpoints for administrative functions\r\n\r\n## Features\r\n\r\n- Multi-dimensional royalty analytics\r\n- CWR (Collective Works Registration) support\r\n- DDEX integration for music metadata\r\n- Advanced file processing with pattern recognition\r\n- Real-time data processing with queue system"
  version: 2.6.0
  contact:
    name: Royalti.io Support
    email: support@royalti.io
    url: https://royalti.io
  license:
    name: Proprietary
    url: https://royalti.io/terms
servers:
  - url: https://api.royalti.io
    description: Production server
  - url: https://api-dev.royalti.io
    description: Development server
  - url: http://localhost:8084
    description: Local development
security:
  - bearerAuth: []
tags:
  - name: Accounting
    description: Accounting and financial transaction operations
  - name: DDEX
    description: DDEX operations (ERN/MEAD, messages, delivery, providers)
  - name: Label
    description: Label management operations
  - name: Internal Webhooks
    description: Internal system webhooks for royalty processing and downloads
  - name: Payment Webhooks
    description: Payment processor webhook endpoints
  - name: Billing Webhooks
    description: Stripe billing and subscription webhooks
  - name: Infrastructure Webhooks
    description: Cloudflare domain and SSL webhooks
  - name: Distribution Webhooks
    description: Digital distribution platform webhooks (FUGA)
paths:
  /defaultsettings/preview/asset:
    post:
      tags:
        - Preview
      summary: Preview Asset Defaults
      description: |-
        **POST /defaultsettings/preview/asset**

        **Description:**
        Preview how defaults will be applied to an asset, showing original data,
        data with defaults, and which defaults were applied from which sources.

        **Method:**
        `POST`

        **Request Body:**

        | Parameter | Type | Description | Required |
        | --- | --- | --- | --- |
        | labelId | uuid | Label context | No |
        | artistId | uuid | Artist context | No |
        | userId | uuid | User context | No |
        | assetData | object | Partial asset data to test | No |
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                labelId:
                  type: string
                  format: uuid
                artistId:
                  type: string
                  format: uuid
                userId:
                  type: string
                  format: uuid
                assetData:
                  type: object
                  description: Partial asset data to merge with defaults
            example:
              artistId: 660e8400-e29b-41d4-a716-446655440001
              assetData:
                assetName: New Track
                duration: 180
      responses:
        '200':
          description: Asset preview generated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: Asset preview generated successfully
                  data:
                    $ref: '#/components/schemas/PreviewResult'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    PreviewResult:
      type: object
      description: Preview of how defaults would be applied
      properties:
        original:
          type: object
          description: Original input data
        withDefaults:
          type: object
          description: Data with defaults applied
        appliedDefaults:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
                description: Field name that received a default value
              value:
                description: Default value applied
              source:
                type: object
                properties:
                  entityType:
                    type: string
                  entityId:
                    type: string
                    format: uuid
                    nullable: true
                  category:
                    type: string
          description: List of fields that received default values and their sources
  responses:
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                example: error
              message:
                type: string
                example: Invalid request parameters
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                example: error
              message:
                type: string
                example: Unauthorized
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                example: error
              message:
                type: string
                example: Internal server error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        JWT Authorization header using the Bearer scheme. Format: "Bearer
        {token}"

````