FireAnime API Reference

Welcome to the official FireAnime API Reference (formerly FireAnime). This documentation provides the necessary information to interact with our backend services programmatically, allowing access to anime metadata, search functionality, community forums, and user-specific data.

Our API is built on top of ConnectRPC, a modern, lightweight, and fast framework that provides a seamless developer experience. ConnectRPC is fully compatible with HTTP/1.1 and HTTP/2, which means you can call these endpoints using standard HTTP requests (like curl, fetch, or Postman) or by using official ConnectRPC clients in your preferred language.

Service Stability & Support

Please be advised that the FireAnime API is under active development. API stability and backward compatibility are not guaranteed. Endpoints, request parameters, and response schemas are subject to change without prior notice. Developers should build their integrations with this flexibility in mind.

Access to this API is granted exclusively for private, non-commercial usage. Any commercial redistribution of data, high-frequency automated scraping, or usage that negatively impacts service performance for other users is strictly prohibited. By utilizing these endpoints, you agree to comply with our Terms of Use.

Rate Limiting

To ensure fair usage and maintain optimal performance for all users, rate limits are actively enforced across all endpoints. Excessive requests or abusive traffic patterns will result in temporary or permanent IP bans (HTTP 429 Too Many Requests). Please implement appropriate backoff strategies in your applications.


Getting Started

Base URL

All API requests should be prefixed with our base URL:

https://api.example.com

Protocol & Format

ConnectRPC supports standard HTTP POST requests with JSON. Every endpoint detailed below expects a POST request, and the request payload must be sent as application/json.

Required Headers:

  • Content-Type: application/json

Authentication

Endpoints that require authentication are marked with :auth="true". To authenticate, include your JWT token in the Authorization header as a Bearer token:

text
Authorization: Bearer YOUR_JWT_TOKEN

To obtain a JWT token, use the Login or Register endpoints found under the Auth section.


Auth

Login

Login authenticates a user with their credentials and returns a JWT session token.

POST/api.v1.auth.AuthService/Login

Service: AuthService

Request

Type: api.v1.auth.LoginRequest

json
{
  "username": "string",
  "password": "string"
}

Response

Type: api.v1.auth.AuthResponse

json
{
  "token": "string",
  "isAdmin": "bool"
}

Register

Register creates a new user account and returns a JWT session token upon success.

POST/api.v1.auth.AuthService/Register

Service: AuthService

Request

Type: api.v1.auth.RegisterRequest

json
{
  "username": "string",
  "password": "string",
  "captchaResponse": "string"
}

Response

Type: api.v1.auth.AuthResponse

json
{
  "token": "string",
  "isAdmin": "bool"
}

Anime

ListAnimes

ListAnimes returns a paginated list of all available animes in the system.

POST/api.v1.anime.AnimeService/ListAnimes

Service: AnimeService

Request

Type: api.v1.anime.ListAnimesRequest

json
{
  "page": "int32"
}

Response

Type: api.v1.anime.ListAnimesResponse

json
{
  "data": [
    {
      "id": "uint32",
      "slug": "string",
      "title": "string",
      "alternateTitles": "string",
      "generes": [
        "string"
      ],
      "imdb": "string",
      "tmdb": "int32",
      "desc": "string",
      "start": "int32",
      "end": "int32",
      "poster": "string",
      "voteAvg": "float",
      "voteCount": "int32",
      "createdAt": "string",
      "updatedAt": "int64",
      "lastSync": "string",
      "tmdbType": "string",
      "anilist": "int32",
      "anilistSyncAttempts": "int32",
      "anilistSuggestedId": "int32",
      "anilistSuggestedTitle": "string",
      "anilistSuggestedPoster": "string",
      "anilistSuggestedScore": "float",
      "anilistReviewRequired": "bool",
      "backdrop": "string",
      "itemType": "string",
      "blockSync": "bool",
      "blockEpisodeSync": "bool",
      "excludeFromAnilist": "bool",
      "autoCache": "bool",
      "deletedAt": "string",
      "animeSeasons": [
        {
          "id": "uint32",
          "createdAt": "string",
          "updatedAt": "int64",
          "season": "string",
          "animeId": "uint32",
          "autoCache": "bool",
          "animeEpisodes": [
            {
              "id": "uint32",
              "createdAt": "string",
              "updatedAt": "int64",
              "episode": "string",
              "image": "string",
              "animeSeasonId": "uint32",
              "lastSync": "string",
              "deletedAt": "string",
              "animeEpisodeLinks": [
                {
                  "id": "uint32",
                  "createdAt": "string",
                  "updatedAt": "int64",
                  "link": "string",
                  "lang": "string",
                  "animeEpisodeId": "uint32",
                  "createdById": "string",
                  "name": "string"
                }
              ],
              "proxyCaches": [
                {
                  "id": "uint32",
                  "createdAt": "string",
                  "updatedAt": "string",
                  "dirName": "string",
                  "source": "string",
                  "sourceUrl": "string",
                  "status": "string",
                  "statusMessage": "string",
                  "language": "string",
                  "animeSlug": "string",
                  "animeTitle": "string",
                  "season": "string",
                  "episode": "string"
                }
              ],
              "episodeNotice": "string"
            }
          ]
        }
      ],
      "animeGroups": [
        {
          "id": "uint32",
          "animeId": "uint32",
          "anilistId": "int32",
          "slug": "string",
          "title": "string",
          "romajiTitle": "string",
          "nativeTitle": "string",
          "desc": "string",
          "cover": "string",
          "startDate": "string",
          "endDate": "string",
          "status": "string",
          "episodes": "int32",
          "format": "string",
          "season": "string",
          "year": "int32",
          "generes": [
            "string"
          ],
          "tags": [
            "string"
          ],
          "isHidden": "bool",
          "prequelId": "uint32",
          "sequelId": "uint32",
          "deletedAt": "string",
          "animeGroupEpisodes": [
            {
              "id": "uint32",
              "animeGroupId": "uint32",
              "animeEpisodeId": "uint32",
              "order": "int32",
              "animeEpisode": {
                "id": "uint32",
                "createdAt": "string",
                "updatedAt": "int64",
                "episode": "string",
                "image": "string",
                "animeSeasonId": "uint32",
                "lastSync": "string",
                "deletedAt": "string",
                "animeEpisodeLinks": [
                  {
                    "id": "uint32",
                    "createdAt": "string",
                    "updatedAt": "int64",
                    "link": "string",
                    "lang": "string",
                    "animeEpisodeId": "uint32",
                    "createdById": "string",
                    "name": "string"
                  }
                ],
                "proxyCaches": [
                  {
                    "id": "uint32",
                    "createdAt": "string",
                    "updatedAt": "string",
                    "dirName": "string",
                    "source": "string",
                    "sourceUrl": "string",
                    "status": "string",
                    "statusMessage": "string",
                    "language": "string",
                    "animeSlug": "string",
                    "animeTitle": "string",
                    "season": "string",
                    "episode": "string"
                  }
                ],
                "episodeNotice": "string"
              }
            }
          ],
          "animeGroupAutoSeasons": [
            {
              "id": "uint32",
              "animeGroupId": "uint32",
              "animeSeasonId": "uint32"
            }
          ]
        }
      ],
      "takedownExpiresAt": "string",
      "takedownAuthOnly": "bool"
    }
  ],
  "pages": "int32",
  "status": "int32"
}

PluckAnimes

PluckAnimes retrieves specific anime and episode metadata for a bulk list of identifiers.

POST/api.v1.anime.AnimeService/PluckAnimes

Service: AnimeService

Request

Type: api.v1.anime.PluckAnimesRequest

json
{
  "data": [
    {
      "slug": "string",
      "season": "string",
      "episode": "string",
      "position": "int32"
    }
  ]
}

Response

Type: api.v1.anime.PluckAnimesResponse

json
{
  "data": [
    {
      "animeId": "uint32",
      "anime": {
        "id": "uint32",
        "slug": "string",
        "title": "string",
        "alternateTitles": "string",
        "generes": [
          "string"
        ],
        "imdb": "string",
        "tmdb": "int32",
        "desc": "string",
        "start": "int32",
        "end": "int32",
        "poster": "string",
        "voteAvg": "float",
        "voteCount": "int32",
        "createdAt": "string",
        "updatedAt": "int64",
        "lastSync": "string",
        "tmdbType": "string",
        "anilist": "int32",
        "anilistSyncAttempts": "int32",
        "anilistSuggestedId": "int32",
        "anilistSuggestedTitle": "string",
        "anilistSuggestedPoster": "string",
        "anilistSuggestedScore": "float",
        "anilistReviewRequired": "bool",
        "backdrop": "string",
        "itemType": "string",
        "blockSync": "bool",
        "blockEpisodeSync": "bool",
        "excludeFromAnilist": "bool",
        "autoCache": "bool",
        "deletedAt": "string",
        "animeSeasons": [
          {
            "id": "uint32",
            "createdAt": "string",
            "updatedAt": "int64",
            "season": "string",
            "animeId": "uint32",
            "autoCache": "bool",
            "animeEpisodes": [
              {
                "id": "uint32",
                "createdAt": "string",
                "updatedAt": "int64",
                "episode": "string",
                "image": "string",
                "animeSeasonId": "uint32",
                "lastSync": "string",
                "deletedAt": "string",
                "animeEpisodeLinks": [
                  {
                    "id": "uint32",
                    "createdAt": "string",
                    "updatedAt": "int64",
                    "link": "string",
                    "lang": "string",
                    "animeEpisodeId": "uint32",
                    "createdById": "string",
                    "name": "string"
                  }
                ],
                "proxyCaches": [
                  {
                    "id": "uint32",
                    "createdAt": "string",
                    "updatedAt": "string",
                    "dirName": "string",
                    "source": "string",
                    "sourceUrl": "string",
                    "status": "string",
                    "statusMessage": "string",
                    "language": "string",
                    "animeSlug": "string",
                    "animeTitle": "string",
                    "season": "string",
                    "episode": "string"
                  }
                ],
                "episodeNotice": "string"
              }
            ]
          }
        ],
        "animeGroups": [
          {
            "id": "uint32",
            "animeId": "uint32",
            "anilistId": "int32",
            "slug": "string",
            "title": "string",
            "romajiTitle": "string",
            "nativeTitle": "string",
            "desc": "string",
            "cover": "string",
            "startDate": "string",
            "endDate": "string",
            "status": "string",
            "episodes": "int32",
            "format": "string",
            "season": "string",
            "year": "int32",
            "generes": [
              "string"
            ],
            "tags": [
              "string"
            ],
            "isHidden": "bool",
            "prequelId": "uint32",
            "sequelId": "uint32",
            "deletedAt": "string",
            "animeGroupEpisodes": [
              {
                "id": "uint32",
                "animeGroupId": "uint32",
                "animeEpisodeId": "uint32",
                "order": "int32",
                "animeEpisode": {
                  "id": "uint32",
                  "createdAt": "string",
                  "updatedAt": "int64",
                  "episode": "string",
                  "image": "string",
                  "animeSeasonId": "uint32",
                  "lastSync": "string",
                  "deletedAt": "string",
                  "animeEpisodeLinks": [
                    {
                      "id": "{}",
                      "createdAt": "{}",
                      "updatedAt": "{}",
                      "link": "{}",
                      "lang": "{}",
                      "animeEpisodeId": "{}",
                      "createdById": "{}",
                      "name": "{}"
                    }
                  ],
                  "proxyCaches": [
                    {
                      "id": "{}",
                      "createdAt": "{}",
                      "updatedAt": "{}",
                      "dirName": "{}",
                      "source": "{}",
                      "sourceUrl": "{}",
                      "status": "{}",
                      "statusMessage": "{}",
                      "language": "{}",
                      "animeSlug": "{}",
                      "animeTitle": "{}",
                      "season": "{}",
                      "episode": "{}"
                    }
                  ],
                  "episodeNotice": "string"
                }
              }
            ],
            "animeGroupAutoSeasons": [
              {
                "id": "uint32",
                "animeGroupId": "uint32",
                "animeSeasonId": "uint32"
              }
            ]
          }
        ],
        "takedownExpiresAt": "string",
        "takedownAuthOnly": "bool"
      },
      "season": "string",
      "episode": "string",
      "position": "int32"
    }
  ],
  "pages": "int32",
  "status": "int32"
}

ListAnimesByGenre

ListAnimesByGenre returns a paginated list of animes filtered by a specific genre.

POST/api.v1.anime.AnimeService/ListAnimesByGenre

Service: AnimeService

Request

Type: api.v1.anime.ListAnimesByGenreRequest

json
{
  "page": "int32",
  "genre": "string"
}

