Overview
The GraphQL schema defines the structure of data available in the AnimeThemes Web application. This page documents all available types, their fields, and relationships.Core Types
Anime
Represents an anime entry in the database.id: Unique identifiername: Official anime nameslug: URL-friendly identifieryear: Year of premiereseason: Season of premiere (Winter, Spring, Summer, Fall)synopsis: Description of the animemedia_format: Format (TV, Movie, OVA, etc.)synonyms: Alternative titlesthemes: Opening and ending themesseries: Related seriesresources: External links (AniList, MyAnimeList, etc.)images: Cover imagesstudios: Animation studios
Theme
Represents an opening or ending theme.id: Unique identifiertype: Theme type (OP for opening, ED for ending)sequence: Theme number (1, 2, 3, etc.)song: Associated songgroup: Theme group (if part of a group)anime: Associated animeentries: Different versions of the theme
Entry
Represents a specific version of a theme.id: Unique identifierversion: Version numberepisodes: Episode range this version appears innsfw: Whether the video contains NSFW contentspoiler: Whether the video contains spoilerstheme: Parent themevideos: Available video files
Video
Represents a video file.filename: Full filenamebasename: Base filename without extensionlink: Direct download/stream URLresolution: Video resolution (480, 720, 1080)nc: No credits (creditless version)subbed: Has subtitleslyrics: Has lyrics overlayuncen: Uncensored versionsource: Video source (WEB, BD, DVD, etc.)overlap: Transition overlap typeaudio: Associated audio filescript: Associated subtitle script
Artist
Represents a musical artist or group.id: Unique identifiername: Artist nameslug: URL-friendly identifierinformation: Biography or additional informationperformances: Songs performed by the artistmembers: Group members (if this is a group)groups: Groups this artist is a member ofresources: External linksimages: Artist images
Song
Represents a musical composition.id: Unique identifiertitle: Song titlethemes: Themes using this songperformances: Artist performances of this song
Performance
Represents an artist’s performance of a song.song: The performed songartist: The performing artistalias: Artist alias used for this performanceas: Character name (if performing as a character)
Supporting Types
Series
Represents a series of related anime.Studio
Represents an animation studio.Year and Season
Image
Represents an image file.Small Cover: Small thumbnailLarge Cover: Large cover imageGrill: Character artwork
Resource
Represents an external resource link.- AniDB
- AniList
- Anime-Planet
- Kitsu
- MyAnimeList
- Official Site
User and Playlist Types
User Types
Playlist Types
Special Types
FeaturedTheme
Announcement
Page
Enums
VideoSource
VideoOverlap
Interfaces
ResourceWithImages
Implemented by types that can have images.- Anime
- Artist
- Studio
Type Generation
The project uses GraphQL Code Generator to create TypeScript types from the schema. Configuration is in/codegen.ts:
/src/generated/graphql.ts- Query and mutation types/src/generated/graphql-resolvers.ts- Resolver types
Type Mappers
The codegen configuration maps GraphQL types to API response types:Next Steps
- GraphQL Queries - Learn how to query these types
- GraphQL Resolvers - Understand how data is fetched
- Working with API - Guide to using the AnimeThemes API