Skip to content

API Overview

Interis currently exposes a public read-only API mounted at:

/api/public

All routes are GET and use :username path params.

PathDefault limitMax limitNotes
/api/public/:username/profile--Profile summary + stats
/api/public/:username/top4--Top picks by category
/api/public/:username/recent1020Activity feed (compact)
/api/public/:username/activity30100Activity feed (expanded)
/api/public/:username/reviews50200Movie + TV reviews
/api/public/:username/lists50200Public lists only
/api/public/:username/likes50200Liked movie + TV media
/api/public/:username/watchlist50200Watchlisted movie + TV media
/api/public/:username/diary50200Movie + TV diary entries
  • HTTP 200 for successful reads.
  • HTTP 404 with { "error": "User not found" } when username is missing.
  • HTTP 429 when public rate limit is exceeded.
  • HTTP 500 with { "error": "Internal server error" } for unhandled errors.
  • Cache-Control: no-store is set on successful public responses.

Public routes use a dedicated limiter:

  • window: 1 minute
  • max: 60 requests per IP

The broader /api limiter is configured to skip /public/*, so public traffic is governed by the dedicated limiter above.

  • Lists endpoint returns only rows where isPublic = true.
  • Likes/watchlist include both movie and TV rows.
  • Diary includes both movie and TV entries merged and sorted by watched date.
  • Activity/recent return the same feed item shape, but with different default/max limits.

Use the detailed pages for params, field notes, and examples: