A curated list of API wrappers and SDKs focused on developer experience, type safety, maintenance, and real-world usability.
Finding an API wrapper is easy. Finding one you can trust in a real project is harder.
This repo collects wrappers and SDKs that make integration work easier: authentication, pagination, retries, typed responses, versioning, webhooks, rate limits, and API-specific workflows. The list is intentionally selective and favors projects with clear docs, visible maintenance, licenses, package links, and practical examples.
Official means maintained by the API provider. Community means maintained
independently.
- How to Use This List
- Api-Wrappers Packages
- Categories
- How to Get Listed
- What Makes a Good API Wrapper?
- Contribution Rules
- Related Lists
Use the tables to compare wrappers quickly:
- API tells you which upstream service the wrapper targets.
- Language helps you find clients for your stack.
- Official / community shows whether the API provider maintains it.
- Package link takes you to the registry or package documentation.
- GitHub link takes you to source, issues, releases, and license details.
- Notes call out practical strengths without using unverifiable metrics.
This repo does not track stars, downloads, or latest releases because those fields get stale quickly unless they are generated automatically.
The organization behind this list also maintains a few TypeScript wrappers. They are listed here for discoverability, but the main list uses the same criteria for every project.
| Name | API | Package link | GitHub link | Notes |
|---|---|---|---|---|
| anilist-wrapper | AniList | npm | GitHub | Typed GraphQL workflows for anime, manga, users, staff, characters, and media lists. |
| igdb-wrapper | IGDB | npm | GitHub | Type-safe APICalypse queries, OAuth helpers, pagination, and image URL utilities. |
| tmdb-wrapper | TMDB | npm | GitHub | Typed movie, TV, search, discover, watch-provider, session, and image workflows. |
| Name | API | Language | Official / community | Package link | GitHub link | Notes |
|---|---|---|---|---|---|---|
| plaid-node | Plaid | TypeScript | Official | npm | GitHub | Node client generated from Plaid's OpenAPI definition. |
| plaid-python | Plaid | Python | Official | PyPI | GitHub | Python client generated from Plaid's OpenAPI definition. |
| stripe-node | Stripe | TypeScript | Official | npm | GitHub | Typed Node SDK with webhook helpers and broad Stripe API coverage. |
| stripe-python | Stripe | Python | Official | PyPI | GitHub | Python SDK with async support, typed models, and webhook helpers. |
| Name | API | Language | Official / community | Package link | GitHub link | Notes |
|---|---|---|---|---|---|---|
| discord.js | Discord | TypeScript | Community | npm | GitHub | Mature Discord library with gateway, REST, builders, and voice packages. |
| discord.py | Discord | Python | Community | PyPI | GitHub | Async-first Discord wrapper with command and extension support. |
| discordgo | Discord | Go | Community | pkg.go.dev | GitHub | Go bindings for Discord gateway, REST, interactions, and voice workflows. |
| node-slack-sdk | Slack | TypeScript | Official | npm | GitHub | Slack Web API client plus packages for events, OAuth, sockets, and Bolt. |
| python-slack-sdk | Slack | Python | Official | PyPI | GitHub | Python SDK for Slack Web API, OAuth, Socket Mode, and signature handling. |
| python-telegram-bot | Telegram Bot API | Python | Community | PyPI | GitHub | Telegram bot framework with async handlers, jobs, and persistence helpers. |
| serenity | Discord | Rust | Community | docs.rs | GitHub | Rust Discord library covering gateway events, REST, commands, and cache support. |
| twilio-node | Twilio | TypeScript | Official | npm | GitHub | Node helper library for Twilio messaging, voice, Verify, and other APIs. |
| twilio-python | Twilio | Python | Official | PyPI | GitHub | Python helper library for Twilio messaging, voice, Verify, and other APIs. |
| Name | API | Language | Official / community | Package link | GitHub link | Notes |
|---|---|---|---|---|---|---|
| spotify-web-api-ts-sdk | Spotify Web API | TypeScript | Official | npm | GitHub | Official TypeScript SDK for Spotify catalog, playback, playlist, and user APIs. |
| spotipy | Spotify Web API | Python | Community | PyPI | GitHub | Lightweight Python client for Spotify endpoints and OAuth flows. |
| tmdb-wrapper | TMDB | TypeScript | Community | npm | GitHub | Typed TMDB v3 client for movies, TV, search, discover, images, and sessions. |
| Name | API | Language | Official / community | Package link | GitHub link | Notes |
|---|---|---|---|---|---|---|
| helix | Twitch Helix | Go | Community | pkg.go.dev | GitHub | Go client for Twitch Helix endpoints, EventSub verification, and OAuth tokens. |
| igdb-wrapper | IGDB | TypeScript | Community | npm | GitHub | Type-safe APICalypse queries, OAuth helpers, pagination, and image utilities. |
| twurple | Twitch | TypeScript | Community | npm | GitHub | Twitch library covering Helix, EventSub, chat, auth, and PubSub packages. |
| Name | API | Language | Official / community | Package link | GitHub link | Notes |
|---|---|---|---|---|---|---|
| anilist-wrapper | AniList | TypeScript | Community | npm | GitHub | Typed GraphQL client for anime, manga, users, staff, characters, and lists. |
| AnilistPython | AniList | Python | Community | PyPI | GitHub | Python library for AniList GraphQL queries and media lookups. |
| Name | API | Language | Official / community | Package link | GitHub link | Notes |
|---|---|---|---|---|---|---|
| node-twitter-api-v2 | Twitter/X API | TypeScript | Community | npm | GitHub | TypeScript client for Twitter/X API v1.1, v2, OAuth, streams, and media uploads. |
| praw | Python | Community | PyPI | GitHub | Python Reddit API wrapper with an idiomatic object model. | |
| tweepy | Twitter/X API | Python | Community | PyPI | GitHub | Python Twitter/X API client with OAuth, streaming, and async support. |
| Name | API | Language | Official / community | Package link | GitHub link | Notes |
|---|---|---|---|---|---|---|
| aws-sdk-js-v3 | AWS | TypeScript | Official | npm | GitHub | Modular AWS SDK with per-service clients, middleware, and TypeScript types. |
| boto3 | AWS | Python | Official | PyPI | GitHub | Python AWS SDK covering service clients, resources, sessions, and paginators. |
| firebase-admin-node | Firebase Admin | TypeScript | Official | npm | GitHub | Admin SDK for Firebase Auth, Firestore, Storage, Messaging, and app checks. |
| Name | API | Language | Official / community | Package link | GitHub link | Notes |
|---|---|---|---|---|---|---|
| anthropic-sdk-python | Anthropic | Python | Official | PyPI | GitHub | Python SDK with sync and async clients, streaming, and tool-use support. |
| anthropic-sdk-typescript | Anthropic | TypeScript | Official | npm | GitHub | TypeScript SDK with typed requests, streaming, and tool-use support. |
| cohere-python | Cohere | Python | Official | PyPI | GitHub | Python SDK for Cohere generation, embeddings, classification, and reranking. |
| groq-python | Groq | Python | Official | PyPI | GitHub | Python SDK for Groq chat completions and low-latency inference workflows. |
| huggingface_hub | Hugging Face Hub | Python | Official | PyPI | GitHub | Python client for model, dataset, Space, repository, and inference workflows. |
| openai-node | OpenAI | TypeScript | Official | npm | GitHub | TypeScript SDK with typed responses, streaming, file uploads, and webhooks. |
| openai-python | OpenAI | Python | Official | PyPI | GitHub | Python SDK with sync and async clients, streaming, uploads, and typed helpers. |
| Name | API | Language | Official / community | Package link | GitHub link | Notes |
|---|---|---|---|---|---|---|
| go-github | GitHub REST API | Go | Community | pkg.go.dev | GitHub | Go client for GitHub REST endpoints with request and response types. |
| octocrab | GitHub REST API | Rust | Community | docs.rs | GitHub | Async Rust client for GitHub REST endpoints with typed builders. |
| octokit.js | GitHub REST and GraphQL APIs | TypeScript | Official | npm | GitHub | GitHub SDK with REST, GraphQL, pagination, auth, and plugin support. |
| PyGithub | GitHub REST API | Python | Community | PyPI | GitHub | Python library for GitHub repositories, issues, pull requests, users, and orgs. |
| Name | API | Language | Official / community | Package link | GitHub link | Notes |
|---|---|---|---|---|---|---|
| google-maps-services-js | Google Maps Platform | TypeScript | Official | npm | GitHub | Node client for geocoding, directions, distance matrix, elevation, and Places. |
| mapbox-sdk-js | Mapbox | TypeScript | Official | npm | GitHub | JavaScript SDK for Mapbox web services including geocoding and uploads. |
- Check that the wrapper meets the contribution rules.
- Open an issue with the Add a wrapper template if you want feedback first.
- Add the wrapper to the most specific category in
README.md. - Keep the row factual, short, and easy to verify from the package and repo links.
- Open a pull request using the template.
New categories should be proposed only when at least three maintained wrappers fit the category and do not fit an existing section.
A good API wrapper should reduce integration work without hiding important API behavior. Strong candidates usually have:
- clear install and quickstart docs
- typed requests and responses, or idiomatic type hints for the language
- practical coverage of auth, pagination, retries, errors, and rate limits
- examples for real workflows, not only trivial requests
- tests or generated clients that track the upstream API
- visible maintenance and recent compatibility work
- a license that allows developers to use the project safely
Submissions must:
- be maintained and work with the current upstream API
- have documentation with usage examples
- have a license
- link to both a package page and a GitHub repository
- describe a wrapper or SDK for a specific public API
- avoid spam, affiliate links, paid placement, and unverifiable claims
Submissions should not include:
- general HTTP clients
- SDK generators without a specific wrapped API
- abandoned repositories
- duplicate wrappers for the same API and language unless there is a clear reason
- stars, downloads, latest release dates, or other fields that are not generated automatically
Read CONTRIBUTING.md for the full format and review process.
- Public APIs — if you are looking for APIs to integrate with
- Awesome Go
- Awesome Node.js
- Awesome Python
Thanks to everyone who has contributed.