# Changelog of Facebook Page Profile Scraper — Contact Info, Transparency (`foxlabs/facebook-page-profile-scraper`) Actor

- **URL**: https://apify.com/foxlabs/facebook-page-profile-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/foxlabs/facebook-page-profile-scraper.md

## Changelog

### 0.1.6 — 2026-10-14 — username and intro no longer blank

- `username` was null on every Page in the 2026-10-14 volume run (20/20): the about tab's JSON drops `username_for_profile` for most Pages. It now falls back to the Page's own vanity from its URL (facebook.com/NASA → `NASA`); a Page reached by a numeric id or profile.php has no vanity and stays null.
- `description` (the Page's public intro) was null on every Page: the contact tab carries no intro tile. The intro rides in the Page's `og:description` — already in the tab's HTML, no extra request — as "<name>. <n> followers · <n> talking about this. <intro>". The name-and-stats prefix is stripped and the intro remains (measured 2026-10-14: NASA, the Met, Google, Nike, BBC News, Starbucks, Disneyland), or null for a Page with no intro.

### 0.1.3 — 2026-10-11 — the shared core of the family

- The shared core was updated with the Page Videos, Events and Reviews Actors; Page rows are unchanged. The platform runs measured before publication are listed in the README.

### 0.1.2 — 2026-10-11 — 1 GB, two Pages at once

- The 20-Page run still died at 512 MB after 0.1.1: a tab's HTML is up to 14 MB and each parse keeps about 30 MB of heap until the next collection (measured). The Actor now reads two Pages side by side instead of four and asks for 1 GB of memory (the minimum a run can be given); the compute share of a Page's cost stays well under a tenth of a cent.

### 0.1.1 — 2026-10-11 — memory on long lists, website clean-up

- A run over 20 Pages ran out of memory at 512 MB on the first build: a tab's HTML is up to 14 MB (the Met's, measured) and four Pages in flight kept their parsed trees. Only the header and the fields travel with a Page now.
- A Page that names its own Facebook address as its website (Microsoft, measured) gets no website from it; the same site named twice in different forms (as a link and as text, with and without www) is one website.

### 0.1.0 — 2026-10-11 — first release

- One record per public Facebook Page, as a visitor who is not signed in sees it: name, username, category (all of them), verification, followers and following, phone, e-mail, website (all of them), address, opening hours, price range, recommendation percentage and review count, social links, profile and cover pictures, the Page's ids.
- The Page transparency tab (`includeTransparency`, on by default): when the Page was created, whether it is running ads right now, who Facebook names as responsible for it.
- Contact details from the Page's own website (`enrichFromWebsite`, off by default): the home page and, when it links one, the contact or legal-notice page — e-mail addresses and phone numbers the site publishes, two pages per site at most, nothing extra charged.
- Lines that bring nothing get a free status row that says why (not a Page address, no such Page, shown to signed-in users only, no Page data, the same Page as another line); a run the platform starts again continues from the rows it already wrote; the spending limit is kept exactly.
- Standby mode prepared (`GET /page?page=…`); published in batch mode.