Response

Type: api.v1.anime.ListAnimesResponse

json
{
  "data": [
    {
      "id": "uint32",
      "slug": "string",
      "title": "string",
      "alternateTitles": "string",
      "generes": [
        "string"
      ],
      "imdb": "string",
      "tmdb": "int32",
      "desc": "string",
      "start": "int32",
      "end": "int32",
      "poster": "string",
      "voteAvg": "float",
      "voteCount": "int32",
      "createdAt": "string",
      "updatedAt": "int64",
      "lastSync": "string",
      "tmdbType": "string",
      "anilist": "int32",
      "anilistSyncAttempts": "int32",
      "anilistSuggestedId": "int32",
      "anilistSuggestedTitle": "string",
      "anilistSuggestedPoster": "string",
      "anilistSuggestedScore": "float",
      "anilistReviewRequired": "bool",
      "backdrop": "string",
      "itemType": "string",
      "blockSync": "bool",
      "blockEpisodeSync": "bool",
      "excludeFromAnilist": "bool",
      "autoCache": "bool",
      "deletedAt": "string",
      "animeSeasons": [
        {
          "id": "uint32",
          "createdAt": "string",
          "updatedAt": "int64",
          "season": "string",
          "animeId": "uint32",
          "autoCache": "bool",
          "animeEpisodes": [
            {
              "id": "uint32",
              "createdAt": "string",
              "updatedAt": "int64",
              "episode": "string",
              "image": "string",
              "animeSeasonId": "uint32",
              "lastSync": "string",
              "deletedAt": "string",
              "animeEpisodeLinks": [
                {
                  "id": "uint32",
                  "createdAt": "string",
                  "updatedAt": "int64",
                  "link": "string",
                  "lang": "string",
                  "animeEpisodeId": "uint32",
                  "createdById": "string",
                  "name": "string"
                }
              ],
              "proxyCaches": [
                {
                  "id": "uint32",
                  "createdAt": "string",
                  "updatedAt": "string",
                  "dirName": "string",
                  "source": "string",
                  "sourceUrl": "string",
                  "status": "string",
                  "statusMessage": "string",
                  "language": "string",
                  "animeSlug": "string",
                  "animeTitle": "string",
                  "season": "string",
                  "episode": "string"
                }
              ],
              "episodeNotice": "string"
            }
          ]
        }
      ],
      "animeGroups": [
        {
          "id": "uint32",
          "animeId": "uint32",
          "anilistId": "int32",
          "slug": "string",
          "title": "string",
          "romajiTitle": "string",
          "nativeTitle": "string",
          "desc": "string",
          "cover": "string",
          "startDate": "string",
          "endDate": "string",
          "status": "string",
          "episodes": "int32",
          "format": "string",
          "season": "string",
          "year": "int32",
          "generes": [
            "string"
          ],
          "tags": [
            "string"
          ],
          "isHidden": "bool",
          "prequelId": "uint32",
          "sequelId": "uint32",
          "deletedAt": "string",
          "animeGroupEpisodes": [
            {
              "id": "uint32",
              "animeGroupId": "uint32",
              "animeEpisodeId": "uint32",
              "order": "int32",
              "animeEpisode": {
                "id": "uint32",
                "createdAt": "string",
                "updatedAt": "int64",
                "episode": "string",
                "image": "string",
                "animeSeasonId": "uint32",
                "lastSync": "string",
                "deletedAt": "string",
                "animeEpisodeLinks": [
                  {
                    "id": "uint32",
                    "createdAt": "string",
                    "updatedAt": "int64",
                    "link": "string",
                    "lang": "string",
                    "animeEpisodeId": "uint32",
                    "createdById": "string",
                    "name": "string"
                  }
                ],
                "proxyCaches": [
                  {
                    "id": "uint32",
                    "createdAt": "string",
                    "updatedAt": "string",
                    "dirName": "string",
                    "source": "string",
                    "sourceUrl": "string",
                    "status": "string",
                    "statusMessage": "string",
                    "language": "string",
                    "animeSlug": "string",
                    "animeTitle": "string",
                    "season": "string",
                    "episode": "string"
                  }
                ],
                "episodeNotice": "string"
              }
            }
          ],
          "animeGroupAutoSeasons": [
            {
              "id": "uint32",
              "animeGroupId": "uint32",
              "animeSeasonId": "uint32"
            }
          ]
        }
      ],
      "takedownExpiresAt": "string",
      "takedownAuthOnly": "bool"
    }
  ],
  "pages": "int32",
  "status": "int32"
}

ListAnimesByViewCount

ListAnimesByViewCount returns animes sorted by their total lifetime view count.

POST/api.v1.anime.AnimeService/ListAnimesByViewCount

Service: AnimeService

Request

Type: api.v1.anime.ListAnimesRequest

json
{
  "page": "int32"
}

Response

Type: api.v1.anime.ListAnimesResponse

json
{
  "data": [
    {
      "id": "uint32",
      "slug": "string",
      "title": "string",
      "alternateTitles": "string",
      "generes": [
        "string"
      ],
      "imdb": "string",
      "tmdb": "int32",
      "desc": "string",
      "start": "int32",
      "end": "int32",
      "poster": "string",
      "voteAvg": "float",
      "voteCount": "int32",
      "createdAt": "string",
      "updatedAt": "int64",
      "lastSync": "string",
      "tmdbType": "string",
      "anilist": "int32",
      "anilistSyncAttempts": "int32",
      "anilistSuggestedId": "int32",
      "anilistSuggestedTitle": "string",
      "anilistSuggestedPoster": "string",
      "anilistSuggestedScore": "float",
      "anilistReviewRequired": "bool",
      "backdrop": "string",
      "itemType": "string",
      "blockSync": "bool",
      "blockEpisodeSync": "bool",
      "excludeFromAnilist": "bool",
      "autoCache": "bool",
      "deletedAt": "string",
      "animeSeasons": [
        {
          "id": "uint32",
          "createdAt": "string",
          "updatedAt": "int64",
          "season": "string",
          "animeId": "uint32",
          "autoCache": "bool",
          "animeEpisodes": [
            {
              "id": "uint32",
              "createdAt": "string",
              "updatedAt": "int64",
              "episode": "string",
              "image": "string",
              "animeSeasonId": "uint32",
              "lastSync": "string",
              "deletedAt": "string",
              "animeEpisodeLinks": [
                {
                  "id": "uint32",
                  "createdAt": "string",
                  "updatedAt": "int64",
                  "link": "string",
                  "lang": "string",
                  "animeEpisodeId": "uint32",
                  "createdById": "string",
                  "name": "string"
                }
              ],
              "proxyCaches": [
                {
                  "id": "uint32",
                  "createdAt": "string",
                  "updatedAt": "string",
                  "dirName": "string",
                  "source": "string",
                  "sourceUrl": "string",
                  "status": "string",
                  "statusMessage": "string",
                  "language": "string",
                  "animeSlug": "string",
                  "animeTitle": "string",
                  "season": "string",
                  "episode": "string"
                }
              ],
              "episodeNotice": "string"
            }
          ]
        }
      ],
      "animeGroups": [
        {
          "id": "uint32",
          "animeId": "uint32",
          "anilistId": "int32",
          "slug": "string",
          "title": "string",
          "romajiTitle": "string",
          "nativeTitle": "string",
          "desc": "string",
          "cover": "string",
          "startDate": "string",
          "endDate": "string",
          "status": "string",
          "episodes": "int32",
          "format": "string",
          "season": "string",
          "year": "int32",
          "generes": [
            "string"
          ],
          "tags": [
            "string"
          ],
          "isHidden": "bool",
          "prequelId": "uint32",
          "sequelId": "uint32",
          "deletedAt": "string",
          "animeGroupEpisodes": [
            {
              "id": "uint32",
              "animeGroupId": "uint32",
              "animeEpisodeId": "uint32",
              "order": "int32",
              "animeEpisode": {
                "id": "uint32",
                "createdAt": "string",
                "updatedAt": "int64",
                "episode": "string",
                "image": "string",
                "animeSeasonId": "uint32",
                "lastSync": "string",
                "deletedAt": "string",
                "animeEpisodeLinks": [
                  {
                    "id": "uint32",
                    "createdAt": "string",
                    "updatedAt": "int64",
                    "link": "string",
                    "lang": "string",
                    "animeEpisodeId": "uint32",
                    "createdById": "string",
                    "name": "string"
                  }
                ],
                "proxyCaches": [
                  {
                    "id": "uint32",
                    "createdAt": "string",
                    "updatedAt": "string",
                    "dirName": "string",
                    "source": "string",
                    "sourceUrl": "string",
                    "status": "string",
                    "statusMessage": "string",
                    "language": "string",
                    "animeSlug": "string",
                    "animeTitle": "string",
                    "season": "string",
                    "episode": "string"
                  }
                ],
                "episodeNotice": "string"
              }
            }
          ],
          "animeGroupAutoSeasons": [
            {
              "id": "uint32",
              "animeGroupId": "uint32",
              "animeSeasonId": "uint32"
            }
          ]
        }
      ],
      "takedownExpiresAt": "string",
      "takedownAuthOnly": "bool"
    }
  ],
  "pages": "int32",
  "status": "int32"
}

ListAnimesByViewCountLast24h

ListAnimesByViewCountLast24h returns animes sorted by views received in the last 24 hours.

POST/api.v1.anime.AnimeService/ListAnimesByViewCountLast24h

Service: AnimeService

Request

Type: api.v1.anime.ListAnimesRequest

json
{
  "page": "int32"
}

Response

Type: api.v1.anime.ListAnimesResponse

json
{
  "data": [
    {
      "id": "uint32",
      "slug": "string",
      "title": "string",
      "alternateTitles": "string",
      "generes": [
        "string"
      ],
      "imdb": "string",
      "tmdb": "int32",
      "desc": "string",
      "start": "int32",
      "end": "int32",
      "poster": "string",
      "voteAvg": "float",
      "voteCount": "int32",
      "createdAt": "string",
      "updatedAt": "int64",
      "lastSync": "string",
      "tmdbType": "string",
      "anilist": "int32",
      "anilistSyncAttempts": "int32",
      "anilistSuggestedId": "int32",
      "anilistSuggestedTitle": "string",
      "anilistSuggestedPoster": "string",
      "anilistSuggestedScore": "float",
      "anilistReviewRequired": "bool",
      "backdrop": "string",
      "itemType": "string",
      "blockSync": "bool",
      "blockEpisodeSync": "bool",
      "excludeFromAnilist": "bool",
      "autoCache": "bool",
      "deletedAt": "string",
      "animeSeasons": [
        {
          "id": "uint32",
          "createdAt": "string",
          "updatedAt": "int64",
          "season": "string",
          "animeId": "uint32",
          "autoCache": "bool",
          "animeEpisodes": [
            {
              "id": "uint32",
              "createdAt": "string",
              "updatedAt": "int64",
              "episode": "string",
              "image": "string",
              "animeSeasonId": "uint32",
              "lastSync": "string",
              "deletedAt": "string",
              "animeEpisodeLinks": [
                {
                  "id": "uint32",
                  "createdAt": "string",
                  "updatedAt": "int64",
                  "link": "string",
                  "lang": "string",
                  "animeEpisodeId": "uint32",
                  "createdById": "string",
                  "name": "string"
                }
              ],
              "proxyCaches": [
                {
                  "id": "uint32",
                  "createdAt": "string",
                  "updatedAt": "string",
                  "dirName": "string",
                  "source": "string",
                  "sourceUrl": "string",
                  "status": "string",
                  "statusMessage": "string",
                  "language": "string",
                  "animeSlug": "string",
                  "animeTitle": "string",
                  "season": "string",
                  "episode": "string"
                }
              ],
              "episodeNotice": "string"
            }
          ]
        }
      ],
      "animeGroups": [
        {
          "id": "uint32",
          "animeId": "uint32",
          "anilistId": "int32",
          "slug": "string",
          "title": "string",
          "romajiTitle": "string",
          "nativeTitle": "string",
          "desc": "string",
          "cover": "string",
          "startDate": "string",
          "endDate": "string",
          "status": "string",
          "episodes": "int32",
          "format": "string",
          "season": "string",
          "year": "int32",
          "generes": [
            "string"
          ],
          "tags": [
            "string"
          ],
          "isHidden": "bool",
          "prequelId": "uint32",
          "sequelId": "uint32",
          "deletedAt": "string",
          "animeGroupEpisodes": [
            {
              "id": "uint32",
              "animeGroupId": "uint32",
              "animeEpisodeId": "uint32",
              "order": "int32",
              "animeEpisode": {
                "id": "uint32",
                "createdAt": "string",
                "updatedAt": "int64",
                "episode": "string",
                "image": "string",
                "animeSeasonId": "uint32",
                "lastSync": "string",
                "deletedAt": "string",
                "animeEpisodeLinks": [
                  {
                    "id": "uint32",
                    "createdAt": "string",
                    "updatedAt": "int64",
                    "link": "string",
                    "lang": "string",
                    "animeEpisodeId": "uint32",
                    "createdById": "string",
                    "name": "string"
                  }
                ],
                "proxyCaches": [
                  {
                    "id": "uint32",
                    "createdAt": "string",
                    "updatedAt": "string",
                    "dirName": "string",
                    "source": "string",
                    "sourceUrl": "string",
                    "status": "string",
                    "statusMessage": "string",
                    "language": "string",
                    "animeSlug": "string",
                    "animeTitle": "string",
                    "season": "string",
                    "episode": "string"
                  }
                ],
                "episodeNotice": "string"
              }
            }
          ],
          "animeGroupAutoSeasons": [
            {
              "id": "uint32",
              "animeGroupId": "uint32",
              "animeSeasonId": "uint32"
            }
          ]
        }
      ],
      "takedownExpiresAt": "string",
      "takedownAuthOnly": "bool"
    }
  ],
  "pages": "int32",
  "status": "int32"
}

