Type-safe TypeScript SDKs for media, anime, gaming, and entertainment APIs.
Api-Wrappers builds focused TypeScript clients for APIs developers regularly reach for when building anime trackers, movie apps, game databases, watch-history tools, and similar projects.
The wrappers aim to remove repetitive integration work without hiding the upstream API. You still get the provider's domain model, plus typed methods, auth helpers, pagination, retries, structured errors, and low-level escape hatches where they make sense.
| Package | Use it for | Install |
|---|---|---|
@api-wrappers/anilist-wrapper |
Anime, manga, characters, staff, users, media lists, and raw AniList GraphQL | bun add @api-wrappers/anilist-wrapper |
@api-wrappers/tmdb-wrapper |
Movies, TV, people, search, discover, images, watch providers, sessions, and accounts | bun add @api-wrappers/tmdb-wrapper |
@api-wrappers/igdb-wrapper |
Game metadata, typed APICalypse queries, Twitch auth, pagination, and images | bun add @api-wrappers/igdb-wrapper |
@api-wrappers/trakt-wrapper |
Watchlists, history, ratings, scrobbling, calendars, OAuth, and sync | bun add @api-wrappers/trakt-wrapper |
@api-wrappers/api-core |
Shared HTTP runtime for building API clients with retries, plugins, auth, caching, and GraphQL helpers | bun add @api-wrappers/api-core |
npm, pnpm, and Yarn can be used instead of Bun where the package runtime supports them.
Movie or TV app
Use tmdb-wrapper for metadata, artwork, search, discovery, and watch-provider data, then pair it with trakt-wrapper for watchlists, history, ratings, scrobbling, and account sync.
Anime or manga app
Use anilist-wrapper for media discovery, characters, staff, user lists, list mutations, generated GraphQL types, and custom GraphQL operations.
Game database or discovery app
Use igdb-wrapper for typed IGDB queries, filters, pagination, Twitch authentication, and image helpers.
Building another API client
Use api-core instead of rebuilding request execution, retries, timeouts, auth plugins, rate-limit handling, structured errors, GraphQL requests, and transport hooks.
- TypeScript-first request and response types
- Provider-specific APIs instead of one generic abstraction
- Auth, pagination, retries, timeouts, and structured errors where needed
- ESM/CJS packaging across the SDKs
- Raw request or GraphQL escape hatches for API features the wrapper has not modeled yet
- Runnable examples and contribution guides in the package repositories
awesome-api-wrappers is our curated list of API wrappers and SDKs across TypeScript, Python, Go, Rust, and other ecosystems. It includes both official and community-maintained projects and is open to contributions.
Issues and pull requests are welcome. Good contributions include endpoint coverage, stronger types, practical examples, upstream API compatibility fixes, documentation improvements, and additions to the curated wrapper list.
Pick the package closest to what you want to work on and check its CONTRIBUTING.md first.
If one of these packages saves you time, starring its repository helps other developers find it.