{"note":"OpenAPI conversion -- returning structured metadata","name":"vocadb-net","description":"VocaDbWeb","version":"1.0","base_url":"","endpoints":134,"raw":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api VocaDbWeb\n@version 1.0\n@endpoints 134\n@hint download_for_search\n@toc api(134)\n\n@endpoint GET /api/activityEntries\n@optional {before: str(date-time), since: str(date-time), userId: int(int32), editEvent: str, entryType: str, maxResults: int(int32)=50, getTotalCount: bool=false, fields: str, entryFields: str, lang: str, sortRule: str}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint DELETE /api/albums/{id}\n@required {id: int(int32)}\n@optional {notes: str=}\n@returns(200) Success\n\n@endpoint GET /api/albums/{id}\n@required {id: int(int32)}\n@optional {fields: str, songFields: str, lang: str}\n@returns(200) {additionalNames: str?, artists: [map]?, artistString: str?, barcode: str?, catalogNumber: str?, createDate: str(date-time), defaultName: str?, defaultNameLanguage: str, deleted: bool, description: str?, discs: [map]?, discType: str, id: int(int32), identifiers: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, mergedTo: int(int32), name: str?, names: [map]?, pvs: [map]?, ratingAverage: num(double), ratingCount: int(int32), releaseDate: map{day: int(int32)?, isEmpty: bool, month: int(int32)?, year: int(int32)?}, releaseEvent: map{additionalNames: str?, artists: [map]?, category: str, date: str(date-time)?, description: str?, endDate: str(date-time)?, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, name: str?, names: [map]?, pvs: [map]?, series: map{additionalNames: str?, category: str, deleted: bool, description: str?, id: int(int32), name: str?, pictureMime: str?, status: str, urlSlug: str?, version: int(int32), webLinks: [map]?}, seriesId: int(int32)?, seriesNumber: int(int32), seriesSuffix: str?, songList: map{featuredCategory: str, id: int(int32), name: str?}, status: str, tags: [map]?, urlSlug: str?, venue: map{additionalNames: str?, address: str?, addressCountryCode: str?, coordinates: map{formatted: str?, hasValue: bool, latitude: num(double)?, longitude: num(double)?}, deleted: bool, description: str?, events: [map]?, id: int(int32), name: str?, names: [map]?, status: str, version: int(int32), webLinks: [map]?}, venueName: str?, version: int(int32), webLinks: [map]?}, releaseEvents: [map]?, status: str, tags: [map]?, tracks: [map]?, version: int(int32), webLinks: [map]?} # Success\n\n@endpoint DELETE /api/albums/comments/{commentId}\n@required {commentId: int(int32)}\n@returns(200) Success\n\n@endpoint POST /api/albums/comments/{commentId}\n@required {commentId: int(int32)}\n@optional {author: map{active: bool, groupId: str, knownLanguages: [map], mainPicture: map, memberSince: str(date-time), oldUsernames: [map], verifiedArtist: bool, id: int(int32), name: str}, authorName: str, created: str(date-time), entry: map{activityDate: str(date-time), additionalNames: str, artistString: str, artistType: str, createDate: str(date-time), defaultName: str, defaultNameLanguage: str, description: str, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map, name: str, names: [map], pvs: [map], songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str, tagCategoryName: str, tags: [map], urlSlug: str, version: int(int32), webLinks: [map]}, id: int(int32), message: str}\n@returns(200) Success\n\n@endpoint GET /api/albums/{id}/comments\n@required {id: int(int32)}\n@returns(200) Success\n\n@endpoint POST /api/albums/{id}/comments\n@required {id: int(int32)}\n@optional {author: map{active: bool, groupId: str, knownLanguages: [map], mainPicture: map, memberSince: str(date-time), oldUsernames: [map], verifiedArtist: bool, id: int(int32), name: str}, authorName: str, created: str(date-time), entry: map{activityDate: str(date-time), additionalNames: str, artistString: str, artistType: str, createDate: str(date-time), defaultName: str, defaultNameLanguage: str, description: str, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map, name: str, names: [map], pvs: [map], songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str, tagCategoryName: str, tags: [map], urlSlug: str, version: int(int32), webLinks: [map]}, id: int(int32), message: str}\n@returns(200) {author: map{active: bool, groupId: str, knownLanguages: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, memberSince: str(date-time), oldUsernames: [map]?, verifiedArtist: bool, id: int(int32), name: str?}, authorName: str?, created: str(date-time), entry: map{activityDate: str(date-time)?, additionalNames: str?, artistString: str?, artistType: str, createDate: str(date-time), defaultName: str?, defaultNameLanguage: str, description: str?, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, name: str?, names: [map]?, pvs: [map]?, songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str?, tagCategoryName: str?, tags: [map]?, urlSlug: str?, version: int(int32), webLinks: [map]?}, id: int(int32), message: str?} # Success\n\n@endpoint GET /api/albums\n@optional {query: str=, discTypes: str, tagName[]: [str], tagId[]: [int(int32)], childTags: bool=false, artistId[]: [int(int32)], artistParticipationStatus: str, childVoicebanks: bool=false, includeMembers: bool=false, barcode: str, status: str, releaseDateAfter: str(date-time), releaseDateBefore: str(date-time), advancedFilters: [map], start: int(int32)=0, maxResults: int(int32)=10, getTotalCount: bool=false, sort: str, preferAccurateMatches: bool=false, deleted: bool=false, nameMatchMode: str, fields: str, lang: str}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint GET /api/albums/names\n@optional {query: str=, nameMatchMode: str, maxResults: int(int32)=15}\n@returns(200) Success\n\n@endpoint GET /api/albums/new\n@optional {languagePreference: str, fields: str}\n@returns(200) Success\n\n@endpoint GET /api/albums/{id}/reviews\n@required {id: int(int32)}\n@optional {languageCode: str}\n@returns(200) Success\n\n@endpoint POST /api/albums/{id}/reviews\n@required {id: int(int32)}\n@optional {id: int(int32), albumId: int(int32), date: str(date-time), languageCode: str, text: str, title: str, user: map{active: bool, groupId: str, knownLanguages: [map], mainPicture: map, memberSince: str(date-time), oldUsernames: [map], verifiedArtist: bool, id: int(int32), name: str}}\n@returns(200) {id: int(int32), albumId: int(int32), date: str(date-time), languageCode: str?, text: str?, title: str?, user: map{active: bool, groupId: str, knownLanguages: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, memberSince: str(date-time), oldUsernames: [map]?, verifiedArtist: bool, id: int(int32), name: str?}} # Success\n\n@endpoint GET /api/albums/{id}/user-collections\n@required {id: int(int32)}\n@optional {languagePreference: str}\n@returns(200) Success\n\n@endpoint DELETE /api/albums/{id}/reviews/{reviewId}\n@required {reviewId: int(int32), id: str}\n@returns(200) Success\n\n@endpoint GET /api/albums/top\n@optional {ignoreIds[]: [int(int32)], languagePreference: str, fields: str}\n@returns(200) Success\n\n@endpoint GET /api/albums/{id}/tracks\n@required {id: int(int32)}\n@optional {fields: str, lang: str}\n@returns(200) Success\n\n@endpoint GET /api/albums/{id}/tracks/fields\n@required {id: int(int32)}\n@optional {field[]: [str], discNumber: int(int32), lang: str}\n@returns(200) Success\n\n@endpoint GET /api/albums/{id}/related\n@required {id: int(int32)}\n@optional {fields: str, lang: str}\n@returns(200) {any: bool, artistMatches: [map]?, likeMatches: [map]?, tagMatches: [map]?} # Success\n\n@endpoint DELETE /api/artists/{id}\n@required {id: int(int32)}\n@optional {notes: str=}\n@returns(200) Success\n\n@endpoint GET /api/artists/{id}\n@required {id: int(int32)}\n@optional {fields: str, relations: str, lang: str}\n@returns(200) {additionalNames: str?, artistLinks: [map]?, artistLinksReverse: [map]?, artistType: str, baseVoicebank: map{additionalNames: str?, artistType: str, deleted: bool, id: int(int32), name: str?, pictureMime: str?, releaseDate: str(date-time)?, status: str, version: int(int32)}, createDate: str(date-time), defaultName: str?, defaultNameLanguage: str, deleted: bool, description: str?, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, mergedTo: int(int32), name: str?, names: [map]?, pictureMime: str?, relations: map{latestAlbums: [map]?, latestEvents: [map]?, latestSongs: [map]?, popularAlbums: [map]?, popularSongs: [map]?}, releaseDate: str(date-time)?, status: str, tags: [map]?, version: int(int32), webLinks: [map]?} # Success\n\n@endpoint DELETE /api/artists/comments/{commentId}\n@required {commentId: int(int32)}\n@returns(200) Success\n\n@endpoint POST /api/artists/comments/{commentId}\n@required {commentId: int(int32)}\n@optional {author: map{active: bool, groupId: str, knownLanguages: [map], mainPicture: map, memberSince: str(date-time), oldUsernames: [map], verifiedArtist: bool, id: int(int32), name: str}, authorName: str, created: str(date-time), entry: map{activityDate: str(date-time), additionalNames: str, artistString: str, artistType: str, createDate: str(date-time), defaultName: str, defaultNameLanguage: str, description: str, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map, name: str, names: [map], pvs: [map], songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str, tagCategoryName: str, tags: [map], urlSlug: str, version: int(int32), webLinks: [map]}, id: int(int32), message: str}\n@returns(200) Success\n\n@endpoint GET /api/artists/{id}/comments\n@required {id: int(int32)}\n@returns(200) Success\n\n@endpoint POST /api/artists/{id}/comments\n@required {id: int(int32)}\n@optional {author: map{active: bool, groupId: str, knownLanguages: [map], mainPicture: map, memberSince: str(date-time), oldUsernames: [map], verifiedArtist: bool, id: int(int32), name: str}, authorName: str, created: str(date-time), entry: map{activityDate: str(date-time), additionalNames: str, artistString: str, artistType: str, createDate: str(date-time), defaultName: str, defaultNameLanguage: str, description: str, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map, name: str, names: [map], pvs: [map], songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str, tagCategoryName: str, tags: [map], urlSlug: str, version: int(int32), webLinks: [map]}, id: int(int32), message: str}\n@returns(200) {author: map{active: bool, groupId: str, knownLanguages: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, memberSince: str(date-time), oldUsernames: [map]?, verifiedArtist: bool, id: int(int32), name: str?}, authorName: str?, created: str(date-time), entry: map{activityDate: str(date-time)?, additionalNames: str?, artistString: str?, artistType: str, createDate: str(date-time), defaultName: str?, defaultNameLanguage: str, description: str?, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, name: str?, names: [map]?, pvs: [map]?, songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str?, tagCategoryName: str?, tags: [map]?, urlSlug: str?, version: int(int32), webLinks: [map]?}, id: int(int32), message: str?} # Success\n\n@endpoint GET /api/artists\n@optional {query: str=, artistTypes: str, allowBaseVoicebanks: bool=true, tagName[]: [str], tagId[]: [int(int32)], childTags: bool=false, followedByUserId: int(int32), status: str, advancedFilters: [map], start: int(int32)=0, maxResults: int(int32)=10, getTotalCount: bool=false, sort: str, preferAccurateMatches: bool=false, nameMatchMode: str, fields: str, lang: str, languages[]: [str]}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint GET /api/artists/names\n@optional {query: str=, nameMatchMode: str, maxResults: int(int32)=15}\n@returns(200) Success\n\n@endpoint DELETE /api/comments/{entryType}-comments/{commentId}\n@required {entryType: str, commentId: int(int32)}\n@returns(200) Success\n\n@endpoint POST /api/comments/{entryType}-comments/{commentId}\n@required {entryType: str, commentId: int(int32)}\n@optional {author: map{active: bool, groupId: str, knownLanguages: [map], mainPicture: map, memberSince: str(date-time), oldUsernames: [map], verifiedArtist: bool, id: int(int32), name: str}, authorName: str, created: str(date-time), entry: map{activityDate: str(date-time), additionalNames: str, artistString: str, artistType: str, createDate: str(date-time), defaultName: str, defaultNameLanguage: str, description: str, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map, name: str, names: [map], pvs: [map], songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str, tagCategoryName: str, tags: [map], urlSlug: str, version: int(int32), webLinks: [map]}, id: int(int32), message: str}\n@returns(200) Success\n\n@endpoint GET /api/comments/{entryType}-comments\n@required {entryType: str}\n@optional {entryId: int(int32)}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint POST /api/comments/{entryType}-comments\n@required {entryType: str}\n@optional {author: map{active: bool, groupId: str, knownLanguages: [map], mainPicture: map, memberSince: str(date-time), oldUsernames: [map], verifiedArtist: bool, id: int(int32), name: str}, authorName: str, created: str(date-time), entry: map{activityDate: str(date-time), additionalNames: str, artistString: str, artistType: str, createDate: str(date-time), defaultName: str, defaultNameLanguage: str, description: str, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map, name: str, names: [map], pvs: [map], songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str, tagCategoryName: str, tags: [map], urlSlug: str, version: int(int32), webLinks: [map]}, id: int(int32), message: str}\n@returns(200) {author: map{active: bool, groupId: str, knownLanguages: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, memberSince: str(date-time), oldUsernames: [map]?, verifiedArtist: bool, id: int(int32), name: str?}, authorName: str?, created: str(date-time), entry: map{activityDate: str(date-time)?, additionalNames: str?, artistString: str?, artistType: str, createDate: str(date-time), defaultName: str?, defaultNameLanguage: str, description: str?, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, name: str?, names: [map]?, pvs: [map]?, songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str?, tagCategoryName: str?, tags: [map]?, urlSlug: str?, version: int(int32), webLinks: [map]?}, id: int(int32), message: str?} # Success\n\n@endpoint GET /api/comments/{entryType}-comments/{entryId}/locked\n@required {entryType: str, entryId: int(int32)}\n@returns(200) Success\n\n@endpoint POST /api/comments/{entryType}-comments/{entryId}/locked\n@required {entryType: str, entryId: int(int32)}\n@returns(200) Success\n\n@endpoint GET /api/comments\n@optional {before: str(date-time), since: str(date-time), userId: int(int32), entryType: str, maxResults: int(int32)=50, getTotalCount: bool=false, fields: str, entryFields: str, lang: str, sortRule: str}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint DELETE /api/discussions/comments/{commentId}\n@required {commentId: int(int32)}\n@returns(200) Success\n\n@endpoint POST /api/discussions/comments/{commentId}\n@required {commentId: int(int32)}\n@optional {author: map{active: bool, groupId: str, knownLanguages: [map], mainPicture: map, memberSince: str(date-time), oldUsernames: [map], verifiedArtist: bool, id: int(int32), name: str}, authorName: str, created: str(date-time), entry: map{activityDate: str(date-time), additionalNames: str, artistString: str, artistType: str, createDate: str(date-time), defaultName: str, defaultNameLanguage: str, description: str, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map, name: str, names: [map], pvs: [map], songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str, tagCategoryName: str, tags: [map], urlSlug: str, version: int(int32), webLinks: [map]}, id: int(int32), message: str}\n@returns(200) Success\n\n@endpoint DELETE /api/discussions/topics/{topicId}\n@required {topicId: int(int32)}\n@returns(200) Success\n\n@endpoint GET /api/discussions/topics/{topicId}\n@required {topicId: int(int32)}\n@optional {fields: str}\n@returns(200) {author: map{active: bool, groupId: str, knownLanguages: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, memberSince: str(date-time), oldUsernames: [map]?, verifiedArtist: bool, id: int(int32), name: str?}, commentCount: int(int32), comments: [map]?, content: str?, created: str(date-time), folderId: int(int32), id: int(int32), lastComment: map{author: map{active: bool, groupId: str, knownLanguages: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, memberSince: str(date-time), oldUsernames: [map]?, verifiedArtist: bool, id: int(int32), name: str?}, authorName: str?, created: str(date-time), entry: map{activityDate: str(date-time)?, additionalNames: str?, artistString: str?, artistType: str, createDate: str(date-time), defaultName: str?, defaultNameLanguage: str, description: str?, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, name: str?, names: [map]?, pvs: [map]?, songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str?, tagCategoryName: str?, tags: [map]?, urlSlug: str?, version: int(int32), webLinks: [map]?}, id: int(int32), message: str?}, locked: bool, name: str?} # Success\n\n@endpoint POST /api/discussions/topics/{topicId}\n@required {topicId: int(int32)}\n@optional {author: map{active: bool, groupId: str, knownLanguages: [map], mainPicture: map, memberSince: str(date-time), oldUsernames: [map], verifiedArtist: bool, id: int(int32), name: str}, commentCount: int(int32), comments: [map{author: map, authorName: str, created: str(date-time), entry: map, id: int(int32), message: str}], content: str, created: str(date-time), folderId: int(int32), id: int(int32), lastComment: map{author: map, authorName: str, created: str(date-time), entry: map, id: int(int32), message: str}, locked: bool, name: str}\n@returns(200) Success\n\n@endpoint GET /api/discussions/folders\n@optional {fields: str}\n@returns(200) Success\n\n@endpoint POST /api/discussions/folders\n@optional {description: str, id: int(int32), lastTopicAuthor: map{active: bool, groupId: str, knownLanguages: [map], mainPicture: map, memberSince: str(date-time), oldUsernames: [map], verifiedArtist: bool, id: int(int32), name: str}, lastTopicDate: str(date-time), name: str, topicCount: int(int32)}\n@returns(200) {description: str?, id: int(int32), lastTopicAuthor: map{active: bool, groupId: str, knownLanguages: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, memberSince: str(date-time), oldUsernames: [map]?, verifiedArtist: bool, id: int(int32), name: str?}, lastTopicDate: str(date-time)?, name: str?, topicCount: int(int32)} # Success\n\n@endpoint GET /api/discussions/topics\n@optional {folderId: int(int32), start: int(int32)=0, maxResults: int(int32)=10, getTotalCount: bool=false, sort: str, fields: str}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint GET /api/discussions/folders/{folderId}/topics\n@required {folderId: int(int32)}\n@optional {fields: str}\n@returns(200) Success\n\n@endpoint POST /api/discussions/folders/{folderId}/topics\n@required {folderId: int(int32)}\n@optional {author: map{active: bool, groupId: str, knownLanguages: [map], mainPicture: map, memberSince: str(date-time), oldUsernames: [map], verifiedArtist: bool, id: int(int32), name: str}, commentCount: int(int32), comments: [map{author: map, authorName: str, created: str(date-time), entry: map, id: int(int32), message: str}], content: str, created: str(date-time), folderId: int(int32), id: int(int32), lastComment: map{author: map, authorName: str, created: str(date-time), entry: map, id: int(int32), message: str}, locked: bool, name: str}\n@returns(200) {author: map{active: bool, groupId: str, knownLanguages: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, memberSince: str(date-time), oldUsernames: [map]?, verifiedArtist: bool, id: int(int32), name: str?}, commentCount: int(int32), comments: [map]?, content: str?, created: str(date-time), folderId: int(int32), id: int(int32), lastComment: map{author: map{active: bool, groupId: str, knownLanguages: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, memberSince: str(date-time), oldUsernames: [map]?, verifiedArtist: bool, id: int(int32), name: str?}, authorName: str?, created: str(date-time), entry: map{activityDate: str(date-time)?, additionalNames: str?, artistString: str?, artistType: str, createDate: str(date-time), defaultName: str?, defaultNameLanguage: str, description: str?, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, name: str?, names: [map]?, pvs: [map]?, songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str?, tagCategoryName: str?, tags: [map]?, urlSlug: str?, version: int(int32), webLinks: [map]?}, id: int(int32), message: str?}, locked: bool, name: str?} # Success\n\n@endpoint POST /api/discussions/topics/{topicId}/comments\n@required {topicId: int(int32)}\n@optional {author: map{active: bool, groupId: str, knownLanguages: [map], mainPicture: map, memberSince: str(date-time), oldUsernames: [map], verifiedArtist: bool, id: int(int32), name: str}, authorName: str, created: str(date-time), entry: map{activityDate: str(date-time), additionalNames: str, artistString: str, artistType: str, createDate: str(date-time), defaultName: str, defaultNameLanguage: str, description: str, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map, name: str, names: [map], pvs: [map], songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str, tagCategoryName: str, tags: [map], urlSlug: str, version: int(int32), webLinks: [map]}, id: int(int32), message: str}\n@returns(200) {author: map{active: bool, groupId: str, knownLanguages: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, memberSince: str(date-time), oldUsernames: [map]?, verifiedArtist: bool, id: int(int32), name: str?}, authorName: str?, created: str(date-time), entry: map{activityDate: str(date-time)?, additionalNames: str?, artistString: str?, artistType: str, createDate: str(date-time), defaultName: str?, defaultNameLanguage: str, description: str?, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, name: str?, names: [map]?, pvs: [map]?, songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str?, tagCategoryName: str?, tags: [map]?, urlSlug: str?, version: int(int32), webLinks: [map]?}, id: int(int32), message: str?} # Success\n\n@endpoint GET /api/entries\n@optional {query: str=, tagName[]: [str], tagId[]: [int(int32)], childTags: bool=false, entryTypes: str, status: str, start: int(int32)=0, maxResults: int(int32)=10, getTotalCount: bool=false, sort: str, nameMatchMode: str, fields: str, lang: str}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint GET /api/entries/random\n@optional {entryType: str}\n@returns(200) {entryType: str, id: int(int32)} # Success\n\n@endpoint GET /api/entries/names\n@optional {query: str=, nameMatchMode: str, maxResults: int(int32)=10}\n@returns(200) Success\n\n@endpoint GET /api/entry-types/{entryType}/{subType}/tag\n@required {entryType: str, subType: str}\n@optional {fields: str}\n@returns(200) {additionalNames: str?, aliasedTo: map{additionalNames: str?, categoryName: str?, id: int(int32), name: str?, urlSlug: str?}, categoryName: str?, createDate: str(date-time), defaultNameLanguage: str, description: str?, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, name: str?, names: [map]?, parent: map{additionalNames: str?, categoryName: str?, id: int(int32), name: str?, urlSlug: str?}, relatedTags: [map]?, status: str, targets: int(int32), newTargets: [str]?, translatedDescription: map{english: str?, original: str?}, urlSlug: str?, usageCount: int(int32), version: int(int32), webLinks: [map]?} # Success\n\n@endpoint GET /api/pvs/for-songs\n@optional {name: str, author: str, service: str, maxResults: int(int32)=10, getTotalCount: bool=false, lang: str}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint GET /api/pvs/thumbnail\n@optional {pvUrl: str}\n@returns(200) Success\n\n@endpoint DELETE /api/releaseEvents/{id}\n@required {id: int(int32)}\n@optional {notes: str=, hardDelete: bool=false}\n@returns(200) Success\n\n@endpoint GET /api/releaseEvents/{id}\n@required {id: int(int32)}\n@optional {fields: str, lang: str}\n@returns(200) {additionalNames: str?, artists: [map]?, category: str, date: str(date-time)?, description: str?, endDate: str(date-time)?, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, name: str?, names: [map]?, pvs: [map]?, series: map{additionalNames: str?, category: str, deleted: bool, description: str?, id: int(int32), name: str?, pictureMime: str?, status: str, urlSlug: str?, version: int(int32), webLinks: [map]?}, seriesId: int(int32)?, seriesNumber: int(int32), seriesSuffix: str?, songList: map{featuredCategory: str, id: int(int32), name: str?}, status: str, tags: [map]?, urlSlug: str?, venue: map{additionalNames: str?, address: str?, addressCountryCode: str?, coordinates: map{formatted: str?, hasValue: bool, latitude: num(double)?, longitude: num(double)?}, deleted: bool, description: str?, events: [map]?, id: int(int32), name: str?, names: [map]?, status: str, version: int(int32), webLinks: [map]?}, venueName: str?, version: int(int32), webLinks: [map]?} # Success\n\n@endpoint GET /api/releaseEvents/{eventId}/albums\n@required {eventId: int(int32)}\n@optional {fields: str, lang: str}\n@returns(200) Success\n\n@endpoint GET /api/releaseEvents/{eventId}/published-songs\n@required {eventId: int(int32)}\n@optional {fields: str, lang: str}\n@returns(200) Success\n\n@endpoint GET /api/releaseEvents\n@optional {query: str=, nameMatchMode: str, seriesId: int(int32)=0, afterDate: str(date-time), beforeDate: str(date-time), category: str, userCollectionId: int(int32), tagId[]: [int(int32)], childTags: bool=false, artistId[]: [int(int32)], childVoicebanks: bool=false, includeMembers: bool=false, status: str, start: int(int32)=0, maxResults: int(int32)=10, getTotalCount: bool=false, sort: str, fields: str, lang: str, sortDirection: str}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint GET /api/releaseEvents/names\n@optional {query: str=, maxResults: int(int32)=10}\n@returns(200) Success\n\n@endpoint POST /api/releaseEvents/{eventId}/reports\n@required {eventId: int(int32)}\n@optional {reportType: str, notes: str, versionNumber: int(int32)}\n@returns(200) Success\n\n@endpoint DELETE /api/releaseEventSeries/{id}\n@required {id: int(int32)}\n@optional {notes: str=, hardDelete: bool=false}\n@returns(200) Success\n\n@endpoint GET /api/releaseEventSeries/{id}\n@required {id: int(int32)}\n@optional {fields: str, lang: str}\n@returns(200) {additionalNames: str?, category: str, description: str?, events: [map]?, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, name: str?, names: [map]?, status: str, urlSlug: str?, version: int(int32), webLinks: [map]?} # Success\n\n@endpoint GET /api/releaseEventSeries\n@optional {query: str=, fields: str, start: int(int32)=0, maxResults: int(int32)=10, getTotalCount: bool=false, nameMatchMode: str, lang: str}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint GET /api/releaseEventSeries/{id}/for-edit\n@required {id: int(int32)}\n@returns(200) {category: str, defaultNameLanguage: str, deleted: bool, description: str?, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, name: str?, names: [map]?, status: str, updateNotes: str?, webLinks: [map]?} # Success\n\n@endpoint GET /api/resources/{cultureCode}\n@required {cultureCode: str}\n@optional {setNames[]: [str]}\n@returns(200) Success\n\n@endpoint DELETE /api/songs/comments/{commentId}\n@required {commentId: int(int32)}\n@returns(200) Success\n\n@endpoint POST /api/songs/comments/{commentId}\n@required {commentId: int(int32)}\n@optional {author: map{active: bool, groupId: str, knownLanguages: [map], mainPicture: map, memberSince: str(date-time), oldUsernames: [map], verifiedArtist: bool, id: int(int32), name: str}, authorName: str, created: str(date-time), entry: map{activityDate: str(date-time), additionalNames: str, artistString: str, artistType: str, createDate: str(date-time), defaultName: str, defaultNameLanguage: str, description: str, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map, name: str, names: [map], pvs: [map], songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str, tagCategoryName: str, tags: [map], urlSlug: str, version: int(int32), webLinks: [map]}, id: int(int32), message: str}\n@returns(200) Success\n\n@endpoint DELETE /api/songs/{id}\n@required {id: int(int32)}\n@optional {notes: str=}\n@returns(200) Success\n\n@endpoint GET /api/songs/{id}\n@required {id: int(int32)}\n@optional {fields: str, lang: str}\n@returns(200) {additionalNames: str?, albums: [map]?, artists: [map]?, artistString: str?, createDate: str(date-time), defaultName: str?, defaultNameLanguage: str, deleted: bool, favoritedTimes: int(int32), id: int(int32), lengthSeconds: int(int32), lyrics: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, maxMilliBpm: int(int32)?, mergedTo: int(int32), minMilliBpm: int(int32)?, name: str?, names: [map]?, originalVersionId: int(int32), publishDate: str(date-time)?, pvs: [map]?, pvServices: str, ratingScore: int(int32), releaseEvent: map{additionalNames: str?, artists: [map]?, category: str, date: str(date-time)?, description: str?, endDate: str(date-time)?, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, name: str?, names: [map]?, pvs: [map]?, series: map{additionalNames: str?, category: str, deleted: bool, description: str?, id: int(int32), name: str?, pictureMime: str?, status: str, urlSlug: str?, version: int(int32), webLinks: [map]?}, seriesId: int(int32)?, seriesNumber: int(int32), seriesSuffix: str?, songList: map{featuredCategory: str, id: int(int32), name: str?}, status: str, tags: [map]?, urlSlug: str?, venue: map{additionalNames: str?, address: str?, addressCountryCode: str?, coordinates: map{formatted: str?, hasValue: bool, latitude: num(double)?, longitude: num(double)?}, deleted: bool, description: str?, events: [map]?, id: int(int32), name: str?, names: [map]?, status: str, version: int(int32), webLinks: [map]?}, venueName: str?, version: int(int32), webLinks: [map]?}, releaseEvents: [map]?, songType: str, status: str, tags: [map]?, thumbUrl: str?, version: int(int32), webLinks: [map]?, cultureCodes: [str]?} # Success\n\n@endpoint GET /api/songs/{id}/comments\n@required {id: int(int32)}\n@returns(200) Success\n\n@endpoint POST /api/songs/{id}/comments\n@required {id: int(int32)}\n@optional {author: map{active: bool, groupId: str, knownLanguages: [map], mainPicture: map, memberSince: str(date-time), oldUsernames: [map], verifiedArtist: bool, id: int(int32), name: str}, authorName: str, created: str(date-time), entry: map{activityDate: str(date-time), additionalNames: str, artistString: str, artistType: str, createDate: str(date-time), defaultName: str, defaultNameLanguage: str, description: str, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map, name: str, names: [map], pvs: [map], songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str, tagCategoryName: str, tags: [map], urlSlug: str, version: int(int32), webLinks: [map]}, id: int(int32), message: str}\n@returns(200) {author: map{active: bool, groupId: str, knownLanguages: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, memberSince: str(date-time), oldUsernames: [map]?, verifiedArtist: bool, id: int(int32), name: str?}, authorName: str?, created: str(date-time), entry: map{activityDate: str(date-time)?, additionalNames: str?, artistString: str?, artistType: str, createDate: str(date-time), defaultName: str?, defaultNameLanguage: str, description: str?, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, name: str?, names: [map]?, pvs: [map]?, songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str?, tagCategoryName: str?, tags: [map]?, urlSlug: str?, version: int(int32), webLinks: [map]?}, id: int(int32), message: str?} # Success\n\n@endpoint GET /api/songs/{id}/derived\n@required {id: int(int32)}\n@optional {fields: str, lang: str}\n@returns(200) Success\n\n@endpoint GET /api/songs/highlighted\n@optional {languagePreference: str, fields: str}\n@returns(200) Success\n\n@endpoint GET /api/songs/{id}/ratings\n@required {id: int(int32)}\n@optional {userFields: str, lang: str}\n@returns(200) Success\n\n@endpoint POST /api/songs/{id}/ratings\n@required {id: int(int32)}\n@optional {rating: str(Nothing/Dislike/Like/Favorite)}\n@returns(200) Success\n\n@endpoint GET /api/songs/{id}/related\n@required {id: int(int32)}\n@optional {fields: str, lang: str}\n@returns(200) {artistMatches: [map]?, likeMatches: [map]?, tagMatches: [map]?} # Success\n\n@endpoint GET /api/songs\n@optional {query: str=, songTypes: str, afterDate: str(date-time), beforeDate: str(date-time), tagName[]: [str], tagId[]: [int(int32)], childTags: bool=false, unifyTypesAndTags: bool=false, artistId[]: [int(int32)], artistParticipationStatus: str, childVoicebanks: bool=false, includeMembers: bool=false, onlyWithPvs: bool=false, pvServices: str, since: int(int32), minScore: int(int32), userCollectionId: int(int32), releaseEventId: int(int32), parentSongId: int(int32), status: str, advancedFilters: [map], start: int(int32)=0, maxResults: int(int32)=10, getTotalCount: bool=false, sort: str, preferAccurateMatches: bool=false, nameMatchMode: str, fields: str, lang: str, minMilliBpm: int(int32), maxMilliBpm: int(int32), minLength: int(int32), maxLength: int(int32), language: str, languages[]: [str], excludedTagIds[]: [int(int32)]}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint GET /api/songs/lyrics/{lyricsId}\n@required {lyricsId: int(int32)}\n@returns(200) {cultureCodes: [str]?, id: int(int32), source: str?, translationType: str, url: str?, value: str?} # Success\n\n@endpoint GET /api/songs/names\n@optional {query: str=, nameMatchMode: str, maxResults: int(int32)=15}\n@returns(200) Success\n\n@endpoint GET /api/songs/byPv\n@optional {pvService: str, pvId: str, fields: str, lang: str}\n@returns(200) {additionalNames: str?, albums: [map]?, artists: [map]?, artistString: str?, createDate: str(date-time), defaultName: str?, defaultNameLanguage: str, deleted: bool, favoritedTimes: int(int32), id: int(int32), lengthSeconds: int(int32), lyrics: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, maxMilliBpm: int(int32)?, mergedTo: int(int32), minMilliBpm: int(int32)?, name: str?, names: [map]?, originalVersionId: int(int32), publishDate: str(date-time)?, pvs: [map]?, pvServices: str, ratingScore: int(int32), releaseEvent: map{additionalNames: str?, artists: [map]?, category: str, date: str(date-time)?, description: str?, endDate: str(date-time)?, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, name: str?, names: [map]?, pvs: [map]?, series: map{additionalNames: str?, category: str, deleted: bool, description: str?, id: int(int32), name: str?, pictureMime: str?, status: str, urlSlug: str?, version: int(int32), webLinks: [map]?}, seriesId: int(int32)?, seriesNumber: int(int32), seriesSuffix: str?, songList: map{featuredCategory: str, id: int(int32), name: str?}, status: str, tags: [map]?, urlSlug: str?, venue: map{additionalNames: str?, address: str?, addressCountryCode: str?, coordinates: map{formatted: str?, hasValue: bool, latitude: num(double)?, longitude: num(double)?}, deleted: bool, description: str?, events: [map]?, id: int(int32), name: str?, names: [map]?, status: str, version: int(int32), webLinks: [map]?}, venueName: str?, version: int(int32), webLinks: [map]?}, releaseEvents: [map]?, songType: str, status: str, tags: [map]?, thumbUrl: str?, version: int(int32), webLinks: [map]?, cultureCodes: [str]?} # Success\n\n@endpoint GET /api/songs/top-rated\n@optional {durationHours: int(int32), startDate: str(date-time), filterBy: str, vocalist: str, maxResults: int(int32)=25, fields: str, languagePreference: str}\n@returns(200) Success\n\n@endpoint DELETE /api/songLists/{id}\n@required {id: int(int32)}\n@optional {notes: str=, hardDelete: bool=false}\n@returns(200) Success\n\n@endpoint DELETE /api/songLists/comments/{commentId}\n@required {commentId: int(int32)}\n@returns(200) Success\n\n@endpoint POST /api/songLists/comments/{commentId}\n@required {commentId: int(int32)}\n@optional {author: map{active: bool, groupId: str, knownLanguages: [map], mainPicture: map, memberSince: str(date-time), oldUsernames: [map], verifiedArtist: bool, id: int(int32), name: str}, authorName: str, created: str(date-time), entry: map{activityDate: str(date-time), additionalNames: str, artistString: str, artistType: str, createDate: str(date-time), defaultName: str, defaultNameLanguage: str, description: str, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map, name: str, names: [map], pvs: [map], songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str, tagCategoryName: str, tags: [map], urlSlug: str, version: int(int32), webLinks: [map]}, id: int(int32), message: str}\n@returns(200) Success\n\n@endpoint GET /api/songLists/{listId}/comments\n@required {listId: int(int32)}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint POST /api/songLists/{listId}/comments\n@required {listId: int(int32)}\n@optional {author: map{active: bool, groupId: str, knownLanguages: [map], mainPicture: map, memberSince: str(date-time), oldUsernames: [map], verifiedArtist: bool, id: int(int32), name: str}, authorName: str, created: str(date-time), entry: map{activityDate: str(date-time), additionalNames: str, artistString: str, artistType: str, createDate: str(date-time), defaultName: str, defaultNameLanguage: str, description: str, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map, name: str, names: [map], pvs: [map], songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str, tagCategoryName: str, tags: [map], urlSlug: str, version: int(int32), webLinks: [map]}, id: int(int32), message: str}\n@returns(200) {author: map{active: bool, groupId: str, knownLanguages: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, memberSince: str(date-time), oldUsernames: [map]?, verifiedArtist: bool, id: int(int32), name: str?}, authorName: str?, created: str(date-time), entry: map{activityDate: str(date-time)?, additionalNames: str?, artistString: str?, artistType: str, createDate: str(date-time), defaultName: str?, defaultNameLanguage: str, description: str?, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, name: str?, names: [map]?, pvs: [map]?, songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str?, tagCategoryName: str?, tags: [map]?, urlSlug: str?, version: int(int32), webLinks: [map]?}, id: int(int32), message: str?} # Success\n\n@endpoint GET /api/songLists/featured\n@optional {query: str=, tagId[]: [int(int32)], childTags: bool=false, nameMatchMode: str, featuredCategory: str, start: int(int32)=0, maxResults: int(int32)=10, getTotalCount: bool=false, sort: str, fields: str, lang: str}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint GET /api/songLists/featured/names\n@optional {query: str=, nameMatchMode: str, featuredCategory: str, maxResults: int(int32)=10}\n@returns(200) Success\n\n@endpoint GET /api/songLists/{listId}/songs\n@required {listId: int(int32)}\n@optional {query: str=, songTypes: str, pvServices: str, tagId[]: [int(int32)], artistId[]: [int(int32)], childVoicebanks: bool=false, advancedFilters: [map], start: int(int32)=0, maxResults: int(int32)=10, getTotalCount: bool=false, sort: str, nameMatchMode: str, fields: str, lang: str}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint POST /api/songLists\n@optional {deleted: bool, description: str, eventDate: str(date-time), featuredCategory: str(Nothing/Concerts/VocaloidRanking/Pools/Other), id: int(int32), mainPicture: map{mime: str, name: str, urlOriginal: str, urlSmallThumb: str, urlThumb: str, urlTinyThumb: str}, name: str, songLinks: [map{songInListId: int(int32), notes: str, order: int(int32), song: map}], status: str(Draft/Finished/Approved/Locked), updateNotes: str}\n@returns(200) Success\n\n@endpoint DELETE /api/tags/{id}\n@required {id: int(int32)}\n@optional {notes: str=, hardDelete: bool=false}\n@returns(200) Success\n\n@endpoint GET /api/tags/{id}\n@required {id: int(int32)}\n@optional {fields: str, lang: str}\n@returns(200) {additionalNames: str?, aliasedTo: map{additionalNames: str?, categoryName: str?, id: int(int32), name: str?, urlSlug: str?}, categoryName: str?, createDate: str(date-time), defaultNameLanguage: str, description: str?, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, name: str?, names: [map]?, parent: map{additionalNames: str?, categoryName: str?, id: int(int32), name: str?, urlSlug: str?}, relatedTags: [map]?, status: str, targets: int(int32), newTargets: [str]?, translatedDescription: map{english: str?, original: str?}, urlSlug: str?, usageCount: int(int32), version: int(int32), webLinks: [map]?} # Success\n\n@endpoint DELETE /api/tags/comments/{commentId}\n@required {commentId: int(int32)}\n@returns(200) Success\n\n@endpoint POST /api/tags/comments/{commentId}\n@required {commentId: int(int32)}\n@optional {author: map{active: bool, groupId: str, knownLanguages: [map], mainPicture: map, memberSince: str(date-time), oldUsernames: [map], verifiedArtist: bool, id: int(int32), name: str}, authorName: str, created: str(date-time), entry: map{activityDate: str(date-time), additionalNames: str, artistString: str, artistType: str, createDate: str(date-time), defaultName: str, defaultNameLanguage: str, description: str, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map, name: str, names: [map], pvs: [map], songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str, tagCategoryName: str, tags: [map], urlSlug: str, version: int(int32), webLinks: [map]}, id: int(int32), message: str}\n@returns(200) Success\n\n@endpoint GET /api/tags/byName/{name}\n@required {name: str}\n@optional {fields: str, lang: str}\n@returns(200) {additionalNames: str?, aliasedTo: map{additionalNames: str?, categoryName: str?, id: int(int32), name: str?, urlSlug: str?}, categoryName: str?, createDate: str(date-time), defaultNameLanguage: str, description: str?, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, name: str?, names: [map]?, parent: map{additionalNames: str?, categoryName: str?, id: int(int32), name: str?, urlSlug: str?}, relatedTags: [map]?, status: str, targets: int(int32), newTargets: [str]?, translatedDescription: map{english: str?, original: str?}, urlSlug: str?, usageCount: int(int32), version: int(int32), webLinks: [map]?} # Success\n\n@endpoint GET /api/tags/categoryNames\n@optional {query: str=, nameMatchMode: str}\n@returns(200) Success\n\n@endpoint GET /api/tags/{tagId}/children\n@required {tagId: int(int32)}\n@optional {fields: str, lang: str}\n@returns(200) Success\n\n@endpoint GET /api/tags/{tagId}/comments\n@required {tagId: int(int32)}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint POST /api/tags/{tagId}/comments\n@required {tagId: int(int32)}\n@optional {author: map{active: bool, groupId: str, knownLanguages: [map], mainPicture: map, memberSince: str(date-time), oldUsernames: [map], verifiedArtist: bool, id: int(int32), name: str}, authorName: str, created: str(date-time), entry: map{activityDate: str(date-time), additionalNames: str, artistString: str, artistType: str, createDate: str(date-time), defaultName: str, defaultNameLanguage: str, description: str, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map, name: str, names: [map], pvs: [map], songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str, tagCategoryName: str, tags: [map], urlSlug: str, version: int(int32), webLinks: [map]}, id: int(int32), message: str}\n@returns(200) {author: map{active: bool, groupId: str, knownLanguages: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, memberSince: str(date-time), oldUsernames: [map]?, verifiedArtist: bool, id: int(int32), name: str?}, authorName: str?, created: str(date-time), entry: map{activityDate: str(date-time)?, additionalNames: str?, artistString: str?, artistType: str, createDate: str(date-time), defaultName: str?, defaultNameLanguage: str, description: str?, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, name: str?, names: [map]?, pvs: [map]?, songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str?, tagCategoryName: str?, tags: [map]?, urlSlug: str?, version: int(int32), webLinks: [map]?}, id: int(int32), message: str?} # Success\n\n@endpoint GET /api/tags\n@optional {query: str=, allowChildren: bool=true, categoryName: str=, start: int(int32)=0, maxResults: int(int32)=10, getTotalCount: bool=false, nameMatchMode: str, sort: str, preferAccurateMatches: bool=false, fields: str, lang: str, target: str, deleted: bool=false}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint POST /api/tags\n@optional {name: str}\n@returns(200) {additionalNames: str?, categoryName: str?, id: int(int32), name: str?, urlSlug: str?} # Success\n\n@endpoint GET /api/tags/names\n@optional {query: str=, allowAliases: bool=true, maxResults: int(int32)=10}\n@returns(200) Success\n\n@endpoint GET /api/tags/top\n@optional {categoryName: str, entryType: str, maxResults: int(int32)=15, lang: str}\n@returns(200) Success\n\n@endpoint POST /api/tags/{tagId}/reports\n@required {tagId: int(int32)}\n@optional {reportType: str, notes: str, versionNumber: int(int32)}\n@returns(200) Success\n\n@endpoint DELETE /api/users/current/followedTags/{tagId}\n@required {tagId: int(int32)}\n@returns(200) Success\n\n@endpoint POST /api/users/current/followedTags/{tagId}\n@required {tagId: int(int32)}\n@returns(200) Success\n\n@endpoint DELETE /api/users/profileComments/{commentId}\n@required {commentId: int(int32)}\n@returns(200) Success\n\n@endpoint POST /api/users/profileComments/{commentId}\n@required {commentId: int(int32)}\n@optional {author: map{active: bool, groupId: str, knownLanguages: [map], mainPicture: map, memberSince: str(date-time), oldUsernames: [map], verifiedArtist: bool, id: int(int32), name: str}, authorName: str, created: str(date-time), entry: map{activityDate: str(date-time), additionalNames: str, artistString: str, artistType: str, createDate: str(date-time), defaultName: str, defaultNameLanguage: str, description: str, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map, name: str, names: [map], pvs: [map], songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str, tagCategoryName: str, tags: [map], urlSlug: str, version: int(int32), webLinks: [map]}, id: int(int32), message: str}\n@returns(200) Success\n\n@endpoint GET /api/users/{id}/albums\n@required {id: int(int32)}\n@optional {query: str=, tagId: int(int32), tag: str, artistId: int(int32), purchaseStatuses: str, releaseEventId: int(int32)=0, albumTypes: str, advancedFilters: [map], start: int(int32)=0, maxResults: int(int32)=10, getTotalCount: bool=false, sort: str, nameMatchMode: str, fields: str, lang: str, mediaType: str}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint GET /api/users/current\n@optional {fields: str}\n@returns(200) {active: bool, groupId: str, knownLanguages: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, memberSince: str(date-time), oldUsernames: [map]?, verifiedArtist: bool, id: int(int32), name: str?} # Success\n\n@endpoint GET /api/users/{id}/events\n@required {id: int(int32)}\n@optional {relationshipType: str}\n@returns(200) Success\n\n@endpoint GET /api/users/{id}/followedArtists\n@required {id: int(int32)}\n@optional {query: str=, tagId[]: [int(int32)], artistType: str, start: int(int32)=0, maxResults: int(int32)=10, getTotalCount: bool=false, sort: str, nameMatchMode: str, fields: str, lang: str}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint GET /api/users\n@optional {query: str=, groups: str, joinDateAfter: str(date-time), joinDateBefore: str(date-time), nameMatchMode: str, start: int(int32)=0, maxResults: int(int32)=10, getTotalCount: bool=false, sort: str, includeDisabled: bool=false, onlyVerified: bool=false, knowsLanguage: str, fields: str}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint GET /api/users/{id}\n@required {id: int(int32)}\n@optional {fields: str}\n@returns(200) {active: bool, groupId: str, knownLanguages: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, memberSince: str(date-time), oldUsernames: [map]?, verifiedArtist: bool, id: int(int32), name: str?} # Success\n\n@endpoint GET /api/users/messages/{messageId}\n@required {messageId: int(int32)}\n@returns(200) {body: str?, createdFormatted: str?, highPriority: bool, id: int(int32), inbox: str, read: bool, receiver: map{active: bool, groupId: str, knownLanguages: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, memberSince: str(date-time), oldUsernames: [map]?, verifiedArtist: bool, id: int(int32), name: str?}, sender: map{active: bool, groupId: str, knownLanguages: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, memberSince: str(date-time), oldUsernames: [map]?, verifiedArtist: bool, id: int(int32), name: str?}, subject: str?} # Success\n\n@endpoint GET /api/users/{id}/messages\n@required {id: int(int32)}\n@optional {inbox: str, unread: bool=false, anotherUserId: int(int32), start: int(int32)=0, maxResults: int(int32)=10, getTotalCount: bool=false}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint DELETE /api/users/{id}/messages\n@required {id: int(int32)}\n@optional {messageId: [int(int32)]}\n@returns(200) Success\n\n@endpoint POST /api/users/{id}/messages\n@required {id: int(int32)}\n@optional {body: str, createdFormatted: str, highPriority: bool, id: int(int32), inbox: str(Nothing/Received/Sent/Notifications), read: bool, receiver: map{active: bool, groupId: str, knownLanguages: [map], mainPicture: map, memberSince: str(date-time), oldUsernames: [map], verifiedArtist: bool, id: int(int32), name: str}, sender: map{active: bool, groupId: str, knownLanguages: [map], mainPicture: map, memberSince: str(date-time), oldUsernames: [map], verifiedArtist: bool, id: int(int32), name: str}, subject: str}\n@returns(200) {body: str?, createdFormatted: str?, highPriority: bool, id: int(int32), inbox: str, read: bool, receiver: map{active: bool, groupId: str, knownLanguages: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, memberSince: str(date-time), oldUsernames: [map]?, verifiedArtist: bool, id: int(int32), name: str?}, sender: map{active: bool, groupId: str, knownLanguages: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, memberSince: str(date-time), oldUsernames: [map]?, verifiedArtist: bool, id: int(int32), name: str?}, subject: str?} # Success\n\n@endpoint GET /api/users/names\n@optional {query: str=, nameMatchMode: str, maxResults: int(int32)=10, includeDisabled: bool=false}\n@returns(200) Success\n\n@endpoint GET /api/users/{id}/profileComments\n@required {id: int(int32)}\n@optional {start: int(int32)=0, maxResults: int(int32)=10, getTotalCount: bool=false}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint POST /api/users/{id}/profileComments\n@required {id: int(int32)}\n@optional {author: map{active: bool, groupId: str, knownLanguages: [map], mainPicture: map, memberSince: str(date-time), oldUsernames: [map], verifiedArtist: bool, id: int(int32), name: str}, authorName: str, created: str(date-time), entry: map{activityDate: str(date-time), additionalNames: str, artistString: str, artistType: str, createDate: str(date-time), defaultName: str, defaultNameLanguage: str, description: str, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map, name: str, names: [map], pvs: [map], songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str, tagCategoryName: str, tags: [map], urlSlug: str, version: int(int32), webLinks: [map]}, id: int(int32), message: str}\n@returns(200) {author: map{active: bool, groupId: str, knownLanguages: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, memberSince: str(date-time), oldUsernames: [map]?, verifiedArtist: bool, id: int(int32), name: str?}, authorName: str?, created: str(date-time), entry: map{activityDate: str(date-time)?, additionalNames: str?, artistString: str?, artistType: str, createDate: str(date-time), defaultName: str?, defaultNameLanguage: str, description: str?, discType: str, entryType: str, eventCategory: str, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, name: str?, names: [map]?, pvs: [map]?, songListFeaturedCategory: str, songType: str, status: str, releaseEventSeriesName: str?, tagCategoryName: str?, tags: [map]?, urlSlug: str?, version: int(int32), webLinks: [map]?}, id: int(int32), message: str?} # Success\n\n@endpoint GET /api/users/{id}/ratedSongs\n@required {id: int(int32)}\n@optional {query: str=, tagName: str, tagId[]: [int(int32)], artistId[]: [int(int32)], childVoicebanks: bool=false, artistGrouping: str, rating: str, songListId: int(int32), groupByRating: bool=true, pvServices: str, advancedFilters: [map], start: int(int32)=0, maxResults: int(int32)=10, getTotalCount: bool=false, sort: str, nameMatchMode: str, fields: str, lang: str}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint GET /api/users/{id}/songLists\n@required {id: int(int32)}\n@optional {query: str=, tagId[]: [int(int32)], childTags: bool=false, nameMatchMode: str, start: int(int32)=0, maxResults: int(int32)=10, getTotalCount: bool=false, sort: str, fields: str}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint GET /api/users/{id}/ratedSongs/{songId}\n@required {id: int(int32), songId: int(int32)}\n@returns(200) Success\n\n@endpoint GET /api/users/current/ratedSongs/{songId}\n@required {songId: int(int32)}\n@returns(200) Success\n\n@endpoint POST /api/users/current/albums/{albumId}\n@required {albumId: int(int32)}\n@optional {collectionStatus: str, mediaType: str, rating: int(int32)}\n@returns(200) Success\n\n@endpoint POST /api/users/current/refreshEntryEdit\n@optional {entryType: str, entryId: int(int32)}\n@returns(200) {time: str(date-time), userId: int(int32), userName: str?} # Success\n\n@endpoint POST /api/users/{id}/reports\n@required {id: int(int32)}\n@optional {reportType: str(MaliciousIP/Spamming/RemovePermissions/Other), reason: str}\n@returns(200) Success\n\n@endpoint POST /api/users/current/songTags/{songId}\n@required {songId: int(int32)}\n@returns(200) Success\n\n@endpoint POST /api/users/{id}/settings/{settingName}\n@required {id: int(int32), settingName: str}\n@returns(200) Success\n\n@endpoint GET /api/users/{id}/followedArtists/{artistId}\n@required {id: int(int32), artistId: int(int32)}\n@returns(200) {artist: map{additionalNames: str?, artistLinks: [map]?, artistLinksReverse: [map]?, artistType: str, baseVoicebank: map{additionalNames: str?, artistType: str, deleted: bool, id: int(int32), name: str?, pictureMime: str?, releaseDate: str(date-time)?, status: str, version: int(int32)}, createDate: str(date-time), defaultName: str?, defaultNameLanguage: str, deleted: bool, description: str?, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, mergedTo: int(int32), name: str?, names: [map]?, pictureMime: str?, relations: map{latestAlbums: [map]?, latestEvents: [map]?, latestSongs: [map]?, popularAlbums: [map]?, popularSongs: [map]?}, releaseDate: str(date-time)?, status: str, tags: [map]?, version: int(int32), webLinks: [map]?}, id: int(int32)} # Success\n\n@endpoint GET /api/users/current/followedArtists/{artistId}\n@required {artistId: int(int32)}\n@returns(200) {artist: map{additionalNames: str?, artistLinks: [map]?, artistLinksReverse: [map]?, artistType: str, baseVoicebank: map{additionalNames: str?, artistType: str, deleted: bool, id: int(int32), name: str?, pictureMime: str?, releaseDate: str(date-time)?, status: str, version: int(int32)}, createDate: str(date-time), defaultName: str?, defaultNameLanguage: str, deleted: bool, description: str?, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, mergedTo: int(int32), name: str?, names: [map]?, pictureMime: str?, relations: map{latestAlbums: [map]?, latestEvents: [map]?, latestSongs: [map]?, popularAlbums: [map]?, popularSongs: [map]?}, releaseDate: str(date-time)?, status: str, tags: [map]?, version: int(int32), webLinks: [map]?}, id: int(int32)} # Success\n\n@endpoint GET /api/users/{id}/album-collection-statuses/{albumId}\n@required {id: int(int32), albumId: int(int32)}\n@returns(200) {album: map{additionalNames: str?, artists: [map]?, artistString: str?, barcode: str?, catalogNumber: str?, createDate: str(date-time), defaultName: str?, defaultNameLanguage: str, deleted: bool, description: str?, discs: [map]?, discType: str, id: int(int32), identifiers: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, mergedTo: int(int32), name: str?, names: [map]?, pvs: [map]?, ratingAverage: num(double), ratingCount: int(int32), releaseDate: map{day: int(int32)?, isEmpty: bool, month: int(int32)?, year: int(int32)?}, releaseEvent: map{additionalNames: str?, artists: [map]?, category: str, date: str(date-time)?, description: str?, endDate: str(date-time)?, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, name: str?, names: [map]?, pvs: [map]?, series: map{additionalNames: str?, category: str, deleted: bool, description: str?, id: int(int32), name: str?, pictureMime: str?, status: str, urlSlug: str?, version: int(int32), webLinks: [map]?}, seriesId: int(int32)?, seriesNumber: int(int32), seriesSuffix: str?, songList: map{featuredCategory: str, id: int(int32), name: str?}, status: str, tags: [map]?, urlSlug: str?, venue: map{additionalNames: str?, address: str?, addressCountryCode: str?, coordinates: map, deleted: bool, description: str?, events: [map]?, id: int(int32), name: str?, names: [map]?, status: str, version: int(int32), webLinks: [map]?}, venueName: str?, version: int(int32), webLinks: [map]?}, releaseEvents: [map]?, status: str, tags: [map]?, tracks: [map]?, version: int(int32), webLinks: [map]?}, mediaType: str, purchaseStatus: str, rating: int(int32), user: map{active: bool, groupId: str, knownLanguages: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, memberSince: str(date-time), oldUsernames: [map]?, verifiedArtist: bool, id: int(int32), name: str?}} # Success\n\n@endpoint GET /api/users/current/album-collection-statuses/{albumId}\n@required {albumId: int(int32)}\n@returns(200) {album: map{additionalNames: str?, artists: [map]?, artistString: str?, barcode: str?, catalogNumber: str?, createDate: str(date-time), defaultName: str?, defaultNameLanguage: str, deleted: bool, description: str?, discs: [map]?, discType: str, id: int(int32), identifiers: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, mergedTo: int(int32), name: str?, names: [map]?, pvs: [map]?, ratingAverage: num(double), ratingCount: int(int32), releaseDate: map{day: int(int32)?, isEmpty: bool, month: int(int32)?, year: int(int32)?}, releaseEvent: map{additionalNames: str?, artists: [map]?, category: str, date: str(date-time)?, description: str?, endDate: str(date-time)?, id: int(int32), mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, name: str?, names: [map]?, pvs: [map]?, series: map{additionalNames: str?, category: str, deleted: bool, description: str?, id: int(int32), name: str?, pictureMime: str?, status: str, urlSlug: str?, version: int(int32), webLinks: [map]?}, seriesId: int(int32)?, seriesNumber: int(int32), seriesSuffix: str?, songList: map{featuredCategory: str, id: int(int32), name: str?}, status: str, tags: [map]?, urlSlug: str?, venue: map{additionalNames: str?, address: str?, addressCountryCode: str?, coordinates: map, deleted: bool, description: str?, events: [map]?, id: int(int32), name: str?, names: [map]?, status: str, version: int(int32), webLinks: [map]?}, venueName: str?, version: int(int32), webLinks: [map]?}, releaseEvents: [map]?, status: str, tags: [map]?, tracks: [map]?, version: int(int32), webLinks: [map]?}, mediaType: str, purchaseStatus: str, rating: int(int32), user: map{active: bool, groupId: str, knownLanguages: [map]?, mainPicture: map{mime: str?, name: str?, urlOriginal: str?, urlSmallThumb: str?, urlThumb: str?, urlTinyThumb: str?}, memberSince: str(date-time), oldUsernames: [map]?, verifiedArtist: bool, id: int(int32), name: str?}} # Success\n\n@endpoint DELETE /api/venues/{id}\n@required {id: int(int32)}\n@optional {notes: str=, hardDelete: bool=false}\n@returns(200) Success\n\n@endpoint GET /api/venues\n@optional {query: str=, fields: str, start: int(int32)=0, maxResults: int(int32)=10, getTotalCount: bool=false, nameMatchMode: str, lang: str, sortRule: str, latitude: num(double), longitude: num(double), radius: num(double), distanceUnit: str}\n@returns(200) {items: [map]?, term: str?, totalCount: int(int32)} # Success\n\n@endpoint POST /api/venues/{id}/reports\n@required {id: int(int32)}\n@optional {reportType: str, notes: str, versionNumber: int(int32)}\n@returns(200) Success\n\n@end\n"}