subzeroid / instagrapi
git clone https://github.com/subzeroid/instagrapi.git
3.1.0 · 2d ago
🔥 The fastest and powerful Python library for Instagram Private API 2026 with HikerAPI SaaS
+5
stars, 24h · #2,878
+~35
stars, 7 days · #3,506
+~150
stars, 30 days · #3,502
7.0k
★ total · +1% this week
1.0k
forks · 11 open issues
Star history (as recorded here)
LanguagePython
License—
Created2020-07-30 (6y ago)
Last push2d ago
Watchers95
OwnerUser
GitHub topics
instabotinstagraminstagram-accountinstagram-apiinstagram-api-pythoninstagram-automationinstagram-botinstagram-clientinstagram-crawlerinstagram-downloaderinstagram-feedinstagram-photosinstagram-private-apiinstagram-scraperinstagram-sdkinstagram-storiesinstagrapiinstaloaderinstapyosint
Links
- GitHub: github.com/subzeroid/instagrapi
- Homepage: https://subzeroid.github.io/instagrapi/
- Releases · Issues · Hacker News mentions
README excerpt
# instagrapi > ⚠️ **Telegram support group moved to aiograpi_support** — the previous `@instagrapi` group has been restricted by Meta and is no longer maintained. Fast and effective unofficial Instagram API wrapper for Python. `instagrapi` combines public web and private mobile API flows, supports session persistence and challenge handling, and covers the main automation primitives for users, media, stories, direct messages, notes, locations, comments, insights, and uploads. Private API automation is fragile in production because account trust, proxies, device state, challenges, and rate limits can change independently of the library. For account-owned business workflows, prefer official Instagram APIs where they cover your use case. For production private API infrastructure, a hosted provider such as HikerAPI may be a better fit than maintaining accounts, proxies, and challenge handling yourself. The instagrapi project is best suited for testing, research, and controlled internal automation. ✨ aiograpi - Asynchronous Python library for Instagram Private API ✨ Support **Python 3.10+** `Python 3.9` support was dropped in `2.5.0`. Upstream security patches for Pillow `12.x` and pytest `9.x` are not backported to `Python 3.9`, leaving conditional pins permanently exposed to known CVEs. Users who need `Python 3.9` should pin to `instagrapi==2.4.5`. ## Installation [code] Private mobile requests use HTTP/2 through `curl_cffi`, included in the standard installation. `Client()` needs no transport argument, and `login()` uses CAA directly. The previous login remains available as `login_legacy()`. See the login migration guide. Optional public web TLS impersonation is available as an extra: [code] For public web endpoints that are sensitive to browser TLS fingerprints: [code] See the public transport guide for live comparison results and caveats. Private mobile API requests use curl and HTTP/2 by default. See the private HTTP/2 transport guide for saved-session setup, requirements and limitations. TLS certificate verification is enabled by default. For a trusted debugging MITM proxy, prefer `Client(tls_verify="/path/to/proxy-ca.pem")`; use `Client(tls_verify=False)` only for temporary local debugging because it allows session interception. If your project uses uv, you can add the package with: [code] Or install it into the active virtual environment: [code] Video uploads can use a built-in MP4 metadata parser when you provide `thumbnail=...`. Automatic thumbnail generation, `StoryBuilder`, and video/audio composition still need the optional video dependencies, MoviePy `2.2.1`, and executable `ffmpeg`: [code] MoviePy `2.2.1` currently declares `Pillow =12.2.0` for security fixes; the `--no-deps` install keeps the safe Pillow version. If your project imports MoviePy directly, migrate any MoviePy `1.x` code from `moviepy.editor`, `set_*`, `resize`, and `subclip` APIs to the MoviePy `2.x` API before upgrading. Android users should see Pydroid and