ListAnimesByViewCountLast7d

ListAnimesByViewCountLast7d returns animes sorted by views received in the last 7 days.

POST/api.v1.anime.AnimeService/ListAnimesByViewCountLast7d

Service: AnimeService

Request

Type: api.v1.anime.ListAnimesRequest

json
{
  "page": "int32"
}

Response

Type: api.v1.anime.ListAnimesResponse

json
{
  "data": [
    {
      "id": "uint32",
      "slug": "string",
      "title": "string",
      "alternateTitles": "string",
      "generes": [
        "string"
      ],
      "imdb": "string",
      "tmdb": "int32",
      "desc": "string",
      "start": "int32",
      "end": "int32",
      "poster": "string",
      "voteAvg": "float",
      "voteCount": "int32",
      "createdAt": "string",
      "updatedAt": "int64",
      "lastSync": "string",
      "tmdbType": "string",
      "anilist": "int32",
      "anilistSyncAttempts": "int32",
      "anilistSuggestedId": "int32",
      "anilistSuggestedTitle": "string",
      "anilistSuggestedPoster": "string",
      "anilistSuggestedScore": "float",
      "anilistReviewRequired": "bool",
      "backdrop": "string",
      "itemType": "string",
      "blockSync": "bool",
      "blockEpisodeSync": "bool",
      "excludeFromAnilist": "bool",
      "autoCache": "bool",
      "deletedAt": "string",
      "animeSeasons": [
        {
          "id": "uint32",
          "createdAt": "string",
          "updatedAt": "int64",
          "season": "string",
          "animeId": "uint32",
          "autoCache": "bool",
          "animeEpisodes": [
            {
              "id": "uint32",
              "createdAt": "string",
              "updatedAt": "int64",
              "episode": "string",
              "image": "string",
              "animeSeasonId": "uint32",
              "lastSync": "string",
              "deletedAt": "string",
              "animeEpisodeLinks": [
                {
                  "id": "uint32",
                  "createdAt": "string",
                  "updatedAt": "int64",
                  "link": "string",
                  "lang": "string",
                  "animeEpisodeId": "uint32",
                  "createdById": "string",
                  "name": "string"
                }
              ],
              "proxyCaches": [
                {
                  "id": "uint32",
                  "createdAt": "string",
                  "updatedAt": "string",
                  "dirName": "string",
                  "source": "string",
                  "sourceUrl": "string",
                  "status": "string",
                  "statusMessage": "string",
                  "language": "string",
                  "animeSlug": "string",
                  "animeTitle": "string",
                  "season": "string",
                  "episode": "string"
                }
              ],
              "episodeNotice": "string"
            }
          ]
        }
      ],
      "animeGroups": [
        {
          "id": "uint32",
          "animeId": "uint32",
          "anilistId": "int32",
          "slug": "string",
          "title": "string",
          "romajiTitle": "string",
          "nativeTitle": "string",
          "desc": "string",
          "cover": "string",
          "startDate": "string",
          "endDate": "string",
          "status": "string",
          "episodes": "int32",
          "format": "string",
          "season": "string",
          "year": "int32",
          "generes": [
            "string"
          ],
          "tags": [
            "string"
          ],
          "isHidden": "bool",
          "prequelId": "uint32",
          "sequelId": "uint32",
          "deletedAt": "string",
          "animeGroupEpisodes": [
            {
              "id": "uint32",
              "animeGroupId": "uint32",
              "animeEpisodeId": "uint32",
              "order": "int32",
              "animeEpisode": {
                "id": "uint32",
                "createdAt": "string",
                "updatedAt": "int64",
                "episode": "string",
                "image": "string",
                "animeSeasonId": "uint32",
                "lastSync": "string",
                "deletedAt": "string",
                "animeEpisodeLinks": [
                  {
                    "id": "uint32",
                    "createdAt": "string",
                    "updatedAt": "int64",
                    "link": "string",
                    "lang": "string",
                    "animeEpisodeId": "uint32",
                    "createdById": "string",
                    "name": "string"
                  }
                ],
                "proxyCaches": [
                  {
                    "id": "uint32",
                    "createdAt": "string",
                    "updatedAt": "string",
                    "dirName": "string",
                    "source": "string",
                    "sourceUrl": "string",
                    "status": "string",
                    "statusMessage": "string",
                    "language": "string",
                    "animeSlug": "string",
                    "animeTitle": "string",
                    "season": "string",
                    "episode": "string"
                  }
                ],
                "episodeNotice": "string"
              }
            }
          ],
          "animeGroupAutoSeasons": [
            {
              "id": "uint32",
              "animeGroupId": "uint32",
              "animeSeasonId": "uint32"
            }
          ]
        }
      ],
      "takedownExpiresAt": "string",
      "takedownAuthOnly": "bool"
    }
  ],
  "pages": "int32",
  "status": "int32"
}

ListAnimesByLastAddedEpisode

ListAnimesByLastAddedEpisode returns animes that have recently had new episodes added.

POST/api.v1.anime.AnimeService/ListAnimesByLastAddedEpisode

Service: AnimeService

Request

Type: api.v1.anime.ListAnimesRequest

json
{
  "page": "int32"
}

Response

Type: api.v1.anime.ListAnimesByLastAddedEpisodeResponse

json
{
  "data": [
    {
      "episodeId": "uint32",
      "createdAt": "string",
      "slug": "string",
      "season": "string",
      "episode": "string",
      "poster": "string",
      "backdrop": "string",
      "image": "string",
      "title": "string",
      "hasGerSub": "bool",
      "hasGerDub": "bool",
      "hasEngSub": "bool"
    }
  ],
  "pages": "int32",
  "status": "int32"
}

GetAnime

GetAnime retrieves full metadata for a single anime identified by slug or ID.

POST/api.v1.anime.AnimeService/GetAnime

Service: AnimeService

Request

Type: api.v1.anime.GetAnimeRequest

json
{
  "slug": "string",
  "id": "uint32"
}

Response

Type: api.v1.anime.GetAnimeResponse

json
{
  "data": {
    "id": "uint32",
    "slug": "string",
    "title": "string",
    "alternateTitles": "string",
    "generes": [
      "string"
    ],
    "imdb": "string",
    "tmdb": "int32",
    "desc": "string",
    "start": "int32",
    "end": "int32",
    "poster": "string",
    "voteAvg": "float",
    "voteCount": "int32",
    "createdAt": "string",
    "updatedAt": "int64",
    "lastSync": "string",
    "tmdbType": "string",
    "anilist": "int32",
    "anilistSyncAttempts": "int32",
    "anilistSuggestedId": "int32",
    "anilistSuggestedTitle": "string",
    "anilistSuggestedPoster": "string",
    "anilistSuggestedScore": "float",
    "anilistReviewRequired": "bool",
    "backdrop": "string",
    "itemType": "string",
    "blockSync": "bool",
    "blockEpisodeSync": "bool",
    "excludeFromAnilist": "bool",
    "autoCache": "bool",
    "deletedAt": "string",
    "animeSeasons": [
      {
        "id": "uint32",
        "createdAt": "string",
        "updatedAt": "int64",
        "season": "string",
        "animeId": "uint32",
        "autoCache": "bool",
        "animeEpisodes": [
          {
            "id": "uint32",
            "createdAt": "string",
            "updatedAt": "int64",
            "episode": "string",
            "image": "string",
            "animeSeasonId": "uint32",
            "lastSync": "string",
            "deletedAt": "string",
            "animeEpisodeLinks": [
              {
                "id": "uint32",
                "createdAt": "string",
                "updatedAt": "int64",
                "link": "string",
                "lang": "string",
                "animeEpisodeId": "uint32",
                "createdById": "string",
                "name": "string"
              }
            ],
            "proxyCaches": [
              {
                "id": "uint32",
                "createdAt": "string",
                "updatedAt": "string",
                "dirName": "string",
                "source": "string",
                "sourceUrl": "string",
                "status": "string",
                "statusMessage": "string",
                "language": "string",
                "animeSlug": "string",
                "animeTitle": "string",
                "season": "string",
                "episode": "string"
              }
            ],
            "episodeNotice": "string"
          }
        ]
      }
    ],
    "animeGroups": [
      {
        "id": "uint32",
        "animeId": "uint32",
        "anilistId": "int32",
        "slug": "string",
        "title": "string",
        "romajiTitle": "string",
        "nativeTitle": "string",
        "desc": "string",
        "cover": "string",
        "startDate": "string",
        "endDate": "string",
        "status": "string",
        "episodes": "int32",
        "format": "string",
        "season": "string",
        "year": "int32",
        "generes": [
          "string"
        ],
        "tags": [
          "string"
        ],
        "isHidden": "bool",
        "prequelId": "uint32",
        "sequelId": "uint32",
        "deletedAt": "string",
        "animeGroupEpisodes": [
          {
            "id": "uint32",
            "animeGroupId": "uint32",
            "animeEpisodeId": "uint32",
            "order": "int32",
            "animeEpisode": {
              "id": "uint32",
              "createdAt": "string",
              "updatedAt": "int64",
              "episode": "string",
              "image": "string",
              "animeSeasonId": "uint32",
              "lastSync": "string",
              "deletedAt": "string",
              "animeEpisodeLinks": [
                {
                  "id": "uint32",
                  "createdAt": "string",
                  "updatedAt": "int64",
                  "link": "string",
                  "lang": "string",
                  "animeEpisodeId": "uint32",
                  "createdById": "string",
                  "name": "string"
                }
              ],
              "proxyCaches": [
                {
                  "id": "uint32",
                  "createdAt": "string",
                  "updatedAt": "string",
                  "dirName": "string",
                  "source": "string",
                  "sourceUrl": "string",
                  "status": "string",
                  "statusMessage": "string",
                  "language": "string",
                  "animeSlug": "string",
                  "animeTitle": "string",
                  "season": "string",
                  "episode": "string"
                }
              ],
              "episodeNotice": "string"
            }
          }
        ],
        "animeGroupAutoSeasons": [
          {
            "id": "uint32",
            "animeGroupId": "uint32",
            "animeSeasonId": "uint32"
          }
        ]
      }
    ],
    "takedownExpiresAt": "string",
    "takedownAuthOnly": "bool"
  },
  "status": "int32"
}

GetEpisode

GetEpisode retrieves details for a specific episode, including available streaming links.

POST/api.v1.anime.AnimeService/GetEpisode

Service: AnimeService

Request

Type: api.v1.anime.GetEpisodeRequest

json
{
  "slug": "string",
  "season": "string",
  "episode": "string"
}

Response

Type: api.v1.anime.GetEpisodeResponse

json
{
  "data": {
    "id": "uint32",
    "episode": "string",
    "animeSeasonId": "uint32",
    "hasGerSub": "bool",
    "hasEngSub": "bool",
    "hasGerDub": "bool",
    "likeCount": "int32",
    "dislikeCount": "int32",
    "animeEpisodeLinks": [
      {
        "id": "uint32",
        "createdAt": "string",
        "updatedAt": "int64",
        "link": "string",
        "lang": "string",
        "animeEpisodeId": "uint32",
        "createdById": "string",
        "name": "string"
      }
    ],
    "episodeNotice": "string"
  },
  "status": "int32"
}

GetNextEpisodes

GetNextEpisodes returns a list of episodes the user might want to watch next based on their history.

POST/api.v1.anime.AnimeService/GetNextEpisodes

Service: AnimeService

Request

Type: api.v1.anime.GetNextEpisodesRequest

Response

Type: api.v1.anime.GetNextEpisodesResponse

json
{
  "data": [
    {
      "slug": "string",
      "season": "string",
      "episode": "string",
      "title": "string",
      "poster": "string",
      "backdrop": "string",
      "lastSeen": "int32",
      "watchStatus": "string",
      "position": "int32"
    }
  ],
  "status": "int32"
}

SearchAnimes

SearchAnimes executes a search query against the anime database using various metadata filters.

POST/api.v1.AnimeSearchService/SearchAnimes

Service: AnimeSearchService

Request

Type: api.v1.SearchAnimesRequest

json
{
  "q": "string",
  "page": "int32",
  "limit": "int32",
  "orderBy": "string",
  "orderDir": "string",
  "genres": [
    "string"
  ],
  "year": "int32",
  "yearStart": "int32",
  "yearEnd": "int32",
  "status": "string",
  "format": "string",
  "minScore": "int32"
}

Response

Type: api.v1.SearchAnimesResponse

json
{
  "data": [
    {
      "id": "uint32",
      "slug": "string",
      "title": "string",
      "alternateTitles": "string",
      "generes": [
        "string"
      ],
      "imdb": "string",
      "tmdb": "int32",
      "desc": "string",
      "start": "int32",
      "end": "int32",
      "poster": "string",
      "voteAvg": "float",
      "voteCount": "int32",
      "createdAt": "string",
      "updatedAt": "int64",
      "lastSync": "string",
      "tmdbType": "string",
      "anilist": "int32",
      "anilistSyncAttempts": "int32",
      "anilistSuggestedId": "int32",
      "anilistSuggestedTitle": "string",
      "anilistSuggestedPoster": "string",
      "anilistSuggestedScore": "float",
      "anilistReviewRequired": "bool",
      "backdrop": "string",
      "itemType": "string",
      "blockSync": "bool",
      "blockEpisodeSync": "bool",
      "excludeFromAnilist": "bool",
      "autoCache": "bool",
      "deletedAt": "string",
      "animeSeasons": [
        {
          "id": "uint32",
          "createdAt": "string",
          "updatedAt": "int64",
          "season": "string",
          "animeId": "uint32",
          "autoCache": "bool",
          "animeEpisodes": [
            {
              "id": "uint32",
              "createdAt": "string",
              "updatedAt": "int64",
              "episode": "string",
              "image": "string",
              "animeSeasonId": "uint32",
              "lastSync": "string",
              "deletedAt": "string",
              "animeEpisodeLinks": [
                {
                  "id": "uint32",
                  "createdAt": "string",
                  "updatedAt": "int64",
                  "link": "string",
                  "lang": "string",
                  "animeEpisodeId": "uint32",
                  "createdById": "string",
                  "name": "string"
                }
              ],
              "proxyCaches": [
                {
                  "id": "uint32",
                  "createdAt": "string",
                  "updatedAt": "string",
                  "dirName": "string",
                  "source": "string",
                  "sourceUrl": "string",
                  "status": "string",
                  "statusMessage": "string",
                  "language": "string",
                  "animeSlug": "string",
                  "animeTitle": "string",
                  "season": "string",
                  "episode": "string"
                }
              ],
              "episodeNotice": "string"
            }
          ]
        }
      ],
      "animeGroups": [
        {
          "id": "uint32",
          "animeId": "uint32",
          "anilistId": "int32",
          "slug": "string",
          "title": "string",
          "romajiTitle": "string",
          "nativeTitle": "string",
          "desc": "string",
          "cover": "string",
          "startDate": "string",
          "endDate": "string",
          "status": "string",
          "episodes": "int32",
          "format": "string",
          "season": "string",
          "year": "int32",
          "generes": [
            "string"
          ],
          "tags": [
            "string"
          ],
          "isHidden": "bool",
          "prequelId": "uint32",
          "sequelId": "uint32",
          "deletedAt": "string",
          "animeGroupEpisodes": [
            {
              "id": "uint32",
              "animeGroupId": "uint32",
              "animeEpisodeId": "uint32",
              "order": "int32",
              "animeEpisode": {
                "id": "uint32",
                "createdAt": "string",
                "updatedAt": "int64",
                "episode": "string",
                "image": "string",
                "animeSeasonId": "uint32",
                "lastSync": "string",
                "deletedAt": "string",
                "animeEpisodeLinks": [
                  {
                    "id": "uint32",
                    "createdAt": "string",
                    "updatedAt": "int64",
                    "link": "string",
                    "lang": "string",
                    "animeEpisodeId": "uint32",
                    "createdById": "string",
                    "name": "string"
                  }
                ],
                "proxyCaches": [
                  {
                    "id": "uint32",
                    "createdAt": "string",
                    "updatedAt": "string",
                    "dirName": "string",
                    "source": "string",
                    "sourceUrl": "string",
                    "status": "string",
                    "statusMessage": "string",
                    "language": "string",
                    "animeSlug": "string",
                    "animeTitle": "string",
                    "season": "string",
                    "episode": "string"
                  }
                ],
                "episodeNotice": "string"
              }
            }
          ],
          "animeGroupAutoSeasons": [
            {
              "id": "uint32",
              "animeGroupId": "uint32",
              "animeSeasonId": "uint32"
            }
          ]
        }
      ],
      "takedownExpiresAt": "string",
      "takedownAuthOnly": "bool"
    }
  ],
  "pages": "int32",
  "status": "int32"
}

GetGenres

GetGenres retrieves a unique list of all anime genres currently used in the database.

POST/api.v1.GenreService/GetGenres

Service: GenreService

Request

Type: api.v1.GetGenresRequest

Response

Type: api.v1.GetGenresResponse

json
{
  "data": [
    "string"
  ]
}

GetCalendars

GetCalendars retrieves the weekly airing schedule for anime episodes.

POST/api.v1.CalendarService/GetCalendars

Service: CalendarService

Request

Type: api.v1.GetCalendarsRequest

Response

Type: api.v1.GetCalendarsResponse

json
{
  "data": [
    {
      "id": "uint32",
      "animeId": "uint32",
      "anime": {
        "id": "uint32",
        "slug": "string",
        "title": "string",
        "alternateTitles": "string",
        "generes": [
          "string"
        ],
        "imdb": "string",
        "tmdb": "int32",
        "desc": "string",
        "start": "int32",
        "end": "int32",
        "poster": "string",
        "voteAvg": "float",
        "voteCount": "int32",
        "createdAt": "string",
        "updatedAt": "int64",
        "lastSync": "string",
        "tmdbType": "string",
        "anilist": "int32",
        "anilistSyncAttempts": "int32",
        "anilistSuggestedId": "int32",
        "anilistSuggestedTitle": "string",
        "anilistSuggestedPoster": "string",
        "anilistSuggestedScore": "float",
        "anilistReviewRequired": "bool",
        "backdrop": "string",
        "itemType": "string",
        "blockSync": "bool",
        "blockEpisodeSync": "bool",
        "excludeFromAnilist": "bool",
        "autoCache": "bool",
        "deletedAt": "string",
        "animeSeasons": [
          {
            "id": "uint32",
            "createdAt": "string",
            "updatedAt": "int64",
            "season": "string",
            "animeId": "uint32",
            "autoCache": "bool",
            "animeEpisodes": [
              {
                "id": "uint32",
                "createdAt": "string",
                "updatedAt": "int64",
                "episode": "string",
                "image": "string",
                "animeSeasonId": "uint32",
                "lastSync": "string",
                "deletedAt": "string",
                "animeEpisodeLinks": [
                  {
                    "id": "uint32",
                    "createdAt": "string",
                    "updatedAt": "int64",
                    "link": "string",
                    "lang": "string",
                    "animeEpisodeId": "uint32",
                    "createdById": "string",
                    "name": "string"
                  }
                ],
                "proxyCaches": [
                  {
                    "id": "uint32",
                    "createdAt": "string",
                    "updatedAt": "string",
                    "dirName": "string",
                    "source": "string",
                    "sourceUrl": "string",
                    "status": "string",
                    "statusMessage": "string",
                    "language": "string",
                    "animeSlug": "string",
                    "animeTitle": "string",
                    "season": "string",
                    "episode": "string"
                  }
                ],
                "episodeNotice": "string"
              }
            ]
          }
        ],
        "animeGroups": [
          {
            "id": "uint32",
            "animeId": "uint32",
            "anilistId": "int32",
            "slug": "string",
            "title": "string",
            "romajiTitle": "string",
            "nativeTitle": "string",
            "desc": "string",
            "cover": "string",
            "startDate": "string",
            "endDate": "string",
            "status": "string",
            "episodes": "int32",
            "format": "string",
            "season": "string",
            "year": "int32",
            "generes": [
              "string"
            ],
            "tags": [
              "string"
            ],
            "isHidden": "bool",
            "prequelId": "uint32",
            "sequelId": "uint32",
            "deletedAt": "string",
            "animeGroupEpisodes": [
              {
                "id": "uint32",
                "animeGroupId": "uint32",
                "animeEpisodeId": "uint32",
                "order": "int32",
                "animeEpisode": {
                  "id": "uint32",
                  "createdAt": "string",
                  "updatedAt": "int64",
                  "episode": "string",
                  "image": "string",
                  "animeSeasonId": "uint32",
                  "lastSync": "string",
                  "deletedAt": "string",
                  "animeEpisodeLinks": [
                    {
                      "id": "{}",
                      "createdAt": "{}",
                      "updatedAt": "{}",
                      "link": "{}",
                      "lang": "{}",
                      "animeEpisodeId": "{}",
                      "createdById": "{}",
                      "name": "{}"
                    }
                  ],
                  "proxyCaches": [
                    {
                      "id": "{}",
                      "createdAt": "{}",
                      "updatedAt": "{}",
                      "dirName": "{}",
                      "source": "{}",
                      "sourceUrl": "{}",
                      "status": "{}",
                      "statusMessage": "{}",
                      "language": "{}",
                      "animeSlug": "{}",
                      "animeTitle": "{}",
                      "season": "{}",
                      "episode": "{}"
                    }
                  ],
                  "episodeNotice": "string"
                }
              }
            ],
            "animeGroupAutoSeasons": [
              {
                "id": "uint32",
                "animeGroupId": "uint32",
                "animeSeasonId": "uint32"
              }
            ]
          }
        ],
        "takedownExpiresAt": "string",
        "takedownAuthOnly": "bool"
      },
      "epDetails": "string",
      "timeDetails": "string",
      "season": "string",
      "episode": "string",
      "airingTime": "string",
      "episodeIsAvailable": "bool",
      "dateString": "string",
      "lang": "string"
    }
  ]
}

GetSliders

GetSliders retrieves all active promotional slider items.

POST/api.v1.SliderService/GetSliders

Service: SliderService

Request

Type: api.v1.GetSlidersRequest

Response

Type: api.v1.GetSlidersResponse

json
{
  "data": [
    {
      "id": "uint32",
      "title": "string",
      "subtitle": "string",
      "path": "string",
      "year": "string",
      "description": "string",
      "poster": "string",
      "backdrop": "string",
      "prio": "int32"
    }
  ]
}

User

GetProfile

GetProfile retrieves detailed profile information for a specific user ID or "me" for the current user.

POST/api.v1.user.UserService/GetProfile

Service: UserService

Request

Type: api.v1.user.GetProfileRequest

json
{
  "id": "string"
}

Response

Type: api.v1.user.GetProfileResponse

