diff --git a/composer.json b/composer.json index 23ef33fc..118bde1c 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ "amphp/http-client": "^v5.0.0", "aura/html": "^2.5.0", "aura/router": "^3.3.0", - "aura/session": "^2.1.0", + "aura/session": "^4.0", "aviat/banker": "^4.1.2", "aviat/query": "^4.1.0", "ext-dom": "*", @@ -55,7 +55,7 @@ "symfony/polyfill-mbstring": "*" }, "require-dev": { - "phpstan/phpstan": "^1.2.0", + "phpstan/phpstan": "^2.0.1", "phpunit/phpunit": "^10.0.0", "roave/security-advisories": "dev-master", "spatie/phpunit-snapshot-assertions": "^5.0.1" diff --git a/src/AnimeClient/API/Anilist/Model.php b/src/AnimeClient/API/Anilist/Model.php index a0569e11..395aebe4 100644 --- a/src/AnimeClient/API/Anilist/Model.php +++ b/src/AnimeClient/API/Anilist/Model.php @@ -105,7 +105,7 @@ final class Model public function createListItem(array $data, string $type = 'anime'): ?Request { $mediaId = $this->getMediaId($data, $type); - if ($mediaId === NULL || $mediaId === "undefined") + if (empty($mediaId)) { return NULL; } diff --git a/src/AnimeClient/API/Anilist/schema.graphql b/src/AnimeClient/API/Anilist/schema.graphql index 8a0b9819..bf296727 100644 --- a/src/AnimeClient/API/Anilist/schema.graphql +++ b/src/AnimeClient/API/Anilist/schema.graphql @@ -1,8 +1,8 @@ -# This file was generated based on ".graphqlconfig". Do not edit manually. +# This file was generated. Do not edit manually. schema { - query: Query - mutation: Mutation + query: Query + mutation: Mutation } "Activity union type" @@ -16,4668 +16,4672 @@ union NotificationUnion = ActivityLikeNotification | ActivityMentionNotification "Notification for when a activity is liked" type ActivityLikeNotification { - "The liked activity" - activity: ActivityUnion - "The id of the activity which was liked" - activityId: Int! - "The notification context text" - context: String - "The time the notification was created at" - createdAt: Int - "The id of the Notification" - id: Int! - "The type of notification" - type: NotificationType - "The user who liked the activity" - user: User - "The id of the user who liked to the activity" - userId: Int! + "The liked activity" + activity: ActivityUnion + "The id of the activity which was liked" + activityId: Int! + "The notification context text" + context: String + "The time the notification was created at" + createdAt: Int + "The id of the Notification" + id: Int! + "The type of notification" + type: NotificationType + "The user who liked the activity" + user: User + "The id of the user who liked to the activity" + userId: Int! } "Notification for when authenticated user is @ mentioned in activity or reply" type ActivityMentionNotification { - "The liked activity" - activity: ActivityUnion - "The id of the activity where mentioned" - activityId: Int! - "The notification context text" - context: String - "The time the notification was created at" - createdAt: Int - "The id of the Notification" - id: Int! - "The type of notification" - type: NotificationType - "The user who mentioned the authenticated user" - user: User - "The id of the user who mentioned the authenticated user" - userId: Int! + "The liked activity" + activity: ActivityUnion + "The id of the activity where mentioned" + activityId: Int! + "The notification context text" + context: String + "The time the notification was created at" + createdAt: Int + "The id of the Notification" + id: Int! + "The type of notification" + type: NotificationType + "The user who mentioned the authenticated user" + user: User + "The id of the user who mentioned the authenticated user" + userId: Int! } "Notification for when a user is send an activity message" type ActivityMessageNotification { - "The id of the activity message" - activityId: Int! - "The notification context text" - context: String - "The time the notification was created at" - createdAt: Int - "The id of the Notification" - id: Int! - "The message activity" - message: MessageActivity - "The type of notification" - type: NotificationType - "The user who sent the message" - user: User - "The if of the user who send the message" - userId: Int! + "The id of the activity message" + activityId: Int! + "The notification context text" + context: String + "The time the notification was created at" + createdAt: Int + "The id of the Notification" + id: Int! + "The message activity" + message: MessageActivity + "The type of notification" + type: NotificationType + "The user who sent the message" + user: User + "The if of the user who send the message" + userId: Int! } "Replay to an activity item" type ActivityReply { - "The id of the parent activity" - activityId: Int - "The time the reply was created at" - createdAt: Int! - "The id of the reply" - id: Int! - "If the currently authenticated user liked the reply" - isLiked: Boolean - "The amount of likes the reply has" - likeCount: Int! - "The users who liked the reply" - likes: [User] - "The reply text" - text( - "Return the string in pre-parsed html instead of markdown" - asHtml: Boolean - ): String - "The user who created reply" - user: User - "The id of the replies creator" - userId: Int + "The id of the parent activity" + activityId: Int + "The time the reply was created at" + createdAt: Int! + "The id of the reply" + id: Int! + "If the currently authenticated user liked the reply" + isLiked: Boolean + "The amount of likes the reply has" + likeCount: Int! + "The users who liked the reply" + likes: [User] + "The reply text" + text( + "Return the string in pre-parsed html instead of markdown" + asHtml: Boolean + ): String + "The user who created reply" + user: User + "The id of the replies creator" + userId: Int } "Notification for when a activity reply is liked" type ActivityReplyLikeNotification { - "The liked activity" - activity: ActivityUnion - "The id of the activity where the reply which was liked" - activityId: Int! - "The notification context text" - context: String - "The time the notification was created at" - createdAt: Int - "The id of the Notification" - id: Int! - "The type of notification" - type: NotificationType - "The user who liked the activity reply" - user: User - "The id of the user who liked to the activity reply" - userId: Int! + "The liked activity" + activity: ActivityUnion + "The id of the activity where the reply which was liked" + activityId: Int! + "The notification context text" + context: String + "The time the notification was created at" + createdAt: Int + "The id of the Notification" + id: Int! + "The type of notification" + type: NotificationType + "The user who liked the activity reply" + user: User + "The id of the user who liked to the activity reply" + userId: Int! } "Notification for when a user replies to the authenticated users activity" type ActivityReplyNotification { - "The liked activity" - activity: ActivityUnion - "The id of the activity which was replied too" - activityId: Int! - "The notification context text" - context: String - "The time the notification was created at" - createdAt: Int - "The id of the Notification" - id: Int! - "The type of notification" - type: NotificationType - "The user who replied to the activity" - user: User - "The id of the user who replied to the activity" - userId: Int! + "The liked activity" + activity: ActivityUnion + "The id of the activity which was replied too" + activityId: Int! + "The notification context text" + context: String + "The time the notification was created at" + createdAt: Int + "The id of the Notification" + id: Int! + "The type of notification" + type: NotificationType + "The user who replied to the activity" + user: User + "The id of the user who replied to the activity" + userId: Int! } "Notification for when a user replies to activity the authenticated user has replied to" type ActivityReplySubscribedNotification { - "The liked activity" - activity: ActivityUnion - "The id of the activity which was replied too" - activityId: Int! - "The notification context text" - context: String - "The time the notification was created at" - createdAt: Int - "The id of the Notification" - id: Int! - "The type of notification" - type: NotificationType - "The user who replied to the activity" - user: User - "The id of the user who replied to the activity" - userId: Int! + "The liked activity" + activity: ActivityUnion + "The id of the activity which was replied too" + activityId: Int! + "The notification context text" + context: String + "The time the notification was created at" + createdAt: Int + "The id of the Notification" + id: Int! + "The type of notification" + type: NotificationType + "The user who replied to the activity" + user: User + "The id of the user who replied to the activity" + userId: Int! } "Notification for when an episode of anime airs" type AiringNotification { - "The id of the aired anime" - animeId: Int! - "The notification context text" - contexts: [String] - "The time the notification was created at" - createdAt: Int - "The episode number that just aired" - episode: Int! - "The id of the Notification" - id: Int! - "The associated media of the airing schedule" - media: Media - "The type of notification" - type: NotificationType + "The id of the aired anime" + animeId: Int! + "The notification context text" + contexts: [String] + "The time the notification was created at" + createdAt: Int + "The episode number that just aired" + episode: Int! + "The id of the Notification" + id: Int! + "The associated media of the airing schedule" + media: Media + "The type of notification" + type: NotificationType } "Score & Watcher stats for airing anime by episode and mid-week" type AiringProgression { - "The episode the stats were recorded at. .5 is the mid point between 2 episodes airing dates." - episode: Float - "The average score for the media" - score: Float - "The amount of users watching the anime" - watching: Int + "The episode the stats were recorded at. .5 is the mid point between 2 episodes airing dates." + episode: Float + "The average score for the media" + score: Float + "The amount of users watching the anime" + watching: Int } "Media Airing Schedule. NOTE: We only aim to guarantee that FUTURE airing data is present and accurate." type AiringSchedule { - "The time the episode airs at" - airingAt: Int! - "The airing episode number" - episode: Int! - "The id of the airing schedule item" - id: Int! - "The associate media of the airing episode" - media: Media - "The associate media id of the airing episode" - mediaId: Int! - "Seconds until episode starts airing" - timeUntilAiring: Int! + "The time the episode airs at" + airingAt: Int! + "The airing episode number" + episode: Int! + "The id of the airing schedule item" + id: Int! + "The associate media of the airing episode" + media: Media + "The associate media id of the airing episode" + mediaId: Int! + "Seconds until episode starts airing" + timeUntilAiring: Int! } type AiringScheduleConnection { - edges: [AiringScheduleEdge] - nodes: [AiringSchedule] - "The pagination information" - pageInfo: PageInfo + edges: [AiringScheduleEdge] + nodes: [AiringSchedule] + "The pagination information" + pageInfo: PageInfo } "AiringSchedule connection edge" type AiringScheduleEdge { - "The id of the connection" - id: Int - node: AiringSchedule + "The id of the connection" + id: Int + node: AiringSchedule } type AniChartUser { - highlights: Json - settings: Json - user: User + highlights: Json + settings: Json + user: User } "A character that features in an anime or manga" type Character { - "The character's age. Note this is a string, not an int, it may contain further text and additional ages." - age: String - "The characters blood type" - bloodType: String - "The character's birth date" - dateOfBirth: FuzzyDate - "A general description of the character" - description( - "Return the string in pre-parsed html instead of markdown" - asHtml: Boolean - ): String - "The amount of user's who have favourited the character" - favourites: Int - "The character's gender. Usually Male, Female, or Non-binary but can be any string." - gender: String - "The id of the character" - id: Int! - "Character images" - image: CharacterImage - "If the character is marked as favourite by the currently authenticated user" - isFavourite: Boolean! - "If the character is blocked from being added to favourites" - isFavouriteBlocked: Boolean! - "Media that includes the character" - media( - onList: Boolean, - "The page" - page: Int, - "The amount of entries per page, max 25" - perPage: Int, - sort: [MediaSort], - type: MediaType - ): MediaConnection - "Notes for site moderators" - modNotes: String - "The names of the character" - name: CharacterName - "The url for the character page on the AniList website" - siteUrl: String - updatedAt: Int @deprecated(reason: "No data available") + "The character's age. Note this is a string, not an int, it may contain further text and additional ages." + age: String + "The characters blood type" + bloodType: String + "The character's birth date" + dateOfBirth: FuzzyDate + "A general description of the character" + description( + "Return the string in pre-parsed html instead of markdown" + asHtml: Boolean + ): String + "The amount of user's who have favourited the character" + favourites: Int + "The character's gender. Usually Male, Female, or Non-binary but can be any string." + gender: String + "The id of the character" + id: Int! + "Character images" + image: CharacterImage + "If the character is marked as favourite by the currently authenticated user" + isFavourite: Boolean! + "If the character is blocked from being added to favourites" + isFavouriteBlocked: Boolean! + "Media that includes the character" + media( + onList: Boolean, + "The page" + page: Int, + "The amount of entries per page, max 25" + perPage: Int, + sort: [MediaSort], + type: MediaType + ): MediaConnection + "Notes for site moderators" + modNotes: String + "The names of the character" + name: CharacterName + "The url for the character page on the AniList website" + siteUrl: String + updatedAt: Int @deprecated(reason: "No data available") } type CharacterConnection { - edges: [CharacterEdge] - nodes: [Character] - "The pagination information" - pageInfo: PageInfo + edges: [CharacterEdge] + nodes: [Character] + "The pagination information" + pageInfo: PageInfo } "Character connection edge" type CharacterEdge { - "The order the character should be displayed from the users favourites" - favouriteOrder: Int - "The id of the connection" - id: Int - "The media the character is in" - media: [Media] - "Media specific character name" - name: String - node: Character - "The characters role in the media" - role: CharacterRole - "The voice actors of the character with role date" - voiceActorRoles(language: StaffLanguage, sort: [StaffSort]): [StaffRoleType] - "The voice actors of the character" - voiceActors(language: StaffLanguage, sort: [StaffSort]): [Staff] + "The order the character should be displayed from the users favourites" + favouriteOrder: Int + "The id of the connection" + id: Int + "The media the character is in" + media: [Media] + "Media specific character name" + name: String + node: Character + "The characters role in the media" + role: CharacterRole + "The voice actors of the character with role date" + voiceActorRoles(language: StaffLanguage, sort: [StaffSort]): [StaffRoleType] + "The voice actors of the character" + voiceActors(language: StaffLanguage, sort: [StaffSort]): [Staff] } type CharacterImage { - "The character's image of media at its largest size" - large: String - "The character's image of media at medium size" - medium: String + "The character's image of media at its largest size" + large: String + "The character's image of media at medium size" + medium: String } "The names of the character" type CharacterName { - "Other names the character might be referred to as" - alternative: [String] - "Other names the character might be referred to as but are spoilers" - alternativeSpoiler: [String] - "The character's given name" - first: String - "The character's first and last name" - full: String - "The character's surname" - last: String - "The character's middle name" - middle: String - "The character's full name in their native language" - native: String - "The currently authenticated users preferred name language. Default romaji for non-authenticated" - userPreferred: String + "Other names the character might be referred to as" + alternative: [String] + "Other names the character might be referred to as but are spoilers" + alternativeSpoiler: [String] + "The character's given name" + first: String + "The character's first and last name" + full: String + "The character's surname" + last: String + "The character's middle name" + middle: String + "The character's full name in their native language" + native: String + "The currently authenticated users preferred name language. Default romaji for non-authenticated" + userPreferred: String } "A submission for a character that features in an anime or manga" type CharacterSubmission { - "Data Mod assigned to handle the submission" - assignee: User - "Character that the submission is referencing" - character: Character - createdAt: Int - "The id of the submission" - id: Int! - "Whether the submission is locked" - locked: Boolean - "Inner details of submission status" - notes: String - source: String - "Status of the submission" - status: SubmissionStatus - "The character submission changes" - submission: Character - "Submitter for the submission" - submitter: User + "Data Mod assigned to handle the submission" + assignee: User + "Character that the submission is referencing" + character: Character + createdAt: Int + "The id of the submission" + id: Int! + "Whether the submission is locked" + locked: Boolean + "Inner details of submission status" + notes: String + source: String + "Status of the submission" + status: SubmissionStatus + "The character submission changes" + submission: Character + "Submitter for the submission" + submitter: User } type CharacterSubmissionConnection { - edges: [CharacterSubmissionEdge] - nodes: [CharacterSubmission] - "The pagination information" - pageInfo: PageInfo + edges: [CharacterSubmissionEdge] + nodes: [CharacterSubmission] + "The pagination information" + pageInfo: PageInfo } "CharacterSubmission connection edge" type CharacterSubmissionEdge { - node: CharacterSubmission - "The characters role in the media" - role: CharacterRole - "The submitted voice actors of the character" - submittedVoiceActors: [StaffSubmission] - "The voice actors of the character" - voiceActors: [Staff] + node: CharacterSubmission + "The characters role in the media" + role: CharacterRole + "The submitted voice actors of the character" + submittedVoiceActors: [StaffSubmission] + "The voice actors of the character" + voiceActors: [Staff] } "Deleted data type" type Deleted { - "If an item has been successfully deleted" - deleted: Boolean + "If an item has been successfully deleted" + deleted: Boolean } "User's favourite anime, manga, characters, staff & studios" type Favourites { - "Favourite anime" - anime( - "The page number" - page: Int, - "The amount of entries per page, max 25" - perPage: Int - ): MediaConnection - "Favourite characters" - characters( - "The page number" - page: Int, - "The amount of entries per page, max 25" - perPage: Int - ): CharacterConnection - "Favourite manga" - manga( - "The page number" - page: Int, - "The amount of entries per page, max 25" - perPage: Int - ): MediaConnection - "Favourite staff" - staff( - "The page number" - page: Int, - "The amount of entries per page, max 25" - perPage: Int - ): StaffConnection - "Favourite studios" - studios( - "The page number" - page: Int, - "The amount of entries per page, max 25" - perPage: Int - ): StudioConnection + "Favourite anime" + anime( + "The page number" + page: Int, + "The amount of entries per page, max 25" + perPage: Int + ): MediaConnection + "Favourite characters" + characters( + "The page number" + page: Int, + "The amount of entries per page, max 25" + perPage: Int + ): CharacterConnection + "Favourite manga" + manga( + "The page number" + page: Int, + "The amount of entries per page, max 25" + perPage: Int + ): MediaConnection + "Favourite staff" + staff( + "The page number" + page: Int, + "The amount of entries per page, max 25" + perPage: Int + ): StaffConnection + "Favourite studios" + studios( + "The page number" + page: Int, + "The amount of entries per page, max 25" + perPage: Int + ): StudioConnection } "Notification for when the authenticated user is followed by another user" type FollowingNotification { - "The notification context text" - context: String - "The time the notification was created at" - createdAt: Int - "The id of the Notification" - id: Int! - "The type of notification" - type: NotificationType - "The liked activity" - user: User - "The id of the user who followed the authenticated user" - userId: Int! + "The notification context text" + context: String + "The time the notification was created at" + createdAt: Int + "The id of the Notification" + id: Int! + "The type of notification" + type: NotificationType + "The liked activity" + user: User + "The id of the user who followed the authenticated user" + userId: Int! } "User's format statistics" type FormatStats { - amount: Int - format: MediaFormat + amount: Int + format: MediaFormat } "Date object that allows for incomplete date values (fuzzy)" type FuzzyDate { - "Numeric Day (24)" - day: Int - "Numeric Month (3)" - month: Int - "Numeric Year (2017)" - year: Int + "Numeric Day (24)" + day: Int + "Numeric Month (3)" + month: Int + "Numeric Year (2017)" + year: Int } "User's genre statistics" type GenreStats { - amount: Int - genre: String - meanScore: Int - "The amount of time in minutes the genre has been watched by the user" - timeWatched: Int + amount: Int + genre: String + meanScore: Int + "The amount of time in minutes the genre has been watched by the user" + timeWatched: Int } "Page of data (Used for internal use only)" type InternalPage { - activities( - "Filter by the time the activity was created" - createdAt: Int, - "Filter by the time the activity was created" - createdAt_greater: Int, - "Filter by the time the activity was created" - createdAt_lesser: Int, - "Filter activity to only activity with replies" - hasReplies: Boolean, - "Filter activity to only activity with replies or is of type text" - hasRepliesOrTypeText: Boolean, - "Filter by the activity id" - id: Int, - "Filter by the activity id" - id_in: [Int], - "Filter by the activity id" - id_not: Int, - "Filter by the activity id" - id_not_in: [Int], - "Filter activity to users who are being followed by the authenticated user" - isFollowing: Boolean, - "Filter by the associated media id of the activity" - mediaId: Int, - "Filter by the associated media id of the activity" - mediaId_in: [Int], - "Filter by the associated media id of the activity" - mediaId_not: Int, - "Filter by the associated media id of the activity" - mediaId_not_in: [Int], - "Filter by the id of the user who sent a message" - messengerId: Int, - "Filter by the id of the user who sent a message" - messengerId_in: [Int], - "Filter by the id of the user who sent a message" - messengerId_not: Int, - "Filter by the id of the user who sent a message" - messengerId_not_in: [Int], - "The order the results will be returned in" - sort: [ActivitySort], - "Filter by the type of activity" - type: ActivityType, - "Filter by the type of activity" - type_in: [ActivityType], - "Filter by the type of activity" - type_not: ActivityType, - "Filter by the type of activity" - type_not_in: [ActivityType], - "Filter by the owner user id" - userId: Int, - "Filter by the owner user id" - userId_in: [Int], - "Filter by the owner user id" - userId_not: Int, - "Filter by the owner user id" - userId_not_in: [Int] - ): [ActivityUnion] - activityReplies( - "Filter by the parent id" - activityId: Int, - "Filter by the reply id" - id: Int - ): [ActivityReply] - airingSchedules( - "Filter by the time of airing" - airingAt: Int, - "Filter by the time of airing" - airingAt_greater: Int, - "Filter by the time of airing" - airingAt_lesser: Int, - "Filter by the airing episode number" - episode: Int, - "Filter by the airing episode number" - episode_greater: Int, - "Filter by the airing episode number" - episode_in: [Int], - "Filter by the airing episode number" - episode_lesser: Int, - "Filter by the airing episode number" - episode_not: Int, - "Filter by the airing episode number" - episode_not_in: [Int], - "Filter by the id of the airing schedule item" - id: Int, - "Filter by the id of the airing schedule item" - id_in: [Int], - "Filter by the id of the airing schedule item" - id_not: Int, - "Filter by the id of the airing schedule item" - id_not_in: [Int], - "Filter by the id of associated media" - mediaId: Int, - "Filter by the id of associated media" - mediaId_in: [Int], - "Filter by the id of associated media" - mediaId_not: Int, - "Filter by the id of associated media" - mediaId_not_in: [Int], - "Filter to episodes that haven't yet aired" - notYetAired: Boolean, - "The order the results will be returned in" - sort: [AiringSort] - ): [AiringSchedule] - characterSubmissions( - assigneeId: Int, - characterId: Int, - "The order the results will be returned in" - sort: [SubmissionSort], - "Filter by the status of the submission" - status: SubmissionStatus, - "Filter by the submitter of the submission" - userId: Int - ): [CharacterSubmission] - characters( - "Filter by character id" - id: Int, - "Filter by character id" - id_in: [Int], - "Filter by character id" - id_not: Int, - "Filter by character id" - id_not_in: [Int], - "Filter by character by if its their birthday today" - isBirthday: Boolean, - "Filter by search query" - search: String, - "The order the results will be returned in" - sort: [CharacterSort] - ): [Character] - followers( - "The order the results will be returned in" - sort: [UserSort], - "User id of the follower/followed" - userId: Int! - ): [User] - following( - "The order the results will be returned in" - sort: [UserSort], - "User id of the follower/followed" - userId: Int! - ): [User] - likes( - "The id of the likeable type" - likeableId: Int, - "The type of model the id applies to" - type: LikeableType - ): [User] - media( - "Filter by the media's average score" - averageScore: Int, - "Filter by the media's average score" - averageScore_greater: Int, - "Filter by the media's average score" - averageScore_lesser: Int, - "Filter by the media's average score" - averageScore_not: Int, - "Filter by the media's chapter count" - chapters: Int, - "Filter by the media's chapter count" - chapters_greater: Int, - "Filter by the media's chapter count" - chapters_lesser: Int, - "Filter by the media's country of origin" - countryOfOrigin: CountryCode, - "Filter by the media's episode length" - duration: Int, - "Filter by the media's episode length" - duration_greater: Int, - "Filter by the media's episode length" - duration_lesser: Int, - "Filter by the end date of the media" - endDate: FuzzyDateInt, - "Filter by the end date of the media" - endDate_greater: FuzzyDateInt, - "Filter by the end date of the media" - endDate_lesser: FuzzyDateInt, - "Filter by the end date of the media" - endDate_like: String, - "Filter by amount of episodes the media has" - episodes: Int, - "Filter by amount of episodes the media has" - episodes_greater: Int, - "Filter by amount of episodes the media has" - episodes_lesser: Int, - "Filter by the media's format" - format: MediaFormat, - "Filter by the media's format" - format_in: [MediaFormat], - "Filter by the media's format" - format_not: MediaFormat, - "Filter by the media's format" - format_not_in: [MediaFormat], - "Filter by the media's genres" - genre: String, - "Filter by the media's genres" - genre_in: [String], - "Filter by the media's genres" - genre_not_in: [String], - "Filter by the media id" - id: Int, - "Filter by the media's MyAnimeList id" - idMal: Int, - "Filter by the media's MyAnimeList id" - idMal_in: [Int], - "Filter by the media's MyAnimeList id" - idMal_not: Int, - "Filter by the media's MyAnimeList id" - idMal_not_in: [Int], - "Filter by the media id" - id_in: [Int], - "Filter by the media id" - id_not: Int, - "Filter by the media id" - id_not_in: [Int], - "Filter by if the media's intended for 18+ adult audiences" - isAdult: Boolean, - "If the media is officially licensed or a self-published doujin release" - isLicensed: Boolean, - "Filter media by sites name with a online streaming or reading license" - licensedBy: String, - "Filter media by sites id with a online streaming or reading license" - licensedById: Int, - "Filter media by sites id with a online streaming or reading license" - licensedById_in: [Int], - "Filter media by sites name with a online streaming or reading license" - licensedBy_in: [String], - "Only apply the tags filter argument to tags above this rank. Default: 18" - minimumTagRank: Int, - "Filter by the media on the authenticated user's lists" - onList: Boolean, - "Filter by the number of users with this media on their list" - popularity: Int, - "Filter by the number of users with this media on their list" - popularity_greater: Int, - "Filter by the number of users with this media on their list" - popularity_lesser: Int, - "Filter by the number of users with this media on their list" - popularity_not: Int, - "Filter by search query" - search: String, - "Filter by the season the media was released in" - season: MediaSeason, - "The year of the season (Winter 2017 would also include December 2016 releases). Requires season argument" - seasonYear: Int, - "The order the results will be returned in" - sort: [MediaSort], - "Filter by the source type of the media" - source: MediaSource, - "Filter by the source type of the media" - source_in: [MediaSource], - "Filter by the start date of the media" - startDate: FuzzyDateInt, - "Filter by the start date of the media" - startDate_greater: FuzzyDateInt, - "Filter by the start date of the media" - startDate_lesser: FuzzyDateInt, - "Filter by the start date of the media" - startDate_like: String, - "Filter by the media's current release status" - status: MediaStatus, - "Filter by the media's current release status" - status_in: [MediaStatus], - "Filter by the media's current release status" - status_not: MediaStatus, - "Filter by the media's current release status" - status_not_in: [MediaStatus], - "Filter by the media's tags" - tag: String, - "Filter by the media's tags with in a tag category" - tagCategory: String, - "Filter by the media's tags with in a tag category" - tagCategory_in: [String], - "Filter by the media's tags with in a tag category" - tagCategory_not_in: [String], - "Filter by the media's tags" - tag_in: [String], - "Filter by the media's tags" - tag_not_in: [String], - "Filter by the media's type" - type: MediaType, - "Filter by the media's volume count" - volumes: Int, - "Filter by the media's volume count" - volumes_greater: Int, - "Filter by the media's volume count" - volumes_lesser: Int - ): [Media] - mediaList( - "Limit to only entries also on the auth user's list. Requires user id or name arguments." - compareWithAuthList: Boolean, - "Filter by the date the user completed the media" - completedAt: FuzzyDateInt, - "Filter by the date the user completed the media" - completedAt_greater: FuzzyDateInt, - "Filter by the date the user completed the media" - completedAt_lesser: FuzzyDateInt, - "Filter by the date the user completed the media" - completedAt_like: String, - "Filter by a list entry's id" - id: Int, - "Filter list entries to users who are being followed by the authenticated user" - isFollowing: Boolean, - "Filter by the media id of the list entry" - mediaId: Int, - "Filter by the media id of the list entry" - mediaId_in: [Int], - "Filter by the media id of the list entry" - mediaId_not_in: [Int], - "Filter by note words and #tags" - notes: String, - "Filter by note words and #tags" - notes_like: String, - "The order the results will be returned in" - sort: [MediaListSort], - "Filter by the date the user started the media" - startedAt: FuzzyDateInt, - "Filter by the date the user started the media" - startedAt_greater: FuzzyDateInt, - "Filter by the date the user started the media" - startedAt_lesser: FuzzyDateInt, - "Filter by the date the user started the media" - startedAt_like: String, - "Filter by the watching/reading status" - status: MediaListStatus, - "Filter by the watching/reading status" - status_in: [MediaListStatus], - "Filter by the watching/reading status" - status_not: MediaListStatus, - "Filter by the watching/reading status" - status_not_in: [MediaListStatus], - "Filter by the list entries media type" - type: MediaType, - "Filter by a user's id" - userId: Int, - "Filter by a user's id" - userId_in: [Int], - "Filter by a user's name" - userName: String - ): [MediaList] - mediaSubmissions( - assigneeId: Int, - mediaId: Int, - "The order the results will be returned in" - sort: [SubmissionSort], - status: SubmissionStatus, - submissionId: Int, - "Filter by the media's type" - type: MediaType, - userId: Int - ): [MediaSubmission] - mediaTrends( - "Filter by score" - averageScore: Int, - "Filter by score" - averageScore_greater: Int, - "Filter by score" - averageScore_lesser: Int, - "Filter by score" - averageScore_not: Int, - "Filter by date" - date: Int, - "Filter by date" - date_greater: Int, - "Filter by date" - date_lesser: Int, - "Filter by episode number" - episode: Int, - "Filter by episode number" - episode_greater: Int, - "Filter by episode number" - episode_lesser: Int, - "Filter by episode number" - episode_not: Int, - "Filter by the media id" - mediaId: Int, - "Filter by the media id" - mediaId_in: [Int], - "Filter by the media id" - mediaId_not: Int, - "Filter by the media id" - mediaId_not_in: [Int], - "Filter by popularity" - popularity: Int, - "Filter by popularity" - popularity_greater: Int, - "Filter by popularity" - popularity_lesser: Int, - "Filter by popularity" - popularity_not: Int, - "Filter to stats recorded while the media was releasing" - releasing: Boolean, - "The order the results will be returned in" - sort: [MediaTrendSort], - "Filter by trending amount" - trending: Int, - "Filter by trending amount" - trending_greater: Int, - "Filter by trending amount" - trending_lesser: Int, - "Filter by trending amount" - trending_not: Int - ): [MediaTrend] - modActions(modId: Int, userId: Int): [ModAction] - notifications( - "Reset the unread notification count to 0 on load" - resetNotificationCount: Boolean, - "Filter by the type of notifications" - type: NotificationType, - "Filter by the type of notifications" - type_in: [NotificationType] - ): [NotificationUnion] - "The pagination information" - pageInfo: PageInfo - recommendations( - "Filter by recommendation id" - id: Int, - "Filter by media id" - mediaId: Int, - "Filter by media recommendation id" - mediaRecommendationId: Int, - "Filter by the media on the authenticated user's lists" - onList: Boolean, - "Filter by total rating of the recommendation" - rating: Int, - "Filter by total rating of the recommendation" - rating_greater: Int, - "Filter by total rating of the recommendation" - rating_lesser: Int, - "The order the results will be returned in" - sort: [RecommendationSort], - "Filter by user who created the recommendation" - userId: Int - ): [Recommendation] - reports(reportedId: Int, reporterId: Int): [Report] - reviews( - "Filter by Review id" - id: Int, - "Filter by media id" - mediaId: Int, - "Filter by media type" - mediaType: MediaType, - "The order the results will be returned in" - sort: [ReviewSort], - "Filter by user id" - userId: Int - ): [Review] - revisionHistory( - "Filter by the character id" - characterId: Int, - "Filter by the media id" - mediaId: Int, - "Filter by the staff id" - staffId: Int, - "Filter by the studio id" - studioId: Int, - "Filter by the user id" - userId: Int - ): [RevisionHistory] - staff( - "Filter by the staff id" - id: Int, - "Filter by the staff id" - id_in: [Int], - "Filter by the staff id" - id_not: Int, - "Filter by the staff id" - id_not_in: [Int], - "Filter by staff by if its their birthday today" - isBirthday: Boolean, - "Filter by search query" - search: String, - "The order the results will be returned in" - sort: [StaffSort] - ): [Staff] - staffSubmissions( - assigneeId: Int, - "The order the results will be returned in" - sort: [SubmissionSort], - staffId: Int, - "Filter by the status of the submission" - status: SubmissionStatus, - "Filter by the submitter of the submission" - userId: Int - ): [StaffSubmission] - studios( - "Filter by the studio id" - id: Int, - "Filter by the studio id" - id_in: [Int], - "Filter by the studio id" - id_not: Int, - "Filter by the studio id" - id_not_in: [Int], - "Filter by search query" - search: String, - "The order the results will be returned in" - sort: [StudioSort] - ): [Studio] - threadComments( - "Filter by the comment id" - id: Int, - "The order the results will be returned in" - sort: [ThreadCommentSort], - "Filter by the thread id" - threadId: Int, - "Filter by the user id of the comment's creator" - userId: Int - ): [ThreadComment] - threads( - "Filter by thread category id" - categoryId: Int, - "Filter by the thread id" - id: Int, - "Filter by the thread id" - id_in: [Int], - "Filter by thread media id category" - mediaCategoryId: Int, - "Filter by the user id of the last user to comment on the thread" - replyUserId: Int, - "Filter by search query" - search: String, - "The order the results will be returned in" - sort: [ThreadSort], - "Filter by if the currently authenticated user's subscribed threads" - subscribed: Boolean, - "Filter by the user id of the thread's creator" - userId: Int - ): [Thread] - userBlockSearch( - "Filter by search query" - search: String - ): [User] - users( - "Filter by the user id" - id: Int, - "Filter to moderators only if true" - isModerator: Boolean, - "Filter by the name of the user" - name: String, - "Filter by search query" - search: String, - "The order the results will be returned in" - sort: [UserSort] - ): [User] + activities( + "Filter by the time the activity was created" + createdAt: Int, + "Filter by the time the activity was created" + createdAt_greater: Int, + "Filter by the time the activity was created" + createdAt_lesser: Int, + "Filter activity to only activity with replies" + hasReplies: Boolean, + "Filter activity to only activity with replies or is of type text" + hasRepliesOrTypeText: Boolean, + "Filter by the activity id" + id: Int, + "Filter by the activity id" + id_in: [Int], + "Filter by the activity id" + id_not: Int, + "Filter by the activity id" + id_not_in: [Int], + "Filter activity to users who are being followed by the authenticated user" + isFollowing: Boolean, + "Filter by the associated media id of the activity" + mediaId: Int, + "Filter by the associated media id of the activity" + mediaId_in: [Int], + "Filter by the associated media id of the activity" + mediaId_not: Int, + "Filter by the associated media id of the activity" + mediaId_not_in: [Int], + "Filter by the id of the user who sent a message" + messengerId: Int, + "Filter by the id of the user who sent a message" + messengerId_in: [Int], + "Filter by the id of the user who sent a message" + messengerId_not: Int, + "Filter by the id of the user who sent a message" + messengerId_not_in: [Int], + "The order the results will be returned in" + sort: [ActivitySort], + "Filter by the type of activity" + type: ActivityType, + "Filter by the type of activity" + type_in: [ActivityType], + "Filter by the type of activity" + type_not: ActivityType, + "Filter by the type of activity" + type_not_in: [ActivityType], + "Filter by the owner user id" + userId: Int, + "Filter by the owner user id" + userId_in: [Int], + "Filter by the owner user id" + userId_not: Int, + "Filter by the owner user id" + userId_not_in: [Int] + ): [ActivityUnion] + activityReplies( + "Filter by the parent id" + activityId: Int, + "Filter by the reply id" + id: Int + ): [ActivityReply] + airingSchedules( + "Filter by the time of airing" + airingAt: Int, + "Filter by the time of airing" + airingAt_greater: Int, + "Filter by the time of airing" + airingAt_lesser: Int, + "Filter by the airing episode number" + episode: Int, + "Filter by the airing episode number" + episode_greater: Int, + "Filter by the airing episode number" + episode_in: [Int], + "Filter by the airing episode number" + episode_lesser: Int, + "Filter by the airing episode number" + episode_not: Int, + "Filter by the airing episode number" + episode_not_in: [Int], + "Filter by the id of the airing schedule item" + id: Int, + "Filter by the id of the airing schedule item" + id_in: [Int], + "Filter by the id of the airing schedule item" + id_not: Int, + "Filter by the id of the airing schedule item" + id_not_in: [Int], + "Filter by the id of associated media" + mediaId: Int, + "Filter by the id of associated media" + mediaId_in: [Int], + "Filter by the id of associated media" + mediaId_not: Int, + "Filter by the id of associated media" + mediaId_not_in: [Int], + "Filter to episodes that haven't yet aired" + notYetAired: Boolean, + "The order the results will be returned in" + sort: [AiringSort] + ): [AiringSchedule] + characterSubmissions( + assigneeId: Int, + characterId: Int, + "The order the results will be returned in" + sort: [SubmissionSort], + "Filter by the status of the submission" + status: SubmissionStatus, + "Filter by the submitter of the submission" + userId: Int + ): [CharacterSubmission] + characters( + "Filter by character id" + id: Int, + "Filter by character id" + id_in: [Int], + "Filter by character id" + id_not: Int, + "Filter by character id" + id_not_in: [Int], + "Filter by character by if its their birthday today" + isBirthday: Boolean, + "Filter by search query" + search: String, + "The order the results will be returned in" + sort: [CharacterSort] + ): [Character] + followers( + "The order the results will be returned in" + sort: [UserSort], + "User id of the follower/followed" + userId: Int! + ): [User] + following( + "The order the results will be returned in" + sort: [UserSort], + "User id of the follower/followed" + userId: Int! + ): [User] + likes( + "The id of the likeable type" + likeableId: Int, + "The type of model the id applies to" + type: LikeableType + ): [User] + media( + "Filter by the media's average score" + averageScore: Int, + "Filter by the media's average score" + averageScore_greater: Int, + "Filter by the media's average score" + averageScore_lesser: Int, + "Filter by the media's average score" + averageScore_not: Int, + "Filter by the media's chapter count" + chapters: Int, + "Filter by the media's chapter count" + chapters_greater: Int, + "Filter by the media's chapter count" + chapters_lesser: Int, + "Filter by the media's country of origin" + countryOfOrigin: CountryCode, + "Filter by the media's episode length" + duration: Int, + "Filter by the media's episode length" + duration_greater: Int, + "Filter by the media's episode length" + duration_lesser: Int, + "Filter by the end date of the media" + endDate: FuzzyDateInt, + "Filter by the end date of the media" + endDate_greater: FuzzyDateInt, + "Filter by the end date of the media" + endDate_lesser: FuzzyDateInt, + "Filter by the end date of the media" + endDate_like: String, + "Filter by amount of episodes the media has" + episodes: Int, + "Filter by amount of episodes the media has" + episodes_greater: Int, + "Filter by amount of episodes the media has" + episodes_lesser: Int, + "Filter by the media's format" + format: MediaFormat, + "Filter by the media's format" + format_in: [MediaFormat], + "Filter by the media's format" + format_not: MediaFormat, + "Filter by the media's format" + format_not_in: [MediaFormat], + "Filter by the media's genres" + genre: String, + "Filter by the media's genres" + genre_in: [String], + "Filter by the media's genres" + genre_not_in: [String], + "Filter by the media id" + id: Int, + "Filter by the media's MyAnimeList id" + idMal: Int, + "Filter by the media's MyAnimeList id" + idMal_in: [Int], + "Filter by the media's MyAnimeList id" + idMal_not: Int, + "Filter by the media's MyAnimeList id" + idMal_not_in: [Int], + "Filter by the media id" + id_in: [Int], + "Filter by the media id" + id_not: Int, + "Filter by the media id" + id_not_in: [Int], + "Filter by if the media's intended for 18+ adult audiences" + isAdult: Boolean, + "If the media is officially licensed or a self-published doujin release" + isLicensed: Boolean, + "Filter media by sites name with a online streaming or reading license" + licensedBy: String, + "Filter media by sites id with a online streaming or reading license" + licensedById: Int, + "Filter media by sites id with a online streaming or reading license" + licensedById_in: [Int], + "Filter media by sites name with a online streaming or reading license" + licensedBy_in: [String], + "Only apply the tags filter argument to tags above this rank. Default: 18" + minimumTagRank: Int, + "Filter by the media on the authenticated user's lists" + onList: Boolean, + "Filter by the number of users with this media on their list" + popularity: Int, + "Filter by the number of users with this media on their list" + popularity_greater: Int, + "Filter by the number of users with this media on their list" + popularity_lesser: Int, + "Filter by the number of users with this media on their list" + popularity_not: Int, + "Filter by search query" + search: String, + "Filter by the season the media was released in" + season: MediaSeason, + "The year of the season (Winter 2017 would also include December 2016 releases). Requires season argument" + seasonYear: Int, + "The order the results will be returned in" + sort: [MediaSort], + "Filter by the source type of the media" + source: MediaSource, + "Filter by the source type of the media" + source_in: [MediaSource], + "Filter by the start date of the media" + startDate: FuzzyDateInt, + "Filter by the start date of the media" + startDate_greater: FuzzyDateInt, + "Filter by the start date of the media" + startDate_lesser: FuzzyDateInt, + "Filter by the start date of the media" + startDate_like: String, + "Filter by the media's current release status" + status: MediaStatus, + "Filter by the media's current release status" + status_in: [MediaStatus], + "Filter by the media's current release status" + status_not: MediaStatus, + "Filter by the media's current release status" + status_not_in: [MediaStatus], + "Filter by the media's tags" + tag: String, + "Filter by the media's tags with in a tag category" + tagCategory: String, + "Filter by the media's tags with in a tag category" + tagCategory_in: [String], + "Filter by the media's tags with in a tag category" + tagCategory_not_in: [String], + "Filter by the media's tags" + tag_in: [String], + "Filter by the media's tags" + tag_not_in: [String], + "Filter by the media's type" + type: MediaType, + "Filter by the media's volume count" + volumes: Int, + "Filter by the media's volume count" + volumes_greater: Int, + "Filter by the media's volume count" + volumes_lesser: Int + ): [Media] + mediaList( + "Limit to only entries also on the auth user's list. Requires user id or name arguments." + compareWithAuthList: Boolean, + "Filter by the date the user completed the media" + completedAt: FuzzyDateInt, + "Filter by the date the user completed the media" + completedAt_greater: FuzzyDateInt, + "Filter by the date the user completed the media" + completedAt_lesser: FuzzyDateInt, + "Filter by the date the user completed the media" + completedAt_like: String, + "Filter by a list entry's id" + id: Int, + "Filter list entries to users who are being followed by the authenticated user" + isFollowing: Boolean, + "Filter by the media id of the list entry" + mediaId: Int, + "Filter by the media id of the list entry" + mediaId_in: [Int], + "Filter by the media id of the list entry" + mediaId_not_in: [Int], + "Filter by note words and #tags" + notes: String, + "Filter by note words and #tags" + notes_like: String, + "The order the results will be returned in" + sort: [MediaListSort], + "Filter by the date the user started the media" + startedAt: FuzzyDateInt, + "Filter by the date the user started the media" + startedAt_greater: FuzzyDateInt, + "Filter by the date the user started the media" + startedAt_lesser: FuzzyDateInt, + "Filter by the date the user started the media" + startedAt_like: String, + "Filter by the watching/reading status" + status: MediaListStatus, + "Filter by the watching/reading status" + status_in: [MediaListStatus], + "Filter by the watching/reading status" + status_not: MediaListStatus, + "Filter by the watching/reading status" + status_not_in: [MediaListStatus], + "Filter by the list entries media type" + type: MediaType, + "Filter by a user's id" + userId: Int, + "Filter by a user's id" + userId_in: [Int], + "Filter by a user's name" + userName: String + ): [MediaList] + mediaSubmissions( + assigneeId: Int, + mediaId: Int, + "The order the results will be returned in" + sort: [SubmissionSort], + status: SubmissionStatus, + submissionId: Int, + "Filter by the media's type" + type: MediaType, + userId: Int + ): [MediaSubmission] + mediaTrends( + "Filter by score" + averageScore: Int, + "Filter by score" + averageScore_greater: Int, + "Filter by score" + averageScore_lesser: Int, + "Filter by score" + averageScore_not: Int, + "Filter by date" + date: Int, + "Filter by date" + date_greater: Int, + "Filter by date" + date_lesser: Int, + "Filter by episode number" + episode: Int, + "Filter by episode number" + episode_greater: Int, + "Filter by episode number" + episode_lesser: Int, + "Filter by episode number" + episode_not: Int, + "Filter by the media id" + mediaId: Int, + "Filter by the media id" + mediaId_in: [Int], + "Filter by the media id" + mediaId_not: Int, + "Filter by the media id" + mediaId_not_in: [Int], + "Filter by popularity" + popularity: Int, + "Filter by popularity" + popularity_greater: Int, + "Filter by popularity" + popularity_lesser: Int, + "Filter by popularity" + popularity_not: Int, + "Filter to stats recorded while the media was releasing" + releasing: Boolean, + "The order the results will be returned in" + sort: [MediaTrendSort], + "Filter by trending amount" + trending: Int, + "Filter by trending amount" + trending_greater: Int, + "Filter by trending amount" + trending_lesser: Int, + "Filter by trending amount" + trending_not: Int + ): [MediaTrend] + modActions(modId: Int, userId: Int): [ModAction] + notifications( + "Reset the unread notification count to 0 on load" + resetNotificationCount: Boolean, + "Filter by the type of notifications" + type: NotificationType, + "Filter by the type of notifications" + type_in: [NotificationType] + ): [NotificationUnion] + "The pagination information" + pageInfo: PageInfo + recommendations( + "Filter by recommendation id" + id: Int, + "Filter by media id" + mediaId: Int, + "Filter by media recommendation id" + mediaRecommendationId: Int, + "Filter by the media on the authenticated user's lists" + onList: Boolean, + "Filter by total rating of the recommendation" + rating: Int, + "Filter by total rating of the recommendation" + rating_greater: Int, + "Filter by total rating of the recommendation" + rating_lesser: Int, + "The order the results will be returned in" + sort: [RecommendationSort], + "Filter by user who created the recommendation" + userId: Int + ): [Recommendation] + reports(reportedId: Int, reporterId: Int): [Report] + reviews( + "Filter by Review id" + id: Int, + "Filter by media id" + mediaId: Int, + "Filter by media type" + mediaType: MediaType, + "The order the results will be returned in" + sort: [ReviewSort], + "Filter by user id" + userId: Int + ): [Review] + revisionHistory( + "Filter by the character id" + characterId: Int, + "Filter by the media id" + mediaId: Int, + "Filter by the staff id" + staffId: Int, + "Filter by the studio id" + studioId: Int, + "Filter by the user id" + userId: Int + ): [RevisionHistory] + staff( + "Filter by the staff id" + id: Int, + "Filter by the staff id" + id_in: [Int], + "Filter by the staff id" + id_not: Int, + "Filter by the staff id" + id_not_in: [Int], + "Filter by staff by if its their birthday today" + isBirthday: Boolean, + "Filter by search query" + search: String, + "The order the results will be returned in" + sort: [StaffSort] + ): [Staff] + staffSubmissions( + assigneeId: Int, + "The order the results will be returned in" + sort: [SubmissionSort], + staffId: Int, + "Filter by the status of the submission" + status: SubmissionStatus, + "Filter by the submitter of the submission" + userId: Int + ): [StaffSubmission] + studios( + "Filter by the studio id" + id: Int, + "Filter by the studio id" + id_in: [Int], + "Filter by the studio id" + id_not: Int, + "Filter by the studio id" + id_not_in: [Int], + "Filter by search query" + search: String, + "The order the results will be returned in" + sort: [StudioSort] + ): [Studio] + threadComments( + "Filter by the comment id" + id: Int, + "The order the results will be returned in" + sort: [ThreadCommentSort], + "Filter by the thread id" + threadId: Int, + "Filter by the user id of the comment's creator" + userId: Int + ): [ThreadComment] + threads( + "Filter by thread category id" + categoryId: Int, + "Filter by the thread id" + id: Int, + "Filter by the thread id" + id_in: [Int], + "Filter by thread media id category" + mediaCategoryId: Int, + "Filter by the user id of the last user to comment on the thread" + replyUserId: Int, + "Filter by search query" + search: String, + "The order the results will be returned in" + sort: [ThreadSort], + "Filter by if the currently authenticated user's subscribed threads" + subscribed: Boolean, + "Filter by the user id of the thread's creator" + userId: Int + ): [Thread] + userBlockSearch( + "Filter by search query" + search: String + ): [User] + users( + "Filter by the user id" + id: Int, + "Filter to moderators only if true" + isModerator: Boolean, + "Filter by the name of the user" + name: String, + "Filter by search query" + search: String, + "The order the results will be returned in" + sort: [UserSort] + ): [User] } "User list activity (anime & manga updates)" type ListActivity { - "The time the activity was created at" - createdAt: Int! - "The id of the activity" - id: Int! - "If the currently authenticated user liked the activity" - isLiked: Boolean - "If the activity is locked and can receive replies" - isLocked: Boolean - "If the activity is pinned to the top of the users activity feed" - isPinned: Boolean - "If the currently authenticated user is subscribed to the activity" - isSubscribed: Boolean - "The amount of likes the activity has" - likeCount: Int! - "The users who liked the activity" - likes: [User] - "The associated media to the activity update" - media: Media - "The list progress made" - progress: String - "The written replies to the activity" - replies: [ActivityReply] - "The number of activity replies" - replyCount: Int! - "The url for the activity page on the AniList website" - siteUrl: String - "The list item's textual status" - status: String - "The type of activity" - type: ActivityType - "The owner of the activity" - user: User - "The user id of the activity's creator" - userId: Int + "The time the activity was created at" + createdAt: Int! + "The id of the activity" + id: Int! + "If the currently authenticated user liked the activity" + isLiked: Boolean + "If the activity is locked and can receive replies" + isLocked: Boolean + "If the activity is pinned to the top of the users activity feed" + isPinned: Boolean + "If the currently authenticated user is subscribed to the activity" + isSubscribed: Boolean + "The amount of likes the activity has" + likeCount: Int! + "The users who liked the activity" + likes: [User] + "The associated media to the activity update" + media: Media + "The list progress made" + progress: String + "The written replies to the activity" + replies: [ActivityReply] + "The number of activity replies" + replyCount: Int! + "The url for the activity page on the AniList website" + siteUrl: String + "The list item's textual status" + status: String + "The type of activity" + type: ActivityType + "The owner of the activity" + user: User + "The user id of the activity's creator" + userId: Int } type ListActivityOption { - disabled: Boolean - type: MediaListStatus + disabled: Boolean + type: MediaListStatus } "User's list score statistics" type ListScoreStats { - meanScore: Int - standardDeviation: Int + meanScore: Int + standardDeviation: Int } "Anime or Manga" type Media { - "The media's entire airing schedule" - airingSchedule( - "Filter to episodes that have not yet aired" - notYetAired: Boolean, - "The page" - page: Int, - "The amount of entries per page, max 25" - perPage: Int - ): AiringScheduleConnection - "If the media should have forum thread automatically created for it on airing episode release" - autoCreateForumThread: Boolean - "A weighted average score of all the user's scores of the media" - averageScore: Int - "The banner image of the media" - bannerImage: String - "The amount of chapters the manga has when complete" - chapters: Int - "The characters in the media" - characters( - "The page" - page: Int, - "The amount of entries per page, max 25" - perPage: Int, - role: CharacterRole, - sort: [CharacterSort] - ): CharacterConnection - "Where the media was created. (ISO 3166-1 alpha-2)" - countryOfOrigin: CountryCode - "The cover images of the media" - coverImage: MediaCoverImage - "Short description of the media's story and characters" - description( - "Return the string in pre-parsed html instead of markdown" - asHtml: Boolean - ): String - "The general length of each anime episode in minutes" - duration: Int - "The last official release date of the media" - endDate: FuzzyDate - "The amount of episodes the anime has when complete" - episodes: Int - "External links to another site related to the media" - externalLinks: [MediaExternalLink] - "The amount of user's who have favourited the media" - favourites: Int - "The format the media was released in" - format: MediaFormat - "The genres of the media" - genres: [String] - "Official Twitter hashtags for the media" - hashtag: String - "The id of the media" - id: Int! - "The mal id of the media" - idMal: Int - "If the media is intended only for 18+ adult audiences" - isAdult: Boolean - "If the media is marked as favourite by the current authenticated user" - isFavourite: Boolean! - "If the media is blocked from being added to favourites" - isFavouriteBlocked: Boolean! - "If the media is officially licensed or a self-published doujin release" - isLicensed: Boolean - "Locked media may not be added to lists our favorited. This may be due to the entry pending for deletion or other reasons." - isLocked: Boolean - "If the media is blocked from being recommended to/from" - isRecommendationBlocked: Boolean - "If the media is blocked from being reviewed" - isReviewBlocked: Boolean - "Mean score of all the user's scores of the media" - meanScore: Int - "The authenticated user's media list entry for the media" - mediaListEntry: MediaList - "Notes for site moderators" - modNotes: String - "The media's next episode airing schedule" - nextAiringEpisode: AiringSchedule - "The number of users with the media on their list" - popularity: Int - "The ranking of the media in a particular time span and format compared to other media" - rankings: [MediaRank] - "User recommendations for similar media" - recommendations( - "The page" - page: Int, - "The amount of entries per page, max 25" - perPage: Int, - sort: [RecommendationSort] - ): RecommendationConnection - "Other media in the same or connecting franchise" - relations: MediaConnection - "User reviews of the media" - reviews( - limit: Int, - "The page" - page: Int, - "The amount of entries per page, max 25" - perPage: Int, - sort: [ReviewSort] - ): ReviewConnection - "The season the media was initially released in" - season: MediaSeason - "The year & season the media was initially released in" - seasonInt: Int - "The season year the media was initially released in" - seasonYear: Int - "The url for the media page on the AniList website" - siteUrl: String - "Source type the media was adapted from." - source( - "Provide 2 or 3 to use new version 2 or 3 of sources enum" - version: Int - ): MediaSource - "The staff who produced the media" - staff( - "The page" - page: Int, - "The amount of entries per page, max 25" - perPage: Int, - sort: [StaffSort] - ): StaffConnection - "The first official release date of the media" - startDate: FuzzyDate - stats: MediaStats - "The current releasing status of the media" - status( - "Provide 2 to use new version 2 of sources enum" - version: Int - ): MediaStatus - "Data and links to legal streaming episodes on external sites" - streamingEpisodes: [MediaStreamingEpisode] - "The companies who produced the media" - studios(isMain: Boolean, sort: [StudioSort]): StudioConnection - "Alternative titles of the media" - synonyms: [String] - "List of tags that describes elements and themes of the media" - tags: [MediaTag] - "The official titles of the media in various languages" - title: MediaTitle - "Media trailer or advertisement" - trailer: MediaTrailer - "The amount of related activity in the past hour" - trending: Int - "The media's daily trend stats" - trends( - "The page" - page: Int, - "The amount of entries per page, max 25" - perPage: Int, - "Filter to stats recorded while the media was releasing" - releasing: Boolean, - sort: [MediaTrendSort] - ): MediaTrendConnection - "The type of the media; anime or manga" - type: MediaType - "When the media's data was last updated" - updatedAt: Int - "The amount of volumes the manga has when complete" - volumes: Int + "The media's entire airing schedule" + airingSchedule( + "Filter to episodes that have not yet aired" + notYetAired: Boolean, + "The page" + page: Int, + "The amount of entries per page, max 25" + perPage: Int + ): AiringScheduleConnection + "If the media should have forum thread automatically created for it on airing episode release" + autoCreateForumThread: Boolean + "A weighted average score of all the user's scores of the media" + averageScore: Int + "The banner image of the media" + bannerImage: String + "The amount of chapters the manga has when complete" + chapters: Int + "The characters in the media" + characters( + "The page" + page: Int, + "The amount of entries per page, max 25" + perPage: Int, + role: CharacterRole, + sort: [CharacterSort] + ): CharacterConnection + "Where the media was created. (ISO 3166-1 alpha-2)" + countryOfOrigin: CountryCode + "The cover images of the media" + coverImage: MediaCoverImage + "Short description of the media's story and characters" + description( + "Return the string in pre-parsed html instead of markdown" + asHtml: Boolean + ): String + "The general length of each anime episode in minutes" + duration: Int + "The last official release date of the media" + endDate: FuzzyDate + "The amount of episodes the anime has when complete" + episodes: Int + "External links to another site related to the media" + externalLinks: [MediaExternalLink] + "The amount of user's who have favourited the media" + favourites: Int + "The format the media was released in" + format: MediaFormat + "The genres of the media" + genres: [String] + "Official Twitter hashtags for the media" + hashtag: String + "The id of the media" + id: Int! + "The mal id of the media" + idMal: Int + "If the media is intended only for 18+ adult audiences" + isAdult: Boolean + "If the media is marked as favourite by the current authenticated user" + isFavourite: Boolean! + "If the media is blocked from being added to favourites" + isFavouriteBlocked: Boolean! + "If the media is officially licensed or a self-published doujin release" + isLicensed: Boolean + "Locked media may not be added to lists our favorited. This may be due to the entry pending for deletion or other reasons." + isLocked: Boolean + "If the media is blocked from being recommended to/from" + isRecommendationBlocked: Boolean + "If the media is blocked from being reviewed" + isReviewBlocked: Boolean + "Mean score of all the user's scores of the media" + meanScore: Int + "The authenticated user's media list entry for the media" + mediaListEntry: MediaList + "Notes for site moderators" + modNotes: String + "The media's next episode airing schedule" + nextAiringEpisode: AiringSchedule + "The number of users with the media on their list" + popularity: Int + "The ranking of the media in a particular time span and format compared to other media" + rankings: [MediaRank] + "User recommendations for similar media" + recommendations( + "The page" + page: Int, + "The amount of entries per page, max 25" + perPage: Int, + sort: [RecommendationSort] + ): RecommendationConnection + "Other media in the same or connecting franchise" + relations: MediaConnection + "User reviews of the media" + reviews( + limit: Int, + "The page" + page: Int, + "The amount of entries per page, max 25" + perPage: Int, + sort: [ReviewSort] + ): ReviewConnection + "The season the media was initially released in" + season: MediaSeason + "The year & season the media was initially released in" + seasonInt: Int + "The season year the media was initially released in" + seasonYear: Int + "The url for the media page on the AniList website" + siteUrl: String + "Source type the media was adapted from." + source( + "Provide 2 or 3 to use new version 2 or 3 of sources enum" + version: Int + ): MediaSource + "The staff who produced the media" + staff( + "The page" + page: Int, + "The amount of entries per page, max 25" + perPage: Int, + sort: [StaffSort] + ): StaffConnection + "The first official release date of the media" + startDate: FuzzyDate + stats: MediaStats + "The current releasing status of the media" + status( + "Provide 2 to use new version 2 of sources enum" + version: Int + ): MediaStatus + "Data and links to legal streaming episodes on external sites" + streamingEpisodes: [MediaStreamingEpisode] + "The companies who produced the media" + studios(isMain: Boolean, sort: [StudioSort]): StudioConnection + "Alternative titles of the media" + synonyms: [String] + "List of tags that describes elements and themes of the media" + tags: [MediaTag] + "The official titles of the media in various languages" + title: MediaTitle + "Media trailer or advertisement" + trailer: MediaTrailer + "The amount of related activity in the past hour" + trending: Int + "The media's daily trend stats" + trends( + "The page" + page: Int, + "The amount of entries per page, max 25" + perPage: Int, + "Filter to stats recorded while the media was releasing" + releasing: Boolean, + sort: [MediaTrendSort] + ): MediaTrendConnection + "The type of the media; anime or manga" + type: MediaType + "When the media's data was last updated" + updatedAt: Int + "The amount of volumes the manga has when complete" + volumes: Int } "Internal - Media characters separated" type MediaCharacter { - "The characters in the media voiced by the parent actor" - character: Character - "Media specific character name" - characterName: String - dubGroup: String - "The id of the connection" - id: Int - "The characters role in the media" - role: CharacterRole - roleNotes: String - "The voice actor of the character" - voiceActor: Staff + "The characters in the media voiced by the parent actor" + character: Character + "Media specific character name" + characterName: String + dubGroup: String + "The id of the connection" + id: Int + "The characters role in the media" + role: CharacterRole + roleNotes: String + "The voice actor of the character" + voiceActor: Staff } type MediaConnection { - edges: [MediaEdge] - nodes: [Media] - "The pagination information" - pageInfo: PageInfo + edges: [MediaEdge] + nodes: [Media] + "The pagination information" + pageInfo: PageInfo } type MediaCoverImage { - "Average #hex color of cover image" - color: String - "The cover image url of the media at its largest size. If this size isn't available, large will be provided instead." - extraLarge: String - "The cover image url of the media at a large size" - large: String - "The cover image url of the media at medium size" - medium: String + "Average #hex color of cover image" + color: String + "The cover image url of the media at its largest size. If this size isn't available, large will be provided instead." + extraLarge: String + "The cover image url of the media at a large size" + large: String + "The cover image url of the media at medium size" + medium: String } "Notification for when a media entry's data was changed in a significant way impacting users' list tracking" type MediaDataChangeNotification { - "The reason for the media data change" - context: String - "The time the notification was created at" - createdAt: Int - "The id of the Notification" - id: Int! - "The media that received data changes" - media: Media - "The id of the media that received data changes" - mediaId: Int! - "The reason for the media data change" - reason: String - "The type of notification" - type: NotificationType + "The reason for the media data change" + context: String + "The time the notification was created at" + createdAt: Int + "The id of the Notification" + id: Int! + "The media that received data changes" + media: Media + "The id of the media that received data changes" + mediaId: Int! + "The reason for the media data change" + reason: String + "The type of notification" + type: NotificationType } "Notification for when a media tracked in a user's list is deleted from the site" type MediaDeletionNotification { - "The reason for the media deletion" - context: String - "The time the notification was created at" - createdAt: Int - "The title of the deleted media" - deletedMediaTitle: String - "The id of the Notification" - id: Int! - "The reason for the media deletion" - reason: String - "The type of notification" - type: NotificationType + "The reason for the media deletion" + context: String + "The time the notification was created at" + createdAt: Int + "The title of the deleted media" + deletedMediaTitle: String + "The id of the Notification" + id: Int! + "The reason for the media deletion" + reason: String + "The type of notification" + type: NotificationType } "Media connection edge" type MediaEdge { - "Media specific character name" - characterName: String - "The characters role in the media" - characterRole: CharacterRole - "The characters in the media voiced by the parent actor" - characters: [Character] - "Used for grouping roles where multiple dubs exist for the same language. Either dubbing company name or language variant." - dubGroup: String - "The order the media should be displayed from the users favourites" - favouriteOrder: Int - "The id of the connection" - id: Int - "If the studio is the main animation studio of the media (For Studio->MediaConnection field only)" - isMainStudio: Boolean! - node: Media - "The type of relation to the parent model" - relationType( - "Provide 2 to use new version 2 of relation enum" - version: Int - ): MediaRelation - "Notes regarding the VA's role for the character" - roleNotes: String - "The role of the staff member in the production of the media" - staffRole: String - "The voice actors of the character with role date" - voiceActorRoles(language: StaffLanguage, sort: [StaffSort]): [StaffRoleType] - "The voice actors of the character" - voiceActors(language: StaffLanguage, sort: [StaffSort]): [Staff] + "Media specific character name" + characterName: String + "The characters role in the media" + characterRole: CharacterRole + "The characters in the media voiced by the parent actor" + characters: [Character] + "Used for grouping roles where multiple dubs exist for the same language. Either dubbing company name or language variant." + dubGroup: String + "The order the media should be displayed from the users favourites" + favouriteOrder: Int + "The id of the connection" + id: Int + "If the studio is the main animation studio of the media (For Studio->MediaConnection field only)" + isMainStudio: Boolean! + node: Media + "The type of relation to the parent model" + relationType( + "Provide 2 to use new version 2 of relation enum" + version: Int + ): MediaRelation + "Notes regarding the VA's role for the character" + roleNotes: String + "The role of the staff member in the production of the media" + staffRole: String + "The voice actors of the character with role date" + voiceActorRoles(language: StaffLanguage, sort: [StaffSort]): [StaffRoleType] + "The voice actors of the character" + voiceActors(language: StaffLanguage, sort: [StaffSort]): [Staff] } "An external link to another site related to the media or staff member" type MediaExternalLink { - color: String - "The icon image url of the site. Not available for all links. Transparent PNG 64x64" - icon: String - "The id of the external link" - id: Int! - isDisabled: Boolean - "Language the site content is in. See Staff language field for values." - language: String - notes: String - "The links website site name" - site: String! - "The links website site id" - siteId: Int - type: ExternalLinkType - "The url of the external link or base url of link source" - url: String + color: String + "The icon image url of the site. Not available for all links. Transparent PNG 64x64" + icon: String + "The id of the external link" + id: Int! + isDisabled: Boolean + "Language the site content is in. See Staff language field for values." + language: String + notes: String + "The links website site name" + site: String! + "The links website site id" + siteId: Int + type: ExternalLinkType + "The url of the external link or base url of link source" + url: String } "List of anime or manga" type MediaList { - "Map of advanced scores with name keys" - advancedScores: Json - "When the entry was completed by the user" - completedAt: FuzzyDate - "When the entry data was created" - createdAt: Int - "Map of booleans for which custom lists the entry are in" - customLists( - "Change return structure to an array of objects" - asArray: Boolean - ): Json - "If the entry shown be hidden from non-custom lists" - hiddenFromStatusLists: Boolean - "The id of the list entry" - id: Int! - media: Media - "The id of the media" - mediaId: Int! - "Text notes" - notes: String - "Priority of planning" - priority: Int - "If the entry should only be visible to authenticated user" - private: Boolean - "The amount of episodes/chapters consumed by the user" - progress: Int - "The amount of volumes read by the user" - progressVolumes: Int - "The amount of times the user has rewatched/read the media" - repeat: Int - "The score of the entry" - score( - "Force the score to be returned in the provided format type." - format: ScoreFormat - ): Float - "When the entry was started by the user" - startedAt: FuzzyDate - "The watching/reading status" - status: MediaListStatus - "When the entry data was last updated" - updatedAt: Int - user: User - "The id of the user owner of the list entry" - userId: Int! + "Map of advanced scores with name keys" + advancedScores: Json + "When the entry was completed by the user" + completedAt: FuzzyDate + "When the entry data was created" + createdAt: Int + "Map of booleans for which custom lists the entry are in" + customLists( + "Change return structure to an array of objects" + asArray: Boolean + ): Json + "If the entry shown be hidden from non-custom lists" + hiddenFromStatusLists: Boolean + "The id of the list entry" + id: Int! + media: Media + "The id of the media" + mediaId: Int! + "Text notes" + notes: String + "Priority of planning" + priority: Int + "If the entry should only be visible to authenticated user" + private: Boolean + "The amount of episodes/chapters consumed by the user" + progress: Int + "The amount of volumes read by the user" + progressVolumes: Int + "The amount of times the user has rewatched/read the media" + repeat: Int + "The score of the entry" + score( + "Force the score to be returned in the provided format type." + format: ScoreFormat + ): Float + "When the entry was started by the user" + startedAt: FuzzyDate + "The watching/reading status" + status: MediaListStatus + "When the entry data was last updated" + updatedAt: Int + user: User + "The id of the user owner of the list entry" + userId: Int! } "List of anime or manga" type MediaListCollection { - "A map of media list entry arrays grouped by custom lists" - customLists(asArray: Boolean): [[MediaList]] @deprecated(reason: "Not GraphQL spec compliant, use lists field instead.") - "If there is another chunk" - hasNextChunk: Boolean - "Grouped media list entries" - lists: [MediaListGroup] - "A map of media list entry arrays grouped by status" - statusLists(asArray: Boolean): [[MediaList]] @deprecated(reason: "Not GraphQL spec compliant, use lists field instead.") - "The owner of the list" - user: User + "A map of media list entry arrays grouped by custom lists" + customLists(asArray: Boolean): [[MediaList]] @deprecated(reason: "Not GraphQL spec compliant, use lists field instead.") + "If there is another chunk" + hasNextChunk: Boolean + "Grouped media list entries" + lists: [MediaListGroup] + "A map of media list entry arrays grouped by status" + statusLists(asArray: Boolean): [[MediaList]] @deprecated(reason: "Not GraphQL spec compliant, use lists field instead.") + "The owner of the list" + user: User } "List group of anime or manga entries" type MediaListGroup { - "Media list entries" - entries: [MediaList] - isCustomList: Boolean - isSplitCompletedList: Boolean - name: String - status: MediaListStatus + "Media list entries" + entries: [MediaList] + isCustomList: Boolean + isSplitCompletedList: Boolean + name: String + status: MediaListStatus } "A user's list options" type MediaListOptions { - "The user's anime list options" - animeList: MediaListTypeOptions - "The user's manga list options" - mangaList: MediaListTypeOptions - "The default order list rows should be displayed in" - rowOrder: String - "The score format the user is using for media lists" - scoreFormat: ScoreFormat - "The list theme options for both lists" - sharedTheme: Json @deprecated(reason: "No longer used") - "If the shared theme should be used instead of the individual list themes" - sharedThemeEnabled: Boolean @deprecated(reason: "No longer used") - useLegacyLists: Boolean @deprecated(reason: "No longer used") + "The user's anime list options" + animeList: MediaListTypeOptions + "The user's manga list options" + mangaList: MediaListTypeOptions + "The default order list rows should be displayed in" + rowOrder: String + "The score format the user is using for media lists" + scoreFormat: ScoreFormat + "The list theme options for both lists" + sharedTheme: Json @deprecated(reason: "No longer used") + "If the shared theme should be used instead of the individual list themes" + sharedThemeEnabled: Boolean @deprecated(reason: "No longer used") + useLegacyLists: Boolean @deprecated(reason: "No longer used") } "A user's list options for anime or manga lists" type MediaListTypeOptions { - "The names of the user's advanced scoring sections" - advancedScoring: [String] - "If advanced scoring is enabled" - advancedScoringEnabled: Boolean - "The names of the user's custom lists" - customLists: [String] - "The order each list should be displayed in" - sectionOrder: [String] - "If the completed sections of the list should be separated by format" - splitCompletedSectionByFormat: Boolean - "The list theme options" - theme: Json @deprecated(reason: "This field has not yet been fully implemented and may change without warning") + "The names of the user's advanced scoring sections" + advancedScoring: [String] + "If advanced scoring is enabled" + advancedScoringEnabled: Boolean + "The names of the user's custom lists" + customLists: [String] + "The order each list should be displayed in" + sectionOrder: [String] + "If the completed sections of the list should be separated by format" + splitCompletedSectionByFormat: Boolean + "The list theme options" + theme: Json @deprecated(reason: "This field has not yet been fully implemented and may change without warning") } "Notification for when a media entry is merged into another for a user who had it on their list" type MediaMergeNotification { - "The reason for the media data change" - context: String - "The time the notification was created at" - createdAt: Int - "The title of the deleted media" - deletedMediaTitles: [String] - "The id of the Notification" - id: Int! - "The media that was merged into" - media: Media - "The id of the media that was merged into" - mediaId: Int! - "The reason for the media merge" - reason: String - "The type of notification" - type: NotificationType + "The reason for the media data change" + context: String + "The time the notification was created at" + createdAt: Int + "The title of the deleted media" + deletedMediaTitles: [String] + "The id of the Notification" + id: Int! + "The media that was merged into" + media: Media + "The id of the media that was merged into" + mediaId: Int! + "The reason for the media merge" + reason: String + "The type of notification" + type: NotificationType } "The ranking of a media in a particular time span and format compared to other media" type MediaRank { - "If the ranking is based on all time instead of a season/year" - allTime: Boolean - "String that gives context to the ranking type and time span" - context: String! - "The format the media is ranked within" - format: MediaFormat! - "The id of the rank" - id: Int! - "The numerical rank of the media" - rank: Int! - "The season the media is ranked within" - season: MediaSeason - "The type of ranking" - type: MediaRankType! - "The year the media is ranked within" - year: Int + "If the ranking is based on all time instead of a season/year" + allTime: Boolean + "String that gives context to the ranking type and time span" + context: String! + "The format the media is ranked within" + format: MediaFormat! + "The id of the rank" + id: Int! + "The numerical rank of the media" + rank: Int! + "The season the media is ranked within" + season: MediaSeason + "The type of ranking" + type: MediaRankType! + "The year the media is ranked within" + year: Int } "A media's statistics" type MediaStats { - airingProgression: [AiringProgression] @deprecated(reason: "Replaced by MediaTrends") - scoreDistribution: [ScoreDistribution] - statusDistribution: [StatusDistribution] + airingProgression: [AiringProgression] @deprecated(reason: "Replaced by MediaTrends") + scoreDistribution: [ScoreDistribution] + statusDistribution: [StatusDistribution] } "Data and links to legal streaming episodes on external sites" type MediaStreamingEpisode { - "The site location of the streaming episodes" - site: String - "Url of episode image thumbnail" - thumbnail: String - "Title of the episode" - title: String - "The url of the episode" - url: String + "The site location of the streaming episodes" + site: String + "Url of episode image thumbnail" + thumbnail: String + "Title of the episode" + title: String + "The url of the episode" + url: String } "Media submission" type MediaSubmission { - "Data Mod assigned to handle the submission" - assignee: User - changes: [String] - characters: [MediaSubmissionComparison] - createdAt: Int - externalLinks: [MediaSubmissionComparison] - "The id of the submission" - id: Int! - "Whether the submission is locked" - locked: Boolean - media: Media - notes: String - relations: [MediaEdge] - source: String - staff: [MediaSubmissionComparison] - "Status of the submission" - status: SubmissionStatus - studios: [MediaSubmissionComparison] - submission: Media - "User submitter of the submission" - submitter: User - submitterStats: Json + "Data Mod assigned to handle the submission" + assignee: User + changes: [String] + characters: [MediaSubmissionComparison] + createdAt: Int + externalLinks: [MediaSubmissionComparison] + "The id of the submission" + id: Int! + "Whether the submission is locked" + locked: Boolean + media: Media + notes: String + relations: [MediaEdge] + source: String + staff: [MediaSubmissionComparison] + "Status of the submission" + status: SubmissionStatus + studios: [MediaSubmissionComparison] + submission: Media + "User submitter of the submission" + submitter: User + submitterStats: Json } "Media submission with comparison to current data" type MediaSubmissionComparison { - character: MediaCharacter - externalLink: MediaExternalLink - staff: StaffEdge - studio: StudioEdge - submission: MediaSubmissionEdge + character: MediaCharacter + externalLink: MediaExternalLink + staff: StaffEdge + studio: StudioEdge + submission: MediaSubmissionEdge } type MediaSubmissionEdge { - character: Character - characterName: String - characterRole: CharacterRole - characterSubmission: Character - dubGroup: String - externalLink: MediaExternalLink - "The id of the direct submission" - id: Int - isMain: Boolean - media: Media - roleNotes: String - staff: Staff - staffRole: String - staffSubmission: Staff - studio: Studio - voiceActor: Staff - voiceActorSubmission: Staff + character: Character + characterName: String + characterRole: CharacterRole + characterSubmission: Character + dubGroup: String + externalLink: MediaExternalLink + "The id of the direct submission" + id: Int + isMain: Boolean + media: Media + roleNotes: String + staff: Staff + staffRole: String + staffSubmission: Staff + studio: Studio + voiceActor: Staff + voiceActorSubmission: Staff } "A tag that describes a theme or element of the media" type MediaTag { - "The categories of tags this tag belongs to" - category: String - "A general description of the tag" - description: String - "The id of the tag" - id: Int! - "If the tag is only for adult 18+ media" - isAdult: Boolean - "If the tag could be a spoiler for any media" - isGeneralSpoiler: Boolean - "If the tag is a spoiler for this media" - isMediaSpoiler: Boolean - "The name of the tag" - name: String! - "The relevance ranking of the tag out of the 100 for this media" - rank: Int - "The user who submitted the tag" - userId: Int + "The categories of tags this tag belongs to" + category: String + "A general description of the tag" + description: String + "The id of the tag" + id: Int! + "If the tag is only for adult 18+ media" + isAdult: Boolean + "If the tag could be a spoiler for any media" + isGeneralSpoiler: Boolean + "If the tag is a spoiler for this media" + isMediaSpoiler: Boolean + "The name of the tag" + name: String! + "The relevance ranking of the tag out of the 100 for this media" + rank: Int + "The user who submitted the tag" + userId: Int } "The official titles of the media in various languages" type MediaTitle { - "The official english title" - english(stylised: Boolean): String - "Official title in it's native language" - native(stylised: Boolean): String - "The romanization of the native language title" - romaji(stylised: Boolean): String - "The currently authenticated users preferred title language. Default romaji for non-authenticated" - userPreferred: String + "The official english title" + english(stylised: Boolean): String + "Official title in it's native language" + native(stylised: Boolean): String + "The romanization of the native language title" + romaji(stylised: Boolean): String + "The currently authenticated users preferred title language. Default romaji for non-authenticated" + userPreferred: String } "Media trailer or advertisement" type MediaTrailer { - "The trailer video id" - id: String - "The site the video is hosted by (Currently either youtube or dailymotion)" - site: String - "The url for the thumbnail image of the video" - thumbnail: String + "The trailer video id" + id: String + "The site the video is hosted by (Currently either youtube or dailymotion)" + site: String + "The url for the thumbnail image of the video" + thumbnail: String } "Daily media statistics" type MediaTrend { - "A weighted average score of all the user's scores of the media" - averageScore: Int - "The day the data was recorded (timestamp)" - date: Int! - "The episode number of the anime released on this day" - episode: Int - "The number of users with watching/reading the media" - inProgress: Int - "The related media" - media: Media - "The id of the tag" - mediaId: Int! - "The number of users with the media on their list" - popularity: Int - "If the media was being released at this time" - releasing: Boolean! - "The amount of media activity on the day" - trending: Int! + "A weighted average score of all the user's scores of the media" + averageScore: Int + "The day the data was recorded (timestamp)" + date: Int! + "The episode number of the anime released on this day" + episode: Int + "The number of users with watching/reading the media" + inProgress: Int + "The related media" + media: Media + "The id of the tag" + mediaId: Int! + "The number of users with the media on their list" + popularity: Int + "If the media was being released at this time" + releasing: Boolean! + "The amount of media activity on the day" + trending: Int! } type MediaTrendConnection { - edges: [MediaTrendEdge] - nodes: [MediaTrend] - "The pagination information" - pageInfo: PageInfo + edges: [MediaTrendEdge] + nodes: [MediaTrend] + "The pagination information" + pageInfo: PageInfo } "Media trend connection edge" type MediaTrendEdge { - node: MediaTrend + node: MediaTrend } "User message activity" type MessageActivity { - "The time the activity was created at" - createdAt: Int! - "The id of the activity" - id: Int! - "If the currently authenticated user liked the activity" - isLiked: Boolean - "If the activity is locked and can receive replies" - isLocked: Boolean - "If the message is private and only viewable to the sender and recipients" - isPrivate: Boolean - "If the currently authenticated user is subscribed to the activity" - isSubscribed: Boolean - "The amount of likes the activity has" - likeCount: Int! - "The users who liked the activity" - likes: [User] - "The message text (Markdown)" - message( - "Return the string in pre-parsed html instead of markdown" - asHtml: Boolean - ): String - "The user who sent the activity message" - messenger: User - "The user id of the activity's sender" - messengerId: Int - "The user who the activity message was sent to" - recipient: User - "The user id of the activity's recipient" - recipientId: Int - "The written replies to the activity" - replies: [ActivityReply] - "The number of activity replies" - replyCount: Int! - "The url for the activity page on the AniList website" - siteUrl: String - "The type of the activity" - type: ActivityType + "The time the activity was created at" + createdAt: Int! + "The id of the activity" + id: Int! + "If the currently authenticated user liked the activity" + isLiked: Boolean + "If the activity is locked and can receive replies" + isLocked: Boolean + "If the message is private and only viewable to the sender and recipients" + isPrivate: Boolean + "If the currently authenticated user is subscribed to the activity" + isSubscribed: Boolean + "The amount of likes the activity has" + likeCount: Int! + "The users who liked the activity" + likes: [User] + "The message text (Markdown)" + message( + "Return the string in pre-parsed html instead of markdown" + asHtml: Boolean + ): String + "The user who sent the activity message" + messenger: User + "The user id of the activity's sender" + messengerId: Int + "The user who the activity message was sent to" + recipient: User + "The user id of the activity's recipient" + recipientId: Int + "The written replies to the activity" + replies: [ActivityReply] + "The number of activity replies" + replyCount: Int! + "The url for the activity page on the AniList website" + siteUrl: String + "The type of the activity" + type: ActivityType } type ModAction { - createdAt: Int! - data: String - "The id of the action" - id: Int! - mod: User - objectId: Int - objectType: String - type: ModActionType - user: User + createdAt: Int! + data: String + "The id of the action" + id: Int! + mod: User + objectId: Int + objectType: String + type: ModActionType + user: User } type Mutation { - "Delete an activity item of the authenticated users" - DeleteActivity( - "The id of the activity to delete" - id: Int - ): Deleted - "Delete an activity reply of the authenticated users" - DeleteActivityReply( - "The id of the reply to delete" - id: Int - ): Deleted - "Delete a custom list and remove the list entries from it" - DeleteCustomList( - "The name of the custom list to delete" - customList: String, - "The media list type of the custom list" - type: MediaType - ): Deleted - "Delete a media list entry" - DeleteMediaListEntry( - "The id of the media list entry to delete" - id: Int - ): Deleted - "Delete a review" - DeleteReview( - "The id of the review to delete" - id: Int - ): Deleted - "Delete a thread" - DeleteThread( - "The id of the thread to delete" - id: Int - ): Deleted - "Delete a thread comment" - DeleteThreadComment( - "The id of the thread comment to delete" - id: Int - ): Deleted - "Rate a review" - RateReview( - "The rating to apply to the review" - rating: ReviewRating, - "The id of the review to rate" - reviewId: Int - ): Review - "Create or update an activity reply" - SaveActivityReply( - "The id of the parent activity being replied to" - activityId: Int, - "If the reply should be sent from the Moderator account (Mod Only)" - asMod: Boolean, - "The activity reply id, required for updating" - id: Int, - "The reply text" - text: String - ): ActivityReply - "Update list activity (Mod Only)" - SaveListActivity( - "The activity's id, required for updating" - id: Int, - "If the activity should be locked. (Mod Only)" - locked: Boolean - ): ListActivity - "Create or update a media list entry" - SaveMediaListEntry( - "Array of advanced scores" - advancedScores: [Float], - "When the entry was completed by the user" - completedAt: FuzzyDateInput, - "Array of custom list names which should be enabled for this entry" - customLists: [String], - "If the entry shown be hidden from non-custom lists" - hiddenFromStatusLists: Boolean, - "The list entry id, required for updating" - id: Int, - "The id of the media the entry is of" - mediaId: Int, - "Text notes" - notes: String, - "Priority of planning" - priority: Int, - "If the entry should only be visible to authenticated user" - private: Boolean, - "The amount of episodes/chapters consumed by the user" - progress: Int, - "The amount of volumes read by the user" - progressVolumes: Int, - "The amount of times the user has rewatched/read the media" - repeat: Int, - "The score of the media in the user's chosen scoring method" - score: Float, - "The score of the media in 100 point" - scoreRaw: Int, - "When the entry was started by the user" - startedAt: FuzzyDateInput, - "The watching/reading status" - status: MediaListStatus - ): MediaList - "Create or update message activity for the currently authenticated user" - SaveMessageActivity( - "If the message should be sent from the Moderator account (Mod Only)" - asMod: Boolean, - "The activity id, required for updating" - id: Int, - "If the activity should be locked. (Mod Only)" - locked: Boolean, - "The activity message text" - message: String, - "If the activity should be private" - private: Boolean, - "The id of the user the message is being sent to" - recipientId: Int - ): MessageActivity - "Recommendation a media" - SaveRecommendation( - "The id of the base media" - mediaId: Int, - "The id of the media to recommend" - mediaRecommendationId: Int, - "The rating to give the recommendation" - rating: RecommendationRating - ): Recommendation - "Create or update a review" - SaveReview( - "The main review text. Min:2200 characters" - body: String, - "The review id, required for updating" - id: Int, - "The id of the media the review is of" - mediaId: Int, - "If the review should only be visible to its creator" - private: Boolean, - "A short summary/preview of the review. Min:20, Max:120 characters" - score: Int, - "A short summary/preview of the review. Min:20, Max:120 characters" - summary: String - ): Review - "Create or update text activity for the currently authenticated user" - SaveTextActivity( - "The activity's id, required for updating" - id: Int, - "If the activity should be locked. (Mod Only)" - locked: Boolean, - "The activity text" - text: String - ): TextActivity - "Create or update a forum thread" - SaveThread( - "The main text body of the thread" - body: String, - "Forum categories the thread should be within" - categories: [Int], - "The thread id, required for updating" - id: Int, - "If the thread should be locked. (Mod Only)" - locked: Boolean, - "Media related to the contents of the thread" - mediaCategories: [Int], - "If the thread should be stickied. (Mod Only)" - sticky: Boolean, - "The title of the thread" - title: String - ): Thread - "Create or update a thread comment" - SaveThreadComment( - "The comment markdown text" - comment: String, - "The comment id, required for updating" - id: Int, - "If the comment tree should be locked. (Mod Only)" - locked: Boolean, - "The id of thread comment to reply to" - parentCommentId: Int, - "The id of thread the comment belongs to" - threadId: Int - ): ThreadComment - "Toggle activity to be pinned to the top of the user's activity feed" - ToggleActivityPin( - "Toggle activity id to be pinned" - id: Int, - "If the activity should be pinned or unpinned" - pinned: Boolean - ): ActivityUnion - "Toggle the subscription of an activity item" - ToggleActivitySubscription( - "The id of the activity to un/subscribe" - activityId: Int, - "Whether to subscribe or unsubscribe from the activity" - subscribe: Boolean - ): ActivityUnion - "Favourite or unfavourite an anime, manga, character, staff member, or studio" - ToggleFavourite( - "The id of the anime to un/favourite" - animeId: Int, - "The id of the character to un/favourite" - characterId: Int, - "The id of the manga to un/favourite" - mangaId: Int, - "The id of the staff to un/favourite" - staffId: Int, - "The id of the studio to un/favourite" - studioId: Int - ): Favourites - "Toggle the un/following of a user" - ToggleFollow( - "The id of the user to un/follow" - userId: Int - ): User - """ + "Delete an activity item of the authenticated users" + DeleteActivity( + "The id of the activity to delete" + id: Int + ): Deleted + "Delete an activity reply of the authenticated users" + DeleteActivityReply( + "The id of the reply to delete" + id: Int + ): Deleted + "Delete a custom list and remove the list entries from it" + DeleteCustomList( + "The name of the custom list to delete" + customList: String, + "The media list type of the custom list" + type: MediaType + ): Deleted + "Delete a media list entry" + DeleteMediaListEntry( + "The id of the media list entry to delete" + id: Int + ): Deleted + "Delete a review" + DeleteReview( + "The id of the review to delete" + id: Int + ): Deleted + "Delete a thread" + DeleteThread( + "The id of the thread to delete" + id: Int + ): Deleted + "Delete a thread comment" + DeleteThreadComment( + "The id of the thread comment to delete" + id: Int + ): Deleted + "Rate a review" + RateReview( + "The rating to apply to the review" + rating: ReviewRating, + "The id of the review to rate" + reviewId: Int + ): Review + "Create or update an activity reply" + SaveActivityReply( + "The id of the parent activity being replied to" + activityId: Int, + "If the reply should be sent from the Moderator account (Mod Only)" + asMod: Boolean, + "The activity reply id, required for updating" + id: Int, + "The reply text" + text: String + ): ActivityReply + "Update list activity (Mod Only)" + SaveListActivity( + "The activity's id, required for updating" + id: Int, + "If the activity should be locked. (Mod Only)" + locked: Boolean + ): ListActivity + "Create or update a media list entry" + SaveMediaListEntry( + "Array of advanced scores" + advancedScores: [Float], + "When the entry was completed by the user" + completedAt: FuzzyDateInput, + "Array of custom list names which should be enabled for this entry" + customLists: [String], + "If the entry shown be hidden from non-custom lists" + hiddenFromStatusLists: Boolean, + "The list entry id, required for updating" + id: Int, + "The id of the media the entry is of" + mediaId: Int, + "Text notes" + notes: String, + "Priority of planning" + priority: Int, + "If the entry should only be visible to authenticated user" + private: Boolean, + "The amount of episodes/chapters consumed by the user" + progress: Int, + "The amount of volumes read by the user" + progressVolumes: Int, + "The amount of times the user has rewatched/read the media" + repeat: Int, + "The score of the media in the user's chosen scoring method" + score: Float, + "The score of the media in 100 point" + scoreRaw: Int, + "When the entry was started by the user" + startedAt: FuzzyDateInput, + "The watching/reading status" + status: MediaListStatus + ): MediaList + "Create or update message activity for the currently authenticated user" + SaveMessageActivity( + "If the message should be sent from the Moderator account (Mod Only)" + asMod: Boolean, + "The activity id, required for updating" + id: Int, + "If the activity should be locked. (Mod Only)" + locked: Boolean, + "The activity message text" + message: String, + "If the activity should be private" + private: Boolean, + "The id of the user the message is being sent to" + recipientId: Int + ): MessageActivity + "Recommendation a media" + SaveRecommendation( + "The id of the base media" + mediaId: Int, + "The id of the media to recommend" + mediaRecommendationId: Int, + "The rating to give the recommendation" + rating: RecommendationRating + ): Recommendation + "Create or update a review" + SaveReview( + "The main review text. Min:2200 characters" + body: String, + "The review id, required for updating" + id: Int, + "The id of the media the review is of" + mediaId: Int, + "If the review should only be visible to its creator" + private: Boolean, + "A short summary/preview of the review. Min:20, Max:120 characters" + score: Int, + "A short summary/preview of the review. Min:20, Max:120 characters" + summary: String + ): Review + "Create or update text activity for the currently authenticated user" + SaveTextActivity( + "The activity's id, required for updating" + id: Int, + "If the activity should be locked. (Mod Only)" + locked: Boolean, + "The activity text" + text: String + ): TextActivity + "Create or update a forum thread" + SaveThread( + "The main text body of the thread" + body: String, + "Forum categories the thread should be within" + categories: [Int], + "The thread id, required for updating" + id: Int, + "If the thread should be locked. (Mod Only)" + locked: Boolean, + "Media related to the contents of the thread" + mediaCategories: [Int], + "If the thread should be stickied. (Mod Only)" + sticky: Boolean, + "The title of the thread" + title: String + ): Thread + "Create or update a thread comment" + SaveThreadComment( + "The comment markdown text" + comment: String, + "The comment id, required for updating" + id: Int, + "If the comment tree should be locked. (Mod Only)" + locked: Boolean, + "The id of thread comment to reply to" + parentCommentId: Int, + "The id of thread the comment belongs to" + threadId: Int + ): ThreadComment + "Toggle activity to be pinned to the top of the user's activity feed" + ToggleActivityPin( + "Toggle activity id to be pinned" + id: Int, + "If the activity should be pinned or unpinned" + pinned: Boolean + ): ActivityUnion + "Toggle the subscription of an activity item" + ToggleActivitySubscription( + "The id of the activity to un/subscribe" + activityId: Int, + "Whether to subscribe or unsubscribe from the activity" + subscribe: Boolean + ): ActivityUnion + "Favourite or unfavourite an anime, manga, character, staff member, or studio" + ToggleFavourite( + "The id of the anime to un/favourite" + animeId: Int, + "The id of the character to un/favourite" + characterId: Int, + "The id of the manga to un/favourite" + mangaId: Int, + "The id of the staff to un/favourite" + staffId: Int, + "The id of the studio to un/favourite" + studioId: Int + ): Favourites + "Toggle the un/following of a user" + ToggleFollow( + "The id of the user to un/follow" + userId: Int + ): User + """ - Add or remove a like from a likeable type. - Returns all the users who liked the same model - """ - ToggleLike( - "The id of the likeable type" - id: Int, - "The type of model to be un/liked" - type: LikeableType - ): [User] - "Add or remove a like from a likeable type." - ToggleLikeV2( - "The id of the likeable type" - id: Int, - "The type of model to be un/liked" - type: LikeableType - ): LikeableUnion - "Toggle the subscription of a forum thread" - ToggleThreadSubscription( - "Whether to subscribe or unsubscribe from the forum thread" - subscribe: Boolean, - "The id of the forum thread to un/subscribe" - threadId: Int - ): Thread - UpdateAniChartHighlights(highlights: [AniChartHighlightInput]): Json - UpdateAniChartSettings(outgoingLinkProvider: String, sort: String, theme: String, titleLanguage: String): Json - "Update the order favourites are displayed in" - UpdateFavouriteOrder( - "The id of the anime to un/favourite" - animeIds: [Int], - "List of integers which the anime should be ordered by (Asc)" - animeOrder: [Int], - "The id of the character to un/favourite" - characterIds: [Int], - "List of integers which the character should be ordered by (Asc)" - characterOrder: [Int], - "The id of the manga to un/favourite" - mangaIds: [Int], - "List of integers which the manga should be ordered by (Asc)" - mangaOrder: [Int], - "The id of the staff to un/favourite" - staffIds: [Int], - "List of integers which the staff should be ordered by (Asc)" - staffOrder: [Int], - "The id of the studio to un/favourite" - studioIds: [Int], - "List of integers which the studio should be ordered by (Asc)" - studioOrder: [Int] - ): Favourites - "Update multiple media list entries to the same values" - UpdateMediaListEntries( - "Array of advanced scores" - advancedScores: [Float], - "When the entry was completed by the user" - completedAt: FuzzyDateInput, - "If the entry shown be hidden from non-custom lists" - hiddenFromStatusLists: Boolean, - "The list entries ids to update" - ids: [Int], - "Text notes" - notes: String, - "Priority of planning" - priority: Int, - "If the entry should only be visible to authenticated user" - private: Boolean, - "The amount of episodes/chapters consumed by the user" - progress: Int, - "The amount of volumes read by the user" - progressVolumes: Int, - "The amount of times the user has rewatched/read the media" - repeat: Int, - "The score of the media in the user's chosen scoring method" - score: Float, - "The score of the media in 100 point" - scoreRaw: Int, - "When the entry was started by the user" - startedAt: FuzzyDateInput, - "The watching/reading status" - status: MediaListStatus - ): [MediaList] - UpdateUser( - "User's about/bio text" - about: String, - "Minutes between activity for them to be merged together. 0 is Never, Above 2 weeks (20160 mins) is Always." - activityMergeTime: Int, - "If the user should get notifications when a show they are watching aires" - airingNotifications: Boolean, - "The user's anime list options" - animeListOptions: MediaListOptionsInput, - disabledListActivity: [ListActivityOptionInput], - "If the user should see media marked as adult-only" - displayAdultContent: Boolean, - "Profile highlight color" - donatorBadge: String, - "The user's anime list options" - mangaListOptions: MediaListOptionsInput, - "Notification options" - notificationOptions: [NotificationOptionInput], - "Profile highlight color" - profileColor: String, - "Only allow messages from other users the user follows" - restrictMessagesToFollowing: Boolean, - "The user's default list order" - rowOrder: String, - "The user's list scoring system" - scoreFormat: ScoreFormat, - "The language the user wants to see staff and character names in" - staffNameLanguage: UserStaffNameLanguage, - "Timezone offset format: -?HH:MM" - timezone: String, - "User's title language" - titleLanguage: UserTitleLanguage - ): User + Add or remove a like from a likeable type. + Returns all the users who liked the same model + """ + ToggleLike( + "The id of the likeable type" + id: Int, + "The type of model to be un/liked" + type: LikeableType + ): [User] + "Add or remove a like from a likeable type." + ToggleLikeV2( + "The id of the likeable type" + id: Int, + "The type of model to be un/liked" + type: LikeableType + ): LikeableUnion + "Toggle the subscription of a forum thread" + ToggleThreadSubscription( + "Whether to subscribe or unsubscribe from the forum thread" + subscribe: Boolean, + "The id of the forum thread to un/subscribe" + threadId: Int + ): Thread + UpdateAniChartHighlights(highlights: [AniChartHighlightInput]): Json + UpdateAniChartSettings(outgoingLinkProvider: String, sort: String, theme: String, titleLanguage: String): Json + "Update the order favourites are displayed in" + UpdateFavouriteOrder( + "The id of the anime to un/favourite" + animeIds: [Int], + "List of integers which the anime should be ordered by (Asc)" + animeOrder: [Int], + "The id of the character to un/favourite" + characterIds: [Int], + "List of integers which the character should be ordered by (Asc)" + characterOrder: [Int], + "The id of the manga to un/favourite" + mangaIds: [Int], + "List of integers which the manga should be ordered by (Asc)" + mangaOrder: [Int], + "The id of the staff to un/favourite" + staffIds: [Int], + "List of integers which the staff should be ordered by (Asc)" + staffOrder: [Int], + "The id of the studio to un/favourite" + studioIds: [Int], + "List of integers which the studio should be ordered by (Asc)" + studioOrder: [Int] + ): Favourites + "Update multiple media list entries to the same values" + UpdateMediaListEntries( + "Array of advanced scores" + advancedScores: [Float], + "When the entry was completed by the user" + completedAt: FuzzyDateInput, + "If the entry shown be hidden from non-custom lists" + hiddenFromStatusLists: Boolean, + "The list entries ids to update" + ids: [Int], + "Text notes" + notes: String, + "Priority of planning" + priority: Int, + "If the entry should only be visible to authenticated user" + private: Boolean, + "The amount of episodes/chapters consumed by the user" + progress: Int, + "The amount of volumes read by the user" + progressVolumes: Int, + "The amount of times the user has rewatched/read the media" + repeat: Int, + "The score of the media in the user's chosen scoring method" + score: Float, + "The score of the media in 100 point" + scoreRaw: Int, + "When the entry was started by the user" + startedAt: FuzzyDateInput, + "The watching/reading status" + status: MediaListStatus + ): [MediaList] + UpdateUser( + "User's about/bio text" + about: String, + "Minutes between activity for them to be merged together. 0 is Never, Above 2 weeks (20160 mins) is Always." + activityMergeTime: Int, + "If the user should get notifications when a show they are watching aires" + airingNotifications: Boolean, + "The user's anime list options" + animeListOptions: MediaListOptionsInput, + disabledListActivity: [ListActivityOptionInput], + "If the user should see media marked as adult-only" + displayAdultContent: Boolean, + "Profile highlight color" + donatorBadge: String, + "The user's anime list options" + mangaListOptions: MediaListOptionsInput, + "Notification options" + notificationOptions: [NotificationOptionInput], + "Profile highlight color" + profileColor: String, + "Only allow messages from other users the user follows" + restrictMessagesToFollowing: Boolean, + "The user's default list order" + rowOrder: String, + "The user's list scoring system" + scoreFormat: ScoreFormat, + "The language the user wants to see staff and character names in" + staffNameLanguage: UserStaffNameLanguage, + "Timezone offset format: -?HH:MM" + timezone: String, + "User's title language" + titleLanguage: UserTitleLanguage + ): User } "Notification option" type NotificationOption { - "Whether this type of notification is enabled" - enabled: Boolean - "The type of notification" - type: NotificationType + "Whether this type of notification is enabled" + enabled: Boolean + "The type of notification" + type: NotificationType } "Page of data" type Page { - activities( - "Filter by the time the activity was created" - createdAt: Int, - "Filter by the time the activity was created" - createdAt_greater: Int, - "Filter by the time the activity was created" - createdAt_lesser: Int, - "Filter activity to only activity with replies" - hasReplies: Boolean, - "Filter activity to only activity with replies or is of type text" - hasRepliesOrTypeText: Boolean, - "Filter by the activity id" - id: Int, - "Filter by the activity id" - id_in: [Int], - "Filter by the activity id" - id_not: Int, - "Filter by the activity id" - id_not_in: [Int], - "Filter activity to users who are being followed by the authenticated user" - isFollowing: Boolean, - "Filter by the associated media id of the activity" - mediaId: Int, - "Filter by the associated media id of the activity" - mediaId_in: [Int], - "Filter by the associated media id of the activity" - mediaId_not: Int, - "Filter by the associated media id of the activity" - mediaId_not_in: [Int], - "Filter by the id of the user who sent a message" - messengerId: Int, - "Filter by the id of the user who sent a message" - messengerId_in: [Int], - "Filter by the id of the user who sent a message" - messengerId_not: Int, - "Filter by the id of the user who sent a message" - messengerId_not_in: [Int], - "The order the results will be returned in" - sort: [ActivitySort], - "Filter by the type of activity" - type: ActivityType, - "Filter by the type of activity" - type_in: [ActivityType], - "Filter by the type of activity" - type_not: ActivityType, - "Filter by the type of activity" - type_not_in: [ActivityType], - "Filter by the owner user id" - userId: Int, - "Filter by the owner user id" - userId_in: [Int], - "Filter by the owner user id" - userId_not: Int, - "Filter by the owner user id" - userId_not_in: [Int] - ): [ActivityUnion] - activityReplies( - "Filter by the parent id" - activityId: Int, - "Filter by the reply id" - id: Int - ): [ActivityReply] - airingSchedules( - "Filter by the time of airing" - airingAt: Int, - "Filter by the time of airing" - airingAt_greater: Int, - "Filter by the time of airing" - airingAt_lesser: Int, - "Filter by the airing episode number" - episode: Int, - "Filter by the airing episode number" - episode_greater: Int, - "Filter by the airing episode number" - episode_in: [Int], - "Filter by the airing episode number" - episode_lesser: Int, - "Filter by the airing episode number" - episode_not: Int, - "Filter by the airing episode number" - episode_not_in: [Int], - "Filter by the id of the airing schedule item" - id: Int, - "Filter by the id of the airing schedule item" - id_in: [Int], - "Filter by the id of the airing schedule item" - id_not: Int, - "Filter by the id of the airing schedule item" - id_not_in: [Int], - "Filter by the id of associated media" - mediaId: Int, - "Filter by the id of associated media" - mediaId_in: [Int], - "Filter by the id of associated media" - mediaId_not: Int, - "Filter by the id of associated media" - mediaId_not_in: [Int], - "Filter to episodes that haven't yet aired" - notYetAired: Boolean, - "The order the results will be returned in" - sort: [AiringSort] - ): [AiringSchedule] - characters( - "Filter by character id" - id: Int, - "Filter by character id" - id_in: [Int], - "Filter by character id" - id_not: Int, - "Filter by character id" - id_not_in: [Int], - "Filter by character by if its their birthday today" - isBirthday: Boolean, - "Filter by search query" - search: String, - "The order the results will be returned in" - sort: [CharacterSort] - ): [Character] - followers( - "The order the results will be returned in" - sort: [UserSort], - "User id of the follower/followed" - userId: Int! - ): [User] - following( - "The order the results will be returned in" - sort: [UserSort], - "User id of the follower/followed" - userId: Int! - ): [User] - likes( - "The id of the likeable type" - likeableId: Int, - "The type of model the id applies to" - type: LikeableType - ): [User] - media( - "Filter by the media's average score" - averageScore: Int, - "Filter by the media's average score" - averageScore_greater: Int, - "Filter by the media's average score" - averageScore_lesser: Int, - "Filter by the media's average score" - averageScore_not: Int, - "Filter by the media's chapter count" - chapters: Int, - "Filter by the media's chapter count" - chapters_greater: Int, - "Filter by the media's chapter count" - chapters_lesser: Int, - "Filter by the media's country of origin" - countryOfOrigin: CountryCode, - "Filter by the media's episode length" - duration: Int, - "Filter by the media's episode length" - duration_greater: Int, - "Filter by the media's episode length" - duration_lesser: Int, - "Filter by the end date of the media" - endDate: FuzzyDateInt, - "Filter by the end date of the media" - endDate_greater: FuzzyDateInt, - "Filter by the end date of the media" - endDate_lesser: FuzzyDateInt, - "Filter by the end date of the media" - endDate_like: String, - "Filter by amount of episodes the media has" - episodes: Int, - "Filter by amount of episodes the media has" - episodes_greater: Int, - "Filter by amount of episodes the media has" - episodes_lesser: Int, - "Filter by the media's format" - format: MediaFormat, - "Filter by the media's format" - format_in: [MediaFormat], - "Filter by the media's format" - format_not: MediaFormat, - "Filter by the media's format" - format_not_in: [MediaFormat], - "Filter by the media's genres" - genre: String, - "Filter by the media's genres" - genre_in: [String], - "Filter by the media's genres" - genre_not_in: [String], - "Filter by the media id" - id: Int, - "Filter by the media's MyAnimeList id" - idMal: Int, - "Filter by the media's MyAnimeList id" - idMal_in: [Int], - "Filter by the media's MyAnimeList id" - idMal_not: Int, - "Filter by the media's MyAnimeList id" - idMal_not_in: [Int], - "Filter by the media id" - id_in: [Int], - "Filter by the media id" - id_not: Int, - "Filter by the media id" - id_not_in: [Int], - "Filter by if the media's intended for 18+ adult audiences" - isAdult: Boolean, - "If the media is officially licensed or a self-published doujin release" - isLicensed: Boolean, - "Filter media by sites name with a online streaming or reading license" - licensedBy: String, - "Filter media by sites id with a online streaming or reading license" - licensedById: Int, - "Filter media by sites id with a online streaming or reading license" - licensedById_in: [Int], - "Filter media by sites name with a online streaming or reading license" - licensedBy_in: [String], - "Only apply the tags filter argument to tags above this rank. Default: 18" - minimumTagRank: Int, - "Filter by the media on the authenticated user's lists" - onList: Boolean, - "Filter by the number of users with this media on their list" - popularity: Int, - "Filter by the number of users with this media on their list" - popularity_greater: Int, - "Filter by the number of users with this media on their list" - popularity_lesser: Int, - "Filter by the number of users with this media on their list" - popularity_not: Int, - "Filter by search query" - search: String, - "Filter by the season the media was released in" - season: MediaSeason, - "The year of the season (Winter 2017 would also include December 2016 releases). Requires season argument" - seasonYear: Int, - "The order the results will be returned in" - sort: [MediaSort], - "Filter by the source type of the media" - source: MediaSource, - "Filter by the source type of the media" - source_in: [MediaSource], - "Filter by the start date of the media" - startDate: FuzzyDateInt, - "Filter by the start date of the media" - startDate_greater: FuzzyDateInt, - "Filter by the start date of the media" - startDate_lesser: FuzzyDateInt, - "Filter by the start date of the media" - startDate_like: String, - "Filter by the media's current release status" - status: MediaStatus, - "Filter by the media's current release status" - status_in: [MediaStatus], - "Filter by the media's current release status" - status_not: MediaStatus, - "Filter by the media's current release status" - status_not_in: [MediaStatus], - "Filter by the media's tags" - tag: String, - "Filter by the media's tags with in a tag category" - tagCategory: String, - "Filter by the media's tags with in a tag category" - tagCategory_in: [String], - "Filter by the media's tags with in a tag category" - tagCategory_not_in: [String], - "Filter by the media's tags" - tag_in: [String], - "Filter by the media's tags" - tag_not_in: [String], - "Filter by the media's type" - type: MediaType, - "Filter by the media's volume count" - volumes: Int, - "Filter by the media's volume count" - volumes_greater: Int, - "Filter by the media's volume count" - volumes_lesser: Int - ): [Media] - mediaList( - "Limit to only entries also on the auth user's list. Requires user id or name arguments." - compareWithAuthList: Boolean, - "Filter by the date the user completed the media" - completedAt: FuzzyDateInt, - "Filter by the date the user completed the media" - completedAt_greater: FuzzyDateInt, - "Filter by the date the user completed the media" - completedAt_lesser: FuzzyDateInt, - "Filter by the date the user completed the media" - completedAt_like: String, - "Filter by a list entry's id" - id: Int, - "Filter list entries to users who are being followed by the authenticated user" - isFollowing: Boolean, - "Filter by the media id of the list entry" - mediaId: Int, - "Filter by the media id of the list entry" - mediaId_in: [Int], - "Filter by the media id of the list entry" - mediaId_not_in: [Int], - "Filter by note words and #tags" - notes: String, - "Filter by note words and #tags" - notes_like: String, - "The order the results will be returned in" - sort: [MediaListSort], - "Filter by the date the user started the media" - startedAt: FuzzyDateInt, - "Filter by the date the user started the media" - startedAt_greater: FuzzyDateInt, - "Filter by the date the user started the media" - startedAt_lesser: FuzzyDateInt, - "Filter by the date the user started the media" - startedAt_like: String, - "Filter by the watching/reading status" - status: MediaListStatus, - "Filter by the watching/reading status" - status_in: [MediaListStatus], - "Filter by the watching/reading status" - status_not: MediaListStatus, - "Filter by the watching/reading status" - status_not_in: [MediaListStatus], - "Filter by the list entries media type" - type: MediaType, - "Filter by a user's id" - userId: Int, - "Filter by a user's id" - userId_in: [Int], - "Filter by a user's name" - userName: String - ): [MediaList] - mediaTrends( - "Filter by score" - averageScore: Int, - "Filter by score" - averageScore_greater: Int, - "Filter by score" - averageScore_lesser: Int, - "Filter by score" - averageScore_not: Int, - "Filter by date" - date: Int, - "Filter by date" - date_greater: Int, - "Filter by date" - date_lesser: Int, - "Filter by episode number" - episode: Int, - "Filter by episode number" - episode_greater: Int, - "Filter by episode number" - episode_lesser: Int, - "Filter by episode number" - episode_not: Int, - "Filter by the media id" - mediaId: Int, - "Filter by the media id" - mediaId_in: [Int], - "Filter by the media id" - mediaId_not: Int, - "Filter by the media id" - mediaId_not_in: [Int], - "Filter by popularity" - popularity: Int, - "Filter by popularity" - popularity_greater: Int, - "Filter by popularity" - popularity_lesser: Int, - "Filter by popularity" - popularity_not: Int, - "Filter to stats recorded while the media was releasing" - releasing: Boolean, - "The order the results will be returned in" - sort: [MediaTrendSort], - "Filter by trending amount" - trending: Int, - "Filter by trending amount" - trending_greater: Int, - "Filter by trending amount" - trending_lesser: Int, - "Filter by trending amount" - trending_not: Int - ): [MediaTrend] - notifications( - "Reset the unread notification count to 0 on load" - resetNotificationCount: Boolean, - "Filter by the type of notifications" - type: NotificationType, - "Filter by the type of notifications" - type_in: [NotificationType] - ): [NotificationUnion] - "The pagination information" - pageInfo: PageInfo - recommendations( - "Filter by recommendation id" - id: Int, - "Filter by media id" - mediaId: Int, - "Filter by media recommendation id" - mediaRecommendationId: Int, - "Filter by the media on the authenticated user's lists" - onList: Boolean, - "Filter by total rating of the recommendation" - rating: Int, - "Filter by total rating of the recommendation" - rating_greater: Int, - "Filter by total rating of the recommendation" - rating_lesser: Int, - "The order the results will be returned in" - sort: [RecommendationSort], - "Filter by user who created the recommendation" - userId: Int - ): [Recommendation] - reviews( - "Filter by Review id" - id: Int, - "Filter by media id" - mediaId: Int, - "Filter by media type" - mediaType: MediaType, - "The order the results will be returned in" - sort: [ReviewSort], - "Filter by user id" - userId: Int - ): [Review] - staff( - "Filter by the staff id" - id: Int, - "Filter by the staff id" - id_in: [Int], - "Filter by the staff id" - id_not: Int, - "Filter by the staff id" - id_not_in: [Int], - "Filter by staff by if its their birthday today" - isBirthday: Boolean, - "Filter by search query" - search: String, - "The order the results will be returned in" - sort: [StaffSort] - ): [Staff] - studios( - "Filter by the studio id" - id: Int, - "Filter by the studio id" - id_in: [Int], - "Filter by the studio id" - id_not: Int, - "Filter by the studio id" - id_not_in: [Int], - "Filter by search query" - search: String, - "The order the results will be returned in" - sort: [StudioSort] - ): [Studio] - threadComments( - "Filter by the comment id" - id: Int, - "The order the results will be returned in" - sort: [ThreadCommentSort], - "Filter by the thread id" - threadId: Int, - "Filter by the user id of the comment's creator" - userId: Int - ): [ThreadComment] - threads( - "Filter by thread category id" - categoryId: Int, - "Filter by the thread id" - id: Int, - "Filter by the thread id" - id_in: [Int], - "Filter by thread media id category" - mediaCategoryId: Int, - "Filter by the user id of the last user to comment on the thread" - replyUserId: Int, - "Filter by search query" - search: String, - "The order the results will be returned in" - sort: [ThreadSort], - "Filter by if the currently authenticated user's subscribed threads" - subscribed: Boolean, - "Filter by the user id of the thread's creator" - userId: Int - ): [Thread] - users( - "Filter by the user id" - id: Int, - "Filter to moderators only if true" - isModerator: Boolean, - "Filter by the name of the user" - name: String, - "Filter by search query" - search: String, - "The order the results will be returned in" - sort: [UserSort] - ): [User] + activities( + "Filter by the time the activity was created" + createdAt: Int, + "Filter by the time the activity was created" + createdAt_greater: Int, + "Filter by the time the activity was created" + createdAt_lesser: Int, + "Filter activity to only activity with replies" + hasReplies: Boolean, + "Filter activity to only activity with replies or is of type text" + hasRepliesOrTypeText: Boolean, + "Filter by the activity id" + id: Int, + "Filter by the activity id" + id_in: [Int], + "Filter by the activity id" + id_not: Int, + "Filter by the activity id" + id_not_in: [Int], + "Filter activity to users who are being followed by the authenticated user" + isFollowing: Boolean, + "Filter by the associated media id of the activity" + mediaId: Int, + "Filter by the associated media id of the activity" + mediaId_in: [Int], + "Filter by the associated media id of the activity" + mediaId_not: Int, + "Filter by the associated media id of the activity" + mediaId_not_in: [Int], + "Filter by the id of the user who sent a message" + messengerId: Int, + "Filter by the id of the user who sent a message" + messengerId_in: [Int], + "Filter by the id of the user who sent a message" + messengerId_not: Int, + "Filter by the id of the user who sent a message" + messengerId_not_in: [Int], + "The order the results will be returned in" + sort: [ActivitySort], + "Filter by the type of activity" + type: ActivityType, + "Filter by the type of activity" + type_in: [ActivityType], + "Filter by the type of activity" + type_not: ActivityType, + "Filter by the type of activity" + type_not_in: [ActivityType], + "Filter by the owner user id" + userId: Int, + "Filter by the owner user id" + userId_in: [Int], + "Filter by the owner user id" + userId_not: Int, + "Filter by the owner user id" + userId_not_in: [Int] + ): [ActivityUnion] + activityReplies( + "Filter by the parent id" + activityId: Int, + "Filter by the reply id" + id: Int + ): [ActivityReply] + airingSchedules( + "Filter by the time of airing" + airingAt: Int, + "Filter by the time of airing" + airingAt_greater: Int, + "Filter by the time of airing" + airingAt_lesser: Int, + "Filter by the airing episode number" + episode: Int, + "Filter by the airing episode number" + episode_greater: Int, + "Filter by the airing episode number" + episode_in: [Int], + "Filter by the airing episode number" + episode_lesser: Int, + "Filter by the airing episode number" + episode_not: Int, + "Filter by the airing episode number" + episode_not_in: [Int], + "Filter by the id of the airing schedule item" + id: Int, + "Filter by the id of the airing schedule item" + id_in: [Int], + "Filter by the id of the airing schedule item" + id_not: Int, + "Filter by the id of the airing schedule item" + id_not_in: [Int], + "Filter by the id of associated media" + mediaId: Int, + "Filter by the id of associated media" + mediaId_in: [Int], + "Filter by the id of associated media" + mediaId_not: Int, + "Filter by the id of associated media" + mediaId_not_in: [Int], + "Filter to episodes that haven't yet aired" + notYetAired: Boolean, + "The order the results will be returned in" + sort: [AiringSort] + ): [AiringSchedule] + characters( + "Filter by character id" + id: Int, + "Filter by character id" + id_in: [Int], + "Filter by character id" + id_not: Int, + "Filter by character id" + id_not_in: [Int], + "Filter by character by if its their birthday today" + isBirthday: Boolean, + "Filter by search query" + search: String, + "The order the results will be returned in" + sort: [CharacterSort] + ): [Character] + followers( + "The order the results will be returned in" + sort: [UserSort], + "User id of the follower/followed" + userId: Int! + ): [User] + following( + "The order the results will be returned in" + sort: [UserSort], + "User id of the follower/followed" + userId: Int! + ): [User] + likes( + "The id of the likeable type" + likeableId: Int, + "The type of model the id applies to" + type: LikeableType + ): [User] + media( + "Filter by the media's average score" + averageScore: Int, + "Filter by the media's average score" + averageScore_greater: Int, + "Filter by the media's average score" + averageScore_lesser: Int, + "Filter by the media's average score" + averageScore_not: Int, + "Filter by the media's chapter count" + chapters: Int, + "Filter by the media's chapter count" + chapters_greater: Int, + "Filter by the media's chapter count" + chapters_lesser: Int, + "Filter by the media's country of origin" + countryOfOrigin: CountryCode, + "Filter by the media's episode length" + duration: Int, + "Filter by the media's episode length" + duration_greater: Int, + "Filter by the media's episode length" + duration_lesser: Int, + "Filter by the end date of the media" + endDate: FuzzyDateInt, + "Filter by the end date of the media" + endDate_greater: FuzzyDateInt, + "Filter by the end date of the media" + endDate_lesser: FuzzyDateInt, + "Filter by the end date of the media" + endDate_like: String, + "Filter by amount of episodes the media has" + episodes: Int, + "Filter by amount of episodes the media has" + episodes_greater: Int, + "Filter by amount of episodes the media has" + episodes_lesser: Int, + "Filter by the media's format" + format: MediaFormat, + "Filter by the media's format" + format_in: [MediaFormat], + "Filter by the media's format" + format_not: MediaFormat, + "Filter by the media's format" + format_not_in: [MediaFormat], + "Filter by the media's genres" + genre: String, + "Filter by the media's genres" + genre_in: [String], + "Filter by the media's genres" + genre_not_in: [String], + "Filter by the media id" + id: Int, + "Filter by the media's MyAnimeList id" + idMal: Int, + "Filter by the media's MyAnimeList id" + idMal_in: [Int], + "Filter by the media's MyAnimeList id" + idMal_not: Int, + "Filter by the media's MyAnimeList id" + idMal_not_in: [Int], + "Filter by the media id" + id_in: [Int], + "Filter by the media id" + id_not: Int, + "Filter by the media id" + id_not_in: [Int], + "Filter by if the media's intended for 18+ adult audiences" + isAdult: Boolean, + "If the media is officially licensed or a self-published doujin release" + isLicensed: Boolean, + "Filter media by sites name with a online streaming or reading license" + licensedBy: String, + "Filter media by sites id with a online streaming or reading license" + licensedById: Int, + "Filter media by sites id with a online streaming or reading license" + licensedById_in: [Int], + "Filter media by sites name with a online streaming or reading license" + licensedBy_in: [String], + "Only apply the tags filter argument to tags above this rank. Default: 18" + minimumTagRank: Int, + "Filter by the media on the authenticated user's lists" + onList: Boolean, + "Filter by the number of users with this media on their list" + popularity: Int, + "Filter by the number of users with this media on their list" + popularity_greater: Int, + "Filter by the number of users with this media on their list" + popularity_lesser: Int, + "Filter by the number of users with this media on their list" + popularity_not: Int, + "Filter by search query" + search: String, + "Filter by the season the media was released in" + season: MediaSeason, + "The year of the season (Winter 2017 would also include December 2016 releases). Requires season argument" + seasonYear: Int, + "The order the results will be returned in" + sort: [MediaSort], + "Filter by the source type of the media" + source: MediaSource, + "Filter by the source type of the media" + source_in: [MediaSource], + "Filter by the start date of the media" + startDate: FuzzyDateInt, + "Filter by the start date of the media" + startDate_greater: FuzzyDateInt, + "Filter by the start date of the media" + startDate_lesser: FuzzyDateInt, + "Filter by the start date of the media" + startDate_like: String, + "Filter by the media's current release status" + status: MediaStatus, + "Filter by the media's current release status" + status_in: [MediaStatus], + "Filter by the media's current release status" + status_not: MediaStatus, + "Filter by the media's current release status" + status_not_in: [MediaStatus], + "Filter by the media's tags" + tag: String, + "Filter by the media's tags with in a tag category" + tagCategory: String, + "Filter by the media's tags with in a tag category" + tagCategory_in: [String], + "Filter by the media's tags with in a tag category" + tagCategory_not_in: [String], + "Filter by the media's tags" + tag_in: [String], + "Filter by the media's tags" + tag_not_in: [String], + "Filter by the media's type" + type: MediaType, + "Filter by the media's volume count" + volumes: Int, + "Filter by the media's volume count" + volumes_greater: Int, + "Filter by the media's volume count" + volumes_lesser: Int + ): [Media] + mediaList( + "Limit to only entries also on the auth user's list. Requires user id or name arguments." + compareWithAuthList: Boolean, + "Filter by the date the user completed the media" + completedAt: FuzzyDateInt, + "Filter by the date the user completed the media" + completedAt_greater: FuzzyDateInt, + "Filter by the date the user completed the media" + completedAt_lesser: FuzzyDateInt, + "Filter by the date the user completed the media" + completedAt_like: String, + "Filter by a list entry's id" + id: Int, + "Filter list entries to users who are being followed by the authenticated user" + isFollowing: Boolean, + "Filter by the media id of the list entry" + mediaId: Int, + "Filter by the media id of the list entry" + mediaId_in: [Int], + "Filter by the media id of the list entry" + mediaId_not_in: [Int], + "Filter by note words and #tags" + notes: String, + "Filter by note words and #tags" + notes_like: String, + "The order the results will be returned in" + sort: [MediaListSort], + "Filter by the date the user started the media" + startedAt: FuzzyDateInt, + "Filter by the date the user started the media" + startedAt_greater: FuzzyDateInt, + "Filter by the date the user started the media" + startedAt_lesser: FuzzyDateInt, + "Filter by the date the user started the media" + startedAt_like: String, + "Filter by the watching/reading status" + status: MediaListStatus, + "Filter by the watching/reading status" + status_in: [MediaListStatus], + "Filter by the watching/reading status" + status_not: MediaListStatus, + "Filter by the watching/reading status" + status_not_in: [MediaListStatus], + "Filter by the list entries media type" + type: MediaType, + "Filter by a user's id" + userId: Int, + "Filter by a user's id" + userId_in: [Int], + "Filter by a user's name" + userName: String + ): [MediaList] + mediaTrends( + "Filter by score" + averageScore: Int, + "Filter by score" + averageScore_greater: Int, + "Filter by score" + averageScore_lesser: Int, + "Filter by score" + averageScore_not: Int, + "Filter by date" + date: Int, + "Filter by date" + date_greater: Int, + "Filter by date" + date_lesser: Int, + "Filter by episode number" + episode: Int, + "Filter by episode number" + episode_greater: Int, + "Filter by episode number" + episode_lesser: Int, + "Filter by episode number" + episode_not: Int, + "Filter by the media id" + mediaId: Int, + "Filter by the media id" + mediaId_in: [Int], + "Filter by the media id" + mediaId_not: Int, + "Filter by the media id" + mediaId_not_in: [Int], + "Filter by popularity" + popularity: Int, + "Filter by popularity" + popularity_greater: Int, + "Filter by popularity" + popularity_lesser: Int, + "Filter by popularity" + popularity_not: Int, + "Filter to stats recorded while the media was releasing" + releasing: Boolean, + "The order the results will be returned in" + sort: [MediaTrendSort], + "Filter by trending amount" + trending: Int, + "Filter by trending amount" + trending_greater: Int, + "Filter by trending amount" + trending_lesser: Int, + "Filter by trending amount" + trending_not: Int + ): [MediaTrend] + notifications( + "Reset the unread notification count to 0 on load" + resetNotificationCount: Boolean, + "Filter by the type of notifications" + type: NotificationType, + "Filter by the type of notifications" + type_in: [NotificationType] + ): [NotificationUnion] + "The pagination information" + pageInfo: PageInfo + recommendations( + "Filter by recommendation id" + id: Int, + "Filter by media id" + mediaId: Int, + "Filter by media recommendation id" + mediaRecommendationId: Int, + "Filter by the media on the authenticated user's lists" + onList: Boolean, + "Filter by total rating of the recommendation" + rating: Int, + "Filter by total rating of the recommendation" + rating_greater: Int, + "Filter by total rating of the recommendation" + rating_lesser: Int, + "The order the results will be returned in" + sort: [RecommendationSort], + "Filter by user who created the recommendation" + userId: Int + ): [Recommendation] + reviews( + "Filter by Review id" + id: Int, + "Filter by media id" + mediaId: Int, + "Filter by media type" + mediaType: MediaType, + "The order the results will be returned in" + sort: [ReviewSort], + "Filter by user id" + userId: Int + ): [Review] + staff( + "Filter by the staff id" + id: Int, + "Filter by the staff id" + id_in: [Int], + "Filter by the staff id" + id_not: Int, + "Filter by the staff id" + id_not_in: [Int], + "Filter by staff by if its their birthday today" + isBirthday: Boolean, + "Filter by search query" + search: String, + "The order the results will be returned in" + sort: [StaffSort] + ): [Staff] + studios( + "Filter by the studio id" + id: Int, + "Filter by the studio id" + id_in: [Int], + "Filter by the studio id" + id_not: Int, + "Filter by the studio id" + id_not_in: [Int], + "Filter by search query" + search: String, + "The order the results will be returned in" + sort: [StudioSort] + ): [Studio] + threadComments( + "Filter by the comment id" + id: Int, + "The order the results will be returned in" + sort: [ThreadCommentSort], + "Filter by the thread id" + threadId: Int, + "Filter by the user id of the comment's creator" + userId: Int + ): [ThreadComment] + threads( + "Filter by thread category id" + categoryId: Int, + "Filter by the thread id" + id: Int, + "Filter by the thread id" + id_in: [Int], + "Filter by thread media id category" + mediaCategoryId: Int, + "Filter by the user id of the last user to comment on the thread" + replyUserId: Int, + "Filter by search query" + search: String, + "The order the results will be returned in" + sort: [ThreadSort], + "Filter by if the currently authenticated user's subscribed threads" + subscribed: Boolean, + "Filter by the user id of the thread's creator" + userId: Int + ): [Thread] + users( + "Filter by the user id" + id: Int, + "Filter to moderators only if true" + isModerator: Boolean, + "Filter by the name of the user" + name: String, + "Filter by search query" + search: String, + "The order the results will be returned in" + sort: [UserSort] + ): [User] } type PageInfo { - "The current page" - currentPage: Int - "If there is another page" - hasNextPage: Boolean - "The last page" - lastPage: Int - "The count on a page" - perPage: Int - "The total number of items. Note: This value is not guaranteed to be accurate, do not rely on this for logic" - total: Int + "The current page" + currentPage: Int + "If there is another page" + hasNextPage: Boolean + "The last page" + lastPage: Int + "The count on a page" + perPage: Int + "The total number of items. Note: This value is not guaranteed to be accurate, do not rely on this for logic" + total: Int } "Provides the parsed markdown as html" type ParsedMarkdown { - "The parsed markdown as html" - html: String + "The parsed markdown as html" + html: String } type Query { - "Activity query" - Activity( - "Filter by the time the activity was created" - createdAt: Int, - "Filter by the time the activity was created" - createdAt_greater: Int, - "Filter by the time the activity was created" - createdAt_lesser: Int, - "Filter activity to only activity with replies" - hasReplies: Boolean, - "Filter activity to only activity with replies or is of type text" - hasRepliesOrTypeText: Boolean, - "Filter by the activity id" - id: Int, - "Filter by the activity id" - id_in: [Int], - "Filter by the activity id" - id_not: Int, - "Filter by the activity id" - id_not_in: [Int], - "Filter activity to users who are being followed by the authenticated user" - isFollowing: Boolean, - "Filter by the associated media id of the activity" - mediaId: Int, - "Filter by the associated media id of the activity" - mediaId_in: [Int], - "Filter by the associated media id of the activity" - mediaId_not: Int, - "Filter by the associated media id of the activity" - mediaId_not_in: [Int], - "Filter by the id of the user who sent a message" - messengerId: Int, - "Filter by the id of the user who sent a message" - messengerId_in: [Int], - "Filter by the id of the user who sent a message" - messengerId_not: Int, - "Filter by the id of the user who sent a message" - messengerId_not_in: [Int], - "The order the results will be returned in" - sort: [ActivitySort], - "Filter by the type of activity" - type: ActivityType, - "Filter by the type of activity" - type_in: [ActivityType], - "Filter by the type of activity" - type_not: ActivityType, - "Filter by the type of activity" - type_not_in: [ActivityType], - "Filter by the owner user id" - userId: Int, - "Filter by the owner user id" - userId_in: [Int], - "Filter by the owner user id" - userId_not: Int, - "Filter by the owner user id" - userId_not_in: [Int] - ): ActivityUnion - "Activity reply query" - ActivityReply( - "Filter by the parent id" - activityId: Int, - "Filter by the reply id" - id: Int - ): ActivityReply - "Airing schedule query" - AiringSchedule( - "Filter by the time of airing" - airingAt: Int, - "Filter by the time of airing" - airingAt_greater: Int, - "Filter by the time of airing" - airingAt_lesser: Int, - "Filter by the airing episode number" - episode: Int, - "Filter by the airing episode number" - episode_greater: Int, - "Filter by the airing episode number" - episode_in: [Int], - "Filter by the airing episode number" - episode_lesser: Int, - "Filter by the airing episode number" - episode_not: Int, - "Filter by the airing episode number" - episode_not_in: [Int], - "Filter by the id of the airing schedule item" - id: Int, - "Filter by the id of the airing schedule item" - id_in: [Int], - "Filter by the id of the airing schedule item" - id_not: Int, - "Filter by the id of the airing schedule item" - id_not_in: [Int], - "Filter by the id of associated media" - mediaId: Int, - "Filter by the id of associated media" - mediaId_in: [Int], - "Filter by the id of associated media" - mediaId_not: Int, - "Filter by the id of associated media" - mediaId_not_in: [Int], - "Filter to episodes that haven't yet aired" - notYetAired: Boolean, - "The order the results will be returned in" - sort: [AiringSort] - ): AiringSchedule - AniChartUser: AniChartUser - "Character query" - Character( - "Filter by character id" - id: Int, - "Filter by character id" - id_in: [Int], - "Filter by character id" - id_not: Int, - "Filter by character id" - id_not_in: [Int], - "Filter by character by if its their birthday today" - isBirthday: Boolean, - "Filter by search query" - search: String, - "The order the results will be returned in" - sort: [CharacterSort] - ): Character - "ExternalLinkSource collection query" - ExternalLinkSourceCollection( - "Filter by the link id" - id: Int, - mediaType: ExternalLinkMediaType, - type: ExternalLinkType - ): [MediaExternalLink] - "Follow query" - Follower( - "The order the results will be returned in" - sort: [UserSort], - "User id of the follower/followed" - userId: Int! - ): User - "Follow query" - Following( - "The order the results will be returned in" - sort: [UserSort], - "User id of the follower/followed" - userId: Int! - ): User - "Collection of all the possible media genres" - GenreCollection: [String] - "Like query" - Like( - "The id of the likeable type" - likeableId: Int, - "The type of model the id applies to" - type: LikeableType - ): User - "Provide AniList markdown to be converted to html (Requires auth)" - Markdown( - "The markdown to be parsed to html" - markdown: String! - ): ParsedMarkdown - "Media query" - Media( - "Filter by the media's average score" - averageScore: Int, - "Filter by the media's average score" - averageScore_greater: Int, - "Filter by the media's average score" - averageScore_lesser: Int, - "Filter by the media's average score" - averageScore_not: Int, - "Filter by the media's chapter count" - chapters: Int, - "Filter by the media's chapter count" - chapters_greater: Int, - "Filter by the media's chapter count" - chapters_lesser: Int, - "Filter by the media's country of origin" - countryOfOrigin: CountryCode, - "Filter by the media's episode length" - duration: Int, - "Filter by the media's episode length" - duration_greater: Int, - "Filter by the media's episode length" - duration_lesser: Int, - "Filter by the end date of the media" - endDate: FuzzyDateInt, - "Filter by the end date of the media" - endDate_greater: FuzzyDateInt, - "Filter by the end date of the media" - endDate_lesser: FuzzyDateInt, - "Filter by the end date of the media" - endDate_like: String, - "Filter by amount of episodes the media has" - episodes: Int, - "Filter by amount of episodes the media has" - episodes_greater: Int, - "Filter by amount of episodes the media has" - episodes_lesser: Int, - "Filter by the media's format" - format: MediaFormat, - "Filter by the media's format" - format_in: [MediaFormat], - "Filter by the media's format" - format_not: MediaFormat, - "Filter by the media's format" - format_not_in: [MediaFormat], - "Filter by the media's genres" - genre: String, - "Filter by the media's genres" - genre_in: [String], - "Filter by the media's genres" - genre_not_in: [String], - "Filter by the media id" - id: Int, - "Filter by the media's MyAnimeList id" - idMal: Int, - "Filter by the media's MyAnimeList id" - idMal_in: [Int], - "Filter by the media's MyAnimeList id" - idMal_not: Int, - "Filter by the media's MyAnimeList id" - idMal_not_in: [Int], - "Filter by the media id" - id_in: [Int], - "Filter by the media id" - id_not: Int, - "Filter by the media id" - id_not_in: [Int], - "Filter by if the media's intended for 18+ adult audiences" - isAdult: Boolean, - "If the media is officially licensed or a self-published doujin release" - isLicensed: Boolean, - "Filter media by sites name with a online streaming or reading license" - licensedBy: String, - "Filter media by sites id with a online streaming or reading license" - licensedById: Int, - "Filter media by sites id with a online streaming or reading license" - licensedById_in: [Int], - "Filter media by sites name with a online streaming or reading license" - licensedBy_in: [String], - "Only apply the tags filter argument to tags above this rank. Default: 18" - minimumTagRank: Int, - "Filter by the media on the authenticated user's lists" - onList: Boolean, - "Filter by the number of users with this media on their list" - popularity: Int, - "Filter by the number of users with this media on their list" - popularity_greater: Int, - "Filter by the number of users with this media on their list" - popularity_lesser: Int, - "Filter by the number of users with this media on their list" - popularity_not: Int, - "Filter by search query" - search: String, - "Filter by the season the media was released in" - season: MediaSeason, - "The year of the season (Winter 2017 would also include December 2016 releases). Requires season argument" - seasonYear: Int, - "The order the results will be returned in" - sort: [MediaSort], - "Filter by the source type of the media" - source: MediaSource, - "Filter by the source type of the media" - source_in: [MediaSource], - "Filter by the start date of the media" - startDate: FuzzyDateInt, - "Filter by the start date of the media" - startDate_greater: FuzzyDateInt, - "Filter by the start date of the media" - startDate_lesser: FuzzyDateInt, - "Filter by the start date of the media" - startDate_like: String, - "Filter by the media's current release status" - status: MediaStatus, - "Filter by the media's current release status" - status_in: [MediaStatus], - "Filter by the media's current release status" - status_not: MediaStatus, - "Filter by the media's current release status" - status_not_in: [MediaStatus], - "Filter by the media's tags" - tag: String, - "Filter by the media's tags with in a tag category" - tagCategory: String, - "Filter by the media's tags with in a tag category" - tagCategory_in: [String], - "Filter by the media's tags with in a tag category" - tagCategory_not_in: [String], - "Filter by the media's tags" - tag_in: [String], - "Filter by the media's tags" - tag_not_in: [String], - "Filter by the media's type" - type: MediaType, - "Filter by the media's volume count" - volumes: Int, - "Filter by the media's volume count" - volumes_greater: Int, - "Filter by the media's volume count" - volumes_lesser: Int - ): Media - "Media list query" - MediaList( - "Limit to only entries also on the auth user's list. Requires user id or name arguments." - compareWithAuthList: Boolean, - "Filter by the date the user completed the media" - completedAt: FuzzyDateInt, - "Filter by the date the user completed the media" - completedAt_greater: FuzzyDateInt, - "Filter by the date the user completed the media" - completedAt_lesser: FuzzyDateInt, - "Filter by the date the user completed the media" - completedAt_like: String, - "Filter by a list entry's id" - id: Int, - "Filter list entries to users who are being followed by the authenticated user" - isFollowing: Boolean, - "Filter by the media id of the list entry" - mediaId: Int, - "Filter by the media id of the list entry" - mediaId_in: [Int], - "Filter by the media id of the list entry" - mediaId_not_in: [Int], - "Filter by note words and #tags" - notes: String, - "Filter by note words and #tags" - notes_like: String, - "The order the results will be returned in" - sort: [MediaListSort], - "Filter by the date the user started the media" - startedAt: FuzzyDateInt, - "Filter by the date the user started the media" - startedAt_greater: FuzzyDateInt, - "Filter by the date the user started the media" - startedAt_lesser: FuzzyDateInt, - "Filter by the date the user started the media" - startedAt_like: String, - "Filter by the watching/reading status" - status: MediaListStatus, - "Filter by the watching/reading status" - status_in: [MediaListStatus], - "Filter by the watching/reading status" - status_not: MediaListStatus, - "Filter by the watching/reading status" - status_not_in: [MediaListStatus], - "Filter by the list entries media type" - type: MediaType, - "Filter by a user's id" - userId: Int, - "Filter by a user's id" - userId_in: [Int], - "Filter by a user's name" - userName: String - ): MediaList - "Media list collection query, provides list pre-grouped by status & custom lists. User ID and Media Type arguments required." - MediaListCollection( - "Which chunk of list entries to load" - chunk: Int, - "Filter by the date the user completed the media" - completedAt: FuzzyDateInt, - "Filter by the date the user completed the media" - completedAt_greater: FuzzyDateInt, - "Filter by the date the user completed the media" - completedAt_lesser: FuzzyDateInt, - "Filter by the date the user completed the media" - completedAt_like: String, - "Always return completed list entries in one group, overriding the user's split completed option." - forceSingleCompletedList: Boolean, - "Filter by note words and #tags" - notes: String, - "Filter by note words and #tags" - notes_like: String, - "The amount of entries per chunk, max 500" - perChunk: Int, - "The order the results will be returned in" - sort: [MediaListSort], - "Filter by the date the user started the media" - startedAt: FuzzyDateInt, - "Filter by the date the user started the media" - startedAt_greater: FuzzyDateInt, - "Filter by the date the user started the media" - startedAt_lesser: FuzzyDateInt, - "Filter by the date the user started the media" - startedAt_like: String, - "Filter by the watching/reading status" - status: MediaListStatus, - "Filter by the watching/reading status" - status_in: [MediaListStatus], - "Filter by the watching/reading status" - status_not: MediaListStatus, - "Filter by the watching/reading status" - status_not_in: [MediaListStatus], - "Filter by the list entries media type" - type: MediaType, - "Filter by a user's id" - userId: Int, - "Filter by a user's name" - userName: String - ): MediaListCollection - "Collection of all the possible media tags" - MediaTagCollection( - "Mod Only" - status: Int - ): [MediaTag] - "Media Trend query" - MediaTrend( - "Filter by score" - averageScore: Int, - "Filter by score" - averageScore_greater: Int, - "Filter by score" - averageScore_lesser: Int, - "Filter by score" - averageScore_not: Int, - "Filter by date" - date: Int, - "Filter by date" - date_greater: Int, - "Filter by date" - date_lesser: Int, - "Filter by episode number" - episode: Int, - "Filter by episode number" - episode_greater: Int, - "Filter by episode number" - episode_lesser: Int, - "Filter by episode number" - episode_not: Int, - "Filter by the media id" - mediaId: Int, - "Filter by the media id" - mediaId_in: [Int], - "Filter by the media id" - mediaId_not: Int, - "Filter by the media id" - mediaId_not_in: [Int], - "Filter by popularity" - popularity: Int, - "Filter by popularity" - popularity_greater: Int, - "Filter by popularity" - popularity_lesser: Int, - "Filter by popularity" - popularity_not: Int, - "Filter to stats recorded while the media was releasing" - releasing: Boolean, - "The order the results will be returned in" - sort: [MediaTrendSort], - "Filter by trending amount" - trending: Int, - "Filter by trending amount" - trending_greater: Int, - "Filter by trending amount" - trending_lesser: Int, - "Filter by trending amount" - trending_not: Int - ): MediaTrend - "Notification query" - Notification( - "Reset the unread notification count to 0 on load" - resetNotificationCount: Boolean, - "Filter by the type of notifications" - type: NotificationType, - "Filter by the type of notifications" - type_in: [NotificationType] - ): NotificationUnion - Page( - "The page number" - page: Int, - "The amount of entries per page, max 50" - perPage: Int - ): Page - "Recommendation query" - Recommendation( - "Filter by recommendation id" - id: Int, - "Filter by media id" - mediaId: Int, - "Filter by media recommendation id" - mediaRecommendationId: Int, - "Filter by the media on the authenticated user's lists" - onList: Boolean, - "Filter by total rating of the recommendation" - rating: Int, - "Filter by total rating of the recommendation" - rating_greater: Int, - "Filter by total rating of the recommendation" - rating_lesser: Int, - "The order the results will be returned in" - sort: [RecommendationSort], - "Filter by user who created the recommendation" - userId: Int - ): Recommendation - "Review query" - Review( - "Filter by Review id" - id: Int, - "Filter by media id" - mediaId: Int, - "Filter by media type" - mediaType: MediaType, - "The order the results will be returned in" - sort: [ReviewSort], - "Filter by user id" - userId: Int - ): Review - "Site statistics query" - SiteStatistics: SiteStatistics - "Staff query" - Staff( - "Filter by the staff id" - id: Int, - "Filter by the staff id" - id_in: [Int], - "Filter by the staff id" - id_not: Int, - "Filter by the staff id" - id_not_in: [Int], - "Filter by staff by if its their birthday today" - isBirthday: Boolean, - "Filter by search query" - search: String, - "The order the results will be returned in" - sort: [StaffSort] - ): Staff - "Studio query" - Studio( - "Filter by the studio id" - id: Int, - "Filter by the studio id" - id_in: [Int], - "Filter by the studio id" - id_not: Int, - "Filter by the studio id" - id_not_in: [Int], - "Filter by search query" - search: String, - "The order the results will be returned in" - sort: [StudioSort] - ): Studio - "Thread query" - Thread( - "Filter by thread category id" - categoryId: Int, - "Filter by the thread id" - id: Int, - "Filter by the thread id" - id_in: [Int], - "Filter by thread media id category" - mediaCategoryId: Int, - "Filter by the user id of the last user to comment on the thread" - replyUserId: Int, - "Filter by search query" - search: String, - "The order the results will be returned in" - sort: [ThreadSort], - "Filter by if the currently authenticated user's subscribed threads" - subscribed: Boolean, - "Filter by the user id of the thread's creator" - userId: Int - ): Thread - "Comment query" - ThreadComment( - "Filter by the comment id" - id: Int, - "The order the results will be returned in" - sort: [ThreadCommentSort], - "Filter by the thread id" - threadId: Int, - "Filter by the user id of the comment's creator" - userId: Int - ): [ThreadComment] - "User query" - User( - "Filter by the user id" - id: Int, - "Filter to moderators only if true" - isModerator: Boolean, - "Filter by the name of the user" - name: String, - "Filter by search query" - search: String, - "The order the results will be returned in" - sort: [UserSort] - ): User - "Get the currently authenticated user" - Viewer: User + "Activity query" + Activity( + "Filter by the time the activity was created" + createdAt: Int, + "Filter by the time the activity was created" + createdAt_greater: Int, + "Filter by the time the activity was created" + createdAt_lesser: Int, + "Filter activity to only activity with replies" + hasReplies: Boolean, + "Filter activity to only activity with replies or is of type text" + hasRepliesOrTypeText: Boolean, + "Filter by the activity id" + id: Int, + "Filter by the activity id" + id_in: [Int], + "Filter by the activity id" + id_not: Int, + "Filter by the activity id" + id_not_in: [Int], + "Filter activity to users who are being followed by the authenticated user" + isFollowing: Boolean, + "Filter by the associated media id of the activity" + mediaId: Int, + "Filter by the associated media id of the activity" + mediaId_in: [Int], + "Filter by the associated media id of the activity" + mediaId_not: Int, + "Filter by the associated media id of the activity" + mediaId_not_in: [Int], + "Filter by the id of the user who sent a message" + messengerId: Int, + "Filter by the id of the user who sent a message" + messengerId_in: [Int], + "Filter by the id of the user who sent a message" + messengerId_not: Int, + "Filter by the id of the user who sent a message" + messengerId_not_in: [Int], + "The order the results will be returned in" + sort: [ActivitySort], + "Filter by the type of activity" + type: ActivityType, + "Filter by the type of activity" + type_in: [ActivityType], + "Filter by the type of activity" + type_not: ActivityType, + "Filter by the type of activity" + type_not_in: [ActivityType], + "Filter by the owner user id" + userId: Int, + "Filter by the owner user id" + userId_in: [Int], + "Filter by the owner user id" + userId_not: Int, + "Filter by the owner user id" + userId_not_in: [Int] + ): ActivityUnion + "Activity reply query" + ActivityReply( + "Filter by the parent id" + activityId: Int, + "Filter by the reply id" + id: Int + ): ActivityReply + "Airing schedule query" + AiringSchedule( + "Filter by the time of airing" + airingAt: Int, + "Filter by the time of airing" + airingAt_greater: Int, + "Filter by the time of airing" + airingAt_lesser: Int, + "Filter by the airing episode number" + episode: Int, + "Filter by the airing episode number" + episode_greater: Int, + "Filter by the airing episode number" + episode_in: [Int], + "Filter by the airing episode number" + episode_lesser: Int, + "Filter by the airing episode number" + episode_not: Int, + "Filter by the airing episode number" + episode_not_in: [Int], + "Filter by the id of the airing schedule item" + id: Int, + "Filter by the id of the airing schedule item" + id_in: [Int], + "Filter by the id of the airing schedule item" + id_not: Int, + "Filter by the id of the airing schedule item" + id_not_in: [Int], + "Filter by the id of associated media" + mediaId: Int, + "Filter by the id of associated media" + mediaId_in: [Int], + "Filter by the id of associated media" + mediaId_not: Int, + "Filter by the id of associated media" + mediaId_not_in: [Int], + "Filter to episodes that haven't yet aired" + notYetAired: Boolean, + "The order the results will be returned in" + sort: [AiringSort] + ): AiringSchedule + AniChartUser: AniChartUser + "Character query" + Character( + "Filter by character id" + id: Int, + "Filter by character id" + id_in: [Int], + "Filter by character id" + id_not: Int, + "Filter by character id" + id_not_in: [Int], + "Filter by character by if its their birthday today" + isBirthday: Boolean, + "Filter by search query" + search: String, + "The order the results will be returned in" + sort: [CharacterSort] + ): Character + "ExternalLinkSource collection query" + ExternalLinkSourceCollection( + "Filter by the link id" + id: Int, + mediaType: ExternalLinkMediaType, + type: ExternalLinkType + ): [MediaExternalLink] + "Follow query" + Follower( + "The order the results will be returned in" + sort: [UserSort], + "User id of the follower/followed" + userId: Int! + ): User + "Follow query" + Following( + "The order the results will be returned in" + sort: [UserSort], + "User id of the follower/followed" + userId: Int! + ): User + "Collection of all the possible media genres" + GenreCollection: [String] + "Like query" + Like( + "The id of the likeable type" + likeableId: Int, + "The type of model the id applies to" + type: LikeableType + ): User + "Provide AniList markdown to be converted to html (Requires auth)" + Markdown( + "The markdown to be parsed to html" + markdown: String! + ): ParsedMarkdown + "Media query" + Media( + "Filter by the media's average score" + averageScore: Int, + "Filter by the media's average score" + averageScore_greater: Int, + "Filter by the media's average score" + averageScore_lesser: Int, + "Filter by the media's average score" + averageScore_not: Int, + "Filter by the media's chapter count" + chapters: Int, + "Filter by the media's chapter count" + chapters_greater: Int, + "Filter by the media's chapter count" + chapters_lesser: Int, + "Filter by the media's country of origin" + countryOfOrigin: CountryCode, + "Filter by the media's episode length" + duration: Int, + "Filter by the media's episode length" + duration_greater: Int, + "Filter by the media's episode length" + duration_lesser: Int, + "Filter by the end date of the media" + endDate: FuzzyDateInt, + "Filter by the end date of the media" + endDate_greater: FuzzyDateInt, + "Filter by the end date of the media" + endDate_lesser: FuzzyDateInt, + "Filter by the end date of the media" + endDate_like: String, + "Filter by amount of episodes the media has" + episodes: Int, + "Filter by amount of episodes the media has" + episodes_greater: Int, + "Filter by amount of episodes the media has" + episodes_lesser: Int, + "Filter by the media's format" + format: MediaFormat, + "Filter by the media's format" + format_in: [MediaFormat], + "Filter by the media's format" + format_not: MediaFormat, + "Filter by the media's format" + format_not_in: [MediaFormat], + "Filter by the media's genres" + genre: String, + "Filter by the media's genres" + genre_in: [String], + "Filter by the media's genres" + genre_not_in: [String], + "Filter by the media id" + id: Int, + "Filter by the media's MyAnimeList id" + idMal: Int, + "Filter by the media's MyAnimeList id" + idMal_in: [Int], + "Filter by the media's MyAnimeList id" + idMal_not: Int, + "Filter by the media's MyAnimeList id" + idMal_not_in: [Int], + "Filter by the media id" + id_in: [Int], + "Filter by the media id" + id_not: Int, + "Filter by the media id" + id_not_in: [Int], + "Filter by if the media's intended for 18+ adult audiences" + isAdult: Boolean, + "If the media is officially licensed or a self-published doujin release" + isLicensed: Boolean, + "Filter media by sites name with a online streaming or reading license" + licensedBy: String, + "Filter media by sites id with a online streaming or reading license" + licensedById: Int, + "Filter media by sites id with a online streaming or reading license" + licensedById_in: [Int], + "Filter media by sites name with a online streaming or reading license" + licensedBy_in: [String], + "Only apply the tags filter argument to tags above this rank. Default: 18" + minimumTagRank: Int, + "Filter by the media on the authenticated user's lists" + onList: Boolean, + "Filter by the number of users with this media on their list" + popularity: Int, + "Filter by the number of users with this media on their list" + popularity_greater: Int, + "Filter by the number of users with this media on their list" + popularity_lesser: Int, + "Filter by the number of users with this media on their list" + popularity_not: Int, + "Filter by search query" + search: String, + "Filter by the season the media was released in" + season: MediaSeason, + "The year of the season (Winter 2017 would also include December 2016 releases). Requires season argument" + seasonYear: Int, + "The order the results will be returned in" + sort: [MediaSort], + "Filter by the source type of the media" + source: MediaSource, + "Filter by the source type of the media" + source_in: [MediaSource], + "Filter by the start date of the media" + startDate: FuzzyDateInt, + "Filter by the start date of the media" + startDate_greater: FuzzyDateInt, + "Filter by the start date of the media" + startDate_lesser: FuzzyDateInt, + "Filter by the start date of the media" + startDate_like: String, + "Filter by the media's current release status" + status: MediaStatus, + "Filter by the media's current release status" + status_in: [MediaStatus], + "Filter by the media's current release status" + status_not: MediaStatus, + "Filter by the media's current release status" + status_not_in: [MediaStatus], + "Filter by the media's tags" + tag: String, + "Filter by the media's tags with in a tag category" + tagCategory: String, + "Filter by the media's tags with in a tag category" + tagCategory_in: [String], + "Filter by the media's tags with in a tag category" + tagCategory_not_in: [String], + "Filter by the media's tags" + tag_in: [String], + "Filter by the media's tags" + tag_not_in: [String], + "Filter by the media's type" + type: MediaType, + "Filter by the media's volume count" + volumes: Int, + "Filter by the media's volume count" + volumes_greater: Int, + "Filter by the media's volume count" + volumes_lesser: Int + ): Media + "Media list query" + MediaList( + "Limit to only entries also on the auth user's list. Requires user id or name arguments." + compareWithAuthList: Boolean, + "Filter by the date the user completed the media" + completedAt: FuzzyDateInt, + "Filter by the date the user completed the media" + completedAt_greater: FuzzyDateInt, + "Filter by the date the user completed the media" + completedAt_lesser: FuzzyDateInt, + "Filter by the date the user completed the media" + completedAt_like: String, + "Filter by a list entry's id" + id: Int, + "Filter list entries to users who are being followed by the authenticated user" + isFollowing: Boolean, + "Filter by the media id of the list entry" + mediaId: Int, + "Filter by the media id of the list entry" + mediaId_in: [Int], + "Filter by the media id of the list entry" + mediaId_not_in: [Int], + "Filter by note words and #tags" + notes: String, + "Filter by note words and #tags" + notes_like: String, + "The order the results will be returned in" + sort: [MediaListSort], + "Filter by the date the user started the media" + startedAt: FuzzyDateInt, + "Filter by the date the user started the media" + startedAt_greater: FuzzyDateInt, + "Filter by the date the user started the media" + startedAt_lesser: FuzzyDateInt, + "Filter by the date the user started the media" + startedAt_like: String, + "Filter by the watching/reading status" + status: MediaListStatus, + "Filter by the watching/reading status" + status_in: [MediaListStatus], + "Filter by the watching/reading status" + status_not: MediaListStatus, + "Filter by the watching/reading status" + status_not_in: [MediaListStatus], + "Filter by the list entries media type" + type: MediaType, + "Filter by a user's id" + userId: Int, + "Filter by a user's id" + userId_in: [Int], + "Filter by a user's name" + userName: String + ): MediaList + "Media list collection query, provides list pre-grouped by status & custom lists. User ID and Media Type arguments required." + MediaListCollection( + "Which chunk of list entries to load" + chunk: Int, + "Filter by the date the user completed the media" + completedAt: FuzzyDateInt, + "Filter by the date the user completed the media" + completedAt_greater: FuzzyDateInt, + "Filter by the date the user completed the media" + completedAt_lesser: FuzzyDateInt, + "Filter by the date the user completed the media" + completedAt_like: String, + "Always return completed list entries in one group, overriding the user's split completed option." + forceSingleCompletedList: Boolean, + "Filter by note words and #tags" + notes: String, + "Filter by note words and #tags" + notes_like: String, + "The amount of entries per chunk, max 500" + perChunk: Int, + "The order the results will be returned in" + sort: [MediaListSort], + "Filter by the date the user started the media" + startedAt: FuzzyDateInt, + "Filter by the date the user started the media" + startedAt_greater: FuzzyDateInt, + "Filter by the date the user started the media" + startedAt_lesser: FuzzyDateInt, + "Filter by the date the user started the media" + startedAt_like: String, + "Filter by the watching/reading status" + status: MediaListStatus, + "Filter by the watching/reading status" + status_in: [MediaListStatus], + "Filter by the watching/reading status" + status_not: MediaListStatus, + "Filter by the watching/reading status" + status_not_in: [MediaListStatus], + "Filter by the list entries media type" + type: MediaType, + "Filter by a user's id" + userId: Int, + "Filter by a user's name" + userName: String + ): MediaListCollection + "Collection of all the possible media tags" + MediaTagCollection( + "Mod Only" + status: Int + ): [MediaTag] + "Media Trend query" + MediaTrend( + "Filter by score" + averageScore: Int, + "Filter by score" + averageScore_greater: Int, + "Filter by score" + averageScore_lesser: Int, + "Filter by score" + averageScore_not: Int, + "Filter by date" + date: Int, + "Filter by date" + date_greater: Int, + "Filter by date" + date_lesser: Int, + "Filter by episode number" + episode: Int, + "Filter by episode number" + episode_greater: Int, + "Filter by episode number" + episode_lesser: Int, + "Filter by episode number" + episode_not: Int, + "Filter by the media id" + mediaId: Int, + "Filter by the media id" + mediaId_in: [Int], + "Filter by the media id" + mediaId_not: Int, + "Filter by the media id" + mediaId_not_in: [Int], + "Filter by popularity" + popularity: Int, + "Filter by popularity" + popularity_greater: Int, + "Filter by popularity" + popularity_lesser: Int, + "Filter by popularity" + popularity_not: Int, + "Filter to stats recorded while the media was releasing" + releasing: Boolean, + "The order the results will be returned in" + sort: [MediaTrendSort], + "Filter by trending amount" + trending: Int, + "Filter by trending amount" + trending_greater: Int, + "Filter by trending amount" + trending_lesser: Int, + "Filter by trending amount" + trending_not: Int + ): MediaTrend + "Notification query" + Notification( + "Reset the unread notification count to 0 on load" + resetNotificationCount: Boolean, + "Filter by the type of notifications" + type: NotificationType, + "Filter by the type of notifications" + type_in: [NotificationType] + ): NotificationUnion + Page( + "The page number" + page: Int, + "The amount of entries per page, max 50" + perPage: Int + ): Page + "Recommendation query" + Recommendation( + "Filter by recommendation id" + id: Int, + "Filter by media id" + mediaId: Int, + "Filter by media recommendation id" + mediaRecommendationId: Int, + "Filter by the media on the authenticated user's lists" + onList: Boolean, + "Filter by total rating of the recommendation" + rating: Int, + "Filter by total rating of the recommendation" + rating_greater: Int, + "Filter by total rating of the recommendation" + rating_lesser: Int, + "The order the results will be returned in" + sort: [RecommendationSort], + "Filter by user who created the recommendation" + userId: Int + ): Recommendation + "Review query" + Review( + "Filter by Review id" + id: Int, + "Filter by media id" + mediaId: Int, + "Filter by media type" + mediaType: MediaType, + "The order the results will be returned in" + sort: [ReviewSort], + "Filter by user id" + userId: Int + ): Review + "Site statistics query" + SiteStatistics: SiteStatistics + "Staff query" + Staff( + "Filter by the staff id" + id: Int, + "Filter by the staff id" + id_in: [Int], + "Filter by the staff id" + id_not: Int, + "Filter by the staff id" + id_not_in: [Int], + "Filter by staff by if its their birthday today" + isBirthday: Boolean, + "Filter by search query" + search: String, + "The order the results will be returned in" + sort: [StaffSort] + ): Staff + "Studio query" + Studio( + "Filter by the studio id" + id: Int, + "Filter by the studio id" + id_in: [Int], + "Filter by the studio id" + id_not: Int, + "Filter by the studio id" + id_not_in: [Int], + "Filter by search query" + search: String, + "The order the results will be returned in" + sort: [StudioSort] + ): Studio + "Thread query" + Thread( + "Filter by thread category id" + categoryId: Int, + "Filter by the thread id" + id: Int, + "Filter by the thread id" + id_in: [Int], + "Filter by thread media id category" + mediaCategoryId: Int, + "Filter by the user id of the last user to comment on the thread" + replyUserId: Int, + "Filter by search query" + search: String, + "The order the results will be returned in" + sort: [ThreadSort], + "Filter by if the currently authenticated user's subscribed threads" + subscribed: Boolean, + "Filter by the user id of the thread's creator" + userId: Int + ): Thread + "Comment query" + ThreadComment( + "Filter by the comment id" + id: Int, + "The order the results will be returned in" + sort: [ThreadCommentSort], + "Filter by the thread id" + threadId: Int, + "Filter by the user id of the comment's creator" + userId: Int + ): [ThreadComment] + "User query" + User( + "Filter by the user id" + id: Int, + "Filter to moderators only if true" + isModerator: Boolean, + "Filter by the name of the user" + name: String, + "Filter by search query" + search: String, + "The order the results will be returned in" + sort: [UserSort] + ): User + "Get the currently authenticated user" + Viewer: User } "Media recommendation" type Recommendation { - "The id of the recommendation" - id: Int! - "The media the recommendation is from" - media: Media - "The recommended media" - mediaRecommendation: Media - "Users rating of the recommendation" - rating: Int - "The user that first created the recommendation" - user: User - "The rating of the recommendation by currently authenticated user" - userRating: RecommendationRating + "The id of the recommendation" + id: Int! + "The media the recommendation is from" + media: Media + "The recommended media" + mediaRecommendation: Media + "Users rating of the recommendation" + rating: Int + "The user that first created the recommendation" + user: User + "The rating of the recommendation by currently authenticated user" + userRating: RecommendationRating } type RecommendationConnection { - edges: [RecommendationEdge] - nodes: [Recommendation] - "The pagination information" - pageInfo: PageInfo + edges: [RecommendationEdge] + nodes: [Recommendation] + "The pagination information" + pageInfo: PageInfo } "Recommendation connection edge" type RecommendationEdge { - node: Recommendation + node: Recommendation } "Notification for when new media is added to the site" type RelatedMediaAdditionNotification { - "The notification context text" - context: String - "The time the notification was created at" - createdAt: Int - "The id of the Notification" - id: Int! - "The associated media of the airing schedule" - media: Media - "The id of the new media" - mediaId: Int! - "The type of notification" - type: NotificationType + "The notification context text" + context: String + "The time the notification was created at" + createdAt: Int + "The id of the Notification" + id: Int! + "The associated media of the airing schedule" + media: Media + "The id of the new media" + mediaId: Int! + "The type of notification" + type: NotificationType } type Report { - cleared: Boolean - "When the entry data was created" - createdAt: Int - id: Int! - reason: String - reported: User - reporter: User + cleared: Boolean + "When the entry data was created" + createdAt: Int + id: Int! + reason: String + reported: User + reporter: User } "A Review that features in an anime or manga" type Review { - "The main review body text" - body( - "Return the string in pre-parsed html instead of markdown" - asHtml: Boolean - ): String - "The time of the thread creation" - createdAt: Int! - "The id of the review" - id: Int! - "The media the review is of" - media: Media - "The id of the review's media" - mediaId: Int! - "For which type of media the review is for" - mediaType: MediaType - "If the review is not yet publicly published and is only viewable by creator" - private: Boolean - "The total user rating of the review" - rating: Int - "The amount of user ratings of the review" - ratingAmount: Int - "The review score of the media" - score: Int - "The url for the review page on the AniList website" - siteUrl: String - "A short summary of the review" - summary: String - "The time of the thread last update" - updatedAt: Int! - "The creator of the review" - user: User - "The id of the review's creator" - userId: Int! - "The rating of the review by currently authenticated user" - userRating: ReviewRating + "The main review body text" + body( + "Return the string in pre-parsed html instead of markdown" + asHtml: Boolean + ): String + "The time of the thread creation" + createdAt: Int! + "The id of the review" + id: Int! + "The media the review is of" + media: Media + "The id of the review's media" + mediaId: Int! + "For which type of media the review is for" + mediaType: MediaType + "If the review is not yet publicly published and is only viewable by creator" + private: Boolean + "The total user rating of the review" + rating: Int + "The amount of user ratings of the review" + ratingAmount: Int + "The review score of the media" + score: Int + "The url for the review page on the AniList website" + siteUrl: String + "A short summary of the review" + summary: String + "The time of the thread last update" + updatedAt: Int! + "The creator of the review" + user: User + "The id of the review's creator" + userId: Int! + "The rating of the review by currently authenticated user" + userRating: ReviewRating } type ReviewConnection { - edges: [ReviewEdge] - nodes: [Review] - "The pagination information" - pageInfo: PageInfo + edges: [ReviewEdge] + nodes: [Review] + "The pagination information" + pageInfo: PageInfo } "Review connection edge" type ReviewEdge { - node: Review + node: Review } "Feed of mod edit activity" type RevisionHistory { - "The action taken on the objects" - action: RevisionHistoryAction - "A JSON object of the fields that changed" - changes: Json - "The character the mod feed entry references" - character: Character - "When the mod feed entry was created" - createdAt: Int - "The external link source the mod feed entry references" - externalLink: MediaExternalLink - "The id of the media" - id: Int! - "The media the mod feed entry references" - media: Media - "The staff member the mod feed entry references" - staff: Staff - "The studio the mod feed entry references" - studio: Studio - "The user who made the edit to the object" - user: User + "The action taken on the objects" + action: RevisionHistoryAction + "A JSON object of the fields that changed" + changes: Json + "The character the mod feed entry references" + character: Character + "When the mod feed entry was created" + createdAt: Int + "The external link source the mod feed entry references" + externalLink: MediaExternalLink + "The id of the media" + id: Int! + "The media the mod feed entry references" + media: Media + "The staff member the mod feed entry references" + staff: Staff + "The studio the mod feed entry references" + studio: Studio + "The user who made the edit to the object" + user: User } "A user's list score distribution." type ScoreDistribution { - "The amount of list entries with this score" - amount: Int - score: Int + "The amount of list entries with this score" + amount: Int + score: Int } type SiteStatistics { - anime( - "The page" - page: Int, - "The amount of entries per page, max 25" - perPage: Int, - sort: [SiteTrendSort] - ): SiteTrendConnection - characters( - "The page" - page: Int, - "The amount of entries per page, max 25" - perPage: Int, - sort: [SiteTrendSort] - ): SiteTrendConnection - manga( - "The page" - page: Int, - "The amount of entries per page, max 25" - perPage: Int, - sort: [SiteTrendSort] - ): SiteTrendConnection - reviews( - "The page" - page: Int, - "The amount of entries per page, max 25" - perPage: Int, - sort: [SiteTrendSort] - ): SiteTrendConnection - staff( - "The page" - page: Int, - "The amount of entries per page, max 25" - perPage: Int, - sort: [SiteTrendSort] - ): SiteTrendConnection - studios( - "The page" - page: Int, - "The amount of entries per page, max 25" - perPage: Int, - sort: [SiteTrendSort] - ): SiteTrendConnection - users( - "The page" - page: Int, - "The amount of entries per page, max 25" - perPage: Int, - sort: [SiteTrendSort] - ): SiteTrendConnection + anime( + "The page" + page: Int, + "The amount of entries per page, max 25" + perPage: Int, + sort: [SiteTrendSort] + ): SiteTrendConnection + characters( + "The page" + page: Int, + "The amount of entries per page, max 25" + perPage: Int, + sort: [SiteTrendSort] + ): SiteTrendConnection + manga( + "The page" + page: Int, + "The amount of entries per page, max 25" + perPage: Int, + sort: [SiteTrendSort] + ): SiteTrendConnection + reviews( + "The page" + page: Int, + "The amount of entries per page, max 25" + perPage: Int, + sort: [SiteTrendSort] + ): SiteTrendConnection + staff( + "The page" + page: Int, + "The amount of entries per page, max 25" + perPage: Int, + sort: [SiteTrendSort] + ): SiteTrendConnection + studios( + "The page" + page: Int, + "The amount of entries per page, max 25" + perPage: Int, + sort: [SiteTrendSort] + ): SiteTrendConnection + users( + "The page" + page: Int, + "The amount of entries per page, max 25" + perPage: Int, + sort: [SiteTrendSort] + ): SiteTrendConnection } "Daily site statistics" type SiteTrend { - "The change from yesterday" - change: Int! - count: Int! - "The day the data was recorded (timestamp)" - date: Int! + "The change from yesterday" + change: Int! + count: Int! + "The day the data was recorded (timestamp)" + date: Int! } type SiteTrendConnection { - edges: [SiteTrendEdge] - nodes: [SiteTrend] - "The pagination information" - pageInfo: PageInfo + edges: [SiteTrendEdge] + nodes: [SiteTrend] + "The pagination information" + pageInfo: PageInfo } "Site trend connection edge" type SiteTrendEdge { - node: SiteTrend + node: SiteTrend } "Voice actors or production staff" type Staff { - "The person's age in years" - age: Int - "The persons blood type" - bloodType: String - "Media the actor voiced characters in. (Same data as characters with media as node instead of characters)" - characterMedia( - onList: Boolean, - "The page" - page: Int, - "The amount of entries per page, max 25" - perPage: Int, - sort: [MediaSort] - ): MediaConnection - "Characters voiced by the actor" - characters( - "The page" - page: Int, - "The amount of entries per page, max 25" - perPage: Int, - sort: [CharacterSort] - ): CharacterConnection - dateOfBirth: FuzzyDate - dateOfDeath: FuzzyDate - "A general description of the staff member" - description( - "Return the string in pre-parsed html instead of markdown" - asHtml: Boolean - ): String - "The amount of user's who have favourited the staff member" - favourites: Int - "The staff's gender. Usually Male, Female, or Non-binary but can be any string." - gender: String - "The persons birthplace or hometown" - homeTown: String - "The id of the staff member" - id: Int! - "The staff images" - image: StaffImage - "If the staff member is marked as favourite by the currently authenticated user" - isFavourite: Boolean! - "If the staff member is blocked from being added to favourites" - isFavouriteBlocked: Boolean! - "The primary language the staff member dub's in" - language: StaffLanguage @deprecated(reason: "Replaced with languageV2") - "The primary language of the staff member. Current values: Japanese, English, Korean, Italian, Spanish, Portuguese, French, German, Hebrew, Hungarian, Chinese, Arabic, Filipino, Catalan, Finnish, Turkish, Dutch, Swedish, Thai, Tagalog, Malaysian, Indonesian, Vietnamese, Nepali, Hindi, Urdu" - languageV2: String - "Notes for site moderators" - modNotes: String - "The names of the staff member" - name: StaffName - "The person's primary occupations" - primaryOccupations: [String] - "The url for the staff page on the AniList website" - siteUrl: String - "Staff member that the submission is referencing" - staff: Staff - "Media where the staff member has a production role" - staffMedia( - onList: Boolean, - "The page" - page: Int, - "The amount of entries per page, max 25" - perPage: Int, - sort: [MediaSort], - type: MediaType - ): MediaConnection - "Inner details of submission status" - submissionNotes: String - "Status of the submission" - submissionStatus: Int - "Submitter for the submission" - submitter: User - updatedAt: Int @deprecated(reason: "No data available") - "[startYear, endYear] (If the 2nd value is not present staff is still active)" - yearsActive: [Int] + "The person's age in years" + age: Int + "The persons blood type" + bloodType: String + "Media the actor voiced characters in. (Same data as characters with media as node instead of characters)" + characterMedia( + onList: Boolean, + "The page" + page: Int, + "The amount of entries per page, max 25" + perPage: Int, + sort: [MediaSort] + ): MediaConnection + "Characters voiced by the actor" + characters( + "The page" + page: Int, + "The amount of entries per page, max 25" + perPage: Int, + sort: [CharacterSort] + ): CharacterConnection + dateOfBirth: FuzzyDate + dateOfDeath: FuzzyDate + "A general description of the staff member" + description( + "Return the string in pre-parsed html instead of markdown" + asHtml: Boolean + ): String + "The amount of user's who have favourited the staff member" + favourites: Int + "The staff's gender. Usually Male, Female, or Non-binary but can be any string." + gender: String + "The persons birthplace or hometown" + homeTown: String + "The id of the staff member" + id: Int! + "The staff images" + image: StaffImage + "If the staff member is marked as favourite by the currently authenticated user" + isFavourite: Boolean! + "If the staff member is blocked from being added to favourites" + isFavouriteBlocked: Boolean! + "The primary language the staff member dub's in" + language: StaffLanguage @deprecated(reason: "Replaced with languageV2") + "The primary language of the staff member. Current values: Japanese, English, Korean, Italian, Spanish, Portuguese, French, German, Hebrew, Hungarian, Chinese, Arabic, Filipino, Catalan, Finnish, Turkish, Dutch, Swedish, Thai, Tagalog, Malaysian, Indonesian, Vietnamese, Nepali, Hindi, Urdu" + languageV2: String + "Notes for site moderators" + modNotes: String + "The names of the staff member" + name: StaffName + "The person's primary occupations" + primaryOccupations: [String] + "The url for the staff page on the AniList website" + siteUrl: String + "Staff member that the submission is referencing" + staff: Staff + "Media where the staff member has a production role" + staffMedia( + onList: Boolean, + "The page" + page: Int, + "The amount of entries per page, max 25" + perPage: Int, + sort: [MediaSort], + type: MediaType + ): MediaConnection + "Inner details of submission status" + submissionNotes: String + "Status of the submission" + submissionStatus: Int + "Submitter for the submission" + submitter: User + updatedAt: Int @deprecated(reason: "No data available") + "[startYear, endYear] (If the 2nd value is not present staff is still active)" + yearsActive: [Int] } type StaffConnection { - edges: [StaffEdge] - nodes: [Staff] - "The pagination information" - pageInfo: PageInfo + edges: [StaffEdge] + nodes: [Staff] + "The pagination information" + pageInfo: PageInfo } "Staff connection edge" type StaffEdge { - "The order the staff should be displayed from the users favourites" - favouriteOrder: Int - "The id of the connection" - id: Int - node: Staff - "The role of the staff member in the production of the media" - role: String + "The order the staff should be displayed from the users favourites" + favouriteOrder: Int + "The id of the connection" + id: Int + node: Staff + "The role of the staff member in the production of the media" + role: String } type StaffImage { - "The person's image of media at its largest size" - large: String - "The person's image of media at medium size" - medium: String + "The person's image of media at its largest size" + large: String + "The person's image of media at medium size" + medium: String } "The names of the staff member" type StaffName { - "Other names the staff member might be referred to as (pen names)" - alternative: [String] - "The person's given name" - first: String - "The person's first and last name" - full: String - "The person's surname" - last: String - "The person's middle name" - middle: String - "The person's full name in their native language" - native: String - "The currently authenticated users preferred name language. Default romaji for non-authenticated" - userPreferred: String + "Other names the staff member might be referred to as (pen names)" + alternative: [String] + "The person's given name" + first: String + "The person's first and last name" + full: String + "The person's surname" + last: String + "The person's middle name" + middle: String + "The person's full name in their native language" + native: String + "The currently authenticated users preferred name language. Default romaji for non-authenticated" + userPreferred: String } "Voice actor role for a character" type StaffRoleType { - "Used for grouping roles where multiple dubs exist for the same language. Either dubbing company name or language variant." - dubGroup: String - "Notes regarding the VA's role for the character" - roleNotes: String - "The voice actors of the character" - voiceActor: Staff + "Used for grouping roles where multiple dubs exist for the same language. Either dubbing company name or language variant." + dubGroup: String + "Notes regarding the VA's role for the character" + roleNotes: String + "The voice actors of the character" + voiceActor: Staff } "User's staff statistics" type StaffStats { - amount: Int - meanScore: Int - staff: Staff - "The amount of time in minutes the staff member has been watched by the user" - timeWatched: Int + amount: Int + meanScore: Int + staff: Staff + "The amount of time in minutes the staff member has been watched by the user" + timeWatched: Int } "A submission for a staff that features in an anime or manga" type StaffSubmission { - "Data Mod assigned to handle the submission" - assignee: User - createdAt: Int - "The id of the submission" - id: Int! - "Whether the submission is locked" - locked: Boolean - "Inner details of submission status" - notes: String - source: String - "Staff that the submission is referencing" - staff: Staff - "Status of the submission" - status: SubmissionStatus - "The staff submission changes" - submission: Staff - "Submitter for the submission" - submitter: User + "Data Mod assigned to handle the submission" + assignee: User + createdAt: Int + "The id of the submission" + id: Int! + "Whether the submission is locked" + locked: Boolean + "Inner details of submission status" + notes: String + source: String + "Staff that the submission is referencing" + staff: Staff + "Status of the submission" + status: SubmissionStatus + "The staff submission changes" + submission: Staff + "Submitter for the submission" + submitter: User } "The distribution of the watching/reading status of media or a user's list" type StatusDistribution { - "The amount of entries with this status" - amount: Int - "The day the activity took place (Unix timestamp)" - status: MediaListStatus + "The amount of entries with this status" + amount: Int + "The day the activity took place (Unix timestamp)" + status: MediaListStatus } "Animation or production company" type Studio { - "The amount of user's who have favourited the studio" - favourites: Int - "The id of the studio" - id: Int! - "If the studio is an animation studio or a different kind of company" - isAnimationStudio: Boolean! - "If the studio is marked as favourite by the currently authenticated user" - isFavourite: Boolean! - "The media the studio has worked on" - media( - "If the studio was the primary animation studio of the media" - isMain: Boolean, - onList: Boolean, - "The page" - page: Int, - "The amount of entries per page, max 25" - perPage: Int, - "The order the results will be returned in" - sort: [MediaSort] - ): MediaConnection - "The name of the studio" - name: String! - "The url for the studio page on the AniList website" - siteUrl: String + "The amount of user's who have favourited the studio" + favourites: Int + "The id of the studio" + id: Int! + "If the studio is an animation studio or a different kind of company" + isAnimationStudio: Boolean! + "If the studio is marked as favourite by the currently authenticated user" + isFavourite: Boolean! + "The media the studio has worked on" + media( + "If the studio was the primary animation studio of the media" + isMain: Boolean, + onList: Boolean, + "The page" + page: Int, + "The amount of entries per page, max 25" + perPage: Int, + "The order the results will be returned in" + sort: [MediaSort] + ): MediaConnection + "The name of the studio" + name: String! + "The url for the studio page on the AniList website" + siteUrl: String } type StudioConnection { - edges: [StudioEdge] - nodes: [Studio] - "The pagination information" - pageInfo: PageInfo + edges: [StudioEdge] + nodes: [Studio] + "The pagination information" + pageInfo: PageInfo } "Studio connection edge" type StudioEdge { - "The order the character should be displayed from the users favourites" - favouriteOrder: Int - "The id of the connection" - id: Int - "If the studio is the main animation studio of the anime" - isMain: Boolean! - node: Studio + "The order the character should be displayed from the users favourites" + favouriteOrder: Int + "The id of the connection" + id: Int + "If the studio is the main animation studio of the anime" + isMain: Boolean! + node: Studio } "User's studio statistics" type StudioStats { - amount: Int - meanScore: Int - studio: Studio - "The amount of time in minutes the studio's works have been watched by the user" - timeWatched: Int + amount: Int + meanScore: Int + studio: Studio + "The amount of time in minutes the studio's works have been watched by the user" + timeWatched: Int } "User's tag statistics" type TagStats { - amount: Int - meanScore: Int - tag: MediaTag - "The amount of time in minutes the tag has been watched by the user" - timeWatched: Int + amount: Int + meanScore: Int + tag: MediaTag + "The amount of time in minutes the tag has been watched by the user" + timeWatched: Int } "User text activity" type TextActivity { - "The time the activity was created at" - createdAt: Int! - "The id of the activity" - id: Int! - "If the currently authenticated user liked the activity" - isLiked: Boolean - "If the activity is locked and can receive replies" - isLocked: Boolean - "If the activity is pinned to the top of the users activity feed" - isPinned: Boolean - "If the currently authenticated user is subscribed to the activity" - isSubscribed: Boolean - "The amount of likes the activity has" - likeCount: Int! - "The users who liked the activity" - likes: [User] - "The written replies to the activity" - replies: [ActivityReply] - "The number of activity replies" - replyCount: Int! - "The url for the activity page on the AniList website" - siteUrl: String - "The status text (Markdown)" - text( - "Return the string in pre-parsed html instead of markdown" - asHtml: Boolean - ): String - "The type of activity" - type: ActivityType - "The user who created the activity" - user: User - "The user id of the activity's creator" - userId: Int + "The time the activity was created at" + createdAt: Int! + "The id of the activity" + id: Int! + "If the currently authenticated user liked the activity" + isLiked: Boolean + "If the activity is locked and can receive replies" + isLocked: Boolean + "If the activity is pinned to the top of the users activity feed" + isPinned: Boolean + "If the currently authenticated user is subscribed to the activity" + isSubscribed: Boolean + "The amount of likes the activity has" + likeCount: Int! + "The users who liked the activity" + likes: [User] + "The written replies to the activity" + replies: [ActivityReply] + "The number of activity replies" + replyCount: Int! + "The url for the activity page on the AniList website" + siteUrl: String + "The status text (Markdown)" + text( + "Return the string in pre-parsed html instead of markdown" + asHtml: Boolean + ): String + "The type of activity" + type: ActivityType + "The user who created the activity" + user: User + "The user id of the activity's creator" + userId: Int } "Forum Thread" type Thread { - "The text body of the thread (Markdown)" - body( - "Return the string in pre-parsed html instead of markdown" - asHtml: Boolean - ): String - "The categories of the thread" - categories: [ThreadCategory] - "The time of the thread creation" - createdAt: Int! - "The id of the thread" - id: Int! - "If the currently authenticated user liked the thread" - isLiked: Boolean - "If the thread is locked and can receive comments" - isLocked: Boolean - "If the thread is stickied and should be displayed at the top of the page" - isSticky: Boolean - "If the currently authenticated user is subscribed to the thread" - isSubscribed: Boolean - "The amount of likes the thread has" - likeCount: Int! - "The users who liked the thread" - likes: [User] - "The media categories of the thread" - mediaCategories: [Media] - "The time of the last reply" - repliedAt: Int - "The id of the most recent comment on the thread" - replyCommentId: Int - "The number of comments on the thread" - replyCount: Int - "The user to last reply to the thread" - replyUser: User - "The id of the user who most recently commented on the thread" - replyUserId: Int - "The url for the thread page on the AniList website" - siteUrl: String - "The title of the thread" - title: String - "The time of the thread last update" - updatedAt: Int! - "The owner of the thread" - user: User - "The id of the thread owner user" - userId: Int! - "The number of times users have viewed the thread" - viewCount: Int + "The text body of the thread (Markdown)" + body( + "Return the string in pre-parsed html instead of markdown" + asHtml: Boolean + ): String + "The categories of the thread" + categories: [ThreadCategory] + "The time of the thread creation" + createdAt: Int! + "The id of the thread" + id: Int! + "If the currently authenticated user liked the thread" + isLiked: Boolean + "If the thread is locked and can receive comments" + isLocked: Boolean + "If the thread is stickied and should be displayed at the top of the page" + isSticky: Boolean + "If the currently authenticated user is subscribed to the thread" + isSubscribed: Boolean + "The amount of likes the thread has" + likeCount: Int! + "The users who liked the thread" + likes: [User] + "The media categories of the thread" + mediaCategories: [Media] + "The time of the last reply" + repliedAt: Int + "The id of the most recent comment on the thread" + replyCommentId: Int + "The number of comments on the thread" + replyCount: Int + "The user to last reply to the thread" + replyUser: User + "The id of the user who most recently commented on the thread" + replyUserId: Int + "The url for the thread page on the AniList website" + siteUrl: String + "The title of the thread" + title: String + "The time of the thread last update" + updatedAt: Int! + "The owner of the thread" + user: User + "The id of the thread owner user" + userId: Int! + "The number of times users have viewed the thread" + viewCount: Int } "A forum thread category" type ThreadCategory { - "The id of the category" - id: Int! - "The name of the category" - name: String! + "The id of the category" + id: Int! + "The name of the category" + name: String! } "Forum Thread Comment" type ThreadComment { - "The comment's child reply comments" - childComments: Json - "The text content of the comment (Markdown)" - comment( - "Return the string in pre-parsed html instead of markdown" - asHtml: Boolean - ): String - "The time of the comments creation" - createdAt: Int! - "The id of the comment" - id: Int! - "If the currently authenticated user liked the comment" - isLiked: Boolean - "If the comment tree is locked and may not receive replies or edits" - isLocked: Boolean - "The amount of likes the comment has" - likeCount: Int! - "The users who liked the comment" - likes: [User] - "The url for the comment page on the AniList website" - siteUrl: String - "The thread the comment belongs to" - thread: Thread - "The id of thread the comment belongs to" - threadId: Int - "The time of the comments last update" - updatedAt: Int! - "The user who created the comment" - user: User - "The user id of the comment's owner" - userId: Int + "The comment's child reply comments" + childComments: Json + "The text content of the comment (Markdown)" + comment( + "Return the string in pre-parsed html instead of markdown" + asHtml: Boolean + ): String + "The time of the comments creation" + createdAt: Int! + "The id of the comment" + id: Int! + "If the currently authenticated user liked the comment" + isLiked: Boolean + "If the comment tree is locked and may not receive replies or edits" + isLocked: Boolean + "The amount of likes the comment has" + likeCount: Int! + "The users who liked the comment" + likes: [User] + "The url for the comment page on the AniList website" + siteUrl: String + "The thread the comment belongs to" + thread: Thread + "The id of thread the comment belongs to" + threadId: Int + "The time of the comments last update" + updatedAt: Int! + "The user who created the comment" + user: User + "The user id of the comment's owner" + userId: Int } "Notification for when a thread comment is liked" type ThreadCommentLikeNotification { - "The thread comment that was liked" - comment: ThreadComment - "The id of the activity which was liked" - commentId: Int! - "The notification context text" - context: String - "The time the notification was created at" - createdAt: Int - "The id of the Notification" - id: Int! - "The thread that the relevant comment belongs to" - thread: Thread - "The type of notification" - type: NotificationType - "The user who liked the activity" - user: User - "The id of the user who liked to the activity" - userId: Int! + "The thread comment that was liked" + comment: ThreadComment + "The id of the activity which was liked" + commentId: Int! + "The notification context text" + context: String + "The time the notification was created at" + createdAt: Int + "The id of the Notification" + id: Int! + "The thread that the relevant comment belongs to" + thread: Thread + "The type of notification" + type: NotificationType + "The user who liked the activity" + user: User + "The id of the user who liked to the activity" + userId: Int! } "Notification for when authenticated user is @ mentioned in a forum thread comment" type ThreadCommentMentionNotification { - "The thread comment that included the @ mention" - comment: ThreadComment - "The id of the comment where mentioned" - commentId: Int! - "The notification context text" - context: String - "The time the notification was created at" - createdAt: Int - "The id of the Notification" - id: Int! - "The thread that the relevant comment belongs to" - thread: Thread - "The type of notification" - type: NotificationType - "The user who mentioned the authenticated user" - user: User - "The id of the user who mentioned the authenticated user" - userId: Int! + "The thread comment that included the @ mention" + comment: ThreadComment + "The id of the comment where mentioned" + commentId: Int! + "The notification context text" + context: String + "The time the notification was created at" + createdAt: Int + "The id of the Notification" + id: Int! + "The thread that the relevant comment belongs to" + thread: Thread + "The type of notification" + type: NotificationType + "The user who mentioned the authenticated user" + user: User + "The id of the user who mentioned the authenticated user" + userId: Int! } "Notification for when a user replies to your forum thread comment" type ThreadCommentReplyNotification { - "The reply thread comment" - comment: ThreadComment - "The id of the reply comment" - commentId: Int! - "The notification context text" - context: String - "The time the notification was created at" - createdAt: Int - "The id of the Notification" - id: Int! - "The thread that the relevant comment belongs to" - thread: Thread - "The type of notification" - type: NotificationType - "The user who replied to the activity" - user: User - "The id of the user who create the comment reply" - userId: Int! + "The reply thread comment" + comment: ThreadComment + "The id of the reply comment" + commentId: Int! + "The notification context text" + context: String + "The time the notification was created at" + createdAt: Int + "The id of the Notification" + id: Int! + "The thread that the relevant comment belongs to" + thread: Thread + "The type of notification" + type: NotificationType + "The user who replied to the activity" + user: User + "The id of the user who create the comment reply" + userId: Int! } "Notification for when a user replies to a subscribed forum thread" type ThreadCommentSubscribedNotification { - "The reply thread comment" - comment: ThreadComment - "The id of the new comment in the subscribed thread" - commentId: Int! - "The notification context text" - context: String - "The time the notification was created at" - createdAt: Int - "The id of the Notification" - id: Int! - "The thread that the relevant comment belongs to" - thread: Thread - "The type of notification" - type: NotificationType - "The user who replied to the subscribed thread" - user: User - "The id of the user who commented on the thread" - userId: Int! + "The reply thread comment" + comment: ThreadComment + "The id of the new comment in the subscribed thread" + commentId: Int! + "The notification context text" + context: String + "The time the notification was created at" + createdAt: Int + "The id of the Notification" + id: Int! + "The thread that the relevant comment belongs to" + thread: Thread + "The type of notification" + type: NotificationType + "The user who replied to the subscribed thread" + user: User + "The id of the user who commented on the thread" + userId: Int! } "Notification for when a thread is liked" type ThreadLikeNotification { - "The liked thread comment" - comment: ThreadComment - "The notification context text" - context: String - "The time the notification was created at" - createdAt: Int - "The id of the Notification" - id: Int! - "The thread that the relevant comment belongs to" - thread: Thread - "The id of the thread which was liked" - threadId: Int! - "The type of notification" - type: NotificationType - "The user who liked the activity" - user: User - "The id of the user who liked to the activity" - userId: Int! + "The liked thread comment" + comment: ThreadComment + "The notification context text" + context: String + "The time the notification was created at" + createdAt: Int + "The id of the Notification" + id: Int! + "The thread that the relevant comment belongs to" + thread: Thread + "The id of the thread which was liked" + threadId: Int! + "The type of notification" + type: NotificationType + "The user who liked the activity" + user: User + "The id of the user who liked to the activity" + userId: Int! } "A user" type User { - "The bio written by user (Markdown)" - about( - "Return the string in pre-parsed html instead of markdown" - asHtml: Boolean - ): String - "The user's avatar images" - avatar: UserAvatar - "The user's banner images" - bannerImage: String - bans: Json - "When the user's account was created. (Does not exist for accounts created before 2020)" - createdAt: Int - "Custom donation badge text" - donatorBadge: String - "The donation tier of the user" - donatorTier: Int - "The users favourites" - favourites( - "Deprecated. Use page arguments on each favourite field instead." - page: Int - ): Favourites - "The id of the user" - id: Int! - "If the user is blocked by the authenticated user" - isBlocked: Boolean - "If this user if following the authenticated user" - isFollower: Boolean - "If the authenticated user if following this user" - isFollowing: Boolean - "The user's media list options" - mediaListOptions: MediaListOptions - "The user's moderator roles if they are a site moderator" - moderatorRoles: [ModRole] - "If the user is a moderator or data moderator" - moderatorStatus: String @deprecated(reason: "Deprecated. Replaced with moderatorRoles field.") - "The name of the user" - name: String! - "The user's general options" - options: UserOptions - "The user's previously used names." - previousNames: [UserPreviousName] - "The url for the user page on the AniList website" - siteUrl: String - "The users anime & manga list statistics" - statistics: UserStatisticTypes - "The user's statistics" - stats: UserStats @deprecated(reason: "Deprecated. Replaced with statistics field.") - "The number of unread notifications the user has" - unreadNotificationCount: Int - "When the user's data was last updated" - updatedAt: Int + "The bio written by user (Markdown)" + about( + "Return the string in pre-parsed html instead of markdown" + asHtml: Boolean + ): String + "The user's avatar images" + avatar: UserAvatar + "The user's banner images" + bannerImage: String + bans: Json + "When the user's account was created. (Does not exist for accounts created before 2020)" + createdAt: Int + "Custom donation badge text" + donatorBadge: String + "The donation tier of the user" + donatorTier: Int + "The users favourites" + favourites( + "Deprecated. Use page arguments on each favourite field instead." + page: Int + ): Favourites + "The id of the user" + id: Int! + "If the user is blocked by the authenticated user" + isBlocked: Boolean + "If this user if following the authenticated user" + isFollower: Boolean + "If the authenticated user if following this user" + isFollowing: Boolean + "The user's media list options" + mediaListOptions: MediaListOptions + "The user's moderator roles if they are a site moderator" + moderatorRoles: [ModRole] + "If the user is a moderator or data moderator" + moderatorStatus: String @deprecated(reason: "Deprecated. Replaced with moderatorRoles field.") + "The name of the user" + name: String! + "The user's general options" + options: UserOptions + "The user's previously used names." + previousNames: [UserPreviousName] + "The url for the user page on the AniList website" + siteUrl: String + "The users anime & manga list statistics" + statistics: UserStatisticTypes + "The user's statistics" + stats: UserStats @deprecated(reason: "Deprecated. Replaced with statistics field.") + "The number of unread notifications the user has" + unreadNotificationCount: Int + "When the user's data was last updated" + updatedAt: Int } "A user's activity history stats." type UserActivityHistory { - "The amount of activity on the day" - amount: Int - "The day the activity took place (Unix timestamp)" - date: Int - "The level of activity represented on a 1-10 scale" - level: Int + "The amount of activity on the day" + amount: Int + "The day the activity took place (Unix timestamp)" + date: Int + "The level of activity represented on a 1-10 scale" + level: Int } "A user's avatars" type UserAvatar { - "The avatar of user at its largest size" - large: String - "The avatar of user at medium size" - medium: String + "The avatar of user at its largest size" + large: String + "The avatar of user at medium size" + medium: String } type UserCountryStatistic { - chaptersRead: Int! - count: Int! - country: CountryCode - meanScore: Float! - mediaIds: [Int]! - minutesWatched: Int! + chaptersRead: Int! + count: Int! + country: CountryCode + meanScore: Float! + mediaIds: [Int]! + minutesWatched: Int! } type UserFormatStatistic { - chaptersRead: Int! - count: Int! - format: MediaFormat - meanScore: Float! - mediaIds: [Int]! - minutesWatched: Int! + chaptersRead: Int! + count: Int! + format: MediaFormat + meanScore: Float! + mediaIds: [Int]! + minutesWatched: Int! } type UserGenreStatistic { - chaptersRead: Int! - count: Int! - genre: String - meanScore: Float! - mediaIds: [Int]! - minutesWatched: Int! + chaptersRead: Int! + count: Int! + genre: String + meanScore: Float! + mediaIds: [Int]! + minutesWatched: Int! } type UserLengthStatistic { - chaptersRead: Int! - count: Int! - length: String - meanScore: Float! - mediaIds: [Int]! - minutesWatched: Int! + chaptersRead: Int! + count: Int! + length: String + meanScore: Float! + mediaIds: [Int]! + minutesWatched: Int! } "User data for moderators" type UserModData { - alts: [User] - bans: Json - counts: Json - email: String - ip: Json - privacy: Int + alts: [User] + bans: Json + counts: Json + email: String + ip: Json + privacy: Int } "A user's general options" type UserOptions { - "Minutes between activity for them to be merged together. 0 is Never, Above 2 weeks (20160 mins) is Always." - activityMergeTime: Int - "Whether the user receives notifications when a show they are watching aires" - airingNotifications: Boolean - "The list activity types the user has disabled from being created from list updates" - disabledListActivity: [ListActivityOption] - "Whether the user has enabled viewing of 18+ content" - displayAdultContent: Boolean - "Notification options" - notificationOptions: [NotificationOption] - "Profile highlight color (blue, purple, pink, orange, red, green, gray)" - profileColor: String - "Whether the user only allow messages from users they follow" - restrictMessagesToFollowing: Boolean - "The language the user wants to see staff and character names in" - staffNameLanguage: UserStaffNameLanguage - "The user's timezone offset (Auth user only)" - timezone: String - "The language the user wants to see media titles in" - titleLanguage: UserTitleLanguage + "Minutes between activity for them to be merged together. 0 is Never, Above 2 weeks (20160 mins) is Always." + activityMergeTime: Int + "Whether the user receives notifications when a show they are watching aires" + airingNotifications: Boolean + "The list activity types the user has disabled from being created from list updates" + disabledListActivity: [ListActivityOption] + "Whether the user has enabled viewing of 18+ content" + displayAdultContent: Boolean + "Notification options" + notificationOptions: [NotificationOption] + "Profile highlight color (blue, purple, pink, orange, red, green, gray)" + profileColor: String + "Whether the user only allow messages from users they follow" + restrictMessagesToFollowing: Boolean + "The language the user wants to see staff and character names in" + staffNameLanguage: UserStaffNameLanguage + "The user's timezone offset (Auth user only)" + timezone: String + "The language the user wants to see media titles in" + titleLanguage: UserTitleLanguage } "A user's previous name" type UserPreviousName { - "When the user first changed from this name." - createdAt: Int - "A previous name of the user." - name: String - "When the user most recently changed from this name." - updatedAt: Int + "When the user first changed from this name." + createdAt: Int + "A previous name of the user." + name: String + "When the user most recently changed from this name." + updatedAt: Int } type UserReleaseYearStatistic { - chaptersRead: Int! - count: Int! - meanScore: Float! - mediaIds: [Int]! - minutesWatched: Int! - releaseYear: Int + chaptersRead: Int! + count: Int! + meanScore: Float! + mediaIds: [Int]! + minutesWatched: Int! + releaseYear: Int } type UserScoreStatistic { - chaptersRead: Int! - count: Int! - meanScore: Float! - mediaIds: [Int]! - minutesWatched: Int! - score: Int + chaptersRead: Int! + count: Int! + meanScore: Float! + mediaIds: [Int]! + minutesWatched: Int! + score: Int } type UserStaffStatistic { - chaptersRead: Int! - count: Int! - meanScore: Float! - mediaIds: [Int]! - minutesWatched: Int! - staff: Staff + chaptersRead: Int! + count: Int! + meanScore: Float! + mediaIds: [Int]! + minutesWatched: Int! + staff: Staff } type UserStartYearStatistic { - chaptersRead: Int! - count: Int! - meanScore: Float! - mediaIds: [Int]! - minutesWatched: Int! - startYear: Int + chaptersRead: Int! + count: Int! + meanScore: Float! + mediaIds: [Int]! + minutesWatched: Int! + startYear: Int } type UserStatisticTypes { - anime: UserStatistics - manga: UserStatistics + anime: UserStatistics + manga: UserStatistics } type UserStatistics { - chaptersRead: Int! - count: Int! - countries(limit: Int, sort: [UserStatisticsSort]): [UserCountryStatistic] - episodesWatched: Int! - formats(limit: Int, sort: [UserStatisticsSort]): [UserFormatStatistic] - genres(limit: Int, sort: [UserStatisticsSort]): [UserGenreStatistic] - lengths(limit: Int, sort: [UserStatisticsSort]): [UserLengthStatistic] - meanScore: Float! - minutesWatched: Int! - releaseYears(limit: Int, sort: [UserStatisticsSort]): [UserReleaseYearStatistic] - scores(limit: Int, sort: [UserStatisticsSort]): [UserScoreStatistic] - staff(limit: Int, sort: [UserStatisticsSort]): [UserStaffStatistic] - standardDeviation: Float! - startYears(limit: Int, sort: [UserStatisticsSort]): [UserStartYearStatistic] - statuses(limit: Int, sort: [UserStatisticsSort]): [UserStatusStatistic] - studios(limit: Int, sort: [UserStatisticsSort]): [UserStudioStatistic] - tags(limit: Int, sort: [UserStatisticsSort]): [UserTagStatistic] - voiceActors(limit: Int, sort: [UserStatisticsSort]): [UserVoiceActorStatistic] - volumesRead: Int! + chaptersRead: Int! + count: Int! + countries(limit: Int, sort: [UserStatisticsSort]): [UserCountryStatistic] + episodesWatched: Int! + formats(limit: Int, sort: [UserStatisticsSort]): [UserFormatStatistic] + genres(limit: Int, sort: [UserStatisticsSort]): [UserGenreStatistic] + lengths(limit: Int, sort: [UserStatisticsSort]): [UserLengthStatistic] + meanScore: Float! + minutesWatched: Int! + releaseYears(limit: Int, sort: [UserStatisticsSort]): [UserReleaseYearStatistic] + scores(limit: Int, sort: [UserStatisticsSort]): [UserScoreStatistic] + staff(limit: Int, sort: [UserStatisticsSort]): [UserStaffStatistic] + standardDeviation: Float! + startYears(limit: Int, sort: [UserStatisticsSort]): [UserStartYearStatistic] + statuses(limit: Int, sort: [UserStatisticsSort]): [UserStatusStatistic] + studios(limit: Int, sort: [UserStatisticsSort]): [UserStudioStatistic] + tags(limit: Int, sort: [UserStatisticsSort]): [UserTagStatistic] + voiceActors(limit: Int, sort: [UserStatisticsSort]): [UserVoiceActorStatistic] + volumesRead: Int! } "A user's statistics" type UserStats { - activityHistory: [UserActivityHistory] - animeListScores: ListScoreStats - animeScoreDistribution: [ScoreDistribution] - animeStatusDistribution: [StatusDistribution] - "The amount of manga chapters the user has read" - chaptersRead: Int - favouredActors: [StaffStats] - favouredFormats: [FormatStats] - favouredGenres: [GenreStats] - favouredGenresOverview: [GenreStats] - favouredStaff: [StaffStats] - favouredStudios: [StudioStats] - favouredTags: [TagStats] - favouredYears: [YearStats] - mangaListScores: ListScoreStats - mangaScoreDistribution: [ScoreDistribution] - mangaStatusDistribution: [StatusDistribution] - "The amount of anime the user has watched in minutes" - watchedTime: Int + activityHistory: [UserActivityHistory] + animeListScores: ListScoreStats + animeScoreDistribution: [ScoreDistribution] + animeStatusDistribution: [StatusDistribution] + "The amount of manga chapters the user has read" + chaptersRead: Int + favouredActors: [StaffStats] + favouredFormats: [FormatStats] + favouredGenres: [GenreStats] + favouredGenresOverview: [GenreStats] + favouredStaff: [StaffStats] + favouredStudios: [StudioStats] + favouredTags: [TagStats] + favouredYears: [YearStats] + mangaListScores: ListScoreStats + mangaScoreDistribution: [ScoreDistribution] + mangaStatusDistribution: [StatusDistribution] + "The amount of anime the user has watched in minutes" + watchedTime: Int } type UserStatusStatistic { - chaptersRead: Int! - count: Int! - meanScore: Float! - mediaIds: [Int]! - minutesWatched: Int! - status: MediaListStatus + chaptersRead: Int! + count: Int! + meanScore: Float! + mediaIds: [Int]! + minutesWatched: Int! + status: MediaListStatus } type UserStudioStatistic { - chaptersRead: Int! - count: Int! - meanScore: Float! - mediaIds: [Int]! - minutesWatched: Int! - studio: Studio + chaptersRead: Int! + count: Int! + meanScore: Float! + mediaIds: [Int]! + minutesWatched: Int! + studio: Studio } type UserTagStatistic { - chaptersRead: Int! - count: Int! - meanScore: Float! - mediaIds: [Int]! - minutesWatched: Int! - tag: MediaTag + chaptersRead: Int! + count: Int! + meanScore: Float! + mediaIds: [Int]! + minutesWatched: Int! + tag: MediaTag } type UserVoiceActorStatistic { - chaptersRead: Int! - characterIds: [Int]! - count: Int! - meanScore: Float! - mediaIds: [Int]! - minutesWatched: Int! - voiceActor: Staff + chaptersRead: Int! + characterIds: [Int]! + count: Int! + meanScore: Float! + mediaIds: [Int]! + minutesWatched: Int! + voiceActor: Staff } "User's year statistics" type YearStats { - amount: Int - meanScore: Int - year: Int + amount: Int + meanScore: Int + year: Int } "Activity sort enums" enum ActivitySort { - ID - ID_DESC - PINNED + ID + ID_DESC + PINNED } "Activity type enum." enum ActivityType { - "A anime list update activity" - ANIME_LIST - "A manga list update activity" - MANGA_LIST - "Anime & Manga list update, only used in query arguments" - MEDIA_LIST - "A text message activity sent to another user" - MESSAGE - "A text activity" - TEXT + "A anime list update activity" + ANIME_LIST + "A manga list update activity" + MANGA_LIST + "Anime & Manga list update, only used in query arguments" + MEDIA_LIST + "A text message activity sent to another user" + MESSAGE + "A text activity" + TEXT } "Airing schedule sort enums" enum AiringSort { - EPISODE - EPISODE_DESC - ID - ID_DESC - MEDIA_ID - MEDIA_ID_DESC - TIME - TIME_DESC + EPISODE + EPISODE_DESC + ID + ID_DESC + MEDIA_ID + MEDIA_ID_DESC + TIME + TIME_DESC } "The role the character plays in the media" enum CharacterRole { - "A background character in the media" - BACKGROUND - "A primary character role in the media" - MAIN - "A supporting character role in the media" - SUPPORTING + "A background character in the media" + BACKGROUND + "A primary character role in the media" + MAIN + "A supporting character role in the media" + SUPPORTING } "Character sort enums" enum CharacterSort { - FAVOURITES - FAVOURITES_DESC - ID - ID_DESC - "Order manually decided by moderators" - RELEVANCE - ROLE - ROLE_DESC - SEARCH_MATCH + FAVOURITES + FAVOURITES_DESC + ID + ID_DESC + "Order manually decided by moderators" + RELEVANCE + ROLE + ROLE_DESC + SEARCH_MATCH } enum ExternalLinkMediaType { - ANIME - MANGA - STAFF + ANIME + MANGA + STAFF } enum ExternalLinkType { - INFO - SOCIAL - STREAMING + INFO + SOCIAL + STREAMING } "Types that can be liked" enum LikeableType { - ACTIVITY - ACTIVITY_REPLY - THREAD - THREAD_COMMENT + ACTIVITY + ACTIVITY_REPLY + THREAD + THREAD_COMMENT } "The format the media was released in" enum MediaFormat { - "Professionally published manga with more than one chapter" - MANGA - "Anime movies with a theatrical release" - MOVIE - "Short anime released as a music video" - MUSIC - "Written books released as a series of light novels" - NOVEL - "(Original Net Animation) Anime that have been originally released online or are only available through streaming services." - ONA - "Manga with just one chapter" - ONE_SHOT - "(Original Video Animation) Anime that have been released directly on DVD/Blu-ray without originally going through a theatrical release or television broadcast" - OVA - "Special episodes that have been included in DVD/Blu-ray releases, picture dramas, pilots, etc" - SPECIAL - "Anime broadcast on television" - TV - "Anime which are under 15 minutes in length and broadcast on television" - TV_SHORT + "Professionally published manga with more than one chapter" + MANGA + "Anime movies with a theatrical release" + MOVIE + "Short anime released as a music video" + MUSIC + "Written books released as a series of light novels" + NOVEL + "(Original Net Animation) Anime that have been originally released online or are only available through streaming services." + ONA + "Manga with just one chapter" + ONE_SHOT + "(Original Video Animation) Anime that have been released directly on DVD/Blu-ray without originally going through a theatrical release or television broadcast" + OVA + "Special episodes that have been included in DVD/Blu-ray releases, picture dramas, pilots, etc" + SPECIAL + "Anime broadcast on television" + TV + "Anime which are under 15 minutes in length and broadcast on television" + TV_SHORT } "Media list sort enums" enum MediaListSort { - ADDED_TIME - ADDED_TIME_DESC - FINISHED_ON - FINISHED_ON_DESC - MEDIA_ID - MEDIA_ID_DESC - MEDIA_POPULARITY - MEDIA_POPULARITY_DESC - MEDIA_TITLE_ENGLISH - MEDIA_TITLE_ENGLISH_DESC - MEDIA_TITLE_NATIVE - MEDIA_TITLE_NATIVE_DESC - MEDIA_TITLE_ROMAJI - MEDIA_TITLE_ROMAJI_DESC - PRIORITY - PRIORITY_DESC - PROGRESS - PROGRESS_DESC - PROGRESS_VOLUMES - PROGRESS_VOLUMES_DESC - REPEAT - REPEAT_DESC - SCORE - SCORE_DESC - STARTED_ON - STARTED_ON_DESC - STATUS - STATUS_DESC - UPDATED_TIME - UPDATED_TIME_DESC + ADDED_TIME + ADDED_TIME_DESC + FINISHED_ON + FINISHED_ON_DESC + MEDIA_ID + MEDIA_ID_DESC + MEDIA_POPULARITY + MEDIA_POPULARITY_DESC + MEDIA_TITLE_ENGLISH + MEDIA_TITLE_ENGLISH_DESC + MEDIA_TITLE_NATIVE + MEDIA_TITLE_NATIVE_DESC + MEDIA_TITLE_ROMAJI + MEDIA_TITLE_ROMAJI_DESC + PRIORITY + PRIORITY_DESC + PROGRESS + PROGRESS_DESC + PROGRESS_VOLUMES + PROGRESS_VOLUMES_DESC + REPEAT + REPEAT_DESC + SCORE + SCORE_DESC + STARTED_ON + STARTED_ON_DESC + STATUS + STATUS_DESC + UPDATED_TIME + UPDATED_TIME_DESC } "Media list watching/reading status enum." enum MediaListStatus { - "Finished watching/reading" - COMPLETED - "Currently watching/reading" - CURRENT - "Stopped watching/reading before completing" - DROPPED - "Paused watching/reading" - PAUSED - "Planning to watch/read" - PLANNING - "Re-watching/reading" - REPEATING + "Finished watching/reading" + COMPLETED + "Currently watching/reading" + CURRENT + "Stopped watching/reading before completing" + DROPPED + "Paused watching/reading" + PAUSED + "Planning to watch/read" + PLANNING + "Re-watching/reading" + REPEATING } "The type of ranking" enum MediaRankType { - "Ranking is based on the media's popularity" - POPULAR - "Ranking is based on the media's ratings/score" - RATED + "Ranking is based on the media's popularity" + POPULAR + "Ranking is based on the media's ratings/score" + RATED } "Type of relation media has to its parent." enum MediaRelation { - "An adaption of this media into a different format" - ADAPTATION - "An alternative version of the same media" - ALTERNATIVE - "Shares at least 1 character" - CHARACTER - "Version 2 only." - COMPILATION - "Version 2 only." - CONTAINS - "Other" - OTHER - "The media a side story is from" - PARENT - "Released before the relation" - PREQUEL - "Released after the relation" - SEQUEL - "A side story of the parent media" - SIDE_STORY - "Version 2 only. The source material the media was adapted from" - SOURCE - "An alternative version of the media with a different primary focus" - SPIN_OFF - "A shortened and summarized version" - SUMMARY + "An adaption of this media into a different format" + ADAPTATION + "An alternative version of the same media" + ALTERNATIVE + "Shares at least 1 character" + CHARACTER + "Version 2 only." + COMPILATION + "Version 2 only." + CONTAINS + "Other" + OTHER + "The media a side story is from" + PARENT + "Released before the relation" + PREQUEL + "Released after the relation" + SEQUEL + "A side story of the parent media" + SIDE_STORY + "Version 2 only. The source material the media was adapted from" + SOURCE + "An alternative version of the media with a different primary focus" + SPIN_OFF + "A shortened and summarized version" + SUMMARY } enum MediaSeason { - "Months September to November" - FALL - "Months March to May" - SPRING - "Months June to August" - SUMMER - "Months December to February" - WINTER + "Months September to November" + FALL + "Months March to May" + SPRING + "Months June to August" + SUMMER + "Months December to February" + WINTER } "Media sort enums" enum MediaSort { - CHAPTERS - CHAPTERS_DESC - DURATION - DURATION_DESC - END_DATE - END_DATE_DESC - EPISODES - EPISODES_DESC - FAVOURITES - FAVOURITES_DESC - FORMAT - FORMAT_DESC - ID - ID_DESC - POPULARITY - POPULARITY_DESC - SCORE - SCORE_DESC - SEARCH_MATCH - START_DATE - START_DATE_DESC - STATUS - STATUS_DESC - TITLE_ENGLISH - TITLE_ENGLISH_DESC - TITLE_NATIVE - TITLE_NATIVE_DESC - TITLE_ROMAJI - TITLE_ROMAJI_DESC - TRENDING - TRENDING_DESC - TYPE - TYPE_DESC - UPDATED_AT - UPDATED_AT_DESC - VOLUMES - VOLUMES_DESC + CHAPTERS + CHAPTERS_DESC + DURATION + DURATION_DESC + END_DATE + END_DATE_DESC + EPISODES + EPISODES_DESC + FAVOURITES + FAVOURITES_DESC + FORMAT + FORMAT_DESC + ID + ID_DESC + POPULARITY + POPULARITY_DESC + SCORE + SCORE_DESC + SEARCH_MATCH + START_DATE + START_DATE_DESC + STATUS + STATUS_DESC + TITLE_ENGLISH + TITLE_ENGLISH_DESC + TITLE_NATIVE + TITLE_NATIVE_DESC + TITLE_ROMAJI + TITLE_ROMAJI_DESC + TRENDING + TRENDING_DESC + TYPE + TYPE_DESC + UPDATED_AT + UPDATED_AT_DESC + VOLUMES + VOLUMES_DESC } "Source type the media was adapted from" enum MediaSource { - "Version 2+ only. Japanese Anime" - ANIME - "Version 3 only. Comics excluding manga" - COMIC - "Version 2+ only. Self-published works" - DOUJINSHI - "Version 3 only. Games excluding video games" - GAME - "Written work published in volumes" - LIGHT_NOVEL - "Version 3 only. Live action media such as movies or TV show" - LIVE_ACTION - "Asian comic book" - MANGA - "Version 3 only. Multimedia project" - MULTIMEDIA_PROJECT - "Version 2+ only. Written works not published in volumes" - NOVEL - "An original production not based of another work" - ORIGINAL - "Other" - OTHER - "Version 3 only. Picture book" - PICTURE_BOOK - "Video game" - VIDEO_GAME - "Video game driven primary by text and narrative" - VISUAL_NOVEL - "Version 3 only. Written works published online" - WEB_NOVEL + "Version 2+ only. Japanese Anime" + ANIME + "Version 3 only. Comics excluding manga" + COMIC + "Version 2+ only. Self-published works" + DOUJINSHI + "Version 3 only. Games excluding video games" + GAME + "Written work published in volumes" + LIGHT_NOVEL + "Version 3 only. Live action media such as movies or TV show" + LIVE_ACTION + "Asian comic book" + MANGA + "Version 3 only. Multimedia project" + MULTIMEDIA_PROJECT + "Version 2+ only. Written works not published in volumes" + NOVEL + "An original production not based of another work" + ORIGINAL + "Other" + OTHER + "Version 3 only. Picture book" + PICTURE_BOOK + "Video game" + VIDEO_GAME + "Video game driven primary by text and narrative" + VISUAL_NOVEL + "Version 3 only. Written works published online" + WEB_NOVEL } "The current releasing status of the media" enum MediaStatus { - "Ended before the work could be finished" - CANCELLED - "Has completed and is no longer being released" - FINISHED - "Version 2 only. Is currently paused from releasing and will resume at a later date" - HIATUS - "To be released at a later date" - NOT_YET_RELEASED - "Currently releasing" - RELEASING + "Ended before the work could be finished" + CANCELLED + "Has completed and is no longer being released" + FINISHED + "Version 2 only. Is currently paused from releasing and will resume at a later date" + HIATUS + "To be released at a later date" + NOT_YET_RELEASED + "Currently releasing" + RELEASING } "Media trend sort enums" enum MediaTrendSort { - DATE - DATE_DESC - EPISODE - EPISODE_DESC - ID - ID_DESC - MEDIA_ID - MEDIA_ID_DESC - POPULARITY - POPULARITY_DESC - SCORE - SCORE_DESC - TRENDING - TRENDING_DESC + DATE + DATE_DESC + EPISODE + EPISODE_DESC + ID + ID_DESC + MEDIA_ID + MEDIA_ID_DESC + POPULARITY + POPULARITY_DESC + SCORE + SCORE_DESC + TRENDING + TRENDING_DESC } "Media type enum, anime or manga." enum MediaType { - "Japanese Anime" - ANIME - "Asian comic" - MANGA + "Japanese Anime" + ANIME + "Asian comic" + MANGA } enum ModActionType { - ANON - BAN - DELETE - EDIT - EXPIRE - NOTE - REPORT - RESET + ANON + BAN + DELETE + EDIT + EXPIRE + NOTE + REPORT + RESET } "Mod role enums" enum ModRole { - "An AniList administrator" - ADMIN - "An anime data moderator" - ANIME_DATA - "A community moderator" - COMMUNITY - "An AniList developer" - DEVELOPER - "A discord community moderator" - DISCORD_COMMUNITY - "A lead anime data moderator" - LEAD_ANIME_DATA - "A lead community moderator" - LEAD_COMMUNITY - "A head developer of AniList" - LEAD_DEVELOPER - "A lead manga data moderator" - LEAD_MANGA_DATA - "A lead social media moderator" - LEAD_SOCIAL_MEDIA - "A manga data moderator" - MANGA_DATA - "A retired moderator" - RETIRED - "A social media moderator" - SOCIAL_MEDIA + "An AniList administrator" + ADMIN + "An anime data moderator" + ANIME_DATA + "A character data moderator" + CHARACTER_DATA + "A community moderator" + COMMUNITY + "An AniList developer" + DEVELOPER + "A discord community moderator" + DISCORD_COMMUNITY + "A lead anime data moderator" + LEAD_ANIME_DATA + "A lead community moderator" + LEAD_COMMUNITY + "A head developer of AniList" + LEAD_DEVELOPER + "A lead manga data moderator" + LEAD_MANGA_DATA + "A lead social media moderator" + LEAD_SOCIAL_MEDIA + "A manga data moderator" + MANGA_DATA + "A retired moderator" + RETIRED + "A social media moderator" + SOCIAL_MEDIA + "A staff data moderator" + STAFF_DATA } "Notification type enum" enum NotificationType { - "A user has liked your activity" - ACTIVITY_LIKE - "A user has mentioned you in their activity" - ACTIVITY_MENTION - "A user has sent you message" - ACTIVITY_MESSAGE - "A user has replied to your activity" - ACTIVITY_REPLY - "A user has liked your activity reply" - ACTIVITY_REPLY_LIKE - "A user has replied to activity you have also replied to" - ACTIVITY_REPLY_SUBSCRIBED - "An anime you are currently watching has aired" - AIRING - "A user has followed you" - FOLLOWING - "An anime or manga has had a data change that affects how a user may track it in their lists" - MEDIA_DATA_CHANGE - "An anime or manga on the user's list has been deleted from the site" - MEDIA_DELETION - "Anime or manga entries on the user's list have been merged into a single entry" - MEDIA_MERGE - "A new anime or manga has been added to the site where its related media is on the user's list" - RELATED_MEDIA_ADDITION - "A user has liked your forum comment" - THREAD_COMMENT_LIKE - "A user has mentioned you in a forum comment" - THREAD_COMMENT_MENTION - "A user has replied to your forum comment" - THREAD_COMMENT_REPLY - "A user has liked your forum thread" - THREAD_LIKE - "A user has commented in one of your subscribed forum threads" - THREAD_SUBSCRIBED + "A user has liked your activity" + ACTIVITY_LIKE + "A user has mentioned you in their activity" + ACTIVITY_MENTION + "A user has sent you message" + ACTIVITY_MESSAGE + "A user has replied to your activity" + ACTIVITY_REPLY + "A user has liked your activity reply" + ACTIVITY_REPLY_LIKE + "A user has replied to activity you have also replied to" + ACTIVITY_REPLY_SUBSCRIBED + "An anime you are currently watching has aired" + AIRING + "A user has followed you" + FOLLOWING + "An anime or manga has had a data change that affects how a user may track it in their lists" + MEDIA_DATA_CHANGE + "An anime or manga on the user's list has been deleted from the site" + MEDIA_DELETION + "Anime or manga entries on the user's list have been merged into a single entry" + MEDIA_MERGE + "A new anime or manga has been added to the site where its related media is on the user's list" + RELATED_MEDIA_ADDITION + "A user has liked your forum comment" + THREAD_COMMENT_LIKE + "A user has mentioned you in a forum comment" + THREAD_COMMENT_MENTION + "A user has replied to your forum comment" + THREAD_COMMENT_REPLY + "A user has liked your forum thread" + THREAD_LIKE + "A user has commented in one of your subscribed forum threads" + THREAD_SUBSCRIBED } "Recommendation rating enums" enum RecommendationRating { - NO_RATING - RATE_DOWN - RATE_UP + NO_RATING + RATE_DOWN + RATE_UP } "Recommendation sort enums" enum RecommendationSort { - ID - ID_DESC - RATING - RATING_DESC + ID + ID_DESC + RATING + RATING_DESC } "Review rating enums" enum ReviewRating { - DOWN_VOTE - NO_VOTE - UP_VOTE + DOWN_VOTE + NO_VOTE + UP_VOTE } "Review sort enums" enum ReviewSort { - CREATED_AT - CREATED_AT_DESC - ID - ID_DESC - RATING - RATING_DESC - SCORE - SCORE_DESC - UPDATED_AT - UPDATED_AT_DESC + CREATED_AT + CREATED_AT_DESC + ID + ID_DESC + RATING + RATING_DESC + SCORE + SCORE_DESC + UPDATED_AT + UPDATED_AT_DESC } "Revision history actions" enum RevisionHistoryAction { - CREATE - EDIT + CREATE + EDIT } "Media list scoring type" enum ScoreFormat { - "An integer from 0-10" - POINT_10 - "An integer from 0-100" - POINT_100 - "A float from 0-10 with 1 decimal place" - POINT_10_DECIMAL - "An integer from 0-3. Should be represented in Smileys. 0 => No Score, 1 => :(, 2 => :|, 3 => :)" - POINT_3 - "An integer from 0-5. Should be represented in Stars" - POINT_5 + "An integer from 0-10" + POINT_10 + "An integer from 0-100" + POINT_100 + "A float from 0-10 with 1 decimal place" + POINT_10_DECIMAL + "An integer from 0-3. Should be represented in Smileys. 0 => No Score, 1 => :(, 2 => :|, 3 => :)" + POINT_3 + "An integer from 0-5. Should be represented in Stars" + POINT_5 } "Site trend sort enums" enum SiteTrendSort { - CHANGE - CHANGE_DESC - COUNT - COUNT_DESC - DATE - DATE_DESC + CHANGE + CHANGE_DESC + COUNT + COUNT_DESC + DATE + DATE_DESC } "The primary language of the voice actor" enum StaffLanguage { - "English" - ENGLISH - "French" - FRENCH - "German" - GERMAN - "Hebrew" - HEBREW - "Hungarian" - HUNGARIAN - "Italian" - ITALIAN - "Japanese" - JAPANESE - "Korean" - KOREAN - "Portuguese" - PORTUGUESE - "Spanish" - SPANISH + "English" + ENGLISH + "French" + FRENCH + "German" + GERMAN + "Hebrew" + HEBREW + "Hungarian" + HUNGARIAN + "Italian" + ITALIAN + "Japanese" + JAPANESE + "Korean" + KOREAN + "Portuguese" + PORTUGUESE + "Spanish" + SPANISH } "Staff sort enums" enum StaffSort { - FAVOURITES - FAVOURITES_DESC - ID - ID_DESC - LANGUAGE - LANGUAGE_DESC - "Order manually decided by moderators" - RELEVANCE - ROLE - ROLE_DESC - SEARCH_MATCH + FAVOURITES + FAVOURITES_DESC + ID + ID_DESC + LANGUAGE + LANGUAGE_DESC + "Order manually decided by moderators" + RELEVANCE + ROLE + ROLE_DESC + SEARCH_MATCH } "Studio sort enums" enum StudioSort { - FAVOURITES - FAVOURITES_DESC - ID - ID_DESC - NAME - NAME_DESC - SEARCH_MATCH + FAVOURITES + FAVOURITES_DESC + ID + ID_DESC + NAME + NAME_DESC + SEARCH_MATCH } "Submission sort enums" enum SubmissionSort { - ID - ID_DESC + ID + ID_DESC } "Submission status" enum SubmissionStatus { - ACCEPTED - PARTIALLY_ACCEPTED - PENDING - REJECTED + ACCEPTED + PARTIALLY_ACCEPTED + PENDING + REJECTED } "Thread comments sort enums" enum ThreadCommentSort { - ID - ID_DESC + ID + ID_DESC } "Thread sort enums" enum ThreadSort { - CREATED_AT - CREATED_AT_DESC - ID - ID_DESC - IS_STICKY - REPLIED_AT - REPLIED_AT_DESC - REPLY_COUNT - REPLY_COUNT_DESC - SEARCH_MATCH - TITLE - TITLE_DESC - UPDATED_AT - UPDATED_AT_DESC - VIEW_COUNT - VIEW_COUNT_DESC + CREATED_AT + CREATED_AT_DESC + ID + ID_DESC + IS_STICKY + REPLIED_AT + REPLIED_AT_DESC + REPLY_COUNT + REPLY_COUNT_DESC + SEARCH_MATCH + TITLE + TITLE_DESC + UPDATED_AT + UPDATED_AT_DESC + VIEW_COUNT + VIEW_COUNT_DESC } "User sort enums" enum UserSort { - CHAPTERS_READ - CHAPTERS_READ_DESC - ID - ID_DESC - SEARCH_MATCH - USERNAME - USERNAME_DESC - WATCHED_TIME - WATCHED_TIME_DESC + CHAPTERS_READ + CHAPTERS_READ_DESC + ID + ID_DESC + SEARCH_MATCH + USERNAME + USERNAME_DESC + WATCHED_TIME + WATCHED_TIME_DESC } "The language the user wants to see staff and character names in" enum UserStaffNameLanguage { - "The staff or character's name in their native language" - NATIVE - "The romanization of the staff or character's native name" - ROMAJI - "The romanization of the staff or character's native name, with western name ordering" - ROMAJI_WESTERN + "The staff or character's name in their native language" + NATIVE + "The romanization of the staff or character's native name" + ROMAJI + "The romanization of the staff or character's native name, with western name ordering" + ROMAJI_WESTERN } "User statistics sort enum" enum UserStatisticsSort { - COUNT - COUNT_DESC - ID - ID_DESC - MEAN_SCORE - MEAN_SCORE_DESC - PROGRESS - PROGRESS_DESC + COUNT + COUNT_DESC + ID + ID_DESC + MEAN_SCORE + MEAN_SCORE_DESC + PROGRESS + PROGRESS_DESC } "The language the user wants to see media titles in" enum UserTitleLanguage { - "The official english title" - ENGLISH - "The official english title, stylised by media creator" - ENGLISH_STYLISED - "Official title in it's native language" - NATIVE - "Official title in it's native language, stylised by media creator" - NATIVE_STYLISED - "The romanization of the native language title" - ROMAJI - "The romanization of the native language title, stylised by media creator" - ROMAJI_STYLISED + "The official english title" + ENGLISH + "The official english title, stylised by media creator" + ENGLISH_STYLISED + "Official title in it's native language" + NATIVE + "Official title in it's native language, stylised by media creator" + NATIVE_STYLISED + "The romanization of the native language title" + ROMAJI + "The romanization of the native language title, stylised by media creator" + ROMAJI_STYLISED } "ISO 3166-1 alpha-2 country code" @@ -4689,101 +4693,101 @@ scalar FuzzyDateInt scalar Json input AiringScheduleInput { - airingAt: Int - episode: Int - timeUntilAiring: Int + airingAt: Int + episode: Int + timeUntilAiring: Int } input AniChartHighlightInput { - highlight: String - mediaId: Int + highlight: String + mediaId: Int } "The names of the character" input CharacterNameInput { - "Other names the character might be referred by" - alternative: [String] - "Other names the character might be referred to as but are spoilers" - alternativeSpoiler: [String] - "The character's given name" - first: String - "The character's surname" - last: String - "The character's middle name" - middle: String - "The character's full name in their native language" - native: String + "Other names the character might be referred by" + alternative: [String] + "Other names the character might be referred to as but are spoilers" + alternativeSpoiler: [String] + "The character's given name" + first: String + "The character's surname" + last: String + "The character's middle name" + middle: String + "The character's full name in their native language" + native: String } "Date object that allows for incomplete date values (fuzzy)" input FuzzyDateInput { - "Numeric Day (24)" - day: Int - "Numeric Month (3)" - month: Int - "Numeric Year (2017)" - year: Int + "Numeric Day (24)" + day: Int + "Numeric Month (3)" + month: Int + "Numeric Year (2017)" + year: Int } input ListActivityOptionInput { - disabled: Boolean - type: MediaListStatus + disabled: Boolean + type: MediaListStatus } "An external link to another site related to the media" input MediaExternalLinkInput { - "The id of the external link" - id: Int! - "The site location of the external link" - site: String! - "The url of the external link" - url: String! + "The id of the external link" + id: Int! + "The site location of the external link" + site: String! + "The url of the external link" + url: String! } "A user's list options for anime or manga lists" input MediaListOptionsInput { - "The names of the user's advanced scoring sections" - advancedScoring: [String] - "If advanced scoring is enabled" - advancedScoringEnabled: Boolean - "The names of the user's custom lists" - customLists: [String] - "The order each list should be displayed in" - sectionOrder: [String] - "If the completed sections of the list should be separated by format" - splitCompletedSectionByFormat: Boolean - "list theme" - theme: String + "The names of the user's advanced scoring sections" + advancedScoring: [String] + "If advanced scoring is enabled" + advancedScoringEnabled: Boolean + "The names of the user's custom lists" + customLists: [String] + "The order each list should be displayed in" + sectionOrder: [String] + "If the completed sections of the list should be separated by format" + splitCompletedSectionByFormat: Boolean + "list theme" + theme: String } "The official titles of the media in various languages" input MediaTitleInput { - "The official english title" - english: String - "Official title in it's native language" - native: String - "The romanization of the native language title" - romaji: String + "The official english title" + english: String + "Official title in it's native language" + native: String + "The romanization of the native language title" + romaji: String } "Notification option input" input NotificationOptionInput { - "Whether this type of notification is enabled" - enabled: Boolean - "The type of notification" - type: NotificationType + "Whether this type of notification is enabled" + enabled: Boolean + "The type of notification" + type: NotificationType } "The names of the staff member" input StaffNameInput { - "Other names the character might be referred by" - alternative: [String] - "The person's given name" - first: String - "The person's surname" - last: String - "The person's middle name" - middle: String - "The person's full name in their native language" - native: String + "Other names the character might be referred by" + alternative: [String] + "The person's given name" + first: String + "The person's surname" + last: String + "The person's middle name" + middle: String + "The person's full name in their native language" + native: String } diff --git a/src/AnimeClient/API/Kitsu/schema.graphql b/src/AnimeClient/API/Kitsu/schema.graphql index 86ec4da9..290aa1c1 100644 --- a/src/AnimeClient/API/Kitsu/schema.graphql +++ b/src/AnimeClient/API/Kitsu/schema.graphql @@ -1,10 +1,13 @@ -# This file was generated based on ".graphqlconfig". Do not edit manually. +# This file was generated. Do not edit manually. schema { query: Query mutation: Mutation } +"Requires that exactly one field must be supplied and that field must not be `null`." +directive @oneOf on INPUT_OBJECT + "Generic Amount Consumed based on Media" interface AmountConsumed { "Total media completed atleast once." @@ -189,6 +192,17 @@ interface Media { last: Int, sort: [MediaReactionSortOption] ): MediaReactionConnection! + "A list of relationships for this media" + relationships( + "Returns the elements in the list that come after the specified cursor." + after: String, + "Returns the elements in the list that come before the specified cursor." + before: String, + "Returns the first _n_ elements from the list." + first: Int, + "Returns the last _n_ elements from the list." + last: Int + ): MediaRelationshipConnection! "Whether the media is Safe-for-Work" sfw: Boolean! "The URL-friendly identifier of this media" @@ -250,14 +264,42 @@ interface WithTimestamps { updatedAt: ISO8601DateTime! } +union AccountChangePasswordErrorsUnion = NotAuthenticatedError | NotAuthorizedError | ValidationError + union AccountCreateErrorsUnion = ValidationError +union AccountUpdateErrorsUnion = NotAuthenticatedError | NotAuthorizedError | NotFoundError + +union BlockCreateErrorsUnion = NotAuthenticatedError | NotAuthorizedError | NotFoundError + +union BlockDeleteErrorsUnion = NotAuthenticatedError | NotAuthorizedError | NotFoundError + +union FavoriteCreateErrorsUnion = NotAuthenticatedError | NotAuthorizedError | NotFoundError + +union FavoriteDeleteErrorsUnion = NotAuthenticatedError | NotAuthorizedError | NotFoundError + "Objects which are Favoritable" union FavoriteItemUnion = Anime | Character | Manga | Person "Objects which are Mappable" union MappingItemUnion = Anime | Category | Character | Episode | Manga | Person | Producer +union MediaReactionCreateErrorsUnion = NotAuthenticatedError | NotAuthorizedError | NotFoundError | ValidationError + +union MediaReactionDeleteErrorsUnion = NotAuthenticatedError | NotAuthorizedError | NotFoundError + +union MediaReactionLikeErrorsUnion = NotAuthenticatedError | NotAuthorizedError | NotFoundError + +union MediaReactionUnlikeErrorsUnion = NotAuthenticatedError | NotAuthorizedError | NotFoundError + +union ProfileLinkCreateErrorsUnion = NotAuthenticatedError | NotAuthorizedError | NotFoundError | ValidationError + +union ProfileLinkDeleteErrorsUnion = NotAuthenticatedError | NotAuthorizedError | NotFoundError + +union ProfileLinkUpdateErrorsUnion = NotAuthenticatedError | NotAuthorizedError | NotFoundError | ValidationError + +union ProfileUpdateErrorsUnion = NotAuthenticatedError | NotAuthorizedError | NotFoundError + "Objects which are Reportable" union ReportItemUnion = Comment | MediaReaction | Post | Review @@ -285,6 +327,8 @@ type Account implements WithTimestamps { ratingSystem: RatingSystemEnum! "Whether Not Safe For Work content is accessible" sfwFilter: Boolean + "The level of the SFW Filter" + sfwFilterPreference: SfwFilterPreferenceEnum "The site-wide permissions this user has access to" sitePermissions: [SitePermissionEnum!]! "Time zone of the account" @@ -296,25 +340,41 @@ type Account implements WithTimestamps { updatedAt: ISO8601DateTime! } -"Autogenerated return type of AccountCreate" +"Autogenerated return type of AccountChangePassword." +type AccountChangePasswordPayload { + errors: [AccountChangePasswordErrorsUnion!] + result: Account +} + +"Autogenerated return type of AccountCreate." type AccountCreatePayload { errors: [AccountCreateErrorsUnion!] result: Account } type AccountMutations { + "Change your Kitsu account password" + changePassword(input: AccountChangePasswordInput!): AccountChangePasswordPayload "Send a password reset email" sendPasswordReset( "The email address to reset the password for" email: String! ): AccountSendPasswordResetPayload + "Update the account of the current user." + update(input: AccountUpdateInput!): AccountUpdatePayload } -"Autogenerated return type of AccountSendPasswordReset" +"Autogenerated return type of AccountSendPasswordReset." type AccountSendPasswordResetPayload { email: String! } +"Autogenerated return type of AccountUpdate." +type AccountUpdatePayload { + errors: [AccountUpdateErrorsUnion!] + result: Account +} + type Anime implements Episodic & Media & WithTimestamps { "The recommended minimum age group for this media" ageRating: AgeRatingEnum @@ -455,6 +515,17 @@ type Anime implements Episodic & Media & WithTimestamps { last: Int, sort: [MediaReactionSortOption] ): MediaReactionConnection! + "A list of relationships for this media" + relationships( + "Returns the elements in the list that come after the specified cursor." + after: String, + "Returns the elements in the list that come before the specified cursor." + before: String, + "Returns the first _n_ elements from the list." + first: Int, + "Returns the last _n_ elements from the list." + last: Int + ): MediaRelationshipConnection! "The season this was released in" season: ReleaseSeasonEnum "Whether the media is Safe-for-Work" @@ -546,13 +617,13 @@ type AnimeConnection { totalCount: Int! } -"Autogenerated return type of AnimeCreate" +"Autogenerated return type of AnimeCreate." type AnimeCreatePayload { anime: Anime errors: [Error!] } -"Autogenerated return type of AnimeDelete" +"Autogenerated return type of AnimeDelete." type AnimeDeletePayload { anime: GenericDelete errors: [Error!] @@ -584,12 +655,62 @@ type AnimeMutations { ): AnimeUpdatePayload } -"Autogenerated return type of AnimeUpdate" +"Autogenerated return type of AnimeUpdate." type AnimeUpdatePayload { anime: Anime errors: [Error!] } +"A blocked user entry of an Account." +type Block implements WithTimestamps { + "User who got blocked." + blockedUser: Profile! + createdAt: ISO8601DateTime! + id: ID! + updatedAt: ISO8601DateTime! + "User who blocked." + user: Profile! +} + +"The connection type for Block." +type BlockConnection { + "A list of edges." + edges: [BlockEdge] + "A list of nodes." + nodes: [Block] + "Information to aid in pagination." + pageInfo: PageInfo! + "The total amount of nodes." + totalCount: Int! +} + +"Autogenerated return type of BlockCreate." +type BlockCreatePayload { + errors: [BlockCreateErrorsUnion!] + result: Block +} + +"Autogenerated return type of BlockDelete." +type BlockDeletePayload { + errors: [BlockDeleteErrorsUnion!] + result: Block +} + +"An edge in a connection." +type BlockEdge { + "A cursor for use in pagination." + cursor: String! + "The item at the end of the edge." + node: Block +} + +type BlockMutations { + "Create a Block entry." + create(input: BlockCreateInput!): BlockCreatePayload + "Delete a Block entry." + delete(input: BlockDeleteInput!): BlockDeletePayload +} + "Information about a specific Category" type Category implements WithTimestamps { "The child categories." @@ -840,13 +961,13 @@ type EpisodeConnection { totalCount: Int! } -"Autogenerated return type of EpisodeCreate" +"Autogenerated return type of EpisodeCreate." type EpisodeCreatePayload { episode: Episode errors: [Error!] } -"Autogenerated return type of EpisodeDelete" +"Autogenerated return type of EpisodeDelete." type EpisodeDeletePayload { episode: GenericDelete errors: [Error!] @@ -878,7 +999,7 @@ type EpisodeMutations { ): EpisodeUpdatePayload } -"Autogenerated return type of EpisodeUpdate" +"Autogenerated return type of EpisodeUpdate." type EpisodeUpdatePayload { episode: Episode errors: [Error!] @@ -907,6 +1028,18 @@ type FavoriteConnection { totalCount: Int! } +"Autogenerated return type of FavoriteCreate." +type FavoriteCreatePayload { + errors: [FavoriteCreateErrorsUnion!] + result: Favorite +} + +"Autogenerated return type of FavoriteDelete." +type FavoriteDeletePayload { + errors: [FavoriteDeleteErrorsUnion!] + result: Favorite +} + "An edge in a connection." type FavoriteEdge { "A cursor for use in pagination." @@ -915,6 +1048,13 @@ type FavoriteEdge { node: Favorite } +type FavoriteMutations { + "Add a favorite entry" + create(input: FavoriteCreateInput!): FavoriteCreatePayload + "Delete a favorite entry" + delete(input: FavoriteDeleteInput!): FavoriteDeletePayload +} + "Related media grouped together" type Franchise implements WithTimestamps { createdAt: ISO8601DateTime! @@ -1026,9 +1166,9 @@ type InstallmentEdge { node: Installment } -"The user library filterable by media_type and status" +"The user library" type Library { - "All Library Entries for a specific Media" + "All Library Entries" all( "Returns the elements in the list that come after the specified cursor." after: String, @@ -1038,10 +1178,11 @@ type Library { first: Int, "Returns the last _n_ elements from the list." last: Int, - mediaType: MediaTypeEnum!, + mediaType: MediaTypeEnum, + sort: [LibraryEntrySortOption], status: [LibraryEntryStatusEnum!] ): LibraryEntryConnection! - "Library Entries for a specific Media filtered by the completed status" + "Library Entries with the completed status" completed( "Returns the elements in the list that come after the specified cursor." after: String, @@ -1051,9 +1192,10 @@ type Library { first: Int, "Returns the last _n_ elements from the list." last: Int, - mediaType: MediaTypeEnum! + mediaType: MediaTypeEnum, + sort: [LibraryEntrySortOption] ): LibraryEntryConnection! - "Library Entries for a specific Media filtered by the current status" + "Library Entries with the current status" current( "Returns the elements in the list that come after the specified cursor." after: String, @@ -1063,9 +1205,10 @@ type Library { first: Int, "Returns the last _n_ elements from the list." last: Int, - mediaType: MediaTypeEnum! + mediaType: MediaTypeEnum, + sort: [LibraryEntrySortOption] ): LibraryEntryConnection! - "Library Entries for a specific Media filtered by the dropped status" + "Library Entries with the dropped status" dropped( "Returns the elements in the list that come after the specified cursor." after: String, @@ -1075,9 +1218,10 @@ type Library { first: Int, "Returns the last _n_ elements from the list." last: Int, - mediaType: MediaTypeEnum! + mediaType: MediaTypeEnum, + sort: [LibraryEntrySortOption] ): LibraryEntryConnection! - "Library Entries for a specific Media filtered by the on_hold status" + "Library Entries with the on_hold status" onHold( "Returns the elements in the list that come after the specified cursor." after: String, @@ -1087,9 +1231,10 @@ type Library { first: Int, "Returns the last _n_ elements from the list." last: Int, - mediaType: MediaTypeEnum! + mediaType: MediaTypeEnum, + sort: [LibraryEntrySortOption] ): LibraryEntryConnection! - "Library Entries for a specific Media filtered by the planned status" + "Library Entries with the planned status" planned( "Returns the elements in the list that come after the specified cursor." after: String, @@ -1099,7 +1244,8 @@ type Library { first: Int, "Returns the last _n_ elements from the list." last: Int, - mediaType: MediaTypeEnum! + mediaType: MediaTypeEnum, + sort: [LibraryEntrySortOption] ): LibraryEntryConnection! "Random anime or manga from this library" randomMedia(mediaType: MediaTypeEnum!, status: [LibraryEntryStatusEnum!]!): Media @@ -1169,13 +1315,13 @@ type LibraryEntryConnection { totalCount: Int! } -"Autogenerated return type of LibraryEntryCreate" +"Autogenerated return type of LibraryEntryCreate." type LibraryEntryCreatePayload { errors: [Error!] libraryEntry: LibraryEntry } -"Autogenerated return type of LibraryEntryDelete" +"Autogenerated return type of LibraryEntryDelete." type LibraryEntryDeletePayload { errors: [Error!] libraryEntry: GenericDelete @@ -1237,43 +1383,43 @@ type LibraryEntryMutations { ): LibraryEntryUpdateStatusByMediaPayload } -"Autogenerated return type of LibraryEntryUpdate" +"Autogenerated return type of LibraryEntryUpdate." type LibraryEntryUpdatePayload { errors: [Error!] libraryEntry: LibraryEntry } -"Autogenerated return type of LibraryEntryUpdateProgressById" +"Autogenerated return type of LibraryEntryUpdateProgressById." type LibraryEntryUpdateProgressByIdPayload { errors: [Error!] libraryEntry: LibraryEntry } -"Autogenerated return type of LibraryEntryUpdateProgressByMedia" +"Autogenerated return type of LibraryEntryUpdateProgressByMedia." type LibraryEntryUpdateProgressByMediaPayload { errors: [Error!] libraryEntry: LibraryEntry } -"Autogenerated return type of LibraryEntryUpdateRatingById" +"Autogenerated return type of LibraryEntryUpdateRatingById." type LibraryEntryUpdateRatingByIdPayload { errors: [Error!] libraryEntry: LibraryEntry } -"Autogenerated return type of LibraryEntryUpdateRatingByMedia" +"Autogenerated return type of LibraryEntryUpdateRatingByMedia." type LibraryEntryUpdateRatingByMediaPayload { errors: [Error!] libraryEntry: LibraryEntry } -"Autogenerated return type of LibraryEntryUpdateStatusById" +"Autogenerated return type of LibraryEntryUpdateStatusById." type LibraryEntryUpdateStatusByIdPayload { errors: [Error!] libraryEntry: LibraryEntry } -"Autogenerated return type of LibraryEntryUpdateStatusByMedia" +"Autogenerated return type of LibraryEntryUpdateStatusByMedia." type LibraryEntryUpdateStatusByMediaPayload { errors: [Error!] libraryEntry: LibraryEntry @@ -1339,6 +1485,8 @@ type Manga implements Media & WithTimestamps { last: Int, sort: [MediaCategorySortOption] ): CategoryConnection! + "Get a specific chapter of the manga." + chapter(number: Int!): Chapter "The number of chapters in this manga." chapterCount: Int "The estimated number of chapters in this manga." @@ -1353,7 +1501,7 @@ type Manga implements Media & WithTimestamps { first: Int, "Returns the last _n_ elements from the list." last: Int, - sort: [CharacterVoiceSortOption] + sort: [ChapterSortOption] ): ChapterConnection "The characters who starred in this media" characters( @@ -1456,6 +1604,17 @@ type Manga implements Media & WithTimestamps { last: Int, sort: [MediaReactionSortOption] ): MediaReactionConnection! + "A list of relationships for this media" + relationships( + "Returns the elements in the list that come after the specified cursor." + after: String, + "Returns the elements in the list that come before the specified cursor." + before: String, + "Returns the first _n_ elements from the list." + first: Int, + "Returns the last _n_ elements from the list." + last: Int + ): MediaRelationshipConnection! "Whether the media is Safe-for-Work" sfw: Boolean! "The URL-friendly identifier of this media" @@ -1490,6 +1649,18 @@ type Manga implements Media & WithTimestamps { userCountRank: Int "The number of volumes in this manga." volumeCount: Int + "The volumes in the manga." + volumes( + "Returns the elements in the list that come after the specified cursor." + after: String, + "Returns the elements in the list that come before the specified cursor." + before: String, + "Returns the first _n_ elements from the list." + first: Int, + "Returns the last _n_ elements from the list." + last: Int, + sort: [VolumeSortOption] + ): VolumeConnection } type MangaAmountConsumed implements AmountConsumed { @@ -1563,13 +1734,13 @@ type MappingConnection { totalCount: Int! } -"Autogenerated return type of MappingCreate" +"Autogenerated return type of MappingCreate." type MappingCreatePayload { errors: [Error!] mapping: Mapping } -"Autogenerated return type of MappingDelete" +"Autogenerated return type of MappingDelete." type MappingDeletePayload { errors: [Error!] mapping: GenericDelete @@ -1601,7 +1772,7 @@ type MappingMutations { ): MappingUpdatePayload } -"Autogenerated return type of MappingUpdate" +"Autogenerated return type of MappingUpdate." type MappingUpdatePayload { errors: [Error!] mapping: Mapping @@ -1747,6 +1918,18 @@ type MediaReactionConnection { totalCount: Int! } +"Autogenerated return type of MediaReactionCreate." +type MediaReactionCreatePayload { + errors: [MediaReactionCreateErrorsUnion!] + result: MediaReaction +} + +"Autogenerated return type of MediaReactionDelete." +type MediaReactionDeletePayload { + errors: [MediaReactionDeleteErrorsUnion!] + result: MediaReaction +} + "An edge in a connection." type MediaReactionEdge { "A cursor for use in pagination." @@ -1755,6 +1938,61 @@ type MediaReactionEdge { node: MediaReaction } +"Autogenerated return type of MediaReactionLike." +type MediaReactionLikePayload { + errors: [MediaReactionLikeErrorsUnion!] + result: MediaReaction +} + +type MediaReactionMutations { + "Share a brief reaction to a media, tied to your library entry" + create(input: MediaReactionCreateInput!): MediaReactionCreatePayload + "Delete a mutation" + delete(input: MediaReactionDeleteInput!): MediaReactionDeletePayload + "Like a media reaction" + like(input: MediaReactionLikeInput!): MediaReactionLikePayload + "Remove your like from a media reaction" + unlike(input: MediaReactionUnlikeInput!): MediaReactionUnlikePayload +} + +"Autogenerated return type of MediaReactionUnlike." +type MediaReactionUnlikePayload { + errors: [MediaReactionUnlikeErrorsUnion!] + result: MediaReaction +} + +"A relationship from one media to another" +type MediaRelationship implements WithTimestamps { + createdAt: ISO8601DateTime! + "The destination media" + destination: Media! + "The kind of relationship" + kind: MediaRelationshipKindEnum! + "The source media" + source: Media! + updatedAt: ISO8601DateTime! +} + +"The connection type for MediaRelationship." +type MediaRelationshipConnection { + "A list of edges." + edges: [MediaRelationshipEdge] + "A list of nodes." + nodes: [MediaRelationship] + "Information to aid in pagination." + pageInfo: PageInfo! + "The total amount of nodes." + totalCount: Int! +} + +"An edge in a connection." +type MediaRelationshipEdge { + "A cursor for use in pagination." + cursor: String! + "The item at the end of the edge." + node: MediaRelationship +} + "Information about a person working on an anime" type MediaStaff implements WithTimestamps { createdAt: ISO8601DateTime! @@ -1793,14 +2031,50 @@ type Mutation { "Create a new Kitsu account" accountCreate(input: AccountCreateInput!): AccountCreatePayload anime: AnimeMutations! + block: BlockMutations! episode: EpisodeMutations! + favorite: FavoriteMutations! libraryEntry: LibraryEntryMutations! mapping: MappingMutations! + mediaReaction: MediaReactionMutations! post: PostMutations! pro: ProMutations! + profile: ProfileMutations! + profileLink: ProfileLinkMutations! wikiSubmission: WikiSubmissionMutations! } +"The mutation requires an authenticated logged-in user session, and none was provided or the session has expired. The recommended action varies depending on your application and whether you provided the bearer token in the `Authorization` header or not. If you did, you should probably attempt to refresh the token, and if that fails, prompt the user to log in again. If you did not provide a bearer token, you should just prompt the user to log in." +type NotAuthenticatedError implements Error { + "The error code." + code: String + "A description of the error" + message: String! + "Which input value this error came from" + path: [String!] +} + +"The mutation requires higher permissions than the current user or token has. This is a bit vague, but it generally means you're attempting to modify an object you don't own, or perform an administrator action without being an administrator. It could also mean your token does not have the required scopes to perform the action. The recommended action is to display a message to the user informing them that their action failed and that retrying will generally *not* help." +type NotAuthorizedError implements Error { + action: String + "The error code." + code: String + "A description of the error" + message: String! + "Which input value this error came from" + path: [String!] +} + +"An object required for your mutation was unable to be located. Usually this means the object you're attempting to modify or delete does not exist. The recommended action is to display a message to the user informing them that their action failed and that retrying will generally *not* help." +type NotFoundError implements Error { + "The error code." + code: String + "A description of the error" + message: String! + "Which input value this error came from" + path: [String!] +} + "Information about pagination in a connection." type PageInfo { "When paginating forwards, the cursor to continue." @@ -1911,6 +2185,8 @@ type Post implements WithTimestamps { lockedReason: LockedReasonEnum "The media tagged in this post." media: Media + "The profile of the target user of the post." + targetProfile: Profile! updatedAt: ISO8601DateTime! } @@ -1926,7 +2202,7 @@ type PostConnection { totalCount: Int! } -"Autogenerated return type of PostCreate" +"Autogenerated return type of PostCreate." type PostCreatePayload { errors: [Error!] post: Post @@ -1940,7 +2216,7 @@ type PostEdge { node: Post } -"Autogenerated return type of PostLock" +"Autogenerated return type of PostLock." type PostLockPayload { errors: [Error!] post: Post @@ -1964,7 +2240,7 @@ type PostMutations { ): PostUnlockPayload } -"Autogenerated return type of PostUnlock" +"Autogenerated return type of PostUnlock." type PostUnlockPayload { errors: [Error!] post: Post @@ -1985,12 +2261,12 @@ type ProMutations { unsubscribe: ProUnsubscribePayload } -"Autogenerated return type of ProSetDiscord" +"Autogenerated return type of ProSetDiscord." type ProSetDiscordPayload { discord: String! } -"Autogenerated return type of ProSetMessage" +"Autogenerated return type of ProSetMessage." type ProSetMessagePayload { message: String! } @@ -2007,7 +2283,7 @@ type ProSubscription implements WithTimestamps { updatedAt: ISO8601DateTime! } -"Autogenerated return type of ProUnsubscribe" +"Autogenerated return type of ProUnsubscribe." type ProUnsubscribePayload { expiresAt: ISO8601DateTime } @@ -2201,6 +2477,27 @@ type ProfileEdge { node: Profile } +"Autogenerated return type of ProfileLinkCreate." +type ProfileLinkCreatePayload { + errors: [ProfileLinkCreateErrorsUnion!] + result: SiteLink +} + +"Autogenerated return type of ProfileLinkDelete." +type ProfileLinkDeletePayload { + errors: [ProfileLinkDeleteErrorsUnion!] + result: SiteLink +} + +type ProfileLinkMutations { + "Add a profile link." + create(input: ProfileLinkCreateInput!): ProfileLinkCreatePayload + "Delete a profile link." + delete(input: ProfileLinkDeleteInput!): ProfileLinkDeletePayload + "Update a profile link." + update(input: ProfileLinkUpdateInput!): ProfileLinkUpdatePayload +} + "An external site that can be linked to a user." type ProfileLinkSite implements WithTimestamps { createdAt: ISO8601DateTime! @@ -2214,6 +2511,17 @@ type ProfileLinkSite implements WithTimestamps { validateReplace: String! } +"Autogenerated return type of ProfileLinkUpdate." +type ProfileLinkUpdatePayload { + errors: [ProfileLinkUpdateErrorsUnion!] + result: SiteLink +} + +type ProfileMutations { + "Update the profile of the current user." + update(input: ProfileUpdateInput!): ProfileUpdatePayload +} + "The different types of user stats that we calculate." type ProfileStats { "The total amount of anime you have watched over your whole life." @@ -2226,6 +2534,12 @@ type ProfileStats { mangaCategoryBreakdown: MangaCategoryBreakdown! } +"Autogenerated return type of ProfileUpdate." +type ProfileUpdatePayload { + errors: [ProfileUpdateErrorsUnion!] + result: Profile +} + type Query { "All Anime in the Kitsu database" anime( @@ -2250,6 +2564,17 @@ type Query { last: Int, status: ReleaseStatusEnum! ): AnimeConnection + "All blocked user of the current account." + blocks( + "Returns the elements in the list that come after the specified cursor." + after: String, + "Returns the elements in the list that come before the specified cursor." + before: String, + "Returns the first _n_ elements from the list." + first: Int, + "Returns the last _n_ elements from the list." + last: Int + ): BlockConnection "All Categories in the Kitsu Database" categories( "Returns the elements in the list that come after the specified cursor." @@ -2263,6 +2588,8 @@ type Query { ): CategoryConnection "Kitsu account details. You must supply an Authorization token in header." currentAccount: Account + "Your Kitsu profile. You must supply an Authorization token in header." + currentProfile: Profile "Find a single Anime by ID" findAnimeById(id: ID!): Anime "Find a single Anime by Slug" @@ -2271,6 +2598,8 @@ type Query { findCategoryById(id: ID!): Category "Find a single Category by Slug" findCategoryBySlug(slug: String!): Category + "Find a single Manga Chapter by ID" + findChapterById(id: ID!): Chapter "Find a single Character by ID" findCharacterById(id: ID!): Character "Find a single Character by Slug" @@ -2795,6 +3124,7 @@ type TitlesList { translatedLocale: String } +"The mutation failed validation. This is usually because the input provided was invalid in some way, such as a missing required field or an invalid value for a field. There may be multiple of this error, one for each failed validation, and the `path` will generally refer to a location in the input parameters, that you can map back to the input fields in your form. The recommended action is to display validation errors to the user, and allow them to correct the input and resubmit." type ValidationError implements Error { "The error code." code: String @@ -2844,7 +3174,7 @@ type VideoEdge { } "A manga volume which can contain multiple chapters." -type Volume implements WithTimestamps { +type Volume implements Unit & WithTimestamps { "The chapters in this volume." chapters( "Returns the elements in the list that come after the specified cursor." @@ -2856,21 +3186,47 @@ type Volume implements WithTimestamps { "Returns the last _n_ elements from the list." last: Int ): ChapterConnection + "The number of chapters in this volume." + chaptersCount: Int createdAt: ISO8601DateTime! + "A brief summary or description of the unit" + description(locales: [String!]): Map! id: ID! "The isbn number of this volume." isbn: [String!]! "The manga this volume is in." manga: Manga! - "The volume number." + "The sequence number of this unit" number: Int! "The date when this chapter was released." published: ISO8601Date - "The titles for this chapter in various locales" + "A thumbnail image for the unit" + thumbnail: Image + "The titles for this unit in various locales" titles: TitlesList! updatedAt: ISO8601DateTime! } +"The connection type for Volume." +type VolumeConnection { + "A list of edges." + edges: [VolumeEdge] + "A list of nodes." + nodes: [Volume] + "Information to aid in pagination." + pageInfo: PageInfo! + "The total amount of nodes." + totalCount: Int! +} + +"An edge in a connection." +type VolumeEdge { + "A cursor for use in pagination." + cursor: String! + "The item at the end of the edge." + node: Volume +} + "A Wiki Submission is used to either create or edit existing data in our database. This will allow a simple and convient way for users to submit issues/corrections without all the work being left to the mods." type WikiSubmission implements WithTimestamps { "The user who created this draft" @@ -2900,7 +3256,7 @@ type WikiSubmissionConnection { totalCount: Int! } -"Autogenerated return type of WikiSubmissionCreateDraft" +"Autogenerated return type of WikiSubmissionCreateDraft." type WikiSubmissionCreateDraftPayload { errors: [Error!] wikiSubmission: WikiSubmission @@ -2932,13 +3288,13 @@ type WikiSubmissionMutations { ): WikiSubmissionUpdateDraftPayload } -"Autogenerated return type of WikiSubmissionSubmitDraft" +"Autogenerated return type of WikiSubmissionSubmitDraft." type WikiSubmissionSubmitDraftPayload { errors: [Error!] wikiSubmission: WikiSubmission } -"Autogenerated return type of WikiSubmissionUpdateDraft" +"Autogenerated return type of WikiSubmissionUpdateDraft." type WikiSubmissionUpdateDraftPayload { errors: [Error!] wikiSubmission: WikiSubmission @@ -2967,6 +3323,12 @@ enum AnimeSubtypeEnum { TV } +enum ChapterSortEnum { + CREATED_AT + NUMBER + UPDATED_AT +} + enum CharacterRoleEnum { "A background character who generally only appears in a few episodes" BACKGROUND @@ -3005,6 +3367,13 @@ enum ExternalIdentityProviderEnum { FACEBOOK } +enum FavoriteEnum { + ANIME + CHARACTER + MANGA + PERSON +} + enum FollowSortEnum { CREATED_AT FOLLOWING_FOLLOWED @@ -3031,6 +3400,18 @@ enum InstallmentTagEnum { SPINOFF } +enum LibraryEntrySortEnum { + CREATED_AT + FINISHED_AT + MEDIA_TYPE + PROGRESS + RATING + STARTED_AT + STATUS + TITLE + UPDATED_AT +} + enum LibraryEntryStatusEnum { "The user completed this media." COMPLETED @@ -3142,6 +3523,22 @@ enum MediaReactionVoteSortEnum { FOLLOWING } +"The relationship kind from one media entry to another" +enum MediaRelationshipKindEnum { + ADAPTATION + ALTERNATIVE_SETTING + ALTERNATIVE_VERSION + CHARACTER + FULL_STORY + OTHER + PARENT_STORY + PREQUEL + SEQUEL + SIDE_STORY + SPINOFF + SUMMARY +} + "これはアニメやマンガです" enum MediaTypeEnum { ANIME @@ -3168,6 +3565,38 @@ enum ProTierEnum { PRO } +enum ProfileLinksSitesEnum { + BATTLENET + DAILYMOTION + DEVIANTART + DISCORD + DRIBBBLE + FACEBOOK + GITHUB + GOOGLE + IMDB + INSTAGRAM + KICKSTARTER + LASTFM + LETTERBOXD + MEDIUM + MOBCRUSH + OSU + PATREON + PLAYERME + RAPTR + REDDIT + SOUNDCLOUD + STEAM + TRAKT + TUMBLR + TWITCH + TWITTER + VIMEO + WEBSITE + YOUTUBE +} + enum RatingSystemEnum { "1-20 in increments of 1 displayed as 1-10 in 0.5 increments" ADVANCED @@ -3229,6 +3658,15 @@ enum ReportStatusEnum { RESOLVED } +enum SfwFilterPreferenceEnum { + "Adult Content Everywhere" + NSFW_EVERYWHERE + "Limit to Following Feed" + NSFW_SOMETIMES + "Hide All Adult Content" + SFW +} + enum SitePermissionEnum { "Administrator/staff member of Kitsu" ADMIN @@ -3238,6 +3676,13 @@ enum SitePermissionEnum { DATABASE_MOD } +enum SiteThemeEnum { + "Dark Theme" + DARK + "Light Theme" + LIGHT +} + enum SortDirection { ASCENDING DESCENDING @@ -3252,6 +3697,17 @@ enum TitleLanguagePreferenceEnum { ROMANIZED } +enum VolumeSortEnum { + CREATED_AT + NUMBER + UPDATED_AT +} + +enum WaifuOrHusbandoEnum { + HUSBANDO + WAIFU +} + enum WikiSubmissionSortEnum { CREATED_AT UPDATED_AT @@ -3281,6 +3737,13 @@ scalar Map scalar Upload +input AccountChangePasswordInput { + "The new password to set" + newPassword: String! + "The current, existing password for the account" + oldPassword: String! +} + input AccountCreateInput { "The email address to reset the password for" email: String! @@ -3297,6 +3760,21 @@ input AccountExternalIdentityInput { provider: ExternalIdentityProviderEnum! } +input AccountUpdateInput { + "The country of the user" + country: String + "How media titles will get visualized" + preferredTitleLanguage: TitleLanguagePreferenceEnum + "The preferred rating system" + ratingSystem: RatingSystemEnum + "The SFW Filter setting" + sfwFilterPreference: SfwFilterPreferenceEnum + "The theme displayed on Kitsu" + siteTheme: SiteThemeEnum + "The time zone of the user" + timeZone: String +} + input AnimeCreateInput { ageRating: AgeRatingEnum ageRatingGuide: String @@ -3328,6 +3806,21 @@ input AnimeUpdateInput { youtubeTrailerVideoId: String } +input BlockCreateInput { + "The id of the user to block." + blockedId: ID! +} + +input BlockDeleteInput { + "The id of the block." + blockId: ID! +} + +input ChapterSortOption { + direction: SortDirection! + on: ChapterSortEnum! +} + input CharacterVoiceSortOption { direction: SortDirection! on: CharacterVoiceSortEnum! @@ -3369,6 +3862,18 @@ input EpisodeUpdateInput { titles: TitlesListInput } +input FavoriteCreateInput { + "The id of the entry" + id: ID! + "The type of the entry." + type: FavoriteEnum! +} + +input FavoriteDeleteInput { + "The id of the favorite entry." + favoriteId: ID! +} + input FollowSortOption { direction: SortDirection! on: FollowSortEnum! @@ -3398,6 +3903,11 @@ input LibraryEntryCreateInput { volumesOwned: Int = 0 } +input LibraryEntrySortOption { + direction: SortDirection! + on: LibraryEntrySortEnum! +} + input LibraryEntryUpdateInput { finishedAt: ISO8601DateTime id: ID! @@ -3477,11 +3987,33 @@ input MediaCharacterSortOption { on: MediaCharacterSortEnum! } +input MediaReactionCreateInput { + "The ID of the entry in your library to react to" + libraryEntryId: ID! + "The text of the reaction to the media" + reaction: String! +} + +input MediaReactionDeleteInput { + "The reaction to delete" + mediaReactionId: ID! +} + +input MediaReactionLikeInput { + "The reaction to like" + mediaReactionId: ID! +} + input MediaReactionSortOption { direction: SortDirection! on: MediaReactionSortEnum! } +input MediaReactionUnlikeInput { + "The reaction to remove your like from" + mediaReactionId: ID! +} + input MediaReactionVoteSortOption { direction: SortDirection! on: MediaReactionVoteSortEnum! @@ -3495,6 +4027,7 @@ input PostCreateInput { mediaType: MediaTypeEnum spoiledUnitId: ID spoiledUnitType: String + targetUserId: ID } input PostLikeSortOption { @@ -3516,6 +4049,44 @@ input PostUnlockInput { id: ID! } +input ProfileLinkCreateInput { + "The website." + profileLinkSite: ProfileLinksSitesEnum! + "The url of the profile link" + url: String! +} + +input ProfileLinkDeleteInput { + "The profile link to delete" + profileLink: ProfileLinksSitesEnum! +} + +input ProfileLinkUpdateInput { + "The website." + profileLinkSite: ProfileLinksSitesEnum! + "The url of the profile link" + url: String! +} + +input ProfileUpdateInput { + "About section of the profile." + about: String + "The birthday of the user." + birthday: Date + "The preferred gender of the user." + gender: String + "Your ID or the one of another user." + id: ID + "The display name of the user" + name: String + "The slug (@username) of the user" + slug: String + "The id of the waifu or husbando." + waifuId: ID + "The user preference of their partner." + waifuOrHusbando: WaifuOrHusbandoEnum +} + input TitlesListInput { alternatives: [String!] canonical: String @@ -3523,6 +4094,11 @@ input TitlesListInput { localized: Map } +input VolumeSortOption { + direction: SortDirection! + on: VolumeSortEnum! +} + input WikiSubmissionCreateDraftInput { data: JSON! notes: String diff --git a/src/Ion/CollectionBase.php b/src/Ion/CollectionBase.php new file mode 100644 index 00000000..e69de29b diff --git a/tests/AnimeClient/API/Kitsu/Transformer/__snapshots__/MangaListTransformerTest__testTransform__1.yml b/tests/AnimeClient/API/Kitsu/Transformer/__snapshots__/MangaListTransformerTest__testTransform__1.yml index e9a23294..e2b80994 100644 --- a/tests/AnimeClient/API/Kitsu/Transformer/__snapshots__/MangaListTransformerTest__testTransform__1.yml +++ b/tests/AnimeClient/API/Kitsu/Transformer/__snapshots__/MangaListTransformerTest__testTransform__1.yml @@ -4,7 +4,7 @@ mal_id: '28091' chapters: { read: 94, total: '-' } volumes: { read: '-', total: '-' } - manga: { empty: false, genres: { }, id: '21733', image: 'https://media.kitsu.io/manga/poster_images/21733/small.jpg', slug: tonari-no-seki-kun, title: 'Tonari no Seki-kun', titles: ['My Neighbour Seki', となりの関くん], type: Manga, url: 'https://kitsu.io/manga/tonari-no-seki-kun' } + manga: { empty: false, genres: { }, id: '21733', image: 'https://media.kitsu.io/manga/poster_images/21733/small.jpg', slug: tonari-no-seki-kun, title: 'Tonari no Seki-kun', titles: ['My Neighbour Seki', となりの関くん], type: Manga, url: 'https://kitsu.app/manga/tonari-no-seki-kun' } reading_status: current notes: '' rereading: false @@ -16,7 +16,7 @@ mal_id: '60815' chapters: { read: 87, total: '-' } volumes: { read: '-', total: '-' } - manga: { empty: false, genres: { }, id: '25491', image: 'https://media.kitsu.io/manga/poster_images/25491/small.jpg', slug: joshikausei, title: Joshikausei, titles: [女子かう生], type: Manga, url: 'https://kitsu.io/manga/joshikausei' } + manga: { empty: false, genres: { }, id: '25491', image: 'https://media.kitsu.io/manga/poster_images/25491/small.jpg', slug: joshikausei, title: Joshikausei, titles: [女子かう生], type: Manga, url: 'https://kitsu.app/manga/joshikausei' } reading_status: current notes: 'Wordless, and it works.' rereading: false diff --git a/tests/AnimeClient/API/Kitsu/Transformer/__snapshots__/MangaTransformerTest__testTransform__1.yml b/tests/AnimeClient/API/Kitsu/Transformer/__snapshots__/MangaTransformerTest__testTransform__1.yml index b51f83bc..b0a7b8ef 100644 --- a/tests/AnimeClient/API/Kitsu/Transformer/__snapshots__/MangaTransformerTest__testTransform__1.yml +++ b/tests/AnimeClient/API/Kitsu/Transformer/__snapshots__/MangaTransformerTest__testTransform__1.yml @@ -11,7 +11,7 @@ genres: - 'Slice of Life' links: Anilist: 'https://anilist.co/anime/56769/' - Kitsu: 'https://kitsu.io/manga/bokura-wa-minna-kawaisou' + Kitsu: 'https://kitsu.app/manga/bokura-wa-minna-kawaisou' MyAnimeList: 'https://myanimelist.net/manga/26769' id: '20286' manga_type: MANGA @@ -26,5 +26,5 @@ titles: titles_more: - 'The Kawai Complex Guide to Manors and Hostel' - 僕らはみんな河合荘 -url: 'https://kitsu.io/manga/bokura-wa-minna-kawaisou' +url: 'https://kitsu.app/manga/bokura-wa-minna-kawaisou' volume_count: 10