Name: the Actor is now linkedin-scraper (title "LinkedIn Scraper: Profiles, Companies & Posts"). API paths and the Standby URL use the new name: <username>~linkedin-scraper, https://<username>--linkedin-scraper.apify.actor.
README: rewritten for search: keyword-first intro, question-style headings, Python and JavaScript sections, a comparison table, prices and a longer FAQ.
Standby: each call now uses only its own query parameters. Before, the URLs saved in the run's input (for example a Task's prefilled examples) could be scraped and charged instead of the requested one.
Standby: charged only after the answer is sent; a disconnect or timeout stops the call at once. A 402 now carries error_label: LIMIT_REACHED.
Max cost per run: all events share one budget, reserved before each save, so pages finishing in parallel or mixing events (a company with its posts) can no longer save or charge beyond the limit. The final status message says when the run stopped on the limit.
Input: a stray % in a handle no longer fails the whole run (it becomes an INVALID_INPUT item). Handles and URL prefixes are case-insensitive (JBalada = jbalada, fetched once). An encoded slash (/in/x%2Fy) no longer resolves to a different profile. INVALID_INPUT items carry the input value as source_url instead of "".
Posts: urn:li:share: and urn:li:ugcPost: URLs are read from the ~24 KB embed page when comments are not requested. Plain reposts keep the counts shown on their card; a comment with only LinkedIn's hidden like counter gets comment_like_count: 0.
Memory: default 512 MB, minimum 256 MB (measured peak for profile batches at 10 parallel pages was above 256 MB).
Docs and schemas: company fields featured_employees, affiliates, li_employees_url and li_job_search_url added to the dataset and OpenAPI schemas; fields never produced (repost_count, comment_reply_count) removed; the OpenAPI spec now matches the server's responses (including 402, 405, 504).