{"id":"org_QIsfs_sOWdKi13zrUMWyy","slug":"apify","name":"Apify","domain":"apify.com","description":null,"category":"developer-tools","avatarUrl":"https://media.releases.sh/orgs/apify.png","isHidden":false,"autoGenerateContent":false,"overviewCadenceDays":null,"featured":false,"fetchPaused":false,"discovery":"curated","status":"tracked","tags":["automation","scraping","web-crawling"],"sourceCount":2,"releaseCount":154,"releasesLast30Days":0,"avgReleasesPerWeek":0.3,"lastFetchedAt":"2026-07-19T22:49:59.426Z","lastPolledAt":"2026-07-19T22:49:55.114Z","trackingSince":"2021-03-19T17:46:49.000Z","aliases":[],"accounts":[{"platform":"github","handle":"apify"},{"platform":"x","handle":"apify"}],"products":[],"sources":[{"id":"src_-scrN8TkvrKVNE5jMlhbx","slug":"apify-sdk","name":"Apify SDK","type":"github","url":"https://github.com/apify/apify-sdk-python","isPrimary":false,"isHidden":false,"discovery":"curated","fetchPriority":"normal","lastFetchedAt":"2026-07-19T22:49:59.426Z","lastPolledAt":"2026-07-19T22:49:55.114Z","releaseCount":53,"latestVersion":"v3.4.1","latestDate":"2026-05-29T10:05:29.000Z","latestAddedAt":"2026-05-29T15:04:12.185Z","productSlug":null,"productName":null,"kind":"sdk","metadata":"{\"evaluatedMethod\":\"github\",\"evaluatedAt\":\"2026-04-11T14:04:22.555Z\",\"changelogUrl\":\"https://github.com/apify/apify-sdk-python/blob/HEAD/CHANGELOG.md\",\"changelogDetectedAt\":\"2026-04-11T14:06:06.923Z\",\"wellKnownSweptAt\":\"2026-07-16T06:00:26.474Z\",\"sourceActor\":{\"nextAlarmAt\":\"2026-07-20T02:46:45.009Z\",\"lastAlarmAt\":\"2026-07-19T22:46:46.359Z\",\"managed\":true}}"},{"id":"src_l1iMj2I4cMlNg5gXIgZo8","slug":"crawlee","name":"Crawlee","type":"github","url":"https://github.com/apify/crawlee","isPrimary":false,"isHidden":false,"discovery":"curated","fetchPriority":"low","lastFetchedAt":"2026-07-19T02:43:26.727Z","lastPolledAt":"2026-07-19T02:43:21.853Z","releaseCount":101,"latestVersion":"v3.17.0","latestDate":"2026-06-04T09:16:58.000Z","latestAddedAt":"2026-06-05T02:02:30.727Z","productSlug":null,"productName":null,"kind":"sdk","metadata":"{\"evaluatedMethod\":\"github\",\"evaluatedAt\":\"2026-04-11T14:04:22.983Z\",\"changelogUrl\":\"https://github.com/apify/crawlee/blob/HEAD/CHANGELOG.md\",\"changelogDetectedAt\":\"2026-04-11T14:06:13.127Z\",\"wellKnownSweptAt\":\"2026-07-16T06:00:26.474Z\",\"sourceActor\":{\"nextAlarmAt\":\"2026-07-20T02:41:19.082Z\",\"lastAlarmAt\":\"2026-07-19T02:41:20.726Z\",\"managed\":true}}"}],"overview":{"scope":"org","content":"Crawlee v3.17.0 shipped June 4 with a run of reliability fixes across browser-based crawling.\n\n**Sitemap hangs eliminated** — network timeouts now guard `discoverValidSitemaps`, preventing indefinitely stalled crawl runs when a sitemap endpoint stops responding. Alongside that, `Browser.pages()` was rebound correctly in `PuppeteerPlugin` so multi-page Puppeteer sessions no longer lose their handle.\n\n**Browser-pool robustness** improved on two fronts: proxy URLs on a launch context can now be unset (previously stuck once set), and the caller's `AbortContext` is preserved across the p-limit internal queue so cancellation signals propagate correctly under concurrency.\n\n`Actor.start`, `Actor.call`, and `Actor.call_task` now correctly forward run kwargs that were previously dropped, shipped in Python SDK 3.4.1 on May 29.\n\n**Persistent actor state** landed with `Actor.use_state` in 3.2.0, giving actors a first-class API for reading and writing durable state without manual storage wiring. The same release stopped silently swallowing exceptions in the request queue and fixed a `TimeoutError` in `Actor.__aexit__` that had been leaking resources.\n\n**Named storage aliases** arrived via the Actor schema `Alias` mechanism, letting operators reference storages by logical name — `default` resolves to the default storage. The Scrapy integration also migrated to Scrapy's native `AsyncCrawlerRunner`, dropping a custom async-event-loop shim.\n\n**Async and Scrapy paths hardened** across patch releases: negative timedelta clamping, a `ReentrantLock` guarded against a `None` task context, cascading cleanup steps in `Actor.__aexit__` isolated per step, mid-stream platform WebSocket disconnects handled gracefully, non-UTF-8 bodies tolerated in `ApifyRequestList` remote sources, and `max_total_charge_usd=0` correctly preserved as a zero-dollar cap.\n\n**Finer proxy geography** shipped with subdivision code support added to proxy configuration, enabling actors to target sub-country regions. **Annotation correctness** improved in 3.4.1 with `push_data` annotated as `JsonSerializable` instead of `Any`.\n","releaseCount":5,"lastContributingReleaseAt":"2026-06-04T09:16:58.000Z","generatedAt":"2026-04-21T01:07:33.405Z","updatedAt":"2026-06-16T12:48:11.588Z","citations":[{"sourceUrl":"https://github.com/apify/crawlee/releases/tag/v3.17.0","title":"Crawlee v3.17.0","releaseId":"rel_eJrzbeS4UvG_6WwEK3C8k","releaseWebUrl":"https://releases.sh/release/rel_eJrzbeS4UvG_6WwEK3C8k-v3-17-0"},{"sourceUrl":"https://github.com/apify/crawlee/releases/tag/v3.17.0","title":"Crawlee v3.17.0","releaseId":"rel_eJrzbeS4UvG_6WwEK3C8k","releaseWebUrl":"https://releases.sh/release/rel_eJrzbeS4UvG_6WwEK3C8k-v3-17-0"},{"sourceUrl":"https://github.com/apify/apify-sdk-python/releases/tag/v3.4.1","title":"Python SDK 3.4.1","releaseId":"rel_hw86NI6jn0xMcgyfvQvH3","releaseWebUrl":"https://releases.sh/release/rel_hw86NI6jn0xMcgyfvQvH3-3-4-1"},{"sourceUrl":"https://github.com/apify/apify-sdk-python/releases/tag/v3.4.0","title":"Python SDK 3.4.0","releaseId":"rel_T1X4Y5mzfFBh7Edrui0Ya","releaseWebUrl":"https://releases.sh/release/rel_T1X4Y5mzfFBh7Edrui0Ya-3-4-0"},{"sourceUrl":"https://github.com/apify/apify-sdk-python/releases/tag/v3.4.1","title":"Python SDK 3.4.1","releaseId":"rel_hw86NI6jn0xMcgyfvQvH3","releaseWebUrl":"https://releases.sh/release/rel_hw86NI6jn0xMcgyfvQvH3-3-4-1"}]},"playbook":null,"notice":null}