json
{
  "id": "uint32",
  "createdAt": "string",
  "updatedAt": "string",
  "userId": "uint32",
  "avatarUrl": "string",
  "bannerUrl": "string",
  "accentColor": "string",
  "aboutMe": "string",
  "discordUsername": "string",
  "malUsername": "string",
  "anilistUsername": "string",
  "profileVisibility": "string",
  "listVisibility": "string",
  "statsVisibility": "string",
  "preferredLanguage": "string",
  "username": "string",
  "topAnimes": [
    {
      "id": "uint32",
      "slug": "string",
      "title": "string",
      "alternateTitles": "string",
      "generes": [
        "string"
      ],
      "imdb": "string",
      "tmdb": "int32",
      "desc": "string",
      "start": "int32",
      "end": "int32",
      "poster": "string",
      "voteAvg": "float",
      "voteCount": "int32",
      "createdAt": "string",
      "updatedAt": "int64",
      "lastSync": "string",
      "tmdbType": "string",
      "anilist": "int32",
      "anilistSyncAttempts": "int32",
      "anilistSuggestedId": "int32",
      "anilistSuggestedTitle": "string",
      "anilistSuggestedPoster": "string",
      "anilistSuggestedScore": "float",
      "anilistReviewRequired": "bool",
      "backdrop": "string",
      "itemType": "string",
      "blockSync": "bool",
      "blockEpisodeSync": "bool",
      "excludeFromAnilist": "bool",
      "autoCache": "bool",
      "deletedAt": "string",
      "animeSeasons": [
        {
          "id": "uint32",
          "createdAt": "string",
          "updatedAt": "int64",
          "season": "string",
          "animeId": "uint32",
          "autoCache": "bool",
          "animeEpisodes": [
            {
              "id": "uint32",
              "createdAt": "string",
              "updatedAt": "int64",
              "episode": "string",
              "image": "string",
              "animeSeasonId": "uint32",
              "lastSync": "string",
              "deletedAt": "string",
              "animeEpisodeLinks": [
                {
                  "id": "uint32",
                  "createdAt": "string",
                  "updatedAt": "int64",
                  "link": "string",
                  "lang": "string",
                  "animeEpisodeId": "uint32",
                  "createdById": "string",
                  "name": "string"
                }
              ],
              "proxyCaches": [
                {
                  "id": "uint32",
                  "createdAt": "string",
                  "updatedAt": "string",
                  "dirName": "string",
                  "source": "string",
                  "sourceUrl": "string",
                  "status": "string",
                  "statusMessage": "string",
                  "language": "string",
                  "animeSlug": "string",
                  "animeTitle": "string",
                  "season": "string",
                  "episode": "string"
                }
              ],
              "episodeNotice": "string"
            }
          ]
        }
      ],
      "animeGroups": [
        {
          "id": "uint32",
          "animeId": "uint32",
          "anilistId": "int32",
          "slug": "string",
          "title": "string",
          "romajiTitle": "string",
          "nativeTitle": "string",
          "desc": "string",
          "cover": "string",
          "startDate": "string",
          "endDate": "string",
          "status": "string",
          "episodes": "int32",
          "format": "string",
          "season": "string",
          "year": "int32",
          "generes": [
            "string"
          ],
          "tags": [
            "string"
          ],
          "isHidden": "bool",
          "prequelId": "uint32",
          "sequelId": "uint32",
          "deletedAt": "string",
          "animeGroupEpisodes": [
            {
              "id": "uint32",
              "animeGroupId": "uint32",
              "animeEpisodeId": "uint32",
              "order": "int32",
              "animeEpisode": {
                "id": "uint32",
                "createdAt": "string",
                "updatedAt": "int64",
                "episode": "string",
                "image": "string",
                "animeSeasonId": "uint32",
                "lastSync": "string",
                "deletedAt": "string",
                "animeEpisodeLinks": [
                  {
                    "id": "uint32",
                    "createdAt": "string",
                    "updatedAt": "int64",
                    "link": "string",
                    "lang": "string",
                    "animeEpisodeId": "uint32",
                    "createdById": "string",
                    "name": "string"
                  }
                ],
                "proxyCaches": [
                  {
                    "id": "uint32",
                    "createdAt": "string",
                    "updatedAt": "string",
                    "dirName": "string",
                    "source": "string",
                    "sourceUrl": "string",
                    "status": "string",
                    "statusMessage": "string",
                    "language": "string",
                    "animeSlug": "string",
                    "animeTitle": "string",
                    "season": "string",
                    "episode": "string"
                  }
                ],
                "episodeNotice": "string"
              }
            }
          ],
          "animeGroupAutoSeasons": [
            {
              "id": "uint32",
              "animeGroupId": "uint32",
              "animeSeasonId": "uint32"
            }
          ]
        }
      ],
      "takedownExpiresAt": "string",
      "takedownAuthOnly": "bool"
    }
  ],
  "rulesAcceptedVersion": "int32"
}

UpdateProfile

UpdateProfile modifies the current user's profile information, including metadata and binary media.

POST/api.v1.user.UserService/UpdateProfile
Auth

Service: UserService

Request

Type: api.v1.user.UpdateProfileRequest

json
{
  "aboutMe": "string",
  "discordUsername": "string",
  "malUsername": "string",
  "anilistUsername": "string",
  "topAnimeIds": "string",
  "profileVisibility": "string",
  "listVisibility": "string",
  "statsVisibility": "string",
  "preferredLanguage": "string",
  "accentColor": "string",
  "deleteAvatar": "bool",
  "deleteBanner": "bool",
  "avatarBuffer": "bytes",
  "bannerBuffer": "bytes"
}

Response

Type: api.v1.user.UpdateProfileResponse

json
{
  "message": "string"
}

GetUserLayouts

GetUserLayouts retrieves the custom UI layout configurations for the authenticated user.

POST/api.v1.user.UserService/GetUserLayouts
Auth

Service: UserService

Request

Type: api.v1.user.GetUserLayoutsRequest

Response

Type: api.v1.user.GetUserLayoutsResponse

json
{
  "data": [
    {
      "id": "uint32",
      "createdAt": "string",
      "updatedAt": "string",
      "type": "string",
      "config": "string"
    }
  ]
}

UpdateUserLayout

UpdateUserLayout saves or modifies a specific UI layout configuration for the user.

POST/api.v1.user.UserService/UpdateUserLayout
Auth

Service: UserService

Request

Type: api.v1.user.UpdateUserLayoutRequest

json
{
  "type": "string",
  "config": "string"
}

Response

Type: api.v1.user.UpdateUserLayoutResponse

json
{
  "data": {
    "id": "uint32",
    "createdAt": "string",
    "updatedAt": "string",
    "type": "string",
    "config": "string"
  }
}

ResetPassword

ResetPassword allows the authenticated user to change their current password.

POST/api.v1.user.UserService/ResetPassword
Auth

Service: UserService

Request

Type: api.v1.user.ResetPasswordRequest

json
{
  "newPassword": "string"
}

Response

Type: api.v1.user.ResetPasswordResponse

json
{
  "message": "string"
}

GetUserQuickStats

GetUserQuickStats returns a summary of the user's engagement (watchlist count, likes, etc.).

POST/api.v1.user.UserService/GetUserQuickStats
Auth

Service: UserService

Request

Type: api.v1.user.GetUserQuickStatsRequest

json
{
  "userId": "uint32"
}

Response

Type: api.v1.user.GetUserQuickStatsResponse

json
{
  "recentWatchCount": "int64",
  "likedCount": "int64",
  "dislikedCount": "int64",
  "watchlistCount": "int64"
}

GetUserAnimeWatchStats

GetUserAnimeWatchStats retrieves heatmap data representing the user's watch activity over time.

POST/api.v1.user.UserService/GetUserAnimeWatchStats
Auth

Service: UserService

Request

Type: api.v1.user.GetUserAnimeWatchStatsRequest

json
{
  "userId": "uint32"
}

Response

Type: api.v1.user.GetUserAnimeWatchStatsResponse

json
{
  "data": [
    {
      "date": "string",
      "count": "int32"
    }
  ]
}

Watch

UpdateEpisodeLastSeen

UpdateEpisodeLastSeen records the user's current playback position within a specific episode.

POST/api.v1.watch.WatchService/UpdateEpisodeLastSeen
Auth

Service: WatchService

Request

Type: api.v1.watch.UpdateEpisodeLastSeenRequest

json
{
  "slug": "string",
  "season": "string",
  "episode": "string",
  "positionPercent": "float",
  "positionSeconds": "int32",
  "positionMax": "int32"
}

Response

Type: api.v1.watch.UpdateEpisodeLastSeenResponse

json
{
  "message": "string"
}

GetEpisodeLastSeen

GetEpisodeLastSeen retrieves the user's most recently viewed episodes for "Continue Watching".

POST/api.v1.watch.WatchService/GetEpisodeLastSeen
Auth

Service: WatchService

Request

Type: api.v1.watch.GetEpisodeLastSeenRequest

Response

Type: api.v1.watch.GetEpisodeLastSeenResponse

json
{
  "data": [
    {
      "id": "uint32",
      "createdAt": "string",
      "updatedAt": "int64",
      "slug": "string",
      "season": "string",
      "episode": "string",
      "positionPercent": "float",
      "positionSeconds": "int32",
      "positionMax": "int32",
      "userId": "uint32"
    }
  ]
}

UpdateEpisodeLiked

UpdateEpisodeLiked records a like or dislike for a specific anime episode.

POST/api.v1.watch.WatchService/UpdateEpisodeLiked
Auth

Service: WatchService

Request

Type: api.v1.watch.UpdateEpisodeLikedRequest

json
{
  "slug": "string",
  "season": "string",
  "episode": "string",
  "isLiked": "bool"
}

Response

Type: api.v1.watch.UpdateEpisodeLikedResponse

json
{
  "message": "string"
}

GetEpisodeLiked

GetEpisodeLiked retrieves the current user's reaction (like status) for a specific episode.

POST/api.v1.watch.WatchService/GetEpisodeLiked
Auth

Service: WatchService

Request

Type: api.v1.watch.GetEpisodeLikedRequest

json
{
  "slug": "string",
  "season": "string",
  "episode": "string"
}

Response

Type: api.v1.watch.GetEpisodeLikedResponse

json
{
  "data": {
    "id": "uint32",
    "createdAt": "string",
    "updatedAt": "int64",
    "slug": "string",
    "season": "string",
    "episode": "string",
    "isLiked": "bool",
    "userId": "uint32",
    "animeId": "uint32",
    "title": "string",
    "start": "int32",
    "end": "int32",
    "poster": "string",
    "backdrop": "string"
  }
}

DeleteEpisodeLiked

DeleteEpisodeLiked removes the user's like/reaction from a specific episode.

POST/api.v1.watch.WatchService/DeleteEpisodeLiked
Auth

Service: WatchService

Request

Type: api.v1.watch.DeleteEpisodeLikedRequest

json
{
  "slug": "string",
  "season": "string",
  "episode": "string"
}

Response

Type: api.v1.watch.DeleteEpisodeLikedResponse

json
{
  "message": "string"
}

ListEpisodesLiked

ListEpisodesLiked retrieves a paginated list of all episodes the user has liked.

POST/api.v1.watch.WatchService/ListEpisodesLiked
Auth

Service: WatchService

Request

Type: api.v1.watch.ListEpisodesLikedRequest

json
{
  "page": "int32"
}

Response

Type: api.v1.watch.ListEpisodesLikedResponse

json
{
  "data": [
    {
      "id": "uint32",
      "createdAt": "string",
      "updatedAt": "int64",
      "slug": "string",
      "season": "string",
      "episode": "string",
      "isLiked": "bool",
      "userId": "uint32",
      "animeId": "uint32",
      "title": "string",
      "start": "int32",
      "end": "int32",
      "poster": "string",
      "backdrop": "string"
    }
  ],
  "max": "int32"
}

UpdateAnimeWatchStatus

UpdateAnimeWatchStatus modifies the user's relationship with an anime (e.g., "watching", "completed").

POST/api.v1.watch.WatchService/UpdateAnimeWatchStatus
Auth

Service: WatchService

Request

Type: api.v1.watch.UpdateAnimeWatchStatusRequest

json
{
  "animeId": "uint32",
  "status": "string"
}

Response

Type: api.v1.watch.UpdateAnimeWatchStatusResponse

json
{
  "message": "string"
}

GetAnimeWatchStatus

GetAnimeWatchStatus retrieves the current watch status for a specific anime.

POST/api.v1.watch.WatchService/GetAnimeWatchStatus
Auth

Service: WatchService

Request

Type: api.v1.watch.GetAnimeWatchStatusRequest

json
{
  "animeId": "uint32"
}

Response

Type: api.v1.watch.GetAnimeWatchStatusResponse

json
{
  "data": {
    "id": "uint32",
    "createdAt": "string",
    "updatedAt": "int64",
    "animeId": "uint32",
    "status": "string",
    "userId": "uint32"
  }
}

DeleteAnimeWatchStatus

DeleteAnimeWatchStatus removes an anime from the user's personal watch list.

POST/api.v1.watch.WatchService/DeleteAnimeWatchStatus
Auth

Service: WatchService

Request

Type: api.v1.watch.DeleteAnimeWatchStatusRequest

json
{
  "animeId": "uint32"
}

Response

Type: api.v1.watch.DeleteAnimeWatchStatusResponse

json
{
  "message": "string"
}

ListAnimesWatchStatus

ListAnimesWatchStatus retrieves a paginated list of animes filtered by their watch status.

POST/api.v1.watch.WatchService/ListAnimesWatchStatus
Auth

