Skip to content

Errors & Empty States

StatusMeaningBody
200Successful readJSON payload
404Username not found{ "error": "User not found" }
429Public rate limit exceededDefault express-rate-limit payload
500Unexpected backend error{ "error": "Internal server error" }
EndpointEmpty state
/profileNo special empty object; returns 404 if user missing
/top4Always returns categories; category items can be empty arrays
/recent[]
/activity[]
/reviews[]
/lists[]
/likes[]
/watchlist[]
/diary[]

Endpoints that accept limit do not fail on bad values.

Instead, Interis normalizes to fallback defaults:

  • missing / invalid limit -> default
  • decimal -> floored integer
  • too large -> clamped to endpoint max
  • non-positive -> default

Treat all list-like endpoints as possibly empty and handle them directly in UI:

const rows = await fetchRows();
if (rows.length === 0) {
return renderEmptyState();
}