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

# Create media



## OpenAPI

````yaml /openapi.json post /media
openapi: 3.1.0
info:
  title: Youka REST API
  version: v1
  description: REST API for project-based karaoke creation, styling, media, and exports.
servers:
  - url: https://api.youka.io/api/v1
    description: Production
  - url: http://localhost:3003/api/v1
    description: Local development
security:
  - bearerAuth: []
tags:
  - name: Account
    description: Inspect the API key's account identity.
  - name: Uploads
    description: Upload source audio or video before creating a project.
  - name: Credits
    description: Inspect available credit balance.
  - name: Billing
    description: Create checkout sessions and manage billing.
  - name: Projects
    description: Create projects and read the long-lived project state.
  - name: Tasks
    description: Poll async task progress until it reaches a terminal state.
  - name: Exports
    description: Create exports and fetch fresh download URLs.
  - name: Presets
    description: Manage reusable karaoke styling presets.
  - name: Media
    description: Manage uploaded reusable media.
  - name: Project Settings
    description: Read and update a project's active settings.
paths:
  /media:
    post:
      tags:
        - Media
      summary: Create media
      operationId: createMedia
      parameters:
        - in: header
          name: Idempotency-Key
          required: false
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMediaRequest'
      responses:
        '200':
          description: Media created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Media'
components:
  schemas:
    CreateMediaRequest:
      $schema: https://json-schema.org/draft/2020-12/schema
      type: object
      properties:
        inputFileId:
          type: string
        type:
          type: string
          enum:
            - video
            - image
            - logo
            - intro-video
            - outro-video
      required:
        - inputFileId
        - type
      additionalProperties: false
    Media:
      $schema: https://json-schema.org/draft/2020-12/schema
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
            - video
            - image
            - logo
            - intro-video
            - outro-video
        url:
          type: string
          format: uri
        previewUrl:
          anyOf:
            - type: string
              format: uri
            - type: 'null'
        status:
          type: string
          enum:
            - processing
            - ready
            - failed
        error:
          anyOf:
            - type: string
            - type: 'null'
        width:
          type: number
        height:
          type: number
        createdAt:
          type: string
        updatedAt:
          type: string
      required:
        - id
        - type
        - url
        - status
        - error
        - width
        - height
        - createdAt
        - updatedAt
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key

````