Service: WatchService

Request

Type: api.v1.watch.ListAnimesWatchStatusRequest

json
{
  "page": "int32",
  "status": "string",
  "userId": "string"
}

Response

Type: api.v1.watch.ListAnimesWatchStatusResponse

json
{
  "data": [
    {
      "updatedAt": "int64",
      "animeId": "uint32",
      "slug": "string",
      "title": "string",
      "start": "int32",
      "end": "int32",
      "poster": "string",
      "backdrop": "string"
    }
  ],
  "max": "int32"
}

Forum

GetCategories

GetCategories retrieves all public forum categories organized by display order.

POST/api.v1.forum.ForumService/GetCategories

Service: ForumService

Request

Type: api.v1.forum.GetCategoriesRequest

Response

Type: api.v1.forum.GetCategoriesResponse

json
{
  "data": [
    {
      "id": "uint32",
      "name": "string",
      "slug": "string",
      "description": "string",
      "parentId": "uint32",
      "displayOrder": "int32",
      "topicCount": "int32",
      "postCount": "int32",
      "icon": "string"
    }
  ]
}

GetCategoryTopics

GetCategoryTopics retrieves a paginated list of discussion topics within a specific category.

POST/api.v1.forum.ForumService/GetCategoryTopics

Service: ForumService

Request

Type: api.v1.forum.GetCategoryTopicsRequest

json
{
  "identifier": "string",
  "page": "int32",
  "limit": "int32"
}

Response

Type: api.v1.forum.GetCategoryTopicsResponse

json
{
  "data": [
    {
      "id": "uint32",
      "categoryId": "uint32",
      "title": "string",
      "slug": "string",
      "content": "string",
      "image": "string",
      "externalSource": "string",
      "viewCount": "int32",
      "postCount": "int32",
      "isLocked": "bool",
      "isPinned": "bool",
      "isHidden": "bool",
      "authorId": "uint32",
      "author": {
        "id": "uint32",
        "username": "string",
        "avatarUrl": "string",
        "otakuLevel": "int32",
        "isVerifiedWatcher": "bool"
      },
      "createdAt": "string",
      "updatedAt": "string",
      "animeId": "uint32",
      "animeEpisodeId": "uint32",
      "lastPost": {
        "id": "uint32",
        "topicId": "uint32",
        "authorId": "uint32",
        "parentPostId": "uint32",
        "content": "string",
        "upvotes": "int32",
        "downvotes": "int32",
        "isHidden": "bool",
        "createdAt": "string",
        "updatedAt": "string",
        "author": {
          "id": "uint32",
          "username": "string",
          "avatarUrl": "string",
          "otakuLevel": "int32",
          "isVerifiedWatcher": "bool"
        },
        "userReaction": "string"
      }
    }
  ],
  "max": "int32"
}

GetTopic

GetTopic retrieves the full content and metadata for a single forum topic.

POST/api.v1.forum.ForumService/GetTopic

Service: ForumService

Request

Type: api.v1.forum.GetTopicRequest

json
{
  "id": "uint32"
}

Response

Type: api.v1.forum.GetTopicResponse

json
{
  "data": {
    "id": "uint32",
    "categoryId": "uint32",
    "title": "string",
    "slug": "string",
    "content": "string",
    "image": "string",
    "externalSource": "string",
    "viewCount": "int32",
    "postCount": "int32",
    "isLocked": "bool",
    "isPinned": "bool",
    "isHidden": "bool",
    "authorId": "uint32",
    "author": {
      "id": "uint32",
      "username": "string",
      "avatarUrl": "string",
      "otakuLevel": "int32",
      "isVerifiedWatcher": "bool"
    },
    "createdAt": "string",
    "updatedAt": "string",
    "animeId": "uint32",
    "animeEpisodeId": "uint32",
    "lastPost": {
      "id": "uint32",
      "topicId": "uint32",
      "authorId": "uint32",
      "parentPostId": "uint32",
      "content": "string",
      "upvotes": "int32",
      "downvotes": "int32",
      "isHidden": "bool",
      "createdAt": "string",
      "updatedAt": "string",
      "author": {
        "id": "uint32",
        "username": "string",
        "avatarUrl": "string",
        "otakuLevel": "int32",
        "isVerifiedWatcher": "bool"
      },
      "userReaction": "string"
    }
  }
}

GetTopicPosts

GetTopicPosts retrieves a paginated list of replies (posts) for a specific topic.

POST/api.v1.forum.ForumService/GetTopicPosts

Service: ForumService

Request

Type: api.v1.forum.GetTopicPostsRequest

json
{
  "topicId": "uint32",
  "page": "int32",
  "limit": "int32"
}

Response

Type: api.v1.forum.GetTopicPostsResponse

json
{
  "data": [
    {
      "id": "uint32",
      "topicId": "uint32",
      "authorId": "uint32",
      "parentPostId": "uint32",
      "content": "string",
      "upvotes": "int32",
      "downvotes": "int32",
      "isHidden": "bool",
      "createdAt": "string",
      "updatedAt": "string",
      "author": {
        "id": "uint32",
        "username": "string",
        "avatarUrl": "string",
        "otakuLevel": "int32",
        "isVerifiedWatcher": "bool"
      },
      "userReaction": "string"
    }
  ],
  "max": "int32"
}

CreateTopic

CreateTopic starts a new discussion thread in the specified category.

POST/api.v1.forum.ForumService/CreateTopic
Auth

Service: ForumService

Request

Type: api.v1.forum.CreateTopicRequest

json
{
  "categoryId": "uint32",
  "title": "string",
  "content": "string"
}

Response

Type: api.v1.forum.CreateTopicResponse

json
{
  "data": {
    "id": "uint32",
    "categoryId": "uint32",
    "title": "string",
    "slug": "string",
    "content": "string",
    "image": "string",
    "externalSource": "string",
    "viewCount": "int32",
    "postCount": "int32",
    "isLocked": "bool",
    "isPinned": "bool",
    "isHidden": "bool",
    "authorId": "uint32",
    "author": {
      "id": "uint32",
      "username": "string",
      "avatarUrl": "string",
      "otakuLevel": "int32",
      "isVerifiedWatcher": "bool"
    },
    "createdAt": "string",
    "updatedAt": "string",
    "animeId": "uint32",
    "animeEpisodeId": "uint32",
    "lastPost": {
      "id": "uint32",
      "topicId": "uint32",
      "authorId": "uint32",
      "parentPostId": "uint32",
      "content": "string",
      "upvotes": "int32",
      "downvotes": "int32",
      "isHidden": "bool",
      "createdAt": "string",
      "updatedAt": "string",
      "author": {
        "id": "uint32",
        "username": "string",
        "avatarUrl": "string",
        "otakuLevel": "int32",
        "isVerifiedWatcher": "bool"
      },
      "userReaction": "string"
    }
  }
}

CreatePost

CreatePost appends a new reply or comment to an existing forum topic.

POST/api.v1.forum.ForumService/CreatePost
Auth

Service: ForumService

Request

Type: api.v1.forum.CreatePostRequest

json
{
  "topicId": "uint32",
  "parentPostId": "uint32",
  "content": "string"
}

Response

Type: api.v1.forum.CreatePostResponse

json
{
  "data": {
    "id": "uint32",
    "topicId": "uint32",
    "authorId": "uint32",
    "parentPostId": "uint32",
    "content": "string",
    "upvotes": "int32",
    "downvotes": "int32",
    "isHidden": "bool",
    "createdAt": "string",
    "updatedAt": "string",
    "author": {
      "id": "uint32",
      "username": "string",
      "avatarUrl": "string",
      "otakuLevel": "int32",
      "isVerifiedWatcher": "bool"
    },
    "userReaction": "string"
  }
}

ReactToPost

ReactToPost applies an upvote or downvote to a specific post.

POST/api.v1.forum.ForumService/ReactToPost
Auth

Service: ForumService

Request

Type: api.v1.forum.ReactToPostRequest

json
{
  "postId": "uint32",
  "isUpvote": "bool"
}

Response

Type: api.v1.forum.ReactToPostResponse

json
{
  "message": "string"
}

CreateReview

CreateReview creates a new anime review thread with structured scoring.

POST/api.v1.forum.ForumService/CreateReview
Auth

Service: ForumService

Request

Type: api.v1.forum.CreateReviewRequest

json
{
  "animeId": "uint32",
  "title": "string",
  "content": "string",
  "storyScore": "int32",
  "animationScore": "int32",
  "soundScore": "int32",
  "characterScore": "int32",
  "enjoymentScore": "int32"
}

Response

Type: api.v1.forum.CreateReviewResponse

json
{
  "data": {
    "id": "uint32",
    "categoryId": "uint32",
    "title": "string",
    "slug": "string",
    "content": "string",
    "image": "string",
    "externalSource": "string",
    "viewCount": "int32",
    "postCount": "int32",
    "isLocked": "bool",
    "isPinned": "bool",
    "isHidden": "bool",
    "authorId": "uint32",
    "author": {
      "id": "uint32",
      "username": "string",
      "avatarUrl": "string",
      "otakuLevel": "int32",
      "isVerifiedWatcher": "bool"
    },
    "createdAt": "string",
    "updatedAt": "string",
    "animeId": "uint32",
    "animeEpisodeId": "uint32",
    "lastPost": {
      "id": "uint32",
      "topicId": "uint32",
      "authorId": "uint32",
      "parentPostId": "uint32",
      "content": "string",
      "upvotes": "int32",
      "downvotes": "int32",
      "isHidden": "bool",
      "createdAt": "string",
      "updatedAt": "string",
      "author": {
        "id": "uint32",
        "username": "string",
        "avatarUrl": "string",
        "otakuLevel": "int32",
        "isVerifiedWatcher": "bool"
      },
      "userReaction": "string"
    }
  }
}

GetAnimeReviews

GetAnimeReviews retrieves all structured reviews for a specific anime.

POST/api.v1.forum.ForumService/GetAnimeReviews

Service: ForumService

Request

Type: api.v1.forum.GetAnimeReviewsRequest

json
{
  "animeId": "uint32"
}

Response

Type: api.v1.forum.GetAnimeReviewsResponse

json
{
  "data": [
    {
      "id": "uint32",
      "animeId": "uint32",
      "topicId": "uint32",
      "title": "string",
      "content": "string",
      "storyScore": "int32",
      "animationScore": "int32",
      "soundScore": "int32",
      "characterScore": "int32",
      "enjoymentScore": "int32",
      "isVerifiedWatcher": "bool",
      "author": {
        "id": "uint32",
        "username": "string",
        "avatarUrl": "string",
        "otakuLevel": "int32",
        "isVerifiedWatcher": "bool"
      },
      "createdAt": "string"
    }
  ]
}

ReportPost

ReportPost flags a post for administrative review due to policy violations.

POST/api.v1.forum.ForumService/ReportPost
Auth

Service: ForumService

Request

Type: api.v1.forum.ReportPostRequest

json
{
  "postId": "uint32",
  "reason": "string",
  "description": "string"
}

Response

Type: api.v1.forum.ReportPostResponse

json
{
  "message": "string"
}

AcceptRules

AcceptRules records the user's acceptance of the latest forum terms of service.

POST/api.v1.forum.ForumService/AcceptRules
Auth

Service: ForumService

Request

Type: api.v1.forum.AcceptRulesRequest

json
{
  "version": "int32"
}

Response

Type: api.v1.forum.AcceptRulesResponse

json
{
  "message": "string"
}

GetLatestTopics

GetLatestTopics retrieves the most recently created topics across all categories.

POST/api.v1.forum.ForumService/GetLatestTopics

Service: ForumService

Request

Type: api.v1.forum.GetLatestTopicsRequest

json
{
  "limit": "int32"
}

Response

Type: api.v1.forum.GetLatestTopicsResponse

json
{
  "data": [
    {
      "id": "uint32",
      "categoryId": "uint32",
      "title": "string",
      "slug": "string",
      "content": "string",
      "image": "string",
      "externalSource": "string",
      "viewCount": "int32",
      "postCount": "int32",
      "isLocked": "bool",
      "isPinned": "bool",
      "isHidden": "bool",
      "authorId": "uint32",
      "author": {
        "id": "uint32",
        "username": "string",
        "avatarUrl": "string",
        "otakuLevel": "int32",
        "isVerifiedWatcher": "bool"
      },
      "createdAt": "string",
      "updatedAt": "string",
      "animeId": "uint32",
      "animeEpisodeId": "uint32",
      "lastPost": {
        "id": "uint32",
        "topicId": "uint32",
        "authorId": "uint32",
        "parentPostId": "uint32",
        "content": "string",
        "upvotes": "int32",
        "downvotes": "int32",
        "isHidden": "bool",
        "createdAt": "string",
        "updatedAt": "string",
        "author": {
          "id": "uint32",
          "username": "string",
          "avatarUrl": "string",
          "otakuLevel": "int32",
          "isVerifiedWatcher": "bool"
        },
        "userReaction": "string"
      }
    }
  ]
}

GetTrendingTopics

GetTrendingTopics retrieves topics with high recent engagement levels.

POST/api.v1.forum.ForumService/GetTrendingTopics

Service: ForumService

Request

Type: api.v1.forum.GetTrendingTopicsRequest

json
{
  "limit": "int32"
}

Response

Type: api.v1.forum.GetTrendingTopicsResponse

json
{
  "data": [
    {
      "id": "uint32",
      "categoryId": "uint32",
      "title": "string",
      "slug": "string",
      "content": "string",
      "image": "string",
      "externalSource": "string",
      "viewCount": "int32",
      "postCount": "int32",
      "isLocked": "bool",
      "isPinned": "bool",
      "isHidden": "bool",
      "authorId": "uint32",
      "author": {
        "id": "uint32",
        "username": "string",
        "avatarUrl": "string",
        "otakuLevel": "int32",
        "isVerifiedWatcher": "bool"
      },
      "createdAt": "string",
      "updatedAt": "string",
      "animeId": "uint32",
      "animeEpisodeId": "uint32",
      "lastPost": {
        "id": "uint32",
        "topicId": "uint32",
        "authorId": "uint32",
        "parentPostId": "uint32",
        "content": "string",
        "upvotes": "int32",
        "downvotes": "int32",
        "isHidden": "bool",
        "createdAt": "string",
        "updatedAt": "string",
        "author": {
          "id": "uint32",
          "username": "string",
          "avatarUrl": "string",
          "otakuLevel": "int32",
          "isVerifiedWatcher": "bool"
        },
        "userReaction": "string"
      }
    }
  ]
}

GetLatestPosts

GetLatestPosts retrieves the most recently published replies across the entire forum.

POST/api.v1.forum.ForumService/GetLatestPosts

Service: ForumService

Request

Type: api.v1.forum.GetLatestPostsRequest

json
{
  "limit": "int32"
}

Response

Type: api.v1.forum.GetLatestPostsResponse

json
{
  "data": [
    {
      "id": "uint32",
      "topicId": "uint32",
      "authorId": "uint32",
      "parentPostId": "uint32",
      "content": "string",
      "upvotes": "int32",
      "downvotes": "int32",
      "isHidden": "bool",
      "createdAt": "string",
      "updatedAt": "string",
      "author": {
        "id": "uint32",
        "username": "string",
        "avatarUrl": "string",
        "otakuLevel": "int32",
        "isVerifiedWatcher": "bool"
      },
      "userReaction": "string"
    }
  ]
}

GetFeaturedReviews

GetFeaturedReviews retrieves a curated selection of high-quality anime reviews.

POST/api.v1.forum.ForumService/GetFeaturedReviews

Service: ForumService

Request

Type: api.v1.forum.GetFeaturedReviewsRequest

json
{
  "limit": "int32"
}

Response

Type: api.v1.forum.GetFeaturedReviewsResponse

json
{
  "data": [
    {
      "id": "uint32",
      "animeId": "uint32",
      "topicId": "uint32",
      "title": "string",
      "content": "string",
      "storyScore": "int32",
      "animationScore": "int32",
      "soundScore": "int32",
      "characterScore": "int32",
      "enjoymentScore": "int32",
      "isVerifiedWatcher": "bool",
      "author": {
        "id": "uint32",
        "username": "string",
        "avatarUrl": "string",
        "otakuLevel": "int32",
        "isVerifiedWatcher": "bool"
      },
      "createdAt": "string"
    }
  ]
}

GetGlobalPinnedTopics

GetGlobalPinnedTopics retrieves topics that are pinned to the top across all categories.

POST/api.v1.forum.ForumService/GetGlobalPinnedTopics

Service: ForumService

Request

Type: api.v1.forum.GetGlobalPinnedTopicsRequest

Response

Type: api.v1.forum.GetGlobalPinnedTopicsResponse

json
{
  "data": [
    {
      "id": "uint32",
      "categoryId": "uint32",
      "title": "string",
      "slug": "string",
      "content": "string",
      "image": "string",
      "externalSource": "string",
      "viewCount": "int32",
      "postCount": "int32",
      "isLocked": "bool",
      "isPinned": "bool",
      "isHidden": "bool",
      "authorId": "uint32",
      "author": {
        "id": "uint32",
        "username": "string",
        "avatarUrl": "string",
        "otakuLevel": "int32",
        "isVerifiedWatcher": "bool"
      },
      "createdAt": "string",
      "updatedAt": "string",
      "animeId": "uint32",
      "animeEpisodeId": "uint32",
      "lastPost": {
        "id": "uint32",
        "topicId": "uint32",
        "authorId": "uint32",
        "parentPostId": "uint32",
        "content": "string",
        "upvotes": "int32",
        "downvotes": "int32",
        "isHidden": "bool",
        "createdAt": "string",
        "updatedAt": "string",
        "author": {
          "id": "uint32",
          "username": "string",
          "avatarUrl": "string",
          "otakuLevel": "int32",
          "isVerifiedWatcher": "bool"
        },
        "userReaction": "string"
      }
    }
  ]
}

GetTopContributors

GetTopContributors retrieves a list of users with the highest forum activity and reputation.

POST/api.v1.forum.ForumService/GetTopContributors

Service: ForumService

Request

Type: api.v1.forum.GetTopContributorsRequest

json
{
  "limit": "int32"
}

Response

Type: api.v1.forum.GetTopContributorsResponse

json
{
  "data": [
    {
      "id": "uint32",
      "username": "string",
      "avatarUrl": "string",
      "otakuLevel": "int32",
      "isVerifiedWatcher": "bool"
    }
  ]
}

GetForumStats

GetForumStats retrieves high-level statistics about the forum's size and current activity.

POST/api.v1.forum.ForumService/GetForumStats

Service: ForumService

Request

Type: api.v1.forum.GetForumStatsRequest

Response

Type: api.v1.forum.GetForumStatsResponse

json
{
  "totalTopics": "int32",
  "totalPosts": "int32",
  "totalUsers": "int32",
  "onlineNow": "int32"
}

QuickSearchTopics

QuickSearchTopics performs a fast title-based search for discussion topics.

POST/api.v1.forum.ForumService/QuickSearchTopics

Service: ForumService

Request

Type: api.v1.forum.QuickSearchTopicsRequest

json
{
  "query": "string",
  "limit": "int32"
}

Response

Type: api.v1.forum.QuickSearchTopicsResponse

json
{
  "data": [
    {
      "id": "uint32",
      "categoryId": "uint32",
      "title": "string",
      "slug": "string",
      "content": "string",
      "image": "string",
      "externalSource": "string",
      "viewCount": "int32",
      "postCount": "int32",
      "isLocked": "bool",
      "isPinned": "bool",
      "isHidden": "bool",
      "authorId": "uint32",
      "author": {
        "id": "uint32",
        "username": "string",
        "avatarUrl": "string",
        "otakuLevel": "int32",
        "isVerifiedWatcher": "bool"
      },
      "createdAt": "string",
      "updatedAt": "string",
      "animeId": "uint32",
      "animeEpisodeId": "uint32",
      "lastPost": {
        "id": "uint32",
        "topicId": "uint32",
        "authorId": "uint32",
        "parentPostId": "uint32",
        "content": "string",
        "upvotes": "int32",
        "downvotes": "int32",
        "isHidden": "bool",
        "createdAt": "string",
        "updatedAt": "string",
        "author": {
          "id": "uint32",
          "username": "string",
          "avatarUrl": "string",
          "otakuLevel": "int32",
          "isVerifiedWatcher": "bool"
        },
        "userReaction": "string"
      }
    }
  ]
}

GetLatestRules

GetLatestRules retrieves the most recent version of the forum guidelines and rules.

POST/api.v1.forum.ForumService/GetLatestRules

Service: ForumService

Request

Type: api.v1.forum.GetLatestRulesRequest

Response

Type: api.v1.forum.GetLatestRulesResponse

json
{
  "data": {
    "version": "int32",
    "content": "string",
    "createdAt": "string"
  }
}

GetTopEpisodeComments

GetTopEpisodeComments retrieves the highest-rated comments for a specific anime episode.

POST/api.v1.forum.ForumService/GetTopEpisodeComments

Service: ForumService

Request

Type: api.v1.forum.GetTopEpisodeCommentsRequest

json
{
  "episodeId": "uint32"
}

Response

Type: api.v1.forum.GetTopEpisodeCommentsResponse

json
{
  "data": [
    {
      "id": "uint32",
      "topicId": "uint32",
      "authorId": "uint32",
      "parentPostId": "uint32",
      "content": "string",
      "upvotes": "int32",
      "downvotes": "int32",
      "isHidden": "bool",
      "createdAt": "string",
      "updatedAt": "string",
      "author": {
        "id": "uint32",
        "username": "string",
        "avatarUrl": "string",
        "otakuLevel": "int32",
        "isVerifiedWatcher": "bool"
      },
      "userReaction": "string"
    }
  ],
  "topicId": "uint32"
}

GetUserReviews

GetUserReviews retrieves a paginated list of reviews written by a specific user.

POST/api.v1.forum.ForumService/GetUserReviews

Service: ForumService

Request

Type: api.v1.forum.GetUserReviewsRequest

json
{
  "userId": "uint32",
  "page": "int32"
}

Response

Type: api.v1.forum.GetUserReviewsResponse

json
{
  "data": [
    {
      "id": "uint32",
      "animeId": "uint32",
      "topicId": "uint32",
      "title": "string",
      "content": "string",
      "storyScore": "int32",
      "animationScore": "int32",
      "soundScore": "int32",
      "characterScore": "int32",
      "enjoymentScore": "int32",
      "isVerifiedWatcher": "bool",
      "author": {
        "id": "uint32",
        "username": "string",
        "avatarUrl": "string",
        "otakuLevel": "int32",
        "isVerifiedWatcher": "bool"
      },
      "createdAt": "string"
    }
  ],
  "max": "int32"
}

GetUserComments

GetUserComments retrieves a paginated list of comments/posts written by a specific user.

POST/api.v1.forum.ForumService/GetUserComments

Service: ForumService

Request

Type: api.v1.forum.GetUserCommentsRequest

json
{
  "userId": "uint32",
  "page": "int32"
}

Response

Type: api.v1.forum.GetUserCommentsResponse

json
{
  "data": [
    {
      "id": "uint32",
      "topicId": "uint32",
      "authorId": "uint32",
      "parentPostId": "uint32",
      "content": "string",
      "upvotes": "int32",
      "downvotes": "int32",
      "isHidden": "bool",
      "createdAt": "string",
      "updatedAt": "string",
      "author": {
        "id": "uint32",
        "username": "string",
        "avatarUrl": "string",
        "otakuLevel": "int32",
        "isVerifiedWatcher": "bool"
      },
      "userReaction": "string"
    }
  ],
  "max": "int32"
}

Notifications

GetNotifications

GetNotifications retrieves a paginated list of notifications for the authenticated user.

POST/api.v1.notification.NotificationService/GetNotifications
Auth

Service: NotificationService

Request

Type: api.v1.notification.GetNotificationsRequest

json
{
  "page": "int32",
  "limit": "int32"
}

Response

Type: api.v1.notification.GetNotificationsResponse

json
{
  "data": [
    {
      "id": "uint32",
      "userId": "uint32",
      "type": "string",
      "title": "string",
      "body": "string",
      "link": "string",
      "image": "string",
      "isRead": "bool",
      "referenceId": "string",
      "createdAt": "string"
    }
  ],
  "max": "int32"
}

GetUnreadCount

GetUnreadCount returns the total number of notifications that haven't been read by the user.

POST/api.v1.notification.NotificationService/GetUnreadCount
Auth

Service: NotificationService

Request

Type: api.v1.notification.GetUnreadCountRequest

Response

Type: api.v1.notification.GetUnreadCountResponse

json
{
  "count": "int32"
}

MarkAsRead

MarkAsRead updates the status of specific notifications or all notifications to "read".

POST/api.v1.notification.NotificationService/MarkAsRead
Auth

Service: NotificationService

Request

Type: api.v1.notification.MarkAsReadRequest

json
{
  "ids": [
    "uint32"
  ],
  "all": "bool"
}

Response

Type: api.v1.notification.MarkAsReadResponse

