# Changelog of Instagram Handles · Bulk Availability (`corent1robert/instagram-handle-checker`) Actor

- **URL**: https://apify.com/corent1robert/instagram-handle-checker/changelog.md
- **Full Actor documentation**: https://apify.com/corent1robert/instagram-handle-checker.md

## Changelog

### \[2.9] - 2026-09-29

#### Changed

- Free plan cap: **5 handles / run**. Suggestions only on paid plans.
- Datacenter proxy first; residential retry only when the user is paying.
- **Standby off** (idle replica was billed to the publisher).
- PPE: **$0.006 / handle** on Free (~$6 / 1k).
- End-of-run log: next step to Social Handle Checker (15 networks).

### \[2.8] - 2026-08-28

#### Added

- **Standby HTTP lookup** (`GET`/`POST` `/lookup`): `handle` or `handles`, hard cap 5, same `handle-checked` PPE as Start. Suggestions skipped on Standby to keep lookups cheap. Console Start is unchanged.

### \[2.7] - 2026-08-24

#### Changed

- Default memory 1024 MB (was 4096). Categories: `SOCIAL_MEDIA`, `LEAD_GENERATION`.
- HTML profile **200 is not treated as taken** (login walls). Uncertain lookups stay `error`. README points to Social Handle Checker for multi-network runs.

### \[2.6] - 2026-08-19

#### Changed

- Store copy: free plan is **20 handles / run**, not hundreds. Categories: `SOCIAL_MEDIA`, `LEAD_GENERATION`, then `AUTOMATION`.

### \[2.5] - 2026-08-18

#### Changed

- Store `seoTitle`: `Instagram Handle Availability Checker | Apify`.

### \[2.4] - 2026-08-18

#### Added

- **8 more Store Examples** (12 total) — influencer, shop, FR brand, podcast, web3, fashion, restaurant, short available names.

### \[2.3] - 2026-08-17

#### Fixed

- **Honesty:** handles are normalised (`@` stripped, lowercase, Instagram URL parse, charset, 1–30 chars) and deduplicated before the check.
- **Billing:** only `available` / `taken` rows are charged. Invalid names, rate limits, and failed checks are written but not billed.
- **Suggestions:** when a handle is taken, up to 3 variants are checked and listed if they are available. Empty `[]` is no longer the only outcome.
- README and Examples links use `corent1robert` (the Store username). Agency Example title no longer claims 100 handles on a 10-handle Try.
- **Check path:** restored the working public-profile lookup (same as 2.1 scheduled runs). The GraphQL password-reset session never obtained tokens on cloud (`session_unavailable`).

#### Changed

- Store description matches what the Actor actually returns.

### \[2.2] - 2026-08-17

#### Changed

- **Free plan cap:** 20 handles per run (`APIFY_USER_IS_PAYING`). Status: `Free plan: 20 handles. Upgrade for bulk.`
- **Charge then export:** `handle-checked` is billed before `pushData`. If `chargedCount === 0`, the row is not written. Stops the free-plan leak (full dataset, $0 revenue).
- Anonymous Try-without-account runs disabled (`isAnonymouslyRunnable: false`).
- README + input schema: honest free/paid limits. Pricing table matches Console ($0.004 / handle on Free, no actor-start).

### \[2.1] - 2026-06-02

#### Changed

- **Session cookies now required** — Instagram blocks all anonymous username-check requests since mid-2025; `instagramCookies` input is now mandatory for successful runs
- TikTok removed from Actor scope — Instagram-only; remaining handles field references cleaned up
- README fully rewritten: benefit table, persona table, cookie export guide, honest limitations
- `actor.json` title and description updated to reflect cookie requirement (removed "No Login" claim)
- Per-proxy-group token fetch: each proxy group obtains its own session tokens via its own IP (prevents IP/token mismatch 429s)
- `remaining` counter now shows `X of N remaining` for clarity when multiple platforms were used
- `CONCURRENT_LIMIT` reduced to 5, `PROXY_GROUP_SIZE` to 3 for safer anonymous fallback

### \[2.0] - 2026-06-02

#### Fixed

- HTTP 429 rate limit errors: Actor now switches to a fresh residential proxy IP on each retry instead of reusing the same IP
- Backoff delays increased (5s base vs 3s) to reduce consecutive rate limit hits

#### Changed

- Concurrent request limit reduced from 40 to 10 for more stable runs
- Proxy group size reduced from 15 to 5 handles per proxy IP
- Inter-request delays increased to 100–300ms (was 10–40ms) on Apify
- Run logs now use professional ASCII format (no emoji) aligned with Apify Store standards
- Actor version bumped to 2.0

#### Added

- `Actor.setStatusMessage` for live run status on Apify Console
- RUN\_LOG key-value record (flushed every 15 lines, capped at 2000 lines) for run history
- `proxyConfig` parameter passed into `checkInstagramHandleAvailability` for mid-retry IP switching

### \[1.0] - Initial release

- Bulk Instagram and TikTok handle availability checking
- Residential proxy support
- Token auto-refresh on rate limits
- CSV export for local runs
