github subzeroid/instagrapi 3.0.0
3.0.0 — CAA login and HTTP/2 by default

latest releases: 3.0.2, 3.0.1
5 hours ago

CAA login and private HTTP/2 are now the defaults in instagrapi 3.0.0.

Breaking changes

  • Client() uses curl for private requests; curl_cffi is installed by a normal package installation.
  • login() uses CAA directly, with no automatic fallback to the old password endpoint.
  • The previous flow remains available as login_legacy() with the same arguments and existing fallbacks.

The default Android app profile is now Instagram 446.0.0.49.77, with the previous 428 profile retained for explicit selection and saved settings (#2792).

Migration

  • Existing settings with an explicit private_transport keep that choice. To move those settings to curl, call set_retry_config(private_transport="curl") after loading them.
  • Saved app profiles without a matching Bloks hash produce an actionable error before CAA requests. Use load_settings(path, override_app_version=True) to select the supported app profile while keeping hardware and device identifiers, or supply the matching hash.
  • Private HTTP/2 uses libcurl. A system curl executable and Python h2 are not required. Public browser impersonation remains a separate optional extra.

Read the migration guide.

Validation

  • Full offline suite: 871 passed, 3 skipped; supported Python and clean-install CI passed.
  • Fresh live sample: 10/10 CAA logins, current-user checks and session restorations. All 90 private responses used HTTP/2; no HTTP 429 or legacy-login requests.
  • Live checks retained assigned proxies and device identifiers and explicitly selected the supported 446 app profile. Results apply to this ten-account sample.

Implemented in #2795.

Don't miss a new instagrapi release

NewReleases is sending notifications on new releases.