json
{
  "message": "string"
}

Subscribe

Subscribe registers the authenticated user to receive notifications for new releases of a specific anime.

POST/api.v1.subscription.SubscriptionService/Subscribe
Auth

Service: SubscriptionService

Request

Type: api.v1.subscription.SubscribeRequest

json
{
  "animeId": "uint32",
  "language": "string"
}

Response

Type: api.v1.subscription.SubscriptionResponse

json
{
  "message": "string"
}

Unsubscribe

Unsubscribe removes the authenticated user's notification registration for a specific anime.

POST/api.v1.subscription.SubscriptionService/Unsubscribe
Auth

Service: SubscriptionService

Request

Type: api.v1.subscription.UnsubscribeRequest

json
{
  "animeId": "uint32",
  "language": "string"
}

Response

Type: api.v1.subscription.SubscriptionResponse

json
{
  "message": "string"
}

GetUserSubscriptions

GetUserSubscriptions retrieves a paginated list of all animes the current user is subscribed to.

POST/api.v1.subscription.SubscriptionService/GetUserSubscriptions
Auth

Service: SubscriptionService

Request

Type: api.v1.subscription.GetUserSubscriptionsRequest

json
{
  "page": "int32",
  "limit": "int32"
}

Response

Type: api.v1.subscription.GetUserSubscriptionsResponse

json
{
  "data": [
    {
      "id": "uint32",
      "userId": "uint32",
      "animeId": "uint32",
      "anime": {
        "id": "uint32",
        "slug": "string",
        "title": "string",
        "alternateTitles": "string",
        "generes": [
          "string"
        ],
        "imdb": "string",
        "tmdb": "int32",
        "desc": "string",
        "start": "int32",
        "end": "int32",
        "poster": "string",
        "voteAvg": "float",
        "voteCount": "int32",
        "createdAt": "string",
        "updatedAt": "int64",
        "lastSync": "string",
        "tmdbType": "string",
        "anilist": "int32",
        "anilistSyncAttempts": "int32",
        "anilistSuggestedId": "int32",
        "anilistSuggestedTitle": "string",
        "anilistSuggestedPoster": "string",
        "anilistSuggestedScore": "float",
        "anilistReviewRequired": "bool",
        "backdrop": "string",
        "itemType": "string",
        "blockSync": "bool",
        "blockEpisodeSync": "bool",
        "excludeFromAnilist": "bool",
        "autoCache": "bool",
        "deletedAt": "string",
        "animeSeasons": [
          {
            "id": "uint32",
            "createdAt": "string",
            "updatedAt": "int64",
            "season": "string",
            "animeId": "uint32",
            "autoCache": "bool",
            "animeEpisodes": [
              {
                "id": "uint32",
                "createdAt": "string",
                "updatedAt": "int64",
                "episode": "string",
                "image": "string",
                "animeSeasonId": "uint32",
                "lastSync": "string",
                "deletedAt": "string",
                "animeEpisodeLinks": [
                  {
                    "id": "uint32",
                    "createdAt": "string",
                    "updatedAt": "int64",
                    "link": "string",
                    "lang": "string",
                    "animeEpisodeId": "uint32",
                    "createdById": "string",
                    "name": "string"
                  }
                ],
                "proxyCaches": [
                  {
                    "id": "uint32",
                    "createdAt": "string",
                    "updatedAt": "string",
                    "dirName": "string",
                    "source": "string",
                    "sourceUrl": "string",
                    "status": "string",
                    "statusMessage": "string",
                    "language": "string",
                    "animeSlug": "string",
                    "animeTitle": "string",
                    "season": "string",
                    "episode": "string"
                  }
                ],
                "episodeNotice": "string"
              }
            ]
          }
        ],
        "animeGroups": [
          {
            "id": "uint32",
            "animeId": "uint32",
            "anilistId": "int32",
            "slug": "string",
            "title": "string",
            "romajiTitle": "string",
            "nativeTitle": "string",
            "desc": "string",
            "cover": "string",
            "startDate": "string",
            "endDate": "string",
            "status": "string",
            "episodes": "int32",
            "format": "string",
            "season": "string",
            "year": "int32",
            "generes": [
              "string"
            ],
            "tags": [
              "string"
            ],
            "isHidden": "bool",
            "prequelId": "uint32",
            "sequelId": "uint32",
            "deletedAt": "string",
            "animeGroupEpisodes": [
              {
                "id": "uint32",
                "animeGroupId": "uint32",
                "animeEpisodeId": "uint32",
                "order": "int32",
                "animeEpisode": {
                  "id": "uint32",
                  "createdAt": "string",
                  "updatedAt": "int64",
                  "episode": "string",
                  "image": "string",
                  "animeSeasonId": "uint32",
                  "lastSync": "string",
                  "deletedAt": "string",
                  "animeEpisodeLinks": [
                    {
                      "id": "{}",
                      "createdAt": "{}",
                      "updatedAt": "{}",
                      "link": "{}",
                      "lang": "{}",
                      "animeEpisodeId": "{}",
                      "createdById": "{}",
                      "name": "{}"
                    }
                  ],
                  "proxyCaches": [
                    {
                      "id": "{}",
                      "createdAt": "{}",
                      "updatedAt": "{}",
                      "dirName": "{}",
                      "source": "{}",
                      "sourceUrl": "{}",
                      "status": "{}",
                      "statusMessage": "{}",
                      "language": "{}",
                      "animeSlug": "{}",
                      "animeTitle": "{}",
                      "season": "{}",
                      "episode": "{}"
                    }
                  ],
                  "episodeNotice": "string"
                }
              }
            ],
            "animeGroupAutoSeasons": [
              {
                "id": "uint32",
                "animeGroupId": "uint32",
                "animeSeasonId": "uint32"
              }
            ]
          }
        ],
        "takedownExpiresAt": "string",
        "takedownAuthOnly": "bool"
      },
      "language": "string",
      "createdAt": "string"
    }
  ],
  "max": "int32"
}

CheckSubscription

CheckSubscription verifies if the current user is subscribed to notifications for a specific anime.

POST/api.v1.subscription.SubscriptionService/CheckSubscription
Auth

Service: SubscriptionService

Request

Type: api.v1.subscription.CheckSubscriptionRequest

json
{
  "animeId": "uint32"
}

Response

Type: api.v1.subscription.CheckSubscriptionResponse

json
{
  "subscriptions": [
    {
      "id": "uint32",
      "userId": "uint32",
      "animeId": "uint32",
      "anime": {
        "id": "uint32",
        "slug": "string",
        "title": "string",
        "alternateTitles": "string",
        "generes": [
          "string"
        ],
        "imdb": "string",
        "tmdb": "int32",
        "desc": "string",
        "start": "int32",
        "end": "int32",
        "poster": "string",
        "voteAvg": "float",
        "voteCount": "int32",
        "createdAt": "string",
        "updatedAt": "int64",
        "lastSync": "string",
        "tmdbType": "string",
        "anilist": "int32",
        "anilistSyncAttempts": "int32",
        "anilistSuggestedId": "int32",
        "anilistSuggestedTitle": "string",
        "anilistSuggestedPoster": "string",
        "anilistSuggestedScore": "float",
        "anilistReviewRequired": "bool",
        "backdrop": "string",
        "itemType": "string",
        "blockSync": "bool",
        "blockEpisodeSync": "bool",
        "excludeFromAnilist": "bool",
        "autoCache": "bool",
        "deletedAt": "string",
        "animeSeasons": [
          {
            "id": "uint32",
            "createdAt": "string",
            "updatedAt": "int64",
            "season": "string",
            "animeId": "uint32",
            "autoCache": "bool",
            "animeEpisodes": [
              {
                "id": "uint32",
                "createdAt": "string",
                "updatedAt": "int64",
                "episode": "string",
                "image": "string",
                "animeSeasonId": "uint32",
                "lastSync": "string",
                "deletedAt": "string",
                "animeEpisodeLinks": [
                  {
                    "id": "uint32",
                    "createdAt": "string",
                    "updatedAt": "int64",
                    "link": "string",
                    "lang": "string",
                    "animeEpisodeId": "uint32",
                    "createdById": "string",
                    "name": "string"
                  }
                ],
                "proxyCaches": [
                  {
                    "id": "uint32",
                    "createdAt": "string",
                    "updatedAt": "string",
                    "dirName": "string",
                    "source": "string",
                    "sourceUrl": "string",
                    "status": "string",
                    "statusMessage": "string",
                    "language": "string",
                    "animeSlug": "string",
                    "animeTitle": "string",
                    "season": "string",
                    "episode": "string"
                  }
                ],
                "episodeNotice": "string"
              }
            ]
          }
        ],
        "animeGroups": [
          {
            "id": "uint32",
            "animeId": "uint32",
            "anilistId": "int32",
            "slug": "string",
            "title": "string",
            "romajiTitle": "string",
            "nativeTitle": "string",
            "desc": "string",
            "cover": "string",
            "startDate": "string",
            "endDate": "string",
            "status": "string",
            "episodes": "int32",
            "format": "string",
            "season": "string",
            "year": "int32",
            "generes": [
              "string"
            ],
            "tags": [
              "string"
            ],
            "isHidden": "bool",
            "prequelId": "uint32",
            "sequelId": "uint32",
            "deletedAt": "string",
            "animeGroupEpisodes": [
              {
                "id": "uint32",
                "animeGroupId": "uint32",
                "animeEpisodeId": "uint32",
                "order": "int32",
                "animeEpisode": {
                  "id": "uint32",
                  "createdAt": "string",
                  "updatedAt": "int64",
                  "episode": "string",
                  "image": "string",
                  "animeSeasonId": "uint32",
                  "lastSync": "string",
                  "deletedAt": "string",
                  "animeEpisodeLinks": [
                    {
                      "id": "{}",
                      "createdAt": "{}",
                      "updatedAt": "{}",
                      "link": "{}",
                      "lang": "{}",
                      "animeEpisodeId": "{}",
                      "createdById": "{}",
                      "name": "{}"
                    }
                  ],
                  "proxyCaches": [
                    {
                      "id": "{}",
                      "createdAt": "{}",
                      "updatedAt": "{}",
                      "dirName": "{}",
                      "source": "{}",
                      "sourceUrl": "{}",
                      "status": "{}",
                      "statusMessage": "{}",
                      "language": "{}",
                      "animeSlug": "{}",
                      "animeTitle": "{}",
                      "season": "{}",
                      "episode": "{}"
                    }
                  ],
                  "episodeNotice": "string"
                }
              }
            ],
            "animeGroupAutoSeasons": [
              {
                "id": "uint32",
                "animeGroupId": "uint32",
                "animeSeasonId": "uint32"
              }
            ]
          }
        ],
        "takedownExpiresAt": "string",
        "takedownAuthOnly": "bool"
      },
      "language": "string",
      "createdAt": "string"
    }
  ]
}

Misc

CreateFeedback

CreateFeedback submits a new feedback report from the user.

POST/api.v1.feedback.FeedbackService/CreateFeedback

Service: FeedbackService

Request

Type: api.v1.feedback.CreateFeedbackRequest

json
{
  "title": "string",
  "description": "string",
  "category": "string",
  "animeId": "uint32",
  "animeSeasonId": "uint32",
  "animeEpisodeId": "uint32"
}

Response

Type: api.v1.feedback.CreateFeedbackResponse

json
{
  "message": "string"
}

ListFeedbacks

ListFeedbacks retrieves a paginated list of feedback submissions. For normal users, it only returns their own.

POST/api.v1.feedback.FeedbackService/ListFeedbacks

Service: FeedbackService

Request

Type: api.v1.feedback.ListFeedbacksRequest

json
{
  "page": "int32",
  "limit": "int32",
  "status": "string",
  "category": "string",
  "animeId": "uint32",
  "animeSeasonId": "uint32",
  "animeEpisodeId": "uint32",
  "userId": "uint32"
}

Response

Type: api.v1.feedback.ListFeedbacksResponse

json
{
  "data": [
    {
      "id": "uint32",
      "title": "string",
      "description": "string",
      "category": "string",
      "status": "string",
      "priority": "string",
      "adminComment": "string",
      "createdAt": "string",
      "userName": "string",
      "userId": "uint32",
      "animeId": "uint32",
      "animeSlug": "string",
      "animeTitle": "string",
      "season": "string",
      "animeSeasonId": "uint32",
      "episode": "string",
      "animeEpisodeId": "uint32",
      "adminHasReviewed": "bool"
    }
  ],
  "pages": "int32"
}
FireAnime ist eine Suchmaschine und hat keine Kontrolle über den Inhalt Dritter.