---
title: "POST /v2/songs"
method: POST
path: "/v2/songs"
tags: ["SongsV2"]
---

# POST /v2/songs

`POST /v2/songs`

## Request

- Base URL: `https://api.neume.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.neume.io/v2/songs`
- Auth: none declared

## Request body

- CreateSongDto
  - `prompt` string, required
  - `lyricId` string
  - `quality` 'high' | 'low'
  - `visibility` 'private' | 'unlisted'
  - `voiceId` string

## Response `201`

- ListSongDto
  - `data` ListSongItemDto[], required: List of songs
    - `reaction` 'LIKE' | 'DISLIKE': User's reaction to the song
    - `songId` string, required: Song ID
    - `title` string, required: Song title
    - `image` string, required: Song image URL
    - `user` SongUser, required
      - `userId` string, required: User ID
      - `publicName` string, required: User public name
      - `firstName` string, required: User first name
      - `lastName` string, required: User last name
    - `stems` StemDto[], required: Stems
      - `songStemId` string, required: Stem ID
      - `stemType` string, required: Stem type
    - `isExplicit` boolean, required: If the song uses explicit language
    - `visibility` string, required: Song visibility status
    - `status` string, required: Song status
    - `ownership` string, required: Who owns the song
    - `kind` string, required: The kind of song
    - `playCount` number, required: Number of times the song has been played
    - `createdAt` string, date-time, required: Song creation date
    - `model` 'free' | 'pro': Generation model tier
  - `pagination` PaginationDto, required
    - `page` number, required: Current page number
    - `limit` number, required: Items per page
    - `total` number, required: Total number of items

---

[API](https://skmtc.dev/neume/apis/neume-api.md) · [All operations](https://skmtc.dev/neume/apis/neume-api/llms.txt) · [OpenAPI document](https://skmtc.dev/neume/apis/neume-api/revisions/ddfaa546b0be?raw)
