# Changelog of Instagram Scraper (`thisismegant/instagram-scraper`) Actor

- **URL**: https://apify.com/thisismegant/instagram-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/thisismegant/instagram-scraper.md

## Changelog

All notable changes to this project are documented in this file.

The format follows the spirit of Keep a Changelog, and this project uses semantic versioning for Actor releases.

### \[1.0.0] - 2026-07-03

#### Added

- Unified Apify Actor with selectable scrape modes: `profile`, `posts`, `reels`, `comments`, and `all`.
- Developer-provided Instagram authentication through the `INSTAGRAM_COOKIES` environment variable.
- Profile scraping with biography, follower counts, following counts, post counts, profile picture URL, verification status, business category, and external URL.
- Post and reel scraping with caption, hashtags, mentions, media URLs, structured media assets, owner metadata, timestamps, likes, comment counts, and available engagement metrics.
- Structured `media` output containing asset `type`, `url`, `width`, `height`, optional `duration`, `bandwidth`, and carousel index.
- Millisecond publish time fields: `takenAtMs`, `publishedAtMs`, and ISO `publishedAt`.
- Comment scraping with username, text, likes, replies, timestamp, pinned status, and verified status.
- Optional local output writer for JSON, JSONL, and CSV when running outside Apify.
- Root Apify Actor definition and input schema.
- User-facing Apify README and separate developer documentation.

#### Changed

- Docker build now forces a fresh TypeScript project build to avoid stale incremental artifacts.
- Instagram cookies are sent as request headers to avoid cross-domain cookie jar errors from Instagram response cookies.
- Cookie parsing normalizes Instagram cookies for shared `.instagram.com` usage.
- Output field naming is standardized with `camelCase`.

#### Notes

- Share, repost, save, view, and play metrics are returned only when Instagram exposes them in the authenticated endpoint response.
- Media CDN URLs may expire because Instagram signs many media URLs with time-limited parameters.
- The Actor is designed for owner-managed cookies and does not expose cookies in the public input schema.
