FIREANIME API
Browse API97 operations
POST

GetAnimeWatchProgress

GetAnimeWatchProgress retrieves the best continue target for an anime.

/api.v1.watch.WatchService/GetAnimeWatchProgress Bearer required
01

Request

GetAnimeWatchProgressRequest

GetAnimeWatchProgressRequestapi.v1.watch.GetAnimeWatchProgressRequest2 fields

GetAnimeWatchProgressRequest identifies one anime progress scope.

slug
string

URL-friendly identifier for the anime.

animeGroupIdoptional
uint32

Optional anime group context.

Request JSON
{
  "slug": "frieren",
  "animeGroupId": 1
}
02

Response

GetAnimeWatchProgressResponse

GetAnimeWatchProgressResponseapi.v1.watch.GetAnimeWatchProgressResponse5 fields

GetAnimeWatchProgressResponse contains the best continue target for an anime.

hasProgress
bool

If true, the user has saved progress for this anime.

lastSeen

Latest saved progress row for this anime.

recommendedEpisode

Recommended episode target.

shouldResume
bool

If true, clients should offer to resume the saved position.

shouldWatchNext
bool

If true, clients should open the next episode instead of resuming the last one.

Example response
{
  "hasProgress": true,
  "lastSeen": {
    "id": 1,
    "createdAt": "2026-08-19T20:15:00Z",
    "updatedAt": "1",
    "slug": "frieren",
    "season": "1",
    "episode": "1",
    "positionPercent": 1.5,
    "positionSeconds": 1
  },
  "recommendedEpisode": {
    "slug": "frieren",
    "season": "1",
    "episode": "1",
    "animeGroupId": 1,
    "groupTitle": "Frieren: Beyond Journey’s End"
  },
  "shouldResume": false,
  "shouldWatchNext": false
}
03

Referenced models

2 nested message types

LastSeenEpisodeapi.v1.watch.LastSeenEpisode15 fields

LastSeenEpisode represents a record of user playback progress.

id
uint32

Unique database identifier for the record.

createdAt
string

Timestamp when the record was first created (RFC3339 format).

updatedAt
int64

Unix timestamp (milliseconds) of the last update.

slug
string

URL-friendly identifier for the anime.

season
string

Season identifier (e.g., "1").

episode
string

Episode identifier (e.g., "12").

positionPercent
float

Completion percentage of the episode (0.0 to 1.0).

positionSeconds
int32

Current playback position in seconds.

positionMax
int32

Total duration of the episode in seconds.

userId
uint32

The ID of the user who owns this record.

animeId
uint32

The ID of the anime associated with this record.

animeGroupIdoptional
uint32

Optional anime group context used when the user watched through a group route.

groupTitle
string

Human-readable anime group title for display.

isCompleted
bool

If true, the episode is treated as watched/completed.

completedAt
int64

Unix timestamp (seconds) when the episode was completed.

EpisodeTargetapi.v1.watch.EpisodeTarget5 fields

EpisodeTarget identifies an episode route that can be opened by clients.

slug
string

URL-friendly identifier for the anime.

season
string

Season identifier.

episode
string

Episode identifier.

animeGroupIdoptional
uint32

Optional anime group context for group watch routes.

groupTitle
string

Human-readable anime group title for display.

04

Error handling

Common failure codes

unauthenticatedThe Bearer token is missing or invalid.

invalid_argumentThe request payload failed validation.

internalThe service could not complete the operation.