{
"openapi": "3.0.3",
"info": {
"description": "Integrate tracking shows with Kurozora content.\n *** \nThe Kurozora API is a web service that lets you access information about the media found in the Kurozora Catalog and the user's personal Kurozora Library. Here's what each one includes:\n- The Kurozora Catalog includes all resources available in Kurozora.\n- The user's Kurozora Library contains only those resources that the user added to their personal library. For example, it contains shows added to their tracking list, and favorites.\n\nUse this service to retrieve information about people, characters, episodes, seasons, genres, shows, studios, feeds, users, and the users' library.\nWith proper authorization from the user, you can also create or modify their library, apply ratings to shows, create or modify feeds and react on replies.",
"version": "1.4.0",
"title": "Kurozora API",
"termsOfService": "https://kurozora.app/legal/terms-of-use",
"contact": {
"email": "kurozoraapp@gmail.com"
}
},
"servers": [
{
"url": "https://api.kurozora.app/v1",
"description": "Kurozora LIVE"
},
{
"url": "https://api.kurozora.test/v1",
"description": "Kurozora LOCAL"
}
],
"tags": [
{
"name": "explore",
"description": "Everything explore page related"
},
{
"name": "anime",
"description": "Everything anime related"
},
{
"name": "cast",
"description": "Everything cast related"
},
{
"name": "characters",
"description": "Everything character related"
},
{
"name": "episodes",
"description": "Everything episodes related"
},
{
"name":"feed",
"description":"Everything feed related"
},
{
"name": "genres",
"description": "Everything genre related"
},
{
"name": "me",
"description": "Endpoints related to the authenticated user."
},
{
"name": "people",
"description": "Everything people related"
},
{
"name": "search",
"description": "Everything search related"
},
{
"name": "seasons",
"description": "Everything seasons related"
},
{
"name": "studios",
"description": "Everything studio related"
},
{
"name": "themes",
"description": "Everything themes related"
},
{
"name": "theme-store",
"description": "Everything platform theme related"
},
{
"name": "users",
"description": "Everything user related"
},
{
"name": "store",
"description": "All store endpoints"
},
{
"name": "legal",
"description": "All legal endpoints"
},
{
"name": "misc",
"description": "All other endpoints"
}
],
"paths": {
"/explore": {
"get": {
"security": [
{
},
{
"bearerAuth": [
]
}
],
"tags": [
"explore"
],
"operationId": "getExplore",
"summary": "(optional authentication) Explore page.",
"description": "This endpoint will retrieve the explore page.",
"parameters": [
{
"in": "query",
"name": "genre_id",
"schema": {
"type": "integer"
},
"required": false,
"description": "ID of the genre to filter on."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/explore/{exploreCategoryID}": {
"get": {
"security": [
{
},
{
"bearerAuth": [
]
}
],
"tags": [
"explore"
],
"operationId": "getExploreDetails",
"summary": "(optional authentication) Explore category details.",
"description": "This endpoint will retrieve the details to for the explore category.",
"parameters": [
{
"in": "path",
"name": "exploreCategoryID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the explore category."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/anime/{animeID}": {
"get": {
"security": [
{
},
{
"bearerAuth": [
]
}
],
"tags": [
"anime"
],
"operationId": "getAnime",
"summary": "(optional authentication) Anime details.",
"description": "This endpoint will retrieve the details of an Anime item.",
"parameters": [
{
"in": "path",
"name": "animeID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the anime."
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true
},
"explode": false,
"required": false,
"description": "The relations to include in the response. Available relations are:\n- cast\n- characters\n- related-shows\n- seasons\n- staff\n- studios"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetAnimeSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/anime/{animeID}/cast": {
"get": {
"tags": [
"anime"
],
"operationId": "getAnimeCast",
"summary": "Anime cast information.",
"description": "This endpoint will retrieve the casts of an Anime item.",
"parameters": [
{
"in": "path",
"name": "animeID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the anime."
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetAnimeCastSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/anime/{animeID}/characters": {
"get": {
"tags": [
"anime"
],
"operationId": "getAnimeCharacters",
"summary": "Anime character information.",
"description": "This endpoint will retrieve the characters of an Anime item.",
"parameters": [
{
"in": "path",
"name": "animeID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the anime."
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetAnimeCharactersSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/anime/{animeID}/related-shows": {
"get": {
"security": [
{
},
{
"bearerAuth": [
]
}
],
"tags": [
"anime"
],
"operationId": "getAnimeRelatedShows",
"summary": "Anime related-shows information.",
"description": "This endpoint will retrieve the related-shows of an Anime item.",
"parameters": [
{
"in": "path",
"name": "animeID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the anime."
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetAnimeRelatedShowsSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/anime/{animeID}/rate": {
"post": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"anime"
],
"operationId": "postAnimeRate",
"summary": "Rate an Anime.",
"description": "This endpoint will allow user's to leave a rating for an Anime.",
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"rating": {
"type": "number",
"format": "double",
"description": "The rating to leave.",
"example": 2.5,
"minimum": 0,
"maximum": 5
},
"description": {
"type": "string",
"description": "The description accompanying the rating."
}
},
"required": [
"rating"
]
}
}
}
},
"parameters": [
{
"in": "path",
"name": "animeID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the anime."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/anime/{animeID}/seasons": {
"get": {
"tags": [
"anime"
],
"operationId": "getSeasons",
"summary": "Anime all seasons information.",
"description": "This endpoint will retrieve the seasons of an Anime item.",
"parameters": [
{
"in": "path",
"name": "animeID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the anime."
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetSeasonsSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/anime/{animeID}/staff": {
"get": {
"tags": [
"anime"
],
"operationId": "getAnimeStaff",
"summary": "Anime staff information.",
"description": "This endpoint will retrieve the staff of an Anime item.",
"parameters": [
{
"in": "path",
"name": "animeID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the anime."
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetAnimeStaffSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/anime/{animeID}/studios": {
"get": {
"tags": [
"anime"
],
"operationId": "getAnimeStudios",
"summary": "Anime studio information.",
"description": "This endpoint will retrieve the studios of an Anime item.",
"parameters": [
{
"in": "path",
"name": "animeID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the anime."
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetAnimeStudiosSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/anime/upcoming": {
"get": {
"security": [
{
},
{
"bearerAuth": [
]
}
],
"tags": [
"anime"
],
"operationId": "getAnimeUpcoming",
"summary": "Upcoming anime information.",
"description": "This endpoint will retrieve the upcoming Anime items.",
"parameters": [
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetAnimeUpcomingSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/search": {
"get": {
"security": [
{
},
{
"bearerAuth": [
]
}
],
"tags": [
"search"
],
"operationId": "getSearch",
"summary": "Get search results.",
"description": "This endpoint will return search results for the specified query.",
"parameters": [
{
"in": "query",
"name": "scope",
"schema": {
"$ref": "#/components/schemas/SearchScope"
},
"required": true,
"description": "The scope of the search."
},
{
"in": "query",
"name": "types[]",
"schema": {
"$ref": "#/components/schemas/SearchType"
},
"required": true,
"description": "The types used to perform the search."
},
{
"in": "query",
"name": "query",
"schema": {
"type": "string",
"example": "one piece",
"minimum": 1
},
"required": true,
"description": "The search query."
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 25
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 25."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetSearchSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/seasons/{seasonID}": {
"get": {
"tags": [
"seasons"
],
"operationId": "getSeasonsDetails",
"summary": "Get specific season details.",
"description": "This endpoint will retrieve the details of a specific season.",
"parameters": [
{
"in": "path",
"name": "seasonID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the season."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetSeasonsDetailsSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/seasons/{seasonID}/episodes": {
"get": {
"security": [
{
},
{
"bearerAuth": [
]
}
],
"tags": [
"seasons"
],
"operationId": "getSeasonsEpisodes",
"summary": "Retrieve season episodes.",
"description": "This endpoint will retrieve the episodes in a certain season.",
"parameters": [
{
"in": "path",
"name": "seasonID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the season."
},
{
"in": "query",
"name": "hide_fillers",
"schema": {
"type": "integer",
"enum": [
0,
1
],
"default": 0,
"minimum": 0,
"maximum": 1
},
"required": false,
"description": "Indicates whether filler episodes should be included.\n- 0 = Include fillers\n- 1 = No fillers"
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetSeasonsEpisodesSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/seasons/{seasonID}/watched": {
"post": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"seasons"
],
"operationId": "postSeasonsWatched",
"summary": "Marks the episodes of a season as \"watched\" or \"not watched\".",
"description": "This endpoint will updated the watched status for the episodes of a season.",
"parameters": [
{
"in": "path",
"name": "seasonID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the season."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/PostSeasonsWatchedSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/episodes/{episodeID}": {
"get": {
"security": [
{
},
{
"bearerAuth": [
]
}
],
"tags": [
"episodes"
],
"operationId": "getEpisodesDetails",
"summary": "Get specific episode details.",
"description": "This endpoint will retrieve the details of a specific episode.",
"parameters": [
{
"in": "path",
"name": "episodeID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the episode."
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true
},
"explode": false,
"required": false,
"description": "The relations to include in the response. Available relations are:\n- show\n- season"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetEpisodesDetailsSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/episodes/{episodeID}/watched": {
"post": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"episodes"
],
"operationId": "postEpisodesWatched",
"summary": "Marks an episode as \"watched\" or \"not watched\".",
"description": "This endpoint will updated the watched status for an episode.",
"parameters": [
{
"in": "path",
"name": "episodeID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the episode."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/PostEpisodesWatchedSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/episodes/{episodeID}/rate": {
"post": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"episodes"
],
"operationId": "postEpisodeRate",
"summary": "Rate an Episode.",
"description": "This endpoint will allow user's to leave a rating for an Episode.",
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"rating": {
"type": "number",
"format": "double",
"description": "The rating to leave.",
"example": 2.5,
"minimum": 0,
"maximum": 5
},
"description": {
"type": "string",
"description": "The description accompanying the rating."
}
},
"required": [
"rating"
]
}
}
}
},
"parameters": [
{
"in": "path",
"name": "episodeID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the episode."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/characters/{characterID}": {
"get": {
"security": [
{
},
{
"bearerAuth": [
]
}
],
"tags": [
"characters"
],
"operationId": "getCharactersDetails",
"summary": "Get character details.",
"description": "This endpoint will retrieve the details of a specific character.",
"parameters": [
{
"in": "path",
"name": "characterID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the character."
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true
},
"explode": false,
"required": false,
"description": "The relations to include in the response. Available relations are:\n- shows\n- people"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetCharactersDetailsSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/characters/{characterID}/people": {
"get": {
"tags": [
"characters"
],
"operationId": "getCharactersPeople",
"summary": "Get character people.",
"description": "This endpoint will retrieve the people of a specific character.",
"parameters": [
{
"in": "path",
"name": "characterID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the character."
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetCharactersPeopleSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/characters/{characterID}/anime": {
"get": {
"security": [
{
},
{
"bearerAuth": [
]
}
],
"tags": [
"characters"
],
"operationId": "getCharactersAnime",
"summary": "Get character anime.",
"description": "This endpoint will retrieve the anime of a specific character.",
"parameters": [
{
"in": "path",
"name": "characterID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the character."
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetCharactersAnimeSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/genres": {
"get": {
"tags": [
"genres"
],
"operationId": "getGenres",
"summary": "Genres list.",
"description": "This endpoint will retrieve the genres.",
"responses": {
"200": {
"$ref": "#/components/responses/GetGenresSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/genres/{genreID}": {
"get": {
"tags": [
"genres"
],
"operationId": "getGenreDetails",
"summary": "Get genre details.",
"description": "This endpoint will retrieve the details of a specific genre.",
"parameters": [
{
"in": "path",
"name": "genreID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the genre."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetGenresDetailsSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/cast/{castID}": {
"get": {
"tags": [
"cast"
],
"operationId": "getCast",
"summary": "Cast details.",
"description": "This endpoint will retrieve the details of a cast.",
"parameters": [
{
"in": "path",
"name": "castID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the cast."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetCastSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/people/{personID}": {
"get": {
"security": [
{
},
{
"bearerAuth": [
]
}
],
"tags": [
"people"
],
"operationId": "getPeopleDetails",
"summary": "Get person details.",
"description": "This endpoint will retrieve the details for a person.",
"parameters": [
{
"in": "path",
"name": "personID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the person."
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true
},
"explode": false,
"required": false,
"description": "The relations to include in the response. Available relations are:\n- characters\n- shows"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetPeopleDetailsSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/people/{personID}/anime": {
"get": {
"security": [
{
},
{
"bearerAuth": [
]
}
],
"tags": [
"people"
],
"operationId": "getPeopleAnime",
"summary": "Get person anime.",
"description": "This endpoint will retrieve the anime of a specific person.",
"parameters": [
{
"in": "path",
"name": "personID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the person."
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetPeopleAnimeSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/people/{personID}/characters": {
"get": {
"tags": [
"people"
],
"operationId": "getPeopleCharacters",
"summary": "Person character information.",
"description": "This endpoint will retrieve the characters of a Person item.",
"parameters": [
{
"in": "path",
"name": "personID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the person."
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetPeopleCharactersSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/themes": {
"get": {
"tags": [
"themes"
],
"operationId": "getThemes",
"summary": "Themes list.",
"description": "This endpoint will retrieve the themes.",
"responses": {
"200": {
"$ref": "#/components/responses/GetThemesSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/themes/{themeID}": {
"get": {
"tags": [
"themes"
],
"operationId": "getThemeDetails",
"summary": "Get theme details.",
"description": "This endpoint will retrieve the details of a specific theme.",
"parameters": [
{
"in": "path",
"name": "themeID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the theme."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetThemesDetailsSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/feed": {
"post": {
"security":[
{
"bearerAuth":[
]
}
],
"tags":[
"feed"
],
"operationId": "postFeed",
"summary":"Creates a new message on the feed.",
"description":"This endpoint will create a new message on the feed.",
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type":"object",
"properties": {
"body": {
"type":"string",
"description":"Text in the feed message."
},
"parent_id": {
"type":"integer",
"description":"ID of the feed message the user is replying to. Omit if not a reply.",
"nullable": false
},
"is_reply": {
"$ref": "#/components/schemas/ReplyStatus"
},
"is_reshare": {
"$ref": "#/components/schemas/Re-shareStatus"
},
"is_nsfw": {
"$ref": "#/components/schemas/NSFWStatus"
},
"is_spoiler": {
"$ref": "#/components/schemas/SpoilerStatus"
}
},
"required":[
"body",
"is_nsfw",
"is_spoiler"
]
}
}
}
},
"responses": {
"200": {
"$ref":"#/components/responses/JSONSuccess"
},
"400": {
"$ref":"#/components/responses/JSONError"
}
}
}
},
"/feed/explore": {
"get": {
"security": [
{
},
{
"bearerAuth": [
]
}
],
"tags": [
"feed"
],
"operationId": "getFeedExplore",
"summary": "(optional authentication) Explore feed posts.",
"description": "This endpoint will retrieve the an unpersonalised feed.",
"parameters": [
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/feed/home": {
"get": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"feed"
],
"operationId": "getFeedHome",
"summary": "Get the user's personal feed",
"description": "This endpoint will retrieve the authenticated user's personal feed.",
"parameters": [
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/feed/messages/{messageID}": {
"get": {
"security": [
{
},
{
"bearerAuth": [
]
}
],
"tags": [
"feed"
],
"operationId": "getFeedMessagesDetails",
"summary": "Get the feed message's details",
"description": "This endpoint will retrieve a feed message's details.",
"parameters": [
{
"in": "path",
"name": "messageID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the message."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/feed/messages/{messageID}/update": {
"post": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"feed"
],
"operationId": "postFeedMessagesUpdate",
"summary": "Update the feed message's details",
"description": "This endpoint will update a feed message's details.",
"parameters": [
{
"in": "path",
"name": "messageID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the message."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type":"object",
"properties": {
"body": {
"type":"string",
"description":"Text in the feed message."
},
"is_nsfw": {
"$ref": "#/components/schemas/NSFWStatus"
},
"is_spoiler": {
"$ref": "#/components/schemas/SpoilerStatus"
}
},
"required":[
"body",
"is_nsfw",
"is_spoiler"
]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/feed/messages/{messageID}/replies": {
"get": {
"security": [
{
},
{
"bearerAuth": [
]
}
],
"tags": [
"feed"
],
"operationId": "getFeedMessagesReplies",
"summary": "Get the feed message's replies",
"description": "This endpoint will retrieve a feed message's replies.",
"parameters": [
{
"in": "path",
"name": "messageID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the message."
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/feed/messages/{messageID}/heart": {
"post": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"feed"
],
"operationId": "postFeedMessagesHeart",
"summary": "Heart or un-heart a feed message.",
"description": "This endpoint will heart or un-heart a feed message.",
"parameters": [
{
"in": "path",
"name": "messageID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the message."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/feed/messages/{messageID}/delete": {
"post": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"feed"
],
"operationId": "postFeedMessagesDelete",
"summary": "Delete a feed message",
"description": "This endpoint will delete a feed message.",
"parameters": [
{
"in": "path",
"name": "messageID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the message."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/me": {
"get": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"operationId": "getMe",
"summary": "Authenticated user profile details.",
"description": "This endpoint will retrieve the details of the authenticated user's profile.",
"parameters": [
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
},
"post": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"operationId": "postMe",
"summary": "Updates profile information.",
"description": "This endpoint will update the authenticated user's profile information.",
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "The new username to set. Send only if user is allowed to change username."
},
"biography": {
"type": "string",
"description": "The new biography to set. Send null to remove."
},
"profileImage": {
"type": "string",
"format": "binary",
"description": "The new user's profile image. Send null to remove."
},
"bannerImage": {
"type": "string",
"format": "binary",
"description": "The new user's banner image. Send null to remove."
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/me/access-tokens": {
"get": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"operationId": "getMeAccessTokens",
"summary": "Get a list of access tokens.",
"description": "This endpoint will retrieve a list of access tokens for the authenticated user.",
"parameters": [
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/me/access-tokens/{accessToken}": {
"get": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"operationId": "getMeAccessTokensAccessToken",
"summary": "Fetch session details.",
"description": "This endpoint will retrieve the details of an access token.",
"parameters": [
{
"in": "path",
"name": "accessToken",
"schema": {
"type": "string"
},
"required": true,
"description": "The access token whose details to retrieve."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/me/access-tokens/{accessToken}/update": {
"post": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"operationId": "postMeAccessTokenUpdate",
"summary": "Updates access token.",
"description": "This endpoint will update the information of an authenticated user's access token.",
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"apn_device_token": {
"type": "string",
"description": "The new APN device token for the access token."
}
},
"required": [
"apn_device_token"
]
}
}
}
},
"parameters": [
{
"in": "path",
"name": "accessToken",
"schema": {
"type": "string"
},
"required": true,
"description": "ID of the access token to be updated."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/PostAccessTokensUpdateSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/me/access-tokens/{accessToken}/delete": {
"post": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"operationId": "postMeAccessTokensDelete",
"summary": "Delete an access token.",
"description": "This endpoint will delete an authenticated user's access token.",
"parameters": [
{
"in": "path",
"name": "accessToken",
"schema": {
"type": "string"
},
"required": true,
"description": "ID of the access token to be deleted."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/me/favorite-anime": {
"get": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"operationId": "getMeFavoriteAnime",
"summary": "Get an overview of favorites.",
"description": "This endpoint will retrieve the list of anime in the authenticated user's favorites.",
"parameters": [
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
},
"post": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"operationId": "postMeFavoriteAnime",
"summary": "Add or remove from favorites.",
"description": "This endpoint will add or remove an anime to/from the authenticated user's favorites.",
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"anime_id": {
"type": "integer",
"description": "The ID of the Anime to add."
}
},
"required": [
"anime_id"
]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/me/feed-messages": {
"get": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"operationId": "getMeFeedMessages",
"summary": "Get feed messages.",
"description": "This endpoint will retrieve the authenticated user's feed messages.",
"parameters": [
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/me/followers": {
"get": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"operationId": "getMeFollowers",
"summary": "Fetch followers list.",
"description": "This endpoint will retrieve the authenticated user's followers list.",
"parameters": [
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/me/following": {
"get": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"operationId": "getMeFollowing",
"summary": "Fetch following list.",
"description": "This endpoint will retrieve the authenticated user's following list.",
"parameters": [
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/me/library": {
"get": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"operationId": "getMeLibrary",
"summary": "Get an overview of the library.",
"description": "This endpoint will retrieve the list of anime in the authenticated user's library.",
"parameters": [
{
"in": "query",
"name": "status",
"schema": {
"$ref": "#/components/schemas/LibraryStatus"
},
"required": true,
"description": "The status to retrieve the library items for."
},
{
"in": "query",
"name": "sort",
"schema": {
"type": "string"
},
"required": false,
"description": "Available sorting options:\n- title(asc/desc)\n- age(newest/oldest)\n- rating(worst/best)\n- my-rating(worst/best)"
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
},
"post": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"operationId": "postMeLibrary",
"summary": "Add an anime to the library.",
"description": "This endpoint will add to the list of anime in the authenticated user's library.",
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"anime_id": {
"type": "integer",
"description": "The ID of the Anime to add."
},
"status": {
"$ref": "#/components/schemas/LibraryStatus"
}
},
"required": [
"anime_id",
"status"
]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/me/library/mal-import": {
"post": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"operationId": "postMeLibraryAnimeImport",
"summary": "Import an anime export file.",
"description": "This endpoint will import an anime export file into the authenticated user's library.",
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"properties": {
"file": {
"type": "string",
"format": "binary",
"description": "The anime export file"
},
"service": {
"$ref": "#/components/schemas/ImportService"
},
"behavior": {
"$ref": "#/components/schemas/ImportBehavior"
}
},
"required": [
"file",
"service",
"behavior"
]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/me/library/delete": {
"post": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"operationId": "postMeLibraryDelete",
"summary": "Remove an anime from library.",
"description": "This endpoint will remove an anime from the authenticated user's library.",
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"anime_id": {
"type": "integer",
"description": "The ID of the Anime to remove."
}
},
"required": [
"anime_id"
]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/me/notifications": {
"get": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"operationId": "getMeNotifications",
"summary": "Authenticated user's list of notifications.",
"description": "This endpoint will retrieve the list of the authenticated user's notifications.",
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/me/notifications/{notificationUUID}": {
"get": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"operationId": "getMeNotificationsDetails",
"summary": "Get a notification's details.",
"description": "This endpoint will retrieve the details of a notification.",
"parameters": [
{
"in": "path",
"name": "notificationUUID",
"schema": {
"type": "string"
},
"required": true,
"description": "UUID of the notification to be retrieved."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetMeNotificationsDetailsSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/me/notifications/{notificationUUID}/delete": {
"post": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"operationId": "getMeNotificationsDelete",
"summary": "Delete a notification.",
"description": "This endpoint will delete the authenticated user's notification.",
"parameters": [
{
"in": "path",
"name": "notificationUUID",
"schema": {
"type": "string"
},
"required": true,
"description": "UUID of the notification to be deleted."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/me/notifications/update": {
"post": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"operationId": "postMeNotificationsUpdate",
"summary": "Update a notification's status.",
"description": "This endpoint will update the status of a single, multiple or all notifications of the authenticated user.",
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"notification": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"uniqueItems": true,
"description": "The UUID of the notification to update. Use \"all\" to update all of the user's notifications."
},
"read": {
"$ref": "#/components/schemas/NotificationReadStatus"
}
},
"required": [
"notification",
"read"
]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/PostMeNotificationsUpdateSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/me/reminder-anime": {
"get": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"summary": "Get an overview reminders.",
"description": "This endpoint will retrieve the list of anime in the authenticated user's reminder list.",
"parameters": [
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
},
"post": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"summary": "Add or remove reminders.",
"description": "This endpoint will add or remove to/from the list of anime in an authenticated user's reminders.",
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"anime_id": {
"type": "integer",
"description": "The ID of the Anime to add or remove."
}
},
"required": [
"anime_id"
]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/me/reminder-anime/download": {
"get": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"summary": "Download reminders.",
"description": "This endpoint will retrieve the calendar file with anime in the authenticated user's reminder list.",
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/me/sessions": {
"get": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"operationId": "getMeSessions",
"summary": "Get a list of sessions.",
"description": "This endpoint will retrieve a list of sessions for the authenticated user.",
"parameters": [
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/me/sessions/{sessionID}": {
"get": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"operationId": "getMeSessionsSession",
"summary": "Fetch session details.",
"description": "This endpoint will retrieve the details of a session.",
"parameters": [
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string"
},
"required": true,
"description": "ID of the session to be retrieved."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetSessionsSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/me/sessions/{sessionID}/delete": {
"post": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"me"
],
"operationId": "postMeSessionsDelete",
"summary": "Delete a session.",
"description": "This endpoint will delete an authenticated user's session.",
"parameters": [
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string"
},
"required": true,
"description": "ID of the session to be deleted."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/PostSessionsDeleteSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/studios/{studioID}": {
"get": {
"security": [
{
},
{
"bearerAuth": [
]
}
],
"tags": [
"studios"
],
"operationId": "getStudiosDetails",
"summary": "(Optional authentication) Get studio details.",
"description": "This endpoint will retrieve the details of a specific studio.",
"parameters": [
{
"in": "path",
"name": "studioID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the studio."
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true
},
"explode": false,
"required": false,
"description": "The relations to include in the response. Available relations are:\n- shows"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetStudiosDetailsSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/studios/{studioID}/anime": {
"get": {
"security": [
{
},
{
"bearerAuth": [
]
}
],
"tags": [
"studios"
],
"operationId": "getStudiosAnime",
"summary": "(Optional authentication) Get studio anime details.",
"description": "This endpoint will retrieve the anime details for a studio.",
"parameters": [
{
"in": "path",
"name": "studioID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the studio."
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetStudiosAnimeSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/theme-store": {
"get": {
"security": [
{
},
{
"bearerAuth": [
]
}
],
"tags": [
"theme-store"
],
"operationId": "getThemeStore",
"summary": "Retrieve an overview of theme store items.",
"description": "This endpoint will retrieve an overview of theme store items.",
"responses": {
"200": {
"$ref": "#/components/responses/GetThemeStoreSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/theme-store/{themeID}": {
"get": {
"security": [
{
},
{
"bearerAuth": [
]
}
],
"tags": [
"theme-store"
],
"operationId": "getThemeStoreDetails",
"summary": "Get specific theme store item details.",
"description": "This endpoint will retrieve the details of a specific theme store item.",
"parameters": [
{
"in": "path",
"name": "themeID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the theme store item."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/GetThemeStoreDetailsSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/users": {
"post": {
"tags": [
"users"
],
"operationId": "postUsers",
"summary": "Register a new user",
"description": "This endpoint will create a new user based on the given details.",
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "The new user's username",
"example": "Kurozora"
},
"password": {
"type": "string",
"description": "The new user's password"
},
"email": {
"type": "string",
"description": "The new user's email"
},
"profileImage": {
"type": "string",
"format": "binary",
"description": "The new user's profile image"
}
},
"required": [
"username",
"password",
"email"
]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/users/signin": {
"post": {
"tags": [
"users"
],
"operationId": "postSignIn",
"summary": "Sign in to account.",
"description": "This endpoint will sign in a user to their account.",
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "The user's email address"
},
"password": {
"type": "string",
"description": "The user's password"
},
"platform": {
"type": "string",
"description": "The platform that was used to create the session",
"example": "iOS"
},
"platform_version": {
"type": "string",
"description": "The platform version that was used to create the session",
"example": "13.4"
},
"device_vendor": {
"type": "string",
"description": "The device vendor that was used to create the session",
"example": "Apple"
},
"device_model": {
"type": "string",
"description": "The device model that was used to create the session",
"example": "iPhone 11 Pro Max"
}
},
"required": [
"email",
"password",
"platform",
"platform_version",
"device_vendor",
"device_model"
]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/PostSessionsSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/users/siwa/signin": {
"post": {
"tags": [
"users"
],
"operationId": "postSiwASignIn",
"summary": "Sign in or sign up a user using Sign in with Apple.",
"description": "This endpoint will sign in or sign up a user using Sign in with Apple.",
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "The identity token (JWT) as provided by Apple"
},
"platform": {
"type": "string",
"description": "The platform that was used to create the session",
"example": "iOS"
},
"platform_version": {
"type": "string",
"description": "The platform version that was used to create the session",
"example": "13.4"
},
"device_vendor": {
"type": "string",
"description": "The device vendor that was used to create the session",
"example": "Apple"
},
"device_model": {
"type": "string",
"description": "The device model that was used to create the session",
"example": "iPhone 11 Pro Max"
}
},
"required": [
"token",
"platform",
"platform_version",
"device_vendor",
"device_model"
]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/users/reset-password": {
"post": {
"tags": [
"users"
],
"operationId": "postResetPassword",
"summary": "Request a password reset for a user",
"description": "This endpoint will send an email to the user to reset their password.",
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "The email of the user to request a password reset."
}
},
"required": [
"email"
]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/users/{userID}/favorite-anime": {
"get": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"users"
],
"operationId": "getUsersFavoriteAnime",
"summary": "Get an overview of the user's favorite Anime",
"description": "This endpoint will retrieve the list of Anime in the user's favorites list.",
"parameters": [
{
"in": "path",
"name": "userID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the user."
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/users/{userID}/feed-messages": {
"get": {
"security": [
{
},
{
"bearerAuth": [
]
}
],
"tags": [
"users"
],
"operationId": "getUsersFeedMessages",
"summary": "Get feed messages.",
"description": "This endpoint will retrieve the user's feed messages.",
"parameters": [
{
"in": "path",
"name": "userID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the user."
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/users/{userID}/profile": {
"get": {
"security": [
{
},
{
"bearerAuth": [
]
}
],
"tags": [
"users"
],
"operationId": "getUsersProfile",
"summary": "(optional authentication) User profile details.",
"description": "This endpoint will retrieve the details of a user's profile.",
"parameters": [
{
"in": "path",
"name": "userID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the user."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/users/{userID}/follow": {
"post": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"users"
],
"operationId": "postUsersFollow",
"summary": "Follow or unfollow another user",
"description": "This endpoint will follow or unfollow another user.",
"parameters": [
{
"in": "path",
"name": "userID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the user."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/users/{userID}/followers": {
"get": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"users"
],
"operationId": "getUsersFollowers",
"summary": "Fetch followers list.",
"description": "This endpoint will retrieve the user's followers list.",
"parameters": [
{
"in": "path",
"name": "userID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the user."
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/users/{userID}/following": {
"get": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"users"
],
"operationId": "getUsersFollowing",
"summary": "Fetch following list.",
"description": "This endpoint will retrieve the user's following list.",
"parameters": [
{
"in": "path",
"name": "userID",
"schema": {
"type": "integer"
},
"required": true,
"description": "ID of the user."
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"example": 25,
"minimum": 1,
"maximum": 100
},
"required": false,
"description": "The limit on the number of objects, or number of objects in the specified relationship, that are returned. The default value is 25 and the maximum value is 100."
},
{
"in": "query",
"name": "page",
"schema": {
"type": "string",
"minimum": 1
},
"required": false,
"description": "The next page or group of objects to fetch. The default value is 1."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/users/delete": {
"delete": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"users"
],
"operationId": "deleteUser",
"summary": "Delete an account.",
"description": "This endpoint will delete a user's account.",
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"password": {
"type": "string",
"description": "The user's password"
}
},
"required": [
"password"
]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/store": {
"get": {
"tags": [
"store"
],
"operationId": "getStore",
"summary": "Fetch store products.",
"description": "This endpoint will retrieve the available products from the store",
"parameters": [
{
"in": "query",
"name": "type",
"schema": {
"$ref": "#/components/schemas/StoreProductType"
},
"required": false,
"description": "The type of products to fetch.\n- 0: Consumable\n- 1: Non-Consumable\n- 2: Non-Renewing Subscription\n- 3: Auto-Renewing Subscription"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/store/verify": {
"post": {
"security": [
{
"bearerAuth": [
]
}
],
"tags": [
"store"
],
"operationId": "postStoreVerify",
"summary": "Verify receipt",
"description": "This endpoint will verify the receipt for authenticity.",
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"properties": {
"receipt": {
"type": "string",
"description": "The Base64 encoded receipt data."
}
},
"required": [
"receipt"
]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/legal/privacy-policy": {
"get": {
"tags": [
"legal"
],
"operationId": "getPrivacyPolicy",
"summary": "Retrieve latest Privacy Policy.",
"description": "This endpoint will retrieve the latest Privacy Policy.",
"responses": {
"200": {
"$ref": "#/components/responses/GetPrivacyPolicySuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/legal/terms-of-use": {
"get": {
"tags": [
"legal"
],
"operationId": "getTermsOfUse",
"summary": "Retrieve latest Terms of Use.",
"description": "This endpoint will retrieve the latest Terms of Use.",
"responses": {
"200": {
"$ref": "#/components/responses/GetTermsOfUseSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
},
"/info": {
"get": {
"tags": [
"misc"
],
"operationId": "getInfo",
"summary": "API info.",
"description": "Plain API JSON response.",
"responses": {
"200": {
"$ref": "#/components/responses/JSONSuccess"
},
"400": {
"$ref": "#/components/responses/JSONError"
}
}
}
}
},
"components": {
"schemas": {
"ImportService": {
"type": "integer",
"enum": [
0,
1
],
"default": 1,
"description": "The set of available import service types.\n- 0 = MyAnimeList\n- 1 = Kitsu"
},
"ImportBehavior": {
"type": "integer",
"enum": [
0,
1
],
"default": 1,
"description": "The set of available import behavior types.\n- 0 = overwrite\n- 1 = merge"
},
"LibraryStatus": {
"type": "string",
"enum": [
"Watching",
"Dropped",
"Planning",
"Completed",
"OnHold"
],
"default": "Watching",
"description": "The set of available library status types."
},
"NotificationReadStatus": {
"type": "integer",
"enum": [
0,
1
],
"default": 1,
"description": "The notification read status used to mark a notification as read or unread.\n- 0 = unread\n- 1 = read"
},
"NSFWStatus": {
"type": "integer",
"enum": [
0,
1
],
"default": 0,
"description": "Whether the message contains NSFW material.\n- 0 = no NSFW\n- 1 = NSFW"
},
"Re-shareStatus": {
"type": "integer",
"enum": [
0,
1
],
"default": 0,
"description": "Whether the message is a re-share. If it's a re-share then parent_id cannot be empty.\n- 0 = not re-share\n- 1 = re-share"
},
"ReplyStatus": {
"type": "integer",
"enum": [
0,
1
],
"default": 0,
"description": "Whether the message is a reply or not. If it's a reply then parent_id cannot be empty.\n- 0 = not reply\n- 1 = reply"
},
"SearchScope": {
"type": "string",
"enum": [
"kurozora",
"library"
],
"default": "kurozora",
"description": "The types used to perform the search."
},
"SearchType": {
"type": "array",
"items": {
"type": "string",
"enum": [
"characters",
"episodes",
"games",
"literatures",
"people",
"shows",
"songs",
"studios",
"users"
]
},
"default": "shows",
"description": "The types used to perform the search."
},
"SpoilerStatus": {
"type": "integer",
"enum": [
0,
1
],
"default": 0,
"description": "Whether the message contains spoiler material.\n- 0 = no spoiler\n- 1 = spoiler"
},
"StoreProductType": {
"type": "integer",
"enum": [
0,
1,
2,
3
],
"description": "The set of available store product types.\n- 0: Consumable\n- 1: Non-Consumable\n- 2: Non-Renewing Subscription\n- 3: Auto-Renewing Subscription"
},
"VoteType": {
"type": "integer",
"enum": [
-1,
1
],
"default": 1,
"description": "The vote type to submit. Submitting the same vote type twice will undo the vote.\n- -1 = dislike\n- 1 = like"
}
},
"securitySchemes": {
"bearerAuth": {
"type": "http",
"scheme": "bearer",
"bearerFormat": "string"
}
},
"responses": {
"JSONSuccess": {
"description": "Successful Kurozora JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"meta": {
"version": "1.0.8",
"queryCount": 0,
"isUserAuthenticated": false,
"authenticatedUserID": null
}
}
}
}
}
},
"JSONError": {
"description": "Error Kurozora JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"meta": {
"version": "1.0.8",
"queryCount": 0,
"isUserAuthenticated": false,
"authenticatedUserID": null
},
"errors": [
{
"id": 40001,
"status": 401,
"title": "Unauthorized",
"detail": "The request wasn’t accepted due to an issue with the kuro-auth token or because it’s using incorrect authentication."
}
]
}
}
}
}
},
"GetMeNotificationsDetailsSuccess": {
"description": "Successful POST Notifications Details JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": {
"id": "1094845f-c175-462d-8aec-9bbad4af232f",
"type": "notifications",
"href": "/v1/me/notifications/1094845f-c175-462d-8aec-9bbad4af232f",
"attributes": {
"type": "NewSession",
"isRead": true,
"data": {
"id": 2,
"ip": "127.0.0.1"
},
"string": "A new client has logged in to your account. (IP: 127.0.0.1)",
"createdAt": "2020-07-27 13:57:12"
}
}
}
}
}
}
},
"PostMeNotificationsUpdateSuccess": {
"description": "Successful POST Notifications Update JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": {
"isRead": true,
"amount_updated": 1
}
}
}
}
}
},
"GetPeopleDetailsSuccess": {
"description": "Successful GET People Details JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 1,
"type": "people",
"href": "/v1/people/1",
"attributes": {
"firstName": "Alvera",
"lastName": null,
"givenName": null,
"familyName": "中村",
"alternativeNames": [
"sunt"
],
"about": null,
"imageURL": "https://via.placeholder.com/640x480.png/009955?text=et",
"websiteURL": null
}
}
]
}
}
}
}
},
"GetPeopleAnimeSuccess": {
"description": "Successful GET People Anime JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 227,
"type": "show",
"href": "/v1/anime/227",
"attributes": {
"anidbID": null,
"anilistID": null,
"kitsuID": null,
"imdbID": null,
"malID": null,
"title": "Molestias quibusdam voluptas non et cupiditate.",
"tagline": "Sed ipsum ducimus et expedita alias.",
"synopsis": "Atque vel voluptas rerum omnis asperiores. Animi laboriosam voluptatum rerum et optio quas. Suscipit quos numquam a non eos beatae ducimus. Dolore doloribus quasi voluptates libero.",
"tvRating": {
"name": "TV-Y7",
"description": "facere culpa voluptatum"
},
"mediaType": {
"name": "OVA",
"description": "Original Video Animation in home video formats."
},
"source": {
"name": "Music",
"description": "Adapted from a music video."
},
"network": null,
"producer": null,
"episodeCount": 0,
"seasonCount": 0,
"averageRating": 0,
"ratingCount": 0,
"videoUrl": null,
"poster": null,
"background": null,
"startedAt": "1993-07-18",
"endedAt": "1993-10-10",
"runtime": 25,
"airStatus": "Continuing",
"airTime": "21:59:00",
"airDay": "Monday",
"isNSFW": false,
"copyright": "℗ 1979 Ernser, Jerde and Hoppe",
"givenRating": 0,
"libraryStatus": null,
"isFavorited": null,
"isReminded": null
}
},
{
"id": 229,
"type": "show",
"href": "/v1/anime/229",
"attributes": {
"anidbID": null,
"anilistID": null,
"kitsuID": null,
"imdbID": null,
"malID": null,
"title": "Quod consequatur corporis nihil qui et.",
"tagline": "Qui illum qui quia voluptatem repellat expedita occaecati quod.",
"synopsis": "Eum eos voluptas officia sed. Amet consequuntur iusto beatae culpa sequi pariatur ea. Provident quaerat laudantium repellendus iusto provident non autem. Nostrum aperiam in quae nulla iusto officia.",
"tvRating": {
"name": "NR",
"description": "Not Rated"
},
"mediaType": {
"name": "OVA",
"description": "Original Video Animation in home video formats."
},
"source": {
"name": "Visual Novel",
"description": "Adapted from an interactive fiction video game which usually features a text-based story."
},
"network": null,
"producer": null,
"episodeCount": 0,
"seasonCount": 0,
"averageRating": 0,
"ratingCount": 0,
"videoUrl": null,
"poster": null,
"background": null,
"startedAt": "1970-09-10",
"endedAt": "1971-02-25",
"runtime": 25,
"airStatus": "Tba",
"airTime": "04:18:00",
"airDay": "Monday",
"isNSFW": false,
"copyright": "℗ 1972 Prosacco, Weissnat and Kirlin",
"givenRating": 0,
"libraryStatus": null,
"isFavorited": null,
"isReminded": null
}
}
]
}
}
}
}
},
"GetPeopleCharactersSuccess": {
"description": "Successful GET People Characters JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 1,
"type": "characters",
"href": "/v1/characters/1",
"attributes": {
"name": "Tyra Armstrong IV",
"about": "Aspernatur odio ab laborum neque voluptatem quia amet aliquam. Quaerat autem quo quis reprehenderit iure nostrum. Explicabo nam dignissimos ut consequatur. Veniam sapiente explicabo laborum sit harum optio enim sed. Ex corrupti fuga esse quia voluptatibus. Sit in qui ut saepe adipisci reiciendis. Consequatur aspernatur molestiae est saepe mollitia qui. Laudantium eligendi odio adipisci illo. Culpa delectus maxime aperiam nemo impedit eos. Dicta et aliquid ratione est alias autem possimus. Aut repellendus beatae ipsum ipsum numquam animi. Nam et et est pariatur. Facilis sed et sit quia quam quo. A quae repudiandae pariatur mollitia. Exercitationem earum deserunt voluptate dolore facilis impedit fuga. Hic delectus consequatur quidem. Quia dolorum et voluptatum consectetur quis. Voluptatum hic in deleniti voluptates sunt. Qui perspiciatis rerum et porro.",
"imageURL": "https://lorempixel.com/640/480/?46141",
"debut": "Episode 05",
"status": "Deceased",
"bloodType": "W",
"favoriteFood": "numquam",
"bust": "27.70",
"waist": "78.44",
"hip": "53.99",
"height": "875",
"age": 265,
"birthDay": 1,
"birthMonth": 7,
"astrologicalSign": "Virgo ♍️"
}
},
{
"id": 2,
"type": "characters",
"href": "/v1/characters/2",
"attributes": {
"name": "Lorna Pollich",
"about": "Est vitae et voluptas ullam unde id ea. Quo non distinctio ipsa blanditiis aspernatur. Perferendis aut officia sit similique soluta odit eum. Sunt quo delectus est quis sapiente. A natus voluptatem omnis distinctio quis quas. Molestiae ut aut voluptas incidunt necessitatibus nihil culpa. Molestiae dolores illo dignissimos amet sit. Sit non et enim doloremque ratione exercitationem. Hic voluptas ab eos quia quia quia. Hic expedita est distinctio quaerat accusamus.",
"imageURL": "https://lorempixel.com/640/480/?51170",
"debut": "Episode 82",
"status": "Deceased",
"bloodType": "A",
"favoriteFood": "hic",
"bust": "22.62",
"waist": "33.46",
"hip": "37.65",
"height": "704",
"age": 292,
"birthDay": 1,
"birthMonth": 2,
"astrologicalSign": "Cancer ♋️"
}
}
]
}
}
}
}
},
"GetAnimeSuccess": {
"description": "Successful GET Anime JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 1,
"type": "show",
"href": "/v1/anime/1",
"attributes": {
"title": "\"0\"",
"type": "Tv",
"source": "Unknown",
"anidbID": 10143,
"anilistID": 102416,
"kitsuID": 8925,
"imdbID": null,
"malID": 20707,
"network": null,
"studio": [
{
"id": 1,
"type": "studios",
"href": "/v1/studios/1",
"attributes": {
"name": null,
"logoURL": null,
"about": null,
"founded": null,
"websiteURL": null
}
}
],
"status": "Continuing",
"episodes": 0,
"seasons": 0,
"averageRating": 0,
"ratingCount": 0,
"synopsis": "Error ipsa eos et rem recusandae voluptate sunt corrupti. Qui est est autem sit pariatur laudantium. Suscipit laboriosam enim modi quae quia aperiam excepturi sunt. Temporibus est hic adipisci.",
"runtime": 25,
"tvRating": {
"name": "PG-12",
"description": ""
},
"tagline": "Voluptatem rerum quos quidem aut.",
"videoURL": null,
"poster": {
"url": "https://place-hold.it/680x1000",
"height": 1000,
"width": 680,
"backgroundColor": "#acacac",
"textColor1": "#171717",
"textColor2": "#545454",
"textColor3": "#6e6e6e",
"textColor4": "#5c5c5c"
},
"background": {
"url": "https://place-hold.it/1920x1080",
"height": 1080,
"width": 1920,
"backgroundColor": "#acacac",
"textColor1": "#171717",
"textColor2": "#545454",
"textColor3": "#6d6d6d",
"textColor4": "#5c5c5c"
},
"isNSFW": false,
"genres": [],
"themes": [],
"startedAt": "1973-11-15",
"endedAt": "1974-02-07",
"airTime": "20:00:00",
"airDay": 3,
"copyright": "® 2003 Watsica-Kling",
"givenRating": 3.5,
"libraryStatus": "Watching",
"isFavorited": true,
"isReminded": true
},
"relationships": {
"people": {
"data": [
{
"id": 10,
"type": "people",
"href": "/v1/people/10",
"attributes": {
"firstName": "Leatha",
"lastName": "Dietrich",
"occupation": "Installation and Repair Technician",
"imageURL": "https://lorempixel.com/640/480/?22657"
}
},
{
"id": 1,
"type": "people",
"href": "/v1/people/1",
"attributes": {
"firstName": "Aniyah",
"lastName": "Waelchi",
"occupation": "Government Property Inspector",
"imageURL": "https://lorempixel.com/640/480/?66477"
}
},
{
"id": 2,
"type": "people",
"href": "/v1/people/2",
"attributes": {
"firstName": "Ashley",
"lastName": "Carroll",
"occupation": "Inspector",
"imageURL": "https://lorempixel.com/640/480/?48504"
}
}
],
"href": "/v1/anime/1/people"
},
"characters": {
"data": [
{
"id": 10,
"type": "characters",
"href": "/v1/characters/10",
"attributes": {
"name": "Savion Strosin",
"about": "Quae rerum delectus neque et officiis fuga incidunt et. Exercitationem et consequatur quae sunt molestias repellat dolorem. Necessitatibus iusto voluptatem ea dolor quasi. Rerum voluptas vel voluptate. Aut est dignissimos et molestias dolores sed perspiciatis. Aperiam eveniet omnis quo vel ipsum incidunt earum. Maxime veritatis eligendi sit. Quae et placeat earum quos. Et ut possimus in cumque. Omnis veniam distinctio officia minus. Et aut quia vel pariatur. Sint ut natus quia vitae sed quia. Numquam voluptatem quis beatae optio facere animi voluptatem. Quidem ullam ipsa velit totam debitis enim. Eos nesciunt aut dolores vitae consequuntur voluptas. Molestiae illo repellendus necessitatibus voluptatem. Optio labore necessitatibus incidunt. Non quia molestiae dolores repudiandae. Quam sapiente ea sed delectus molestiae deleniti maiores.",
"imageURL": "https://lorempixel.com/640/480/?82757",
"debut": "Episode 65",
"status": "Deceased",
"bloodType": "H",
"favoriteFood": "beatae",
"bust": null,
"waist": null,
"hip": null,
"height": "616",
"age": 233,
"birthDay": 1,
"birthMonth": 7,
"astrologicalSign": "Aquarius ♒️"
}
},
{
"id": 1,
"type": "characters",
"href": "/v1/characters/1",
"attributes": {
"name": "Tyra Armstrong IV",
"about": "Aspernatur odio ab laborum neque voluptatem quia amet aliquam. Quaerat autem quo quis reprehenderit iure nostrum. Explicabo nam dignissimos ut consequatur. Veniam sapiente explicabo laborum sit harum optio enim sed. Ex corrupti fuga esse quia voluptatibus. Sit in qui ut saepe adipisci reiciendis. Consequatur aspernatur molestiae est saepe mollitia qui. Laudantium eligendi odio adipisci illo. Culpa delectus maxime aperiam nemo impedit eos. Dicta et aliquid ratione est alias autem possimus. Aut repellendus beatae ipsum ipsum numquam animi. Nam et et est pariatur. Facilis sed et sit quia quam quo. A quae repudiandae pariatur mollitia. Exercitationem earum deserunt voluptate dolore facilis impedit fuga. Hic delectus consequatur quidem. Quia dolorum et voluptatum consectetur quis. Voluptatum hic in deleniti voluptates sunt. Qui perspiciatis rerum et porro.",
"imageURL": "https://lorempixel.com/640/480/?46141",
"debut": "Episode 05",
"status": "Deceased",
"bloodType": "W",
"favoriteFood": "numquam",
"bust": "27.70",
"waist": "78.44",
"hip": "53.99",
"height": "875",
"age": 265,
"birthDay": 1,
"birthMonth": 7,
"astrologicalSign": "Virgo ♍️"
}
},
{
"id": 2,
"type": "characters",
"href": "/v1/characters/2",
"attributes": {
"name": "Lorna Pollich",
"about": "Est vitae et voluptas ullam unde id ea. Quo non distinctio ipsa blanditiis aspernatur. Perferendis aut officia sit similique soluta odit eum. Sunt quo delectus est quis sapiente. A natus voluptatem omnis distinctio quis quas. Molestiae ut aut voluptas incidunt necessitatibus nihil culpa. Molestiae dolores illo dignissimos amet sit. Sit non et enim doloremque ratione exercitationem. Hic voluptas ab eos quia quia quia. Hic expedita est distinctio quaerat accusamus.",
"imageURL": "https://lorempixel.com/640/480/?51170",
"debut": "Episode 82",
"status": "Deceased",
"bloodType": "A",
"favoriteFood": "hic",
"bust": "22.62",
"waist": "33.46",
"hip": "37.65",
"height": "704",
"age": 292,
"birthDay": 1,
"birthMonth": 2,
"astrologicalSign": "Cancer ♋️"
}
}
],
"href": "/v1/anime/1/characters"
},
"cast": {
"data": [
{
"person": {
"id": 10,
"type": "people",
"href": "/v1/people/10",
"attributes": {
"firstName": "Leatha",
"lastName": "Dietrich",
"occupation": "Installation and Repair Technician",
"imageURL": "https://lorempixel.com/640/480/?22657"
}
},
"character": {
"id": 10,
"type": "characters",
"href": "/v1/characters/10",
"attributes": {
"name": "Savion Strosin",
"about": "Quae rerum delectus neque et officiis fuga incidunt et. Exercitationem et consequatur quae sunt molestias repellat dolorem. Necessitatibus iusto voluptatem ea dolor quasi. Rerum voluptas vel voluptate. Aut est dignissimos et molestias dolores sed perspiciatis. Aperiam eveniet omnis quo vel ipsum incidunt earum. Maxime veritatis eligendi sit. Quae et placeat earum quos. Et ut possimus in cumque. Omnis veniam distinctio officia minus. Et aut quia vel pariatur. Sint ut natus quia vitae sed quia. Numquam voluptatem quis beatae optio facere animi voluptatem. Quidem ullam ipsa velit totam debitis enim. Eos nesciunt aut dolores vitae consequuntur voluptas. Molestiae illo repellendus necessitatibus voluptatem. Optio labore necessitatibus incidunt. Non quia molestiae dolores repudiandae. Quam sapiente ea sed delectus molestiae deleniti maiores.",
"imageURL": "https://lorempixel.com/640/480/?82757",
"debut": "Episode 65",
"status": "Deceased",
"bloodType": "H",
"favoriteFood": "beatae",
"bust": null,
"waist": null,
"hip": null,
"height": "616",
"age": 233,
"birthDay": 1,
"birthMonth": 7,
"astrologicalSign": "Aquarius ♒️"
}
},
"role": "Protagonist"
},
{
"person": {
"id": 1,
"type": "people",
"href": "/v1/people/1",
"attributes": {
"firstName": "Aniyah",
"lastName": "Waelchi",
"occupation": "Government Property Inspector",
"imageURL": "https://lorempixel.com/640/480/?66477"
}
},
"character": {
"id": 1,
"type": "characters",
"href": "/v1/characters/1",
"attributes": {
"name": "Tyra Armstrong IV",
"about": "Aspernatur odio ab laborum neque voluptatem quia amet aliquam. Quaerat autem quo quis reprehenderit iure nostrum. Explicabo nam dignissimos ut consequatur. Veniam sapiente explicabo laborum sit harum optio enim sed. Ex corrupti fuga esse quia voluptatibus. Sit in qui ut saepe adipisci reiciendis. Consequatur aspernatur molestiae est saepe mollitia qui. Laudantium eligendi odio adipisci illo. Culpa delectus maxime aperiam nemo impedit eos. Dicta et aliquid ratione est alias autem possimus. Aut repellendus beatae ipsum ipsum numquam animi. Nam et et est pariatur. Facilis sed et sit quia quam quo. A quae repudiandae pariatur mollitia. Exercitationem earum deserunt voluptate dolore facilis impedit fuga. Hic delectus consequatur quidem. Quia dolorum et voluptatum consectetur quis. Voluptatum hic in deleniti voluptates sunt. Qui perspiciatis rerum et porro.",
"imageURL": "https://lorempixel.com/640/480/?46141",
"debut": "Episode 05",
"status": "Deceased",
"bloodType": "W",
"favoriteFood": "numquam",
"bust": "27.70",
"waist": "78.44",
"hip": "53.99",
"height": "875",
"age": 265,
"birthDay": 1,
"birthMonth": 7,
"astrologicalSign": "Virgo ♍️"
}
},
"role": "Deuteragonist"
},
{
"person": {
"id": 2,
"type": "people",
"href": "/v1/people/2",
"attributes": {
"firstName": "Ashley",
"lastName": "Carroll",
"occupation": "Inspector",
"imageURL": "https://lorempixel.com/640/480/?48504"
}
},
"character": {
"id": 2,
"type": "characters",
"href": "/v1/characters/2",
"attributes": {
"name": "Lorna Pollich",
"about": "Est vitae et voluptas ullam unde id ea. Quo non distinctio ipsa blanditiis aspernatur. Perferendis aut officia sit similique soluta odit eum. Sunt quo delectus est quis sapiente. A natus voluptatem omnis distinctio quis quas. Molestiae ut aut voluptas incidunt necessitatibus nihil culpa. Molestiae dolores illo dignissimos amet sit. Sit non et enim doloremque ratione exercitationem. Hic voluptas ab eos quia quia quia. Hic expedita est distinctio quaerat accusamus.",
"imageURL": "https://lorempixel.com/640/480/?51170",
"debut": "Episode 82",
"status": "Deceased",
"bloodType": "A",
"favoriteFood": "hic",
"bust": "22.62",
"waist": "33.46",
"hip": "37.65",
"height": "704",
"age": 292,
"birthDay": 1,
"birthMonth": 2,
"astrologicalSign": "Cancer ♋️"
}
},
"role": "Tritagonist"
}
],
"href": "/v1/anime/1/cast"
},
"relatedShows": {
"data": [
{
"show": {
"id": 217,
"type": "show",
"href": "/v1/anime/217",
"attributes": {
"anidbID": null,
"anilistID": null,
"kitsuID": null,
"imdbID": null,
"malID": null,
"title": "Omnis odit hic dolorem itaque.",
"synopsis": "Aspernatur aperiam corrupti similique voluptatibus qui. Voluptas eum ea doloribus qui inventore hic. Voluptas accusantium libero autem ipsum molestiae aut nobis. Aliquam unde voluptates corrupti ut temporibus eum.",
"tagline": "Sunt error hic quod sint.",
"tvRating": {
"name": "R18+",
"description": "Adults Only"
},
"type": {
"name": "Special",
"description": "A standalone series with a self-contained story."
},
"source": {
"name": "4-Koma Manga",
"description": "Adapted from comic strips that generally consists of four panels per page."
},
"network": null,
"studio": [],
"status": "Tba",
"episodes": 0,
"seasons": 0,
"averageRating": 0,
"ratingCount": 0,
"runtime": 25,
"videoURL": null,
"poster": null,
"background": null,
"isNSFW": true,
"genres": [],
"themes": [],
"startedAt": "2014-12-10",
"endedAt": "2015-05-27",
"airTime": "16:49:00",
"airDay": 7,
"copyright": "℗ 1997 Kulas-Baumbach",
"givenRating": 0,
"libraryStatus": null,
"isFavorited": false,
"isReminded": false
}
},
"attributes": {
"type": "Full story"
}
},
{
"show": {
"id": 219,
"type": "show",
"href": "/v1/anime/219",
"attributes": {
"title": "Nam voluptatum voluptas optio qui.",
"type": "Unknown",
"source": "Original",
"anidbID": null,
"anilistID": null,
"kitsuID": null,
"imdbID": null,
"malID": null,
"network": null,
"studio": [],
"status": "Tba",
"episodes": 0,
"seasons": 0,
"averageRating": 0,
"ratingCount": 0,
"synopsis": "Rerum distinctio quibusdam porro et. Modi natus iusto ut qui praesentium dicta sed ratione. Porro excepturi et qui laudantium tenetur non iure.",
"runtime": 25,
"tvRating": {
"name": "G",
"description": "All Ages"
},
"tagline": "Expedita esse et cupiditate id impedit qui ut.",
"videoURL": null,
"poster": null,
"background": null,
"isNSFW": false,
"genres": [],
"themes": [],
"startedAt": "2015-02-10",
"endedAt": "2015-05-05",
"airTime": "18:32:00",
"airDay": 6,
"copyright": "® 1976 Swift Ltd",
"givenRating": 0,
"libraryStatus": null,
"isFavorited": false,
"isReminded": false
}
},
"attributes": {
"type": "Adaptation"
}
}
],
"href": "/v1/anime/1/related-shows"
},
"seasons": {
"data": [
{
"id": 1,
"type": "seasons",
"href": "/v1/seasons/1",
"attributes": {
"animeID": 1,
"number": 1,
"posterURL": "https://via.placeholder.com/640x480.png/006655?text=ratione",
"title": "Season 1",
"synopsis": "This is a short description of the season's story.",
"episodeCount": 2,
"startedAt": "2020-07-29"
}
}
],
"href": "/v1/anime/1/seasons"
}
}
}
]
}
}
}
}
},
"GetAnimeCastSuccess": {
"description": "Successful GET Anime Cast JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"person": {
"id": 10,
"type": "people",
"href": "/v1/people/10",
"attributes": {
"firstName": "Leatha",
"lastName": "Dietrich",
"occupation": "Installation and Repair Technician",
"imageURL": "https://lorempixel.com/640/480/?22657"
}
},
"character": {
"id": 10,
"type": "characters",
"href": "/v1/characters/10",
"attributes": {
"name": "Savion Strosin",
"about": "Quae rerum delectus neque et officiis fuga incidunt et. Exercitationem et consequatur quae sunt molestias repellat dolorem. Necessitatibus iusto voluptatem ea dolor quasi. Rerum voluptas vel voluptate. Aut est dignissimos et molestias dolores sed perspiciatis. Aperiam eveniet omnis quo vel ipsum incidunt earum. Maxime veritatis eligendi sit. Quae et placeat earum quos. Et ut possimus in cumque. Omnis veniam distinctio officia minus. Et aut quia vel pariatur. Sint ut natus quia vitae sed quia. Numquam voluptatem quis beatae optio facere animi voluptatem. Quidem ullam ipsa velit totam debitis enim. Eos nesciunt aut dolores vitae consequuntur voluptas. Molestiae illo repellendus necessitatibus voluptatem. Optio labore necessitatibus incidunt. Non quia molestiae dolores repudiandae. Quam sapiente ea sed delectus molestiae deleniti maiores.",
"imageURL": "https://lorempixel.com/640/480/?82757",
"debut": "Episode 65",
"status": "Deceased",
"bloodType": "H",
"favoriteFood": "beatae",
"bust": null,
"waist": null,
"hip": null,
"height": "616",
"age": 233,
"birthDay": 1,
"birthMonth": 7,
"astrologicalSign": "Aquarius ♒️"
}
},
"role": "Protagonist"
},
{
"person": {
"id": 1,
"type": "people",
"href": "/v1/people/1",
"attributes": {
"firstName": "Aniyah",
"lastName": "Waelchi",
"occupation": "Government Property Inspector",
"imageURL": "https://lorempixel.com/640/480/?66477"
}
},
"character": {
"id": 1,
"type": "characters",
"href": "/v1/characters/1",
"attributes": {
"name": "Tyra Armstrong IV",
"about": "Aspernatur odio ab laborum neque voluptatem quia amet aliquam. Quaerat autem quo quis reprehenderit iure nostrum. Explicabo nam dignissimos ut consequatur. Veniam sapiente explicabo laborum sit harum optio enim sed. Ex corrupti fuga esse quia voluptatibus. Sit in qui ut saepe adipisci reiciendis. Consequatur aspernatur molestiae est saepe mollitia qui. Laudantium eligendi odio adipisci illo. Culpa delectus maxime aperiam nemo impedit eos. Dicta et aliquid ratione est alias autem possimus. Aut repellendus beatae ipsum ipsum numquam animi. Nam et et est pariatur. Facilis sed et sit quia quam quo. A quae repudiandae pariatur mollitia. Exercitationem earum deserunt voluptate dolore facilis impedit fuga. Hic delectus consequatur quidem. Quia dolorum et voluptatum consectetur quis. Voluptatum hic in deleniti voluptates sunt. Qui perspiciatis rerum et porro.",
"imageURL": "https://lorempixel.com/640/480/?46141",
"debut": "Episode 05",
"status": "Deceased",
"bloodType": "W",
"favoriteFood": "numquam",
"bust": "27.70",
"waist": "78.44",
"hip": "53.99",
"height": "875",
"age": 265,
"birthDay": 1,
"birthMonth": 7,
"astrologicalSign": "Virgo ♍️"
}
},
"role": "Deuteragonist"
}
]
}
}
}
}
},
"GetAnimeCharactersSuccess": {
"description": "Successful GET Anime Characters JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 1,
"type": "characters",
"href": "/v1/characters/1",
"attributes": {
"name": "Tyra Armstrong IV",
"about": "Aspernatur odio ab laborum neque voluptatem quia amet aliquam. Quaerat autem quo quis reprehenderit iure nostrum. Explicabo nam dignissimos ut consequatur. Veniam sapiente explicabo laborum sit harum optio enim sed. Ex corrupti fuga esse quia voluptatibus. Sit in qui ut saepe adipisci reiciendis. Consequatur aspernatur molestiae est saepe mollitia qui. Laudantium eligendi odio adipisci illo. Culpa delectus maxime aperiam nemo impedit eos. Dicta et aliquid ratione est alias autem possimus. Aut repellendus beatae ipsum ipsum numquam animi. Nam et et est pariatur. Facilis sed et sit quia quam quo. A quae repudiandae pariatur mollitia. Exercitationem earum deserunt voluptate dolore facilis impedit fuga. Hic delectus consequatur quidem. Quia dolorum et voluptatum consectetur quis. Voluptatum hic in deleniti voluptates sunt. Qui perspiciatis rerum et porro.",
"imageURL": "https://lorempixel.com/640/480/?46141",
"debut": "Episode 05",
"status": "Deceased",
"bloodType": "W",
"favoriteFood": "numquam",
"bust": "27.70",
"waist": "78.44",
"hip": "53.99",
"height": "875",
"age": 265,
"birthDay": 1,
"birthMonth": 7,
"astrologicalSign": "Virgo ♍️"
}
},
{
"id": 2,
"type": "characters",
"href": "/v1/characters/2",
"attributes": {
"name": "Lorna Pollich",
"about": "Est vitae et voluptas ullam unde id ea. Quo non distinctio ipsa blanditiis aspernatur. Perferendis aut officia sit similique soluta odit eum. Sunt quo delectus est quis sapiente. A natus voluptatem omnis distinctio quis quas. Molestiae ut aut voluptas incidunt necessitatibus nihil culpa. Molestiae dolores illo dignissimos amet sit. Sit non et enim doloremque ratione exercitationem. Hic voluptas ab eos quia quia quia. Hic expedita est distinctio quaerat accusamus.",
"imageURL": "https://lorempixel.com/640/480/?51170",
"debut": "Episode 82",
"status": "Deceased",
"bloodType": "A",
"favoriteFood": "hic",
"bust": "22.62",
"waist": "33.46",
"hip": "37.65",
"height": "704",
"age": 292,
"birthDay": 1,
"birthMonth": 2,
"astrologicalSign": "Cancer ♋️"
}
}
]
}
}
}
}
},
"GetAnimeUpcomingSuccess": {
"description": "Successful GET Upcoming Anime JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 1,
"type": "show",
"href": "/v1/anime/1",
"attributes": {
"title": "\"0\"",
"type": "Tv",
"source": "Unknown",
"anidbID": 10143,
"anilistID": 102416,
"kitsuID": 8925,
"imdbID": null,
"malID": 20707,
"network": null,
"studio": [
{
"id": 1,
"type": "studios",
"href": "/v1/studios/1",
"attributes": {
"name": "Watsica-Kling",
"logoURL": "https://place-hold.it/512x512",
"about": "Error ipsa eos et rem recusandae rerum quos quidem aut.",
"founded": "1963-11-15",
"websiteURL": "https://watsica-kling.com/"
}
}
],
"status": "Continuing",
"episodes": 0,
"seasons": 0,
"averageRating": 0,
"ratingCount": 0,
"synopsis": "Error ipsa eos et rem recusandae voluptate sunt corrupti. Qui est est autem sit pariatur laudantium. Suscipit laboriosam enim modi quae quia aperiam excepturi sunt. Temporibus est hic adipisci.",
"runtime": 25,
"tvRating": {
"name": "G",
"description": "All Ages"
},
"tagline": "Voluptatem rerum quos quidem aut.",
"videoURL": null,
"poster": {
"url": "https://place-hold.it/680x1000",
"height": 1000,
"width": 680,
"backgroundColor": "#acacac",
"textColor1": "#171717",
"textColor2": "#545454",
"textColor3": "#6e6e6e",
"textColor4": "#5c5c5c"
},
"background": {
"url": "https://place-hold.it/1920x1080",
"height": 1080,
"width": 1920,
"backgroundColor": "#acacac",
"textColor1": "#171717",
"textColor2": "#545454",
"textColor3": "#6d6d6d",
"textColor4": "#5c5c5c"
},
"isNSFW": false,
"genres": [
"Action",
"Adventure"
],
"themes": [
"Cars",
"Demons"
],
"startedAt": "1973-11-15",
"endedAt": "1974-02-07",
"airTime": "20:00:00",
"airDay": 3,
"copyright": "® 2003 Watsica-Kling"
}
},
{
"id": 2,
"type": "show",
"href": "/v1/anime/2",
"attributes": {
"title": "\"Aesop\" no Ohanashi yori: Ushi to Kaeru, Yokubatta Inu",
"type": "Tv",
"source": "Digital manga",
"anidbID": 3689,
"anilistID": null,
"kitsuID": 9179,
"imdbID": null,
"malID": 25627,
"network": null,
"studio": [
{
"id": 2,
"type": "studios",
"href": "/v1/studios/2",
"attributes": {
"name": null,
"logoURL": null,
"about": null,
"founded": null,
"websiteURL": null
}
}
],
"status": "Ended",
"episodes": 0,
"seasons": 0,
"averageRating": 0,
"ratingCount": 0,
"synopsis": "Totam ex non eaque rem. Suscipit eos recusandae et. Pariatur reprehenderit aliquid reprehenderit nisi quae. Fuga enim atque ratione occaecati sequi iste dignissimos.",
"runtime": 25,
"tvRating": {
"name": "G",
"description": "All Ages"
},
"tagline": "Vel facilis dignissimos suscipit veritatis enim nemo ut.",
"videoURL": null,
"poster": null,
"background": null,
"isNSFW": false,
"genres": [],
"themes": [],
"startedAt": "2014-09-28",
"endedAt": "2014-12-21",
"airTime": "19:24:00",
"airDay": 4,
"copyright": "® 1985 Fadel, Sipes and McGlynn"
}
}
]
}
}
}
}
},
"GetAnimeRelatedShowsSuccess": {
"description": "Successful GET Anime Related Shows JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"show": {
"id": 217,
"type": "show",
"href": "/v1/anime/217",
"attributes": {
"anidbID": null,
"anilistID": null,
"kitsuID": null,
"imdbID": null,
"malID": null,
"title": "Omnis odit hic dolorem itaque.",
"synopsis": "Aspernatur aperiam corrupti similique voluptatibus qui. Voluptas eum ea doloribus qui inventore hic. Voluptas accusantium libero autem ipsum molestiae aut nobis. Aliquam unde voluptates corrupti ut temporibus eum.",
"tagline": "Sunt error hic quod sint.",
"tvRating": {
"name": "R18+",
"description": "Adults Only"
},
"mediaType": {
"name": "Special",
"description": "A standalone series with a self-contained story."
},
"source": {
"name": "4-Koma Manga",
"description": "Adapted from comic strips that generally consists of four panels per page."
},
"network": null,
"studio": [],
"status": "Tba",
"episodes": 0,
"seasons": 0,
"averageRating": 0,
"ratingCount": 0,
"runtime": 25,
"videoURL": null,
"poster": null,
"background": null,
"isNSFW": true,
"genres": [],
"themes": [],
"startedAt": "2014-12-10",
"endedAt": "2015-05-27",
"airTime": "16:49:00",
"airDay": 7,
"copyright": "℗ 1997 Kulas-Baumbach",
"givenRating": 0,
"libraryStatus": null,
"isFavorited": false,
"isReminded": false
}
},
"attributes": {
"type": "Full story"
}
},
{
"show": {
"id": 219,
"type": "show",
"href": "/v1/anime/219",
"attributes": {
"title": "Nam voluptatum voluptas optio qui.",
"type": "Unknown",
"source": "Original",
"anidbID": null,
"anilistID": null,
"kitsuID": null,
"imdbID": null,
"malID": null,
"network": null,
"studio": [],
"status": "Tba",
"episodes": 0,
"seasons": 0,
"averageRating": 0,
"ratingCount": 0,
"synopsis": "Rerum distinctio quibusdam porro et. Modi natus iusto ut qui praesentium dicta sed ratione. Porro excepturi et qui laudantium tenetur non iure.",
"runtime": 25,
"tvRating": {
"name": "G",
"description": "All Ages"
},
"tagline": "Expedita esse et cupiditate id impedit qui ut.",
"videoURL": null,
"poster": null,
"background": null,
"isNSFW": false,
"genres": [],
"themes": [],
"startedAt": "2015-02-10",
"endedAt": "2015-05-05",
"airTime": "18:32:00",
"airDay": 6,
"copyright": "® 1976 Swift Ltd",
"givenRating": 0,
"libraryStatus": null,
"isFavorited": false,
"isReminded": false
}
},
"attributes": {
"type": "Adaptation"
}
}
]
}
}
}
}
},
"GetSeasonsSuccess": {
"description": "Successful GET Seasons JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 1,
"type": "seasons",
"href": "/v1/seasons/1",
"attributes": {
"animeID": 1,
"number": 1,
"posterURL": "https://via.placeholder.com/640x480.png/006655?text=ratione",
"title": "Season 1",
"synopsis": "This is a short description of the season's story.",
"episodeCount": 2,
"startedAt": "2020-07-29"
}
}
]
}
}
}
}
},
"GetAnimeStaffSuccess": {
"description": "Successful GET Anime Staff JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 10,
"type": "staff",
"href": "/v1/anime/138/staff",
"attributes": {
"role": {
"name": "Digital Colouring",
"description": ""
}
},
"relationships": {
"person": {
"href": "/v1/people/10",
"data": {
"id": 1,
"type": "people",
"href": "/v1/people/1",
"attributes": {
"firstName": "Aubrey",
"lastName": "Littel",
"givenName": "結衣",
"familyName": null,
"alternativeNames": [
"Suki"
],
"about": "Eveniet voluptatibus atque commodi reprehenderit voluptate enim. Non distinctio qui et corporis quae et aut. Ullam qui aperiam similique aperiam. Quibusdam incidunt nemo ut laboriosam sapiente. Assumenda autem placeat quia quo. Velit occaecati sit tempora doloremque reiciendis ea. Et molestiae id id minus. Similique qui sed molestiae velit voluptas. Ut atque illum harum. Voluptatum aut ea ab dignissimos. Corporis assumenda omnis sequi aut deleniti. Laudantium nobis sit ea tenetur quo rerum. Fugiat soluta vel sed adipisci corporis quaerat aut quibusdam. Reiciendis porro alias labore est nesciunt. Omnis reprehenderit corporis voluptas nemo aspernatur id. Aut provident explicabo voluptatem sunt accusantium. Repellendus consequatur laudantium incidunt voluptas reprehenderit cupiditate vel. Excepturi ut ea et fuga totam. Ut voluptas eum voluptatem. Placeat in tempora sunt exercitationem qui inventore quibusdam est. Dolores et voluptas quia qui saepe. Est corporis quas iusto et sint. Ut dignissimos nostrum quia. Qui hic et est autem. Cum libero magni animi odit vero molestiae nobis molestiae.",
"imageURL": null,
"websiteURL": null
}
}
}
}
}
]
}
}
}
}
},
"GetAnimeStudiosSuccess": {
"description": "Successful GET Anime Studios JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id":8,
"type": "studios",
"href": "/v1/studios/8",
"attributes": {
"name": "Bogan, Medhurst and Stamm",
"logo": {
"url": "https://via.placeholder.com/640x480.png/006655?text=ratione"
},
"about": "Corporis quia ducimus eveniet beatae. Aut repellat voluptates porro esse ea. Similique quos nemo voluptas beatae enim molestias. Qui perspiciatis unde ipsa ipsam rerum veniam. Non explicabo hic incidunt quibusdam nobis accusantium. Voluptatum vero vel et animi et amet. Quis autem quod enim ut incidunt odio. Tenetur omnis amet qui delectus. Temporibus cupiditate ullam similique harum voluptas. Nostrum deserunt eum voluptas ex ut similique omnis. Ipsa illo voluptates nobis quisquam fugit rerum voluptatem dolore. Voluptatem ratione ut veritatis illum eveniet aliquam. Eaque maxime nemo maiores dolor hic.",
"founded": "2007-02-25",
"websiteUrl": "https://streich.net/blanditiis-tempora-molestiae-in-aut"
}
}
]
}
}
}
}
},
"GetSearchSuccess": {
"description": "Successful GET Search JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": {
"characters": {
"data": [
{
"id": 7487,
"uuid": "7487",
"type": "characters",
"href": "/v1/characters/krieg"
},
{
"id": 16398,
"uuid": "16398",
"type": "characters",
"href": "/v1/characters/whetton"
}
],
"next": "/v1/search?query=one%20piece&scope=kurozora&limit=2&types%5B0%5D=characters&page=2"
},
"shows": {
"data": [
{
"id": 22598,
"uuid": "22598",
"type": "show",
"href": "/v1/anime/one-piece"
},
{
"id": 13739,
"uuid": "13739",
"type": "show",
"href": "/v1/anime/one-piece-film-gold-cine-mike-popcorn-kokuchi"
}
],
"next": "/v1/search?query=one%20piece&scope=kurozora&limit=2&types%5B0%5D=shows&page=2"
},
"studios": {
"data": [
{
"id": 1345,
"uuid": "1345",
"type": "studios",
"href": "/v1/studios/one-piece-magazine"
},
{
"id": 2334,
"uuid": "2334",
"type": "studios",
"href": "/v1/studios/toei-animation"
}
],
"next": null
}
}
}
}
}
}
},
"GetSeasonsDetailsSuccess": {
"description": "Successful GET Seasons Details JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 1,
"type": "seasons",
"href": "/v1/seasons/1",
"attributes": {
"animeID": 1,
"number": 1,
"posterURL": "https://via.placeholder.com/640x480.png/006655?text=ratione",
"title": "Season 1",
"synopsis": "This is a short description of the season's story.",
"episodeCount": 2,
"startedAt": "6-29-2020 2020-07-29 12:00:00"
}
}
]
}
}
}
}
},
"GetSeasonsEpisodesSuccess": {
"description": "Successful GET Seasons Episodes JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 1,
"type": "episodes",
"href": "/v1/episodes/1",
"attributes": {
"poster": {
"url": "https://kurozora-cdn.app/episodes/1_poster.png",
"height": 200,
"width": 140,
"backgroundColor": "#d2c6bd",
"textColor1": "#30475d",
"textColor2": "#8f2c1d",
"textColor3": "#a46c39",
"textColor4": "#ac7867"
},
"banner": {
"url": "https://kurozora-cdn.app/episodes/1_banner.png",
"height": 480,
"width": 640,
"backgroundColor": "#c4dbdf",
"textColor1": "#3e779f",
"textColor2": "#6bb2cc",
"textColor3": "#5d5b5e",
"textColor4": "#727466"
},
"number": 1,
"numberTotal": 1,
"title": "Episode 1",
"synopsis": "A short, or long description of the episode.",
"duration": "24 minutes",
"startedAt": 959731200,
"isFiller": false,
"isVerified": false,
"isWatched": true
}
},
{
"id": 2,
"type": "episodes",
"href": "/v1/seasons/2/episodes",
"attributes": {
"poster": {
"url": "https://kurozora-cdn.app/episodes/2_poster.png",
"height": 200,
"width": 140,
"backgroundColor": "#d2c6bd",
"textColor1": "#30475d",
"textColor2": "#8f2c1d",
"textColor3": "#a46c39",
"textColor4": "#ac7867"
},
"banner": {
"url": "https://kurozora-cdn.app/episodes/2_banner.png",
"height": 480,
"width": 640,
"backgroundColor": "#c4dbdf",
"textColor1": "#3e779f",
"textColor2": "#6bb2cc",
"textColor3": "#5d5b5e",
"textColor4": "#727466"
},
"number": 2,
"numberTotal": 2,
"title": "Episode 2",
"synopsis": "A long, or short description of the episode.",
"duration": "24 minutes",
"startedAt": 959731200,
"isFiller": true,
"isVerified": false,
"isWatched": false
}
}
]
}
}
}
}
},
"GetEpisodesDetailsSuccess": {
"description": "Successful GET Episodes Details JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 1,
"type": "episodes",
"href": "/v1/episodes/1",
"attributes": {
"number": 1,
"title": "Episode 1",
"startedAt": "2 Jul, 2020",
"overview": "Season 1 Episode 1 description",
"isVerified": false,
"isWatched": false
}
}
]
}
}
}
}
},
"PostEpisodesWatchedSuccess": {
"description": "Successful POST Episodes Watched JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": {
"isWatched": true
}
}
}
}
}
},
"PostSeasonsWatchedSuccess": {
"description": "Successful POST Seasons Watched JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": {
"isWatched": true
}
}
}
}
}
},
"GetCastSuccess": {
"description": "Successful GET Cast JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 1,
"type": "show",
"href": "/api/v1/anime/1",
"attributes": {
"role": {
"name": "Protagonist",
"description": "The leading character or one of the major characters."
},
"language": "Japanese"
},
"relationships": {
"person": {
"id": 10,
"type": "people",
"href": "/v1/people/10",
"attributes": {
"firstName": "Leatha",
"lastName": "Dietrich",
"occupation": "Installation and Repair Technician",
"imageURL": "https://lorempixel.com/640/480/?22657"
}
},
"character": {
"id": 10,
"type": "characters",
"href": "/v1/characters/10",
"attributes": {
"name": "Savion Strosin",
"about": "Quae rerum delectus neque et officiis fuga incidunt et. Exercitationem et consequatur quae sunt molestias repellat dolorem. Necessitatibus iusto voluptatem ea dolor quasi. Rerum voluptas vel voluptate. Aut est dignissimos et molestias dolores sed perspiciatis. Aperiam eveniet omnis quo vel ipsum incidunt earum. Maxime veritatis eligendi sit. Quae et placeat earum quos. Et ut possimus in cumque. Omnis veniam distinctio officia minus. Et aut quia vel pariatur. Sint ut natus quia vitae sed quia. Numquam voluptatem quis beatae optio facere animi voluptatem. Quidem ullam ipsa velit totam debitis enim. Eos nesciunt aut dolores vitae consequuntur voluptas. Molestiae illo repellendus necessitatibus voluptatem. Optio labore necessitatibus incidunt. Non quia molestiae dolores repudiandae. Quam sapiente ea sed delectus molestiae deleniti maiores.",
"imageURL": "https://lorempixel.com/640/480/?82757",
"debut": "Episode 65",
"status": "Deceased",
"bloodType": "H",
"favoriteFood": "beatae",
"bust": null,
"waist": null,
"hip": null,
"height": "616",
"age": 233,
"birthDay": 1,
"birthMonth": 7,
"astrologicalSign": "Aquarius ♒️"
}
}
}
}
]
}
}
}
}
},
"GetCharactersDetailsSuccess": {
"description": "Successful GET Characters Details JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 1,
"type": "characters",
"href": "/v1/characters/1",
"attributes": {
"name": "Tyra Armstrong IV",
"about": "Aspernatur odio ab laborum neque voluptatem quia amet aliquam. Quaerat autem quo quis reprehenderit iure nostrum. Explicabo nam dignissimos ut consequatur. Veniam sapiente explicabo laborum sit harum optio enim sed. Ex corrupti fuga esse quia voluptatibus. Sit in qui ut saepe adipisci reiciendis. Consequatur aspernatur molestiae est saepe mollitia qui. Laudantium eligendi odio adipisci illo. Culpa delectus maxime aperiam nemo impedit eos. Dicta et aliquid ratione est alias autem possimus. Aut repellendus beatae ipsum ipsum numquam animi. Nam et et est pariatur. Facilis sed et sit quia quam quo. A quae repudiandae pariatur mollitia. Exercitationem earum deserunt voluptate dolore facilis impedit fuga. Hic delectus consequatur quidem. Quia dolorum et voluptatum consectetur quis. Voluptatum hic in deleniti voluptates sunt. Qui perspiciatis rerum et porro.",
"imageURL": "https://lorempixel.com/640/480/?46141",
"debut": "Episode 05",
"status": "Deceased",
"bloodType": "W",
"favoriteFood": "numquam",
"bust": "27.70",
"waist": "78.44",
"hip": "53.99",
"height": "875",
"age": 265,
"birthDay": 1,
"birthMonth": 7,
"astrologicalSign": "Virgo ♍️"
},
"relationships": {
"shows": {
"data": [
{
"id": 220,
"type": "show",
"href": "/v1/anime/220",
"attributes": {
"anidbID": null,
"anilistID": null,
"kitsuID": null,
"imdbID": null,
"malID": null,
"title": "Qui reprehenderit necessitatibus ad.",
"tagline": "Hic eligendi delectus quis doloribus in aperiam.",
"synopsis": "Vel et omnis a eligendi ad a odit. Iure ipsam et nulla expedita est. Provident et amet labore maiores nisi.",
"tvRating": {
"name": "R18+",
"description": "Adults Only"
},
"mediaType": {
"name": "TV",
"description": "A show that aired on television."
},
"source": {
"name": "4-Koma Manga",
"description": "Adapted from comic strips that generally consists of four panels per page."
},
"network": null,
"producer": null,
"episodeCount": 0,
"seasonCount": 0,
"averageRating": 0,
"ratingCount": 0,
"videoUrl": null,
"poster": null,
"background": null,
"startedAt": "1987-06-15",
"endedAt": "1987-09-07",
"runtime": 25,
"airStatus": "Tba",
"airTime": "16:59:00",
"airDay": "Tuesday",
"isNSFW": true,
"copyright": "® 1974 Larson, Skiles and Bartell",
"givenRating": 0,
"libraryStatus": null,
"isFavorited": null,
"isReminded": null
}
}
],
"href": "/v1/characters/1/anime"
},
"people": {
"data": [
{
"id": 1,
"type": "people",
"href": "/v1/people/1",
"attributes": {
"firstName": "Aniyah",
"lastName": "Waelchi",
"occupation": "Government Property Inspector",
"imageURL": "https://lorempixel.com/640/480/?66477"
}
}
],
"href": "/v1/characters/1/people"
}
}
}
]
}
}
}
}
},
"GetCharactersPeopleSuccess": {
"description": "Successful GET Characters People JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 1,
"type": "people",
"href": "/v1/people/1",
"attributes": {
"firstName": "Aniyah",
"lastName": "Waelchi",
"occupation": "Government Property Inspector",
"imageURL": "https://lorempixel.com/640/480/?66477"
}
}
]
}
}
}
}
},
"GetCharactersAnimeSuccess": {
"description": "Successful GET Characters Anime JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 227,
"type": "show",
"href": "/v1/anime/227",
"attributes": {
"anidbID": null,
"anilistID": null,
"kitsuID": null,
"imdbID": null,
"malID": null,
"title": "Molestias quibusdam voluptas non et cupiditate.",
"tagline": "Sed ipsum ducimus et expedita alias.",
"synopsis": "Atque vel voluptas rerum omnis asperiores. Animi laboriosam voluptatum rerum et optio quas. Suscipit quos numquam a non eos beatae ducimus. Dolore doloribus quasi voluptates libero.",
"tvRating": {
"name": "G",
"description": "All Ages"
},
"mediaType": {
"name": "OVA",
"description": "Original Video Animation in home video formats."
},
"source": {
"name": "Music",
"description": "Adapted from a music video."
},
"network": null,
"producer": null,
"episodeCount": 0,
"seasonCount": 0,
"averageRating": 0,
"ratingCount": 0,
"videoUrl": null,
"poster": null,
"background": null,
"startedAt": "1993-07-18",
"endedAt": "1993-10-10",
"runtime": 25,
"airStatus": "Continuing",
"airTime": "21:59:00",
"airDay": "Monday",
"isNSFW": false,
"copyright": "℗ 1979 Ernser, Jerde and Hoppe",
"givenRating": 0,
"libraryStatus": null,
"isFavorited": null,
"isReminded": null
}
},
{
"id": 229,
"type": "show",
"href": "/v1/anime/229",
"attributes": {
"anidbID": null,
"anilistID": null,
"kitsuID": null,
"imdbID": null,
"malID": null,
"title": "Quod consequatur corporis nihil qui et.",
"tagline": "Qui illum qui quia voluptatem repellat expedita occaecati quod.",
"synopsis": "Eum eos voluptas officia sed. Amet consequuntur iusto beatae culpa sequi pariatur ea. Provident quaerat laudantium repellendus iusto provident non autem. Nostrum aperiam in quae nulla iusto officia.",
"tvRating": {
"name": "G",
"description": "All Ages"
},
"mediaType": {
"name": "OVA",
"description": "Original Video Animation in home video formats."
},
"source": {
"name": "Visual Novel",
"description": "Adapted from an interactive fiction video game which usually features a text-based story."
},
"network": null,
"producer": null,
"episodeCount": 0,
"seasonCount": 0,
"averageRating": 0,
"ratingCount": 0,
"videoUrl": null,
"poster": null,
"background": null,
"startedAt": "1970-09-10",
"endedAt": "1971-02-25",
"runtime": 25,
"airStatus": "Tba",
"airTime": "04:18:00",
"airDay": "Monday",
"isNSFW": false,
"copyright": "℗ 1972 Prosacco, Weissnat and Kirlin",
"givenRating": 0,
"libraryStatus": null,
"isFavorited": null,
"isReminded": null
}
}
]
}
}
}
}
},
"GetGenresSuccess": {
"description": "Successful GET Genres JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 1,
"type": "genres",
"href": "/v1/genres/1",
"attributes": {
"name": "Action",
"color": "#FFE4B9",
"symbol": "https://kurozora-cdn.app/1/symbol.png",
"description": "An action story is similar to adventure, and the protagonist usually takes a risky turn, which leads to desperate situations (including explosions, fight scenes, daring escapes, etc.).",
"isNSFW": false
}
},
{
"id": 2,
"type": "genres",
"href": "/v1/genres/2",
"attributes": {
"name": "Adventure",
"color": "#CAF0FF",
"symbol": "https://kurozora-cdn.app/2/symbol.png",
"description": "An adventure story is about a protagonist who journeys to epic or distant places to accomplish something.",
"isNSFW": false
}
}
]
}
}
}
}
},
"GetGenresDetailsSuccess": {
"description": "Successful GET Genres Details JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 1,
"type": "genres",
"href": "/v1/genres/1",
"attributes": {
"name": "Action",
"color": "#FFE4B9",
"symbol": "https://kurozora-cdn.app/1/symbol.png",
"description": "An action story is similar to adventure, and the protagonist usually takes a risky turn, which leads to desperate situations (including explosions, fight scenes, daring escapes, etc.).",
"isNSFW": false
}
}
]
}
}
}
}
},
"GetThemesSuccess": {
"description": "Successful GET Themes JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 1,
"type": "themes",
"href": "/v1/themes/1",
"attributes": {
"name": "Cars",
"color": "#C5C5C5",
"symbol": "https://kurozora-cdn.app/1/symbol.png",
"description": "Stories that feature cars at the center of attention or involve racing.",
"isNSFW": false
}
},
{
"id": 2,
"type": "themes",
"href": "/v1/themes/2",
"attributes": {
"name": "Demons",
"color": "#99B6D8",
"symbol": "https://kurozora-cdn.app/2/symbol.png",
"description": "Supernatural and often malevolent being prevalent in religion, occultism, literature, fiction, mythology and folklore.",
"isNSFW": false
}
}
]
}
}
}
}
},
"GetThemesDetailsSuccess": {
"description": "Successful GET Themes Details JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 1,
"type": "themes",
"href": "/v1/themes/1",
"attributes": {
"name": "Cars",
"color": "#C5C5C5",
"symbol": "https://kurozora-cdn.app/1/symbol.png",
"description": "Stories that feature cars at the center of attention or involve racing.",
"isNSFW": false
}
}
]
}
}
}
}
},
"PostAccessTokensUpdateSuccess": {
"description": "Successful POST Access Token Update JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"message": "Access token update successful."
}
}
}
}
},
"GetSessionsSuccess": {
"description": "Successful GET Sessions JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": {
"id": 3,
"type": "sessions",
"href": "/v1/sessions/3",
"attributes": {
"ip": "127.0.0.1",
"lastValidatedAt": "2020-07-28 02:43:50",
"platform": {
"description": "iPhone 11 Pro Max on iOS 13.4",
"systemName": "iOS",
"systemVersion": "13.4",
"deviceVendor": "Apple",
"deviceModel": "iPhone 11 Pro Max"
},
"location": {
"city": "Amsterdam",
"region": "Amsterdam",
"country": "Netherlands",
"latitude": 52.35997,
"longitude": 4.86352
}
}
}
}
}
}
}
},
"PostSessionsSuccess": {
"description": "Successful POST Sessions JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 24,
"type": "sessions",
"href": "/v1/sessions/24",
"attributes": {
"ip": "127.0.0.1",
"lastValidatedAt": "2020-08-04 22:51:58"
},
"authToken": "AuthenticationToken",
"relationships": {
"user": {
"data": [
{
"id": 2,
"type": "users",
"href": "/v1/users/2/profile",
"attributes": {
"username": "Kirito",
"activityStatus": "Online",
"biography": "An interesting biography.",
"profileImageURL": "https://kurozora-cdn.app/2/ProfileImage.png",
"bannerImageURL": "https://kurozora-cdn.app/2/BannerImage.png",
"followerCount": 10,
"followingCount": 12,
"reputationCount": 14
}
}
]
},
"platform": {
"data": [
{
"description": "iPhone 11 Pro Max on iOS 13.4",
"systemName": "iOS",
"systemVersion": "13.4",
"deviceVendor": "Apple",
"deviceModel": "iPhone 11 Pro Max"
}
]
},
"location": {
"data": [
{
"city": "Amsterdam",
"region": "Amsterdam",
"country": "Netherlands",
"latitude": 52.35997,
"longitude": 4.86352
}
]
}
}
}
]
}
}
}
}
},
"PostSessionsDeleteSuccess": {
"description": "Successful POST Sessions Delete JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"meta": {
"version": "1.0.8",
"queryCount": 0,
"isUserAuthenticated": false,
"authenticatedUserID": null
}
}
}
}
}
},
"GetStudiosDetailsSuccess": {
"description": "Successful GET Studios Details JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 1,
"type": "studios",
"href": "/v1/studios/1",
"attributes": {
"name": "Considine-Tillman",
"logoURL": "https://lorempixel.com/640/480/?85310",
"about": "Eos repellat optio aut explicabo quod. Consequatur sit quasi aliquam sed modi aut. Perspiciatis et perferendis architecto voluptas eos quis iure. Corrupti ea reiciendis et quo sed itaque. Unde ipsa officia et veniam dicta ullam omnis modi. Consequuntur non possimus fugiat quaerat delectus ea. In voluptas dignissimos veniam reprehenderit a. Cum dolores aperiam et nihil. Veniam id rerum commodi quia assumenda at. Et velit iure eos aut. Et est praesentium id fugiat reprehenderit. Sunt dolorem aut ratione ipsam ipsum quo.",
"founded": "1983-09-30",
"websiteURL": "https://rodriguez.com/eos-ut-earum-ut-eum-voluptas-iusto.html"
},
"relationships": {
"shows": {
"data": [
{
"id": 1,
"type": "show",
"href": "/v1/anime/1",
"attributes": {
"title": "\"0\"",
"type": "Tv",
"source": "Unknown",
"anidbID": 10143,
"anilistID": 102416,
"kitsuID": 8925,
"imdbID": null,
"malID": 20707,
"network": null,
"studio": [
{
"id": 1,
"type": "studios",
"href": "/v1/studios/1",
"attributes": {
"name": null,
"logoURL": null,
"about": null,
"founded": null,
"websiteURL": null
}
}
],
"status": "Continuing",
"episodes": 0,
"seasons": 0,
"averageRating": 0,
"ratingCount": 0,
"synopsis": "Error ipsa eos et rem recusandae voluptate sunt corrupti. Qui est est autem sit pariatur laudantium. Suscipit laboriosam enim modi quae quia aperiam excepturi sunt. Temporibus est hic adipisci.",
"runtime": 25,
"tvRating": {
"name": "G",
"description": "All Ages"
},
"tagline": "Voluptatem rerum quos quidem aut.",
"videoURL": null,
"poster": null,
"background": null,
"isNSFW": false,
"genres": [],
"themes": [],
"startedAt": "1973-11-15",
"endedAt": "1974-02-07",
"airTime": "20:00:00",
"airDay": 3,
"copyright": "® 2003 Watsica-Kling"
}
},
{
"id": 2,
"type": "show",
"href": "/v1/anime/2",
"attributes": {
"title": "\"Aesop\" no Ohanashi yori: Ushi to Kaeru, Yokubatta Inu",
"type": "Tv",
"source": "Digital manga",
"anidbID": 3689,
"anilistID": null,
"kitsuID": 9179,
"imdbID": null,
"malID": 25627,
"network": null,
"studio": [
{
"id": 2,
"type": "studios",
"href": "/v1/studios/2",
"attributes": {
"name": null,
"logoURL": null,
"about": null,
"founded": null,
"websiteURL": null
}
}
],
"status": "Ended",
"episodes": 0,
"seasons": 0,
"averageRating": 0,
"ratingCount": 0,
"synopsis": "Totam ex non eaque rem. Suscipit eos recusandae et. Pariatur reprehenderit aliquid reprehenderit nisi quae. Fuga enim atque ratione occaecati sequi iste dignissimos.",
"runtime": 25,
"tvRating": {
"name": "G",
"description": "All Ages"
},
"tagline": "Vel facilis dignissimos suscipit veritatis enim nemo ut.",
"videoURL": null,
"poster": null,
"background": null,
"isNSFW": false,
"genres": [],
"themes": [],
"startedAt": "2014-09-28",
"endedAt": "2014-12-21",
"airTime": "19:24:00",
"airDay": 4,
"copyright": "® 1985 Fadel, Sipes and McGlynn"
}
}
],
"href": "/v1/studios/1/anime"
}
}
}
]
}
}
}
}
},
"GetStudiosAnimeSuccess": {
"description": "Successful GET Studios Anime JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 1,
"type": "show",
"href": "/v1/anime/1",
"attributes": {
"title": "\"0\"",
"type": "Tv",
"source": "Unknown",
"anidbID": 10143,
"anilistID": 102416,
"kitsuID": 8925,
"imdbID": null,
"malID": 20707,
"network": null,
"studio": [
{
"id": 1,
"type": "studios",
"href": "/v1/studios/1",
"attributes": {
"name": null,
"logoURL": null,
"about": null,
"founded": null,
"websiteURL": null
}
}
],
"status": "Continuing",
"episodes": 0,
"seasons": 0,
"averageRating": 0,
"ratingCount": 0,
"synopsis": "Error ipsa eos et rem recusandae voluptate sunt corrupti. Qui est est autem sit pariatur laudantium. Suscipit laboriosam enim modi quae quia aperiam excepturi sunt. Temporibus est hic adipisci.",
"runtime": 25,
"tvRating": {
"name": "G",
"description": "All Ages"
},
"tagline": "Voluptatem rerum quos quidem aut.",
"videoURL": null,
"poster": null,
"background": null,
"isNSFW": false,
"genres": [],
"themes": [],
"startedAt": "1973-11-15",
"endedAt": "1974-02-07",
"airTime": "20:00:00",
"airDay": 3,
"copyright": "® 2003 Watsica-Kling"
}
},
{
"id": 2,
"type": "show",
"href": "/v1/anime/2",
"attributes": {
"title": "\"Aesop\" no Ohanashi yori: Ushi to Kaeru, Yokubatta Inu",
"type": "Tv",
"source": "Digital manga",
"anidbID": 3689,
"anilistID": null,
"kitsuID": 9179,
"imdbID": null,
"malID": 25627,
"network": null,
"studio": [
{
"id": 2,
"type": "studios",
"href": "/v1/studios/2",
"attributes": {
"name": null,
"logoURL": null,
"about": null,
"founded": null,
"websiteURL": null
}
}
],
"status": "Ended",
"episodes": 0,
"seasons": 0,
"averageRating": 0,
"ratingCount": 0,
"synopsis": "Totam ex non eaque rem. Suscipit eos recusandae et. Pariatur reprehenderit aliquid reprehenderit nisi quae. Fuga enim atque ratione occaecati sequi iste dignissimos.",
"runtime": 25,
"tvRating": {
"name": "G",
"description": "All Ages"
},
"tagline": "Vel facilis dignissimos suscipit veritatis enim nemo ut.",
"videoURL": null,
"poster": null,
"background": null,
"isNSFW": false,
"genres": [],
"themes": [],
"startedAt": "2014-09-28",
"endedAt": "2014-12-21",
"airTime": "19:24:00",
"airDay": 4,
"copyright": "® 1985 Fadel, Sipes and McGlynn"
}
}
]
}
}
}
}
},
"GetThemeStoreSuccess": {
"description": "Successful GET Theme Store JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 1,
"type": "theme-store",
"attributes": {
"name": "Watermelon",
"screenshot": "https://kurozora-cdn.app/1/Screenshot.jpeg",
"downloadLink": "/api/v1/theme-store/1/download"
}
},
{
"id": 2,
"type": "theme-store",
"attributes": {
"name": "Blueberry",
"screenshot": "https://kurozora-cdn.app/2/Screenshot.jpeg",
"downloadLink": "/api/v1/theme-store/2/download"
}
}
]
}
}
}
}
},
"GetThemeStoreDetailsSuccess": {
"description": "Successful GET Theme Store Details JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": [
{
"id": 1,
"type": "theme-store",
"href": "/v1/theme-store/1",
"attributes": {
"name": "Tatum Orn",
"screenshot": "https://kurozora-cdn.app/1/Screenshot.jpeg",
"downloadLink": "https://kurozora.app/api/v1/theme-store/1/download"
}
}
]
}
}
}
}
},
"GetPrivacyPolicySuccess": {
"description": "Successful GET Privacy Policy JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": {
"type": "legal",
"href": "/v1/privacy-policy",
"attributes": {
"text": "The Privacy Policy in HTML format."
}
}
}
}
}
}
},
"GetTermsOfUseSuccess": {
"description": "Successful GET Terms of Use JSON response",
"content": {
"application/json": {
"schema": {
"type": "object",
"example": {
"data": {
"type": "legal",
"href": "/v1/terms-of-use",
"attributes": {
"text": "The Terms of Use in HTML format."
}
}
}
}
}
}
}
}
}
}