---
title: "POST /api/comments/{entryType}-comments"
method: POST
path: "/api/comments/{entryType}-comments"
tags: ["CommentApi"]
---

# POST /api/comments/{entryType}-comments

`POST /api/comments/{entryType}-comments`

## Request

- Base URL: `https://vocadb.net` (the document declares no server; this is the origin it was published from)
- URL: `https://vocadb.net/api/comments/{entryType}-comments`
- Auth: none declared
- TypeScript: <https://skmtc.dev/vocadb/apis/vocadbweb/docs/api/comments/:entryType-comments/post.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `entryType` 'Undefined' | 'Album' | 'Artist' | 'DiscussionTopic' | 'PV' | 'ReleaseEvent' | 'ReleaseEventSeries' | 'Song' | 'SongList' | 'Tag' | 'User' | 'Venue', required

## Request body

- CommentForApiContract
  - `author` UserForApiContract
    - `active` boolean
    - `groupId` 'Nothing' | 'Limited' | 'Regular' | 'Trusted' | 'Moderator' | 'Admin'
    - `knownLanguages` UserKnownLanguageContract[], nullable
      - `cultureCode` string, nullable
      - `proficiency` 'Nothing' | 'Basics' | 'Intermediate' | 'Advanced' | 'Native'
    - `mainPicture` EntryThumbForApiContract
      - `mime` string, nullable
      - `name` string, nullable
      - `urlOriginal` string, nullable
      - `urlSmallThumb` string, nullable
      - `urlThumb` string, nullable
      - `urlTinyThumb` string, nullable
    - `memberSince` string, date-time
    - `oldUsernames` OldUsernameContract[], nullable
      - `date` string, date-time
      - `oldName` string, nullable
    - `verifiedArtist` boolean
    - `id` integer
    - `name` string, nullable
  - `authorName` string, nullable
  - `created` string, date-time
  - `entry` EntryForApiContract
    - `activityDate` string, date-time, nullable
    - `additionalNames` string, nullable
    - `artistString` string, nullable
    - `artistType` 'Unknown' | 'Circle' | 'Label' | 'Producer' | 'Animator' | 'Illustrator' | 'Lyricist' | 'Vocaloid' | 'UTAU' | 'CeVIO' | 'OtherVoiceSynthesizer' | 'OtherVocalist' | 'OtherGroup' | 'OtherIndividual' | 'Utaite' | 'Band' | 'Vocalist' | 'Character' | 'SynthesizerV' | 'CoverArtist' | 'NEUTRINO' | 'VoiSona' | 'NewType' | 'Voiceroid' | 'Instrumentalist' | 'Designer' | 'VOICEVOX' | 'ACEVirtualSinger' | 'AIVOICE'
    - `createDate` string, date-time
    - `defaultName` string, nullable
    - `defaultNameLanguage` 'Unspecified' | 'Japanese' | 'Romaji' | 'English'
    - `description` string, nullable
    - `discType` 'Unknown' | 'Album' | 'Single' | 'EP' | 'SplitAlbum' | 'Compilation' | 'Video' | 'Artbook' | 'Game' | 'Fanmade' | 'Instrumental' | 'Other' | 'Drama'
    - `entryType` 'Undefined' | 'Album' | 'Artist' | 'DiscussionTopic' | 'PV' | 'ReleaseEvent' | 'ReleaseEventSeries' | 'Song' | 'SongList' | 'Tag' | 'User' | 'Venue'
    - `eventCategory` 'Unspecified' | 'AlbumRelease' | 'Anniversary' | 'Club' | 'Concert' | 'Contest' | 'Convention' | 'Other' | 'Festival'
    - `id` integer
    - `mainPicture` EntryThumbForApiContract
      - `mime` string, nullable
      - `name` string, nullable
      - `urlOriginal` string, nullable
      - `urlSmallThumb` string, nullable
      - `urlThumb` string, nullable
      - `urlTinyThumb` string, nullable
    - `name` string, nullable
    - `names` LocalizedStringContract[], nullable
      - `language` 'Unspecified' | 'Japanese' | 'Romaji' | 'English'
      - `value` string, nullable
    - `pvs` PVContract[], nullable
      - `author` string, nullable
      - `createdBy` integer, nullable
      - `description` string, nullable
      - `disabled` boolean
      - `extendedMetadata` PVExtendedMetadata
        - `json` string, nullable
      - `id` integer
      - `length` integer
      - `name` string, nullable
      - `publishDate` string, date-time, nullable
      - `pvId` string, nullable
      - `service` 'NicoNicoDouga' | 'Youtube' | 'SoundCloud' | 'Vimeo' | 'Piapro' | 'Bilibili' | 'File' | 'LocalFile' | 'Creofuga' | 'Bandcamp'
      - `pvType` 'Original' | 'Reprint' | 'Other'
      - `thumbUrl` string, nullable
      - `url` string, nullable
    - `songListFeaturedCategory` 'Nothing' | 'Concerts' | 'VocaloidRanking' | 'Pools' | 'Other'
    - `songType` 'Unspecified' | 'Original' | 'Remaster' | 'Remix' | 'Cover' | 'Arrangement' | 'Instrumental' | 'Mashup' | 'MusicPV' | 'DramaPV' | 'Live' | 'Illustration' | 'Other' | 'Rearrangement' | 'ShortVersion'
    - `status` 'Draft' | 'Finished' | 'Approved' | 'Locked'
    - `releaseEventSeriesName` string, nullable
    - `tagCategoryName` string, nullable
    - `tags` TagUsageForApiContract[], nullable
      - `count` integer
      - `tag` TagBaseContract
        - `additionalNames` string, nullable
        - `categoryName` string, nullable
        - `id` integer
        - `name` string, nullable
        - `urlSlug` string, nullable
    - `urlSlug` string, nullable
    - `version` integer
    - `webLinks` ArchivedWebLinkContract[], nullable
      - `category` 'Official' | 'Commercial' | 'Reference' | 'Other'
      - `description` string, nullable
      - `disabled` boolean
      - `url` string, nullable
  - `id` integer
  - `message` string, nullable

## Response `200`

Success

- CommentForApiContract
  - `author` UserForApiContract
    - `active` boolean
    - `groupId` 'Nothing' | 'Limited' | 'Regular' | 'Trusted' | 'Moderator' | 'Admin'
    - `knownLanguages` UserKnownLanguageContract[], nullable
      - `cultureCode` string, nullable
      - `proficiency` 'Nothing' | 'Basics' | 'Intermediate' | 'Advanced' | 'Native'
    - `mainPicture` EntryThumbForApiContract
      - `mime` string, nullable
      - `name` string, nullable
      - `urlOriginal` string, nullable
      - `urlSmallThumb` string, nullable
      - `urlThumb` string, nullable
      - `urlTinyThumb` string, nullable
    - `memberSince` string, date-time
    - `oldUsernames` OldUsernameContract[], nullable
      - `date` string, date-time
      - `oldName` string, nullable
    - `verifiedArtist` boolean
    - `id` integer
    - `name` string, nullable
  - `authorName` string, nullable
  - `created` string, date-time
  - `entry` EntryForApiContract
    - `activityDate` string, date-time, nullable
    - `additionalNames` string, nullable
    - `artistString` string, nullable
    - `artistType` 'Unknown' | 'Circle' | 'Label' | 'Producer' | 'Animator' | 'Illustrator' | 'Lyricist' | 'Vocaloid' | 'UTAU' | 'CeVIO' | 'OtherVoiceSynthesizer' | 'OtherVocalist' | 'OtherGroup' | 'OtherIndividual' | 'Utaite' | 'Band' | 'Vocalist' | 'Character' | 'SynthesizerV' | 'CoverArtist' | 'NEUTRINO' | 'VoiSona' | 'NewType' | 'Voiceroid' | 'Instrumentalist' | 'Designer' | 'VOICEVOX' | 'ACEVirtualSinger' | 'AIVOICE'
    - `createDate` string, date-time
    - `defaultName` string, nullable
    - `defaultNameLanguage` 'Unspecified' | 'Japanese' | 'Romaji' | 'English'
    - `description` string, nullable
    - `discType` 'Unknown' | 'Album' | 'Single' | 'EP' | 'SplitAlbum' | 'Compilation' | 'Video' | 'Artbook' | 'Game' | 'Fanmade' | 'Instrumental' | 'Other' | 'Drama'
    - `entryType` 'Undefined' | 'Album' | 'Artist' | 'DiscussionTopic' | 'PV' | 'ReleaseEvent' | 'ReleaseEventSeries' | 'Song' | 'SongList' | 'Tag' | 'User' | 'Venue'
    - `eventCategory` 'Unspecified' | 'AlbumRelease' | 'Anniversary' | 'Club' | 'Concert' | 'Contest' | 'Convention' | 'Other' | 'Festival'
    - `id` integer
    - `mainPicture` EntryThumbForApiContract
      - `mime` string, nullable
      - `name` string, nullable
      - `urlOriginal` string, nullable
      - `urlSmallThumb` string, nullable
      - `urlThumb` string, nullable
      - `urlTinyThumb` string, nullable
    - `name` string, nullable
    - `names` LocalizedStringContract[], nullable
      - `language` 'Unspecified' | 'Japanese' | 'Romaji' | 'English'
      - `value` string, nullable
    - `pvs` PVContract[], nullable
      - `author` string, nullable
      - `createdBy` integer, nullable
      - `description` string, nullable
      - `disabled` boolean
      - `extendedMetadata` PVExtendedMetadata
        - `json` string, nullable
      - `id` integer
      - `length` integer
      - `name` string, nullable
      - `publishDate` string, date-time, nullable
      - `pvId` string, nullable
      - `service` 'NicoNicoDouga' | 'Youtube' | 'SoundCloud' | 'Vimeo' | 'Piapro' | 'Bilibili' | 'File' | 'LocalFile' | 'Creofuga' | 'Bandcamp'
      - `pvType` 'Original' | 'Reprint' | 'Other'
      - `thumbUrl` string, nullable
      - `url` string, nullable
    - `songListFeaturedCategory` 'Nothing' | 'Concerts' | 'VocaloidRanking' | 'Pools' | 'Other'
    - `songType` 'Unspecified' | 'Original' | 'Remaster' | 'Remix' | 'Cover' | 'Arrangement' | 'Instrumental' | 'Mashup' | 'MusicPV' | 'DramaPV' | 'Live' | 'Illustration' | 'Other' | 'Rearrangement' | 'ShortVersion'
    - `status` 'Draft' | 'Finished' | 'Approved' | 'Locked'
    - `releaseEventSeriesName` string, nullable
    - `tagCategoryName` string, nullable
    - `tags` TagUsageForApiContract[], nullable
      - `count` integer
      - `tag` TagBaseContract
        - `additionalNames` string, nullable
        - `categoryName` string, nullable
        - `id` integer
        - `name` string, nullable
        - `urlSlug` string, nullable
    - `urlSlug` string, nullable
    - `version` integer
    - `webLinks` ArchivedWebLinkContract[], nullable
      - `category` 'Official' | 'Commercial' | 'Reference' | 'Other'
      - `description` string, nullable
      - `disabled` boolean
      - `url` string, nullable
  - `id` integer
  - `message` string, nullable

## Changes

- **2026-02-08** `62700309c8a8`: 7 info
  - added the new optional request property `entry/pvs/items/description` (media type: application/json-patch+json)
  - added the new optional request property `entry/pvs/items/description` (media type: application/json)
  - added the new optional request property `entry/pvs/items/description` (media type: text/json)
  - added the new optional request property `entry/pvs/items/description` (media type: application/*+json)
  - …3 more
- **2024-05-28** `b15913297230`: 24 warning, 32 info
  - added the new `ACEVirtualSinger` enum value to the `entry/artistType` response property for the response status `200` (media type: text/plain)
  - added the new `ACEVirtualSinger` enum value to the `entry/artistType` response property for the response status `200` (media type: application/json)
  - added the new `ACEVirtualSinger` enum value to the `entry/artistType` response property for the response status `200` (media type: text/json)
  - added the new `AIVOICE` enum value to the `entry/artistType` response property for the response status `200` (media type: text/plain)
  - …52 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/vocadb/apis/vocadbweb/changes/api/comments/:entryType-comments/post.md)

---

[API](https://skmtc.dev/vocadb/apis/vocadbweb.md) - [All operations](https://skmtc.dev/vocadb/apis/vocadbweb/llms.txt) - [OpenAPI document](https://skmtc.dev/vocadb/apis/vocadbweb/revisions/d1328dfaa36f?raw)
