{"id":"src_-scrN8TkvrKVNE5jMlhbx","slug":"apify-sdk","name":"Apify SDK","type":"github","url":"https://github.com/apify/apify-sdk-python","orgId":"org_QIsfs_sOWdKi13zrUMWyy","org":{"slug":"apify","name":"Apify"},"isPrimary":false,"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\"}","releaseCount":50,"releasesLast30Days":1,"avgReleasesPerWeek":0.4,"latestVersion":"v3.3.2","latestDate":"2026-03-27T13:27:56.000Z","changelogUrl":"https://github.com/apify/apify-sdk-python/blob/HEAD/CHANGELOG.md","hasChangelogFile":true,"lastFetchedAt":"2026-04-18T14:07:46.407Z","trackingSince":"2023-02-09T13:39:45.000Z","releases":[{"id":"rel_VTzDgxW3r-UIKPJ1jYSuO","version":"v3.3.2","title":"3.3.2","summary":"## [3.3.2](https://github.com/apify/apify-sdk-python/releases/tag/v3.3.2) (2026-03-27)\n\n### 🐛 Bug Fixes\n\n- **scrapy:** Resolve Crawlee&#x27;s request...","content":"## [3.3.2](https://github.com/apify/apify-sdk-python/releases/tag/v3.3.2) (2026-03-27)\n\n### 🐛 Bug Fixes\n\n- **scrapy:** Resolve Crawlee&#x27;s request data round-trip failure in request conversion ([#832](https://github.com/apify/apify-sdk-python/pull/832)) ([3b9d588](https://github.com/apify/apify-sdk-python/commit/3b9d5888611597a522300c742014c06cc0b857b9)) by @vdusek\n- Treat `default` alias as default storage when in schema ([#827](https://github.com/apify/apify-sdk-python/pull/827)) ([1610d0d](https://github.com/apify/apify-sdk-python/commit/1610d0dda40ba30bd3b4dea28d9fef04c9b7c839)) by @Pijukatel\n- Guard ReentrantLock against None task context ([#841](https://github.com/apify/apify-sdk-python/pull/841)) ([193de10](https://github.com/apify/apify-sdk-python/commit/193de10910946ca0ce93bc2fc7c741a26e9f6e9c)) by @vdusek\n- Isolate cleanup steps in Actor `__aexit__` to prevent cascading failures ([#842](https://github.com/apify/apify-sdk-python/pull/842)) ([68c2acf](https://github.com/apify/apify-sdk-python/commit/68c2acf3dba71b78f893fc6f1e816e3a3148f0c9)) by @vdusek\n- Handle exceptions in pre-reboot event listeners via `return_exceptions` ([#843](https://github.com/apify/apify-sdk-python/pull/843)) ([ed13597](https://github.com/apify/apify-sdk-python/commit/ed13597d7ce0d1f0c5ff5cd0d6796c96555a55ae)) by @vdusek\n\n","publishedAt":"2026-03-27T13:27:56.000Z","url":"https://github.com/apify/apify-sdk-python/releases/tag/v3.3.2","media":[]},{"id":"rel_GJxhAWnrHzE-cKm4ugWCn","version":"v3.3.1","title":"3.3.1","summary":"## [3.3.1](https://github.com/apify/apify-sdk-python/releases/tag/v3.3.1) (2026-03-11)\n\n### 🐛 Bug Fixes\n\n- Fix f-string bugs in charging log message ...","content":"## [3.3.1](https://github.com/apify/apify-sdk-python/releases/tag/v3.3.1) (2026-03-11)\n\n### 🐛 Bug Fixes\n\n- Fix f-string bugs in charging log message ([#817](https://github.com/apify/apify-sdk-python/pull/817)) ([bcb4050](https://github.com/apify/apify-sdk-python/commit/bcb4050b3f5ade0e577dd7499979dc65c0ba815e)) by @vdusek\n- Fix BeforeValidator treating 0 as falsy in configuration fields ([#819](https://github.com/apify/apify-sdk-python/pull/819)) ([72efe88](https://github.com/apify/apify-sdk-python/commit/72efe883574ef0d05795934337c7f1c8c0d11877)) by @vdusek\n- Clamp negative timedelta in _get_remaining_time() ([#818](https://github.com/apify/apify-sdk-python/pull/818)) ([69b8af9](https://github.com/apify/apify-sdk-python/commit/69b8af9b8d245cfed76875f983f374e05d93bba8)) by @vdusek\n- **scrapy:** Close AsyncThread on scheduler open() failure ([#820](https://github.com/apify/apify-sdk-python/pull/820)) ([7dfaf1a](https://github.com/apify/apify-sdk-python/commit/7dfaf1a5c5af44743bd448a91140d9b074ac44bf)) by @vdusek\n- Keep track of synthetic apify-default-dataset-item events ([#814](https://github.com/apify/apify-sdk-python/pull/814)) ([50c4b6c](https://github.com/apify/apify-sdk-python/commit/50c4b6ce80b45da5348a74c559b8790edbeae04a)) by @Mantisus\n\n","publishedAt":"2026-03-11T12:21:51.000Z","url":"https://github.com/apify/apify-sdk-python/releases/tag/v3.3.1","media":[]},{"id":"rel_PImvFn9SgUis25tijYFGf","version":"v3.3.0","title":"3.3.0","summary":"## [3.3.0](https://github.com/apify/apify-sdk-python/releases/tag/v3.3.0) (2026-02-25)\n\n### 🚀 Features\n\n- Support Actor schema storages with Alias me...","content":"## [3.3.0](https://github.com/apify/apify-sdk-python/releases/tag/v3.3.0) (2026-02-25)\n\n### 🚀 Features\n\n- Support Actor schema storages with Alias mechanism ([#797](https://github.com/apify/apify-sdk-python/pull/797)) ([10986ac](https://github.com/apify/apify-sdk-python/commit/10986ac2f4a3d1112aa06eaf26f82884ab9c455a)) by @Pijukatel\n- Migrate to Scrapy&#x27;s native AsyncCrawlerRunner ([#793](https://github.com/apify/apify-sdk-python/pull/793)) ([01ad9da](https://github.com/apify/apify-sdk-python/commit/01ad9daf834894f798bbfa4362fc7d7f95bafe5c)) by @vdusek\n\n### 🐛 Bug Fixes\n\n- Resolve LogRecord attribute conflict in event manager logging ([#802](https://github.com/apify/apify-sdk-python/pull/802)) ([e1bdbc9](https://github.com/apify/apify-sdk-python/commit/e1bdbc9e303c24571b9511f43ec0815e7e9f4b55)) by @vdusek\n- Update models.py to align with the current API behavior ([#782](https://github.com/apify/apify-sdk-python/pull/782)) ([b06355d](https://github.com/apify/apify-sdk-python/commit/b06355dbc1c8276e9930ecbde72795b6570dde33)) by @vdusek\n- Handle `ServiceConflictError` when reusing `Actor` across sequential context ([#804](https://github.com/apify/apify-sdk-python/pull/804)) ([9e5078f](https://github.com/apify/apify-sdk-python/commit/9e5078fa7b1a19e44893bd3409b45108519aef63)) by @Mantisus\n\n","publishedAt":"2026-02-25T16:12:03.000Z","url":"https://github.com/apify/apify-sdk-python/releases/tag/v3.3.0","media":[]},{"id":"rel_5-E2hZxyiEEMn7odgpmSZ","version":"v3.2.1","title":"3.2.1","summary":"## [3.2.1](https://github.com/apify/apify-sdk-python/releases/tag/v3.2.1) (2026-02-17)\n\n### 🐛 Bug Fixes\n\n- Fix crawler deadlock when API fails during...","content":"## [3.2.1](https://github.com/apify/apify-sdk-python/releases/tag/v3.2.1) (2026-02-17)\n\n### 🐛 Bug Fixes\n\n- Fix crawler deadlock when API fails during marking request as handled ([#768](https://github.com/apify/apify-sdk-python/pull/768)) ([66ed5ea](https://github.com/apify/apify-sdk-python/commit/66ed5eaf819f9c9f411c814606187d76d32a4e11)) by @Pijukatel\n- Use hashed request_id as cache key in shared RQ client reclaim_request ([#795](https://github.com/apify/apify-sdk-python/pull/795)) ([bd7572f](https://github.com/apify/apify-sdk-python/commit/bd7572f5b66e9417e4fa1c021b4d47a86b4cb8cf)) by @vdusek\n- Correct inverted return value in Scrapy scheduler enqueue_request ([#794](https://github.com/apify/apify-sdk-python/pull/794)) ([405cf5d](https://github.com/apify/apify-sdk-python/commit/405cf5dc96f9fd794eaf570ffc877d503829244a)) by @vdusek\n- Eliminate race condition in _fetch_requests_from_url ([#796](https://github.com/apify/apify-sdk-python/pull/796)) ([c0a74b9](https://github.com/apify/apify-sdk-python/commit/c0a74b9eaf8032510528c2a9ab93c4840a51e79f)) by @vdusek\n\n","publishedAt":"2026-02-17T14:58:30.000Z","url":"https://github.com/apify/apify-sdk-python/releases/tag/v3.2.1","media":[]},{"id":"rel_K-Xc-JaL98S9j-0AdHDJ6","version":"v3.2.0","title":"3.2.0","summary":"## [3.2.0](https://github.com/apify/apify-sdk-python/releases/tag/v3.2.0) (2026-02-11)\n\n### 🚀 Features\n\n- Add `Actor` method `use_state` ([#738](http...","content":"## [3.2.0](https://github.com/apify/apify-sdk-python/releases/tag/v3.2.0) (2026-02-11)\n\n### 🚀 Features\n\n- Add `Actor` method `use_state` ([#738](https://github.com/apify/apify-sdk-python/pull/738)) ([8a78b6f](https://github.com/apify/apify-sdk-python/commit/8a78b6fc9324e948b3481b07a3582215d3c966fe)) by @Mantisus\n\n### 🐛 Bug Fixes\n\n- Stop silently swallowing exceptions in request queue ([#777](https://github.com/apify/apify-sdk-python/pull/777)) ([6358d66](https://github.com/apify/apify-sdk-python/commit/6358d66aeb83484845b17f7c8632b6c763cef368)) by @vdusek\n- Handle TimeoutError in Actor __aexit__ to prevent resource leaks ([#776](https://github.com/apify/apify-sdk-python/pull/776)) ([fb13765](https://github.com/apify/apify-sdk-python/commit/fb13765448a2a6e2b776de819ece68f90abff1e3)) by @vdusek\n- Pass name instead of id for name param in SmartApifyStorageClient ([#775](https://github.com/apify/apify-sdk-python/pull/775)) ([56cfc38](https://github.com/apify/apify-sdk-python/commit/56cfc38aa98a2a6689dd077e9d5c5d8729872413)) by @vdusek\n\n","publishedAt":"2026-02-11T10:52:32.000Z","url":"https://github.com/apify/apify-sdk-python/releases/tag/v3.2.0","media":[]},{"id":"rel_YJ6p_xqNPwAyFomT7uCoK","version":"v3.1.0","title":"3.1.0","summary":"## [3.1.0](https://github.com/apify/apify-sdk-python/releases/tag/v3.1.0) (2025-12-08)\n\n### 🚀 Features\n\n- Add support for Python 3.14 ([#680](https:/...","content":"## [3.1.0](https://github.com/apify/apify-sdk-python/releases/tag/v3.1.0) (2025-12-08)\n\n### 🚀 Features\n\n- Add support for Python 3.14 ([#680](https://github.com/apify/apify-sdk-python/pull/680)) ([b81e86a](https://github.com/apify/apify-sdk-python/commit/b81e86ad294b953f72bce944739649eac3789ebc)) by @Mantisus\n- Add `ACTOR_PERMISSION_LEVEL` to the configuration ([#689](https://github.com/apify/apify-sdk-python/pull/689)) ([68012c7](https://github.com/apify/apify-sdk-python/commit/68012c7dfe5e4a8b043ce4075826e63c0262ae2e)) by @stepskop\n\n### 🐛 Bug Fixes\n\n- Make `ApifyFileSystemStorageClient` compatible with the apify cli ([#677](https://github.com/apify/apify-sdk-python/pull/677)) ([a32274f](https://github.com/apify/apify-sdk-python/commit/a32274f26b1d2ae4fcf36958e799bf412941464a)) by @Pijukatel\n- Synchronize charge operations to prevent race conditions ([#684](https://github.com/apify/apify-sdk-python/pull/684)) ([1c7a9e6](https://github.com/apify/apify-sdk-python/commit/1c7a9e6f386105630c3c1de7ffa092e369698aa0)) by @vdusek\n\n","publishedAt":"2025-12-08T13:56:41.000Z","url":"https://github.com/apify/apify-sdk-python/releases/tag/v3.1.0","media":[]},{"id":"rel_qztJQWU8U0zJcOTtKgvho","version":"v3.0.5","title":"3.0.5","summary":"## [3.0.5](https://github.com/apify/apify-sdk-python/releases/tag/v3.0.5) (2025-11-18)\n\n### 🐛 Bug Fixes\n\n- Fix crash in `Actor.push_data` with PPE an...","content":"## [3.0.5](https://github.com/apify/apify-sdk-python/releases/tag/v3.0.5) (2025-11-18)\n\n### 🐛 Bug Fixes\n\n- Fix crash in `Actor.push_data` with PPE and a strict charging limit ([#664](https://github.com/apify/apify-sdk-python/pull/664)) ([8f2e4b2](https://github.com/apify/apify-sdk-python/commit/8f2e4b2cc1f62e9a09656b4d3334caf840338a3a)) by @janbuchar\n- Avoid charge calls with count=0 ([#665](https://github.com/apify/apify-sdk-python/pull/665)) ([a0f894e](https://github.com/apify/apify-sdk-python/commit/a0f894e879225eb1b639c4f897a1dd0103903c78)) by @janbuchar\n- Fix Actor.charge behavior when the budget is overdrawn ([#668](https://github.com/apify/apify-sdk-python/pull/668)) ([88e6ba3](https://github.com/apify/apify-sdk-python/commit/88e6ba340a68dcf5e272ee947f4e38ce0f3dea46)) by @janbuchar\n- Fix detection of whether any instance is initialized ([#675](https://github.com/apify/apify-sdk-python/pull/675)) ([b2355cf](https://github.com/apify/apify-sdk-python/commit/b2355cf697aac6383a404e1bbbefbecd5f38c760)) by @vdusek\n- Update apify client to fix rare `JSONDecodeError` ([#679](https://github.com/apify/apify-sdk-python/pull/679)) ([17c13d1](https://github.com/apify/apify-sdk-python/commit/17c13d1ecfbe231fdc4f91c5a24abe65b8abdb26)) by @Pijukatel\n\n","publishedAt":"2025-11-18T10:22:46.000Z","url":"https://github.com/apify/apify-sdk-python/releases/tag/v3.0.5","media":[]},{"id":"rel_-r4rN3RZtGJbth5V9CRdE","version":"v3.0.4","title":"3.0.4","summary":"## [3.0.4](https://github.com/apify/apify-sdk-python/releases/tag/v3.0.4) (2025-11-03)\n\n### 🐛 Bug Fixes\n\n- Fix type of `cloud_storage_client` in `Sma...","content":"## [3.0.4](https://github.com/apify/apify-sdk-python/releases/tag/v3.0.4) (2025-11-03)\n\n### 🐛 Bug Fixes\n\n- Fix type of `cloud_storage_client` in `SmartApifyStorageClient` ([#642](https://github.com/apify/apify-sdk-python/pull/642)) ([3bf285d](https://github.com/apify/apify-sdk-python/commit/3bf285d60f507730954986a80c19ed2e27a38f9c)) by @vdusek\n- Fix local charging log dataset name ([#649](https://github.com/apify/apify-sdk-python/pull/649)) ([fdb1276](https://github.com/apify/apify-sdk-python/commit/fdb1276264aee2687596d87c96d19033fe915823)) by @vdusek\n\n### ⚡ Performance\n\n- Use Apify-provided environment variables to obtain PPE pricing information ([#644](https://github.com/apify/apify-sdk-python/pull/644)) ([0c32f29](https://github.com/apify/apify-sdk-python/commit/0c32f29d6a316f5bacc931595d694f262c925b2b)) by @Mantisus\n\n","publishedAt":"2025-11-03T12:25:00.000Z","url":"https://github.com/apify/apify-sdk-python/releases/tag/v3.0.4","media":[]},{"id":"rel_QbGM1uEgfkaZ3OPSH1gTG","version":"v3.0.3","title":"3.0.3","summary":"## [3.0.3](https://github.com/apify/apify-sdk-python/releases/tag/v3.0.3) (2025-10-21)\n\n### 🐛 Bug Fixes\n\n- Cache requests in RQ implementations by `i...","content":"## [3.0.3](https://github.com/apify/apify-sdk-python/releases/tag/v3.0.3) (2025-10-21)\n\n### 🐛 Bug Fixes\n\n- Cache requests in RQ implementations by `id` ([#633](https://github.com/apify/apify-sdk-python/pull/633)) ([76886ce](https://github.com/apify/apify-sdk-python/commit/76886ce496165346a01f67e018547287c211ea54)) by @Pijukatel\n\n","publishedAt":"2025-10-21T10:48:42.000Z","url":"https://github.com/apify/apify-sdk-python/releases/tag/v3.0.3","media":[]},{"id":"rel_L1WaYkzBLmpmijW8yoGJV","version":"v3.0.2","title":"3.0.2","summary":"## [3.0.2](https://github.com/apify/apify-sdk-python/releases/tag/v3.0.2) (2025-10-17)\n\n### 🐛 Bug Fixes\n\n- Handle None result in single consumer requ...","content":"## [3.0.2](https://github.com/apify/apify-sdk-python/releases/tag/v3.0.2) (2025-10-17)\n\n### 🐛 Bug Fixes\n\n- Handle None result in single consumer request queue client ([#623](https://github.com/apify/apify-sdk-python/pull/623)) ([451284a](https://github.com/apify/apify-sdk-python/commit/451284a5c633bc5613bd1e9060df286a1c20b259)) by @janbuchar\n- Unify Actor context manager with init &amp; exit methods ([#600](https://github.com/apify/apify-sdk-python/pull/600)) ([6b0d084](https://github.com/apify/apify-sdk-python/commit/6b0d0842ae66a3a206bbb682a3e5f81ad552f029)) by @vdusek\n- Handle truncated `unique_key` in `list_head` by fetching full request data ([#631](https://github.com/apify/apify-sdk-python/pull/631)) ([4238086](https://github.com/apify/apify-sdk-python/commit/423808678d9155a84a266bf50bb09f1a56466174)) by @vdusek\n\n","publishedAt":"2025-10-17T09:33:53.000Z","url":"https://github.com/apify/apify-sdk-python/releases/tag/v3.0.2","media":[]},{"id":"rel_P9E454HA8R_74C0F7DHXk","version":"v3.0.1","title":"3.0.1","summary":"## [3.0.1](https://github.com/apify/apify-sdk-python/releases/tag/v3.0.1) (2025-10-08)\n\n### 🐛 Bug Fixes\n\n- Also load input from a file with a .json e...","content":"## [3.0.1](https://github.com/apify/apify-sdk-python/releases/tag/v3.0.1) (2025-10-08)\n\n### 🐛 Bug Fixes\n\n- Also load input from a file with a .json extension in file system storage ([#617](https://github.com/apify/apify-sdk-python/pull/617)) ([b62804c](https://github.com/apify/apify-sdk-python/commit/b62804c170069cd7aa77572bb9682a156581cbac)) by @janbuchar\n\n","publishedAt":"2025-10-08T11:30:20.000Z","url":"https://github.com/apify/apify-sdk-python/releases/tag/v3.0.1","media":[]},{"id":"rel_vB3Pi2dcJVm34kZCHsNKl","version":"v3.0.0","title":"3.0.0","summary":"## [3.0.0](https://github.com/apify/apify-sdk-python/releases/tag/v3.0.0) (2025-09-29)\r\n\r\n- Check out the [Upgrading guide](https://docs.apify.com/sdk...","content":"## [3.0.0](https://github.com/apify/apify-sdk-python/releases/tag/v3.0.0) (2025-09-29)\r\n\r\n- Check out the [Upgrading guide](https://docs.apify.com/sdk/python/docs/upgrading/upgrading-to-v3) to ensure a smooth update.\r\n\r\n### 🚀 Features\r\n\r\n- Add deduplication to `add_batch_of_requests` ([#534](https://github.com/apify/apify-sdk-python/pull/534)) ([dd03c4d](https://github.com/apify/apify-sdk-python/commit/dd03c4d446f611492adf35f1b5738648ee5a66f7)) by @Pijukatel\r\n- Add new methods to ChargingManager ([#580](https://github.com/apify/apify-sdk-python/pull/580)) ([54f7f8b](https://github.com/apify/apify-sdk-python/commit/54f7f8b29c5982be98b595dac11eceff915035c9)) by @vdusek\r\n- Add support for NDU storages ([#594](https://github.com/apify/apify-sdk-python/pull/594)) ([8721ef5](https://github.com/apify/apify-sdk-python/commit/8721ef5731bcb1a04ad63c930089bf83be29f308)) by @vdusek\r\n- Add stats to `ApifyRequestQueueClient` ([#574](https://github.com/apify/apify-sdk-python/pull/574)) ([21f6782](https://github.com/apify/apify-sdk-python/commit/21f6782b444f623aba986b4922cf67bafafd4b2c)) by @Pijukatel\r\n- Add specialized ApifyRequestQueue clients ([#573](https://github.com/apify/apify-sdk-python/pull/573)) ([f830ab0](https://github.com/apify/apify-sdk-python/commit/f830ab09b1fa12189c9d3297d5cf18a4f2da62fa)) by @Pijukatel\r\n\r\n### 🐛 Bug Fixes\r\n\r\n- Restrict apify-shared and apify-client versions ([#523](https://github.com/apify/apify-sdk-python/pull/523)) ([b3ae5a9](https://github.com/apify/apify-sdk-python/commit/b3ae5a972a65454a4998eda59c9fcc3f6b7e8579)) by @vdusek\r\n- Expose `APIFY_USER_IS_PAYING` env var to the configuration ([#507](https://github.com/apify/apify-sdk-python/pull/507)) ([0801e54](https://github.com/apify/apify-sdk-python/commit/0801e54887317c1280cc6828ecd3f2cc53287e76)) by @stepskop\r\n- Resolve DeprecationWarning in ApifyEventManager ([#555](https://github.com/apify/apify-sdk-python/pull/555)) ([0c5111d](https://github.com/apify/apify-sdk-python/commit/0c5111dafe19796ec1fb9652a44c031bed9758df)) by @vdusek\r\n- Use same `client_key` for `Actor` created `request_queue` and improve its metadata estimation ([#552](https://github.com/apify/apify-sdk-python/pull/552)) ([7e4e5da](https://github.com/apify/apify-sdk-python/commit/7e4e5da81dd87e84ebeef2bd336c6c1d422cb9a7)) by @Pijukatel\r\n- Properly process pre-existing Actor input file ([#591](https://github.com/apify/apify-sdk-python/pull/591)) ([cc5075f](https://github.com/apify/apify-sdk-python/commit/cc5075fab8c72ca5711cfd97932037b34e6997cd)) by @Pijukatel\r\n\r\n### Chore\r\n\r\n- [**breaking**] Update apify-client and apify-shared to v2.0 ([#548](https://github.com/apify/apify-sdk-python/pull/548)) ([8ba084d](https://github.com/apify/apify-sdk-python/commit/8ba084ded6cd018111343f2219260b481c8d4e35)) by @vdusek\r\n\r\n### Refactor\r\n\r\n- [**breaking**] Adapt to the Crawlee v1.0 ([#470](https://github.com/apify/apify-sdk-python/pull/470)) ([f7e3320](https://github.com/apify/apify-sdk-python/commit/f7e33206cf3e4767faacbdc43511b45b6785f929)) by @vdusek\r\n- [**breaking**] Replace `httpx` with `impit` ([#560](https://github.com/apify/apify-sdk-python/pull/560)) ([cca3869](https://github.com/apify/apify-sdk-python/commit/cca3869e85968865e56aafcdcb36fbccba27aef0)) by @Mantisus\r\n- [**breaking**] Remove `Request.id` field ([#553](https://github.com/apify/apify-sdk-python/pull/553)) ([445ab5d](https://github.com/apify/apify-sdk-python/commit/445ab5d752b785fc2018b35c8adbe779253d7acd)) by @Pijukatel\r\n- [**breaking**] Make `Actor` initialization stricter and more predictable ([#576](https://github.com/apify/apify-sdk-python/pull/576)) ([912222a](https://github.com/apify/apify-sdk-python/commit/912222a7a8123be66c94c50a2e461276fbfc50c4)) by @Pijukatel\r\n- [**breaking**] Make default Apify storages use alias mechanism ([#606](https://github.com/apify/apify-sdk-python/pull/606)) ([dbea7d9](https://github.com/apify/apify-sdk-python/commit/dbea7d97fe7f25aa8658a32c5bb46a3800561df5)) by @Pijukatel","publishedAt":"2025-09-29T07:50:11.000Z","url":"https://github.com/apify/apify-sdk-python/releases/tag/v3.0.0","media":[]},{"id":"rel_qFvL8xiVPT-ifuuJx9QtR","version":"v2.7.3","title":"2.7.3","summary":"## [2.7.3](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.3) (2025-08-11)\n\n### 🐛 Bug Fixes\n\n- Expose `APIFY_USER_IS_PAYING` env var to t...","content":"## [2.7.3](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.3) (2025-08-11)\n\n### 🐛 Bug Fixes\n\n- Expose `APIFY_USER_IS_PAYING` env var to the configuration (#507) ([0de022c](https://github.com/apify/apify-sdk-python/commit/0de022c3435f24c821053c771e7b659433e3fb6e))\n\n","publishedAt":"2025-08-11T13:46:56.000Z","url":"https://github.com/apify/apify-sdk-python/releases/tag/v2.7.3","media":[]},{"id":"rel_gIuuGE7U6GMH3TZsE1kM9","version":"v2.7.2","title":"2.7.2","summary":"## [2.7.2](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.2) (2025-07-30)\n\n### 🐛 Bug Fixes\n\n- Restrict apify-shared and apify-client ver...","content":"## [2.7.2](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.2) (2025-07-30)\n\n### 🐛 Bug Fixes\n\n- Restrict apify-shared and apify-client versions (#523) ([581ebae](https://github.com/apify/apify-sdk-python/commit/581ebae5752a984a34cbabc02c49945ae392db00))\n\n","publishedAt":"2025-07-30T07:20:54.000Z","url":"https://github.com/apify/apify-sdk-python/releases/tag/v2.7.2","media":[]},{"id":"rel_2av60mx_fiZvzsEk4iRTS","version":"v2.7.1","title":"2.7.1","summary":"## [2.7.1](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.1) (2025-07-24)\r\n\r\n### 🐛 Bug Fixes\r\n\r\n- Add back support for Python 3.9.","content":"## [2.7.1](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.1) (2025-07-24)\r\n\r\n### 🐛 Bug Fixes\r\n\r\n- Add back support for Python 3.9.","publishedAt":"2025-07-24T12:51:06.000Z","url":"https://github.com/apify/apify-sdk-python/releases/tag/v2.7.1","media":[]},{"id":"rel_dh6tfArzloaULkXfH_Pzb","version":"v2.7.0","title":"2.7.0","summary":"## [2.7.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.0) (2025-07-14)\r\n\r\n### 🚀 Features\r\n\r\n- Expose `logger` argument on `Actor.call...","content":"## [2.7.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.0) (2025-07-14)\r\n\r\n### 🚀 Features\r\n\r\n- Expose `logger` argument on `Actor.call` to control log redirection from started Actor run ([#487](https://github.com/apify/apify-sdk-python/pull/487)) ([aa6fa47](https://github.com/apify/apify-sdk-python/commit/aa6fa4750ea1bc7909be1191c0d276a2046930c2)) by @Pijukatel\r\n- **crypto:** Decrypt secret objects ([#482](https://github.com/apify/apify-sdk-python/pull/482)) ([ce9daf7](https://github.com/apify/apify-sdk-python/commit/ce9daf7381212b8dc194e8a643e5ca0dedbc0078)) by @MFori\r\n\r\n","publishedAt":"2025-07-14T09:52:07.000Z","url":"https://github.com/apify/apify-sdk-python/releases/tag/v2.7.0","media":[]},{"id":"rel_zvmLyzkrdpRKvZ5QVnZme","version":"v2.6.0","title":"2.6.0","summary":"## [2.6.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.6.0) (2025-06-09)\n\n### 🚀 Features\n\n- Add `RemainingTime` option for `timeout` ar...","content":"## [2.6.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.6.0) (2025-06-09)\n\n### 🚀 Features\n\n- Add `RemainingTime` option for `timeout` argument of `Actor.call` and `Actor.start` ([#473](https://github.com/apify/apify-sdk-python/pull/473)) ([ba7f757](https://github.com/apify/apify-sdk-python/commit/ba7f757a82661a5a181d9bd767950d09557409f9)) by @Pijukatel\n\n### 🐛 Bug Fixes\n\n- Fix duplicate logs from apify logger in Scrapy integration ([#457](https://github.com/apify/apify-sdk-python/pull/457)) ([2745ee6](https://github.com/apify/apify-sdk-python/commit/2745ee6529deecb4f2838c764b9bb3fb6606762b)) by @vdusek\n- Prefer proxy password from env var  ([#468](https://github.com/apify/apify-sdk-python/pull/468)) ([1c4ad9b](https://github.com/apify/apify-sdk-python/commit/1c4ad9bcfbf6ac404f942d7d2d249b036c2e7f54)) by @stepskop\n\n","publishedAt":"2025-06-09T11:36:38.000Z","url":"https://github.com/apify/apify-sdk-python/releases/tag/v2.6.0","media":[]},{"id":"rel_Iwse4JLHILajbHXAfzE2h","version":"v2.5.0","title":"2.5.0","summary":"## [2.5.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.5.0) (2025-03-27)\n\n### 🚀 Features\n\n- Implement Scrapy HTTP cache backend  ([#403...","content":"## [2.5.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.5.0) (2025-03-27)\n\n### 🚀 Features\n\n- Implement Scrapy HTTP cache backend  ([#403](https://github.com/apify/apify-sdk-python/pull/403)) ([137e3c8](https://github.com/apify/apify-sdk-python/commit/137e3c8d5c6b28cf6935cfb742b5f072cd2e0a02)) by @honzajavorek\n\n### 🐛 Bug Fixes\n\n- Fix calculation of CPU utilization from SystemInfo events ([#447](https://github.com/apify/apify-sdk-python/pull/447)) ([eb4c8e4](https://github.com/apify/apify-sdk-python/commit/eb4c8e4e498e23f573b9e2d4c7dbd8e2ecc277d9)) by @janbuchar\n\n","publishedAt":"2025-03-27T12:58:26.000Z","url":"https://github.com/apify/apify-sdk-python/releases/tag/v2.5.0","media":[]},{"id":"rel_MfxIJPKo1ydfJ0GN8YrEu","version":"v2.4.0","title":"2.4.0","summary":"## [2.4.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.4.0) (2025-03-07)\n\n### 🚀 Features\n\n- Update to Crawlee v0.6 ([#420](https://gith...","content":"## [2.4.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.4.0) (2025-03-07)\n\n### 🚀 Features\n\n- Update to Crawlee v0.6 ([#420](https://github.com/apify/apify-sdk-python/pull/420)) ([9be4336](https://github.com/apify/apify-sdk-python/commit/9be433667231cc5739861fa693d7a726860d6aca)) by @vdusek\n- Add Actor `exit_process` option ([#424](https://github.com/apify/apify-sdk-python/pull/424)) ([994c832](https://github.com/apify/apify-sdk-python/commit/994c8323b994e009db0ccdcb624891a2fef97070)) by @vdusek\n- Upgrade websockets to v14 to adapt to library API changes ([#425](https://github.com/apify/apify-sdk-python/pull/425)) ([5f49275](https://github.com/apify/apify-sdk-python/commit/5f49275ca1177e5ba56856ffe3860f6b97bee9ee)) by @Mantisus\n- Add signing of public URL ([#407](https://github.com/apify/apify-sdk-python/pull/407)) ([a865461](https://github.com/apify/apify-sdk-python/commit/a865461c703aea01d91317f4fdf38c1bedd35f00)) by @danpoletaev\n\n","publishedAt":"2025-03-07T16:28:10.000Z","url":"https://github.com/apify/apify-sdk-python/releases/tag/v2.4.0","media":[]},{"id":"rel_5zDU_ymnhZD1nmVwUYaTN","version":"v2.3.1","title":"2.3.1","summary":"## [2.3.1](https://github.com/apify/apify-sdk-python/releases/tag/v2.3.1) (2025-02-25)\n\n### 🐛 Bug Fixes\n\n- Allow None value in &#x27;inputBodyLen&#x2...","content":"## [2.3.1](https://github.com/apify/apify-sdk-python/releases/tag/v2.3.1) (2025-02-25)\n\n### 🐛 Bug Fixes\n\n- Allow None value in &#x27;inputBodyLen&#x27; in ActorRunStats ([#413](https://github.com/apify/apify-sdk-python/pull/413)) ([1cf37f1](https://github.com/apify/apify-sdk-python/commit/1cf37f13f8db1313ac82276d13200af4aa2bf773)) by @janbuchar\n\n","publishedAt":"2025-02-25T08:31:27.000Z","url":"https://github.com/apify/apify-sdk-python/releases/tag/v2.3.1","media":[]}],"pagination":{"page":1,"pageSize":20,"totalPages":3,"totalItems":50},"summaries":{"rolling":{"windowDays":90,"summary":"The SDK shifted toward tighter integration with Scrapy's async primitives and more robust request handling. Version 3.3.0 migrated to Scrapy's native AsyncCrawlerRunner and introduced Actor schema storage aliases, while subsequent patches addressed cascading failure modes in cleanup, fixed Scrapy request round-trip conversion, and eliminated race conditions in request queue operations. The team also hardened configuration validation to stop treating zero as falsy and prevented deadlocks when the API fails during request state transitions.","releaseCount":5,"generatedAt":"2026-04-11T14:06:10.079Z"},"monthly":[{"year":2026,"month":3,"summary":"Apify SDK shipped two patch releases focused on stability. The March releases fixed data round-trip failures in Scrapy request conversion, corrected storage schema alias handling, and hardened cleanup logic in the Actor lifecycle to prevent cascading failures when context or task state was absent.","releaseCount":2,"generatedAt":"2026-04-11T14:06:11.637Z"}]}}