Changelog
All notable changes to this project will be documented in this file.
3.4.1 - not yet released
🚀 Features
- Add models for Actor OAuth, Git repositories and webhook integrations (#1167) (4a3b30f) by @apify-service-account
🐛 Bug Fixes
3.4.0 (2026-10-27)
🚀 Features
- Add support for Python 3.15 (#1122) (ef8f088) by @vdusek
- Add a
user_agent_suffixoption (#1145) (ecccadb) by @vdusek, closes #1148 - Add
chunk_sizeto collectioniterate()methods (#1146) (a4b6975) by @vdusek, closes #1149 - Add missing optional parameters to resource clients (#1144) (8b3c6f4) by @vdusek, closes #1147
- Allow passing
X-Actor-Request-IDviacharge()method (#1155) (9f9b98a) by @vdusek
🐛 Bug Fixes
- Redirect the run log when the first log stream comes back empty (#1084) (a370e7a) by @vdusek
- Allow
max_retries=0to disable retries (#1142) (3b128d1) by @vdusek, closes #1139 - Fetch the Actor from the API root in
get_streamed_log()onlast_run()clients (#1143) (2b58a2b) by @vdusek, closes #1137 - Append
/v2toapi_urlonly when it is missing (#1141) (909d916) by @vdusek, closes #1138 - Add new error types and drop rental pricing fields from
CurrentPricingInfo(#1156) (a94d78a) by @apify-service-account - Add missing fields to the Actor definition model (#1165) (4de7379) by @apify-service-account
- deps: Require
impit>=0.15.1to drop the compromised emSign CA (#1160) (6c4fd72) by @Pijukatel - deps: Drop the upper bound on
impit(#1163) (d1bc83a) by @vdusek
3.3.0 (2026-10-08)
🚀 Features
- Stream request bodies from files, iterables, and responses (#1060) (9be215b) by @vdusek, closes #972
- Retry starting a run on memory and concurrent-runs limits (#1081) (3dd8ca5) by @vdusek, closes #1071
- Add live iteration over a run's dataset items (#1079) (6aa8ead) by @vdusek, closes #1065
- Add
max_total_charge_usdto taskstart()andcall()(#1097) (966d3d6) by @vdusek, closes #1096 - Add missing Standby fields to Actor update and create (#1107) (8dd5b67) by @vdusek, closes #1101
- Add
flattento datasetstream_items(#1106) (1d1e9f6) by @vdusek, closes #1100 - Add
default_run_force_permission_levelto Actor update and create (#1111) (dc30b12) by @vdusek
🐛 Bug Fixes
- Add missing
readmefield toProfilemodel (#1086) (ae17148) by @apify-service-account - Rename
build_tagtobuildinvalidate_input()(#1110) (0616e1a) by @vdusek, closes #1091 - Type
example_run_input_bodyasstr(#1105) (a1047fa) by @vdusek, closes #1102 - Align model names with the renamed OpenAPI schemas (#1098) (eeabbba) by @vdusek
- Raise
InvalidResponseBodyErrorfor every unparsable response body (#1109) (c8f8ea2) by @vdusek, closes #1094
⚡ Performance
3.2.1 (2026-09-25)
🐛 Bug Fixes
- Stop dataset iterators from skipping items when unwind is used (#1059) (8e30197) by @vdusek, closes #1058
- Keep a failing background watcher from breaking a successful Actor call (#1027) (efc009d) by @vdusek
- Make
JsonSerializabletype alias read-only (#1072) (bd82a26) by @Pijukatel
3.2.0 (2026-09-03)
🚀 Features
- Add Actor task publication endpoints (#985) (139a426) by @apify-service-account
- Unify the request pipeline across HTTP clients (#1022) (00ce055) by @vdusek
- Add HTTPX-based HTTP client (#1004) (19509a2) by @vdusek
🐛 Bug Fixes
- Require
unique_keyandurlinRequestBase, addRequestWithoutId(#1030) (28efd13) by @apify-service-account - Drop
pricing_infosfromCreateActorRequestand clarifyapify_margin_percentagedocs (#1031) (ebeda95) by @apify-service-account - Percent-encode caller-supplied URL path segments (#1025) (3e333a0) by @vdusek
- Send request queue write fields under the names the API declares (#1026) (3b6e96e) by @vdusek
- Prevent losing a status message when redirecting Actor run logs (#1036) (dba6aba) by @vdusek
- Loosen
StoreListActor.picture_urltostrand add new API error type (#1038) (a098dd5) by @apify-service-account - Accept task input lists, omitted run and private user fields, and datetime usage dates (#1041) (6a218f8) by @apify-service-account
- Update
impitto~=0.14.0(#1044) (779b17f) by @renovate - Name the extra to install in optional-dependency import errors (#1046) (56bca2a) by @vdusek
- Add the description field to Actor task models (#1049) (89ac756) by @apify-service-account
3.1.3 (2026-08-18)
🐛 Bug Fixes
- Require
valueinEnvVarRequestand allow null error messages in request dicts (#1001) (4540199) by @apify-service-account - Warn when a requested timeout is capped at
timeout_max(#962) (4281530) by @vdusek - Do not mask unrelated import errors when guarding optional dependencies (#1009) (f57e9e7) by @vdusek
- Keep
HttpResponseisinstance checks from consuming streamed responses (#1010) (8a2bb7b) by @vdusek - Fail fast on transport errors a retry cannot fix (#1019) (ab63eff) by @vdusek
- Classify and retry failures while reading a streamed error body (#1020) (2760aa6) by @vdusek
3.1.2 (2026-08-10)
🐛 Bug Fixes
- Read file-like KVS values before upload and reject unencodable ones (#965) (064b5cc) by @vdusek
- Respect caller-supplied
Content-Encodingfor pre-compressed request bodies (#997) (b5541c9) by @vdusek, closes #996
⚡ Performance
- Skip request-body compression for already-compressed content types (#987) (808bdde) by @vdusek
- Skip request-body compression for small payloads (#988) (6bd31b2) by @vdusek, closes #934
3.1.1 (2026-08-03)
🐛 Bug Fixes
- Add missing
cannot-monetize-without-payout-billing-infoerror code (#960) (c1bffc6) by @apify-service-account - Normalize query params in dataset
create_items_public_url(#963) (c3ecaa9) by @vdusek - Keep pagination iterators advancing past fully-filtered pages (#964) (2e7f75c) by @vdusek
3.1.0 (2026-07-20)
🚀 Features
- Add request body compression with optional
brotli(#927) (a8a393b) by @mixalturek, closes #942
🐛 Bug Fixes
- Offload async request body compression to a worker thread (#950) (7ac3885) by @vdusek
- Propagate
last_runstatus/origin filters to chained storage clients (#954) (fe24058) by @vdusek - Propagate API token to custom HTTP clients (#956) (ded0852) by @vdusek
- Make
batch_add_requestssplit batches by serialized payload size (#953) (2adf515) by @vdusek
3.0.6 (2026-07-13)
🐛 Bug Fixes
- Relax constraints on generated models based on updated specification (#936) (a02247e) by @apify-service-account
- Relax enum validation to tolerate unknown API values (#941) (587baa7) by @vdusek, closes #931
- Relax required stats fields (compute units, counts) to optional (#947) (46f1286) by @apify-service-account
- Prevent Actor log-streaming thread from crashing on stream timeout (#944) (24dd614) by @vdusek, closes #945
3.0.5 (2026-07-08)
🐛 Bug Fixes
- Relax model validation constraints for
PlanandStoreListActor(#910) (7a5b157) by @apify-service-account - Add missing
EventDatafields and new error type (#917) (93566b8) by @apify-service-account - Add missing
MCPtoRunOriginenum (#929) (3536c18) by @apify-service-account
3.0.4 (2026-06-26)
🐛 Bug Fixes
- Fix casing in
isAtHomeinUser-Agentheader (#903) (1e50374) by @Pijukatel - Update
impitto~=0.13.0(#871) (8dffe34) by @renovate - Remove unused
run-failedandrun-timeout-exceedederror models (#900) (8c48a06) by @apify-service-account
3.0.3 (2026-06-18)
🐛 Bug Fixes
- Include all supported fields for ad-hoc webhooks (#855) (6eb267d) by @apify-service-account
- Only log any error that happens during log redirection (#866) (a2cc987) by @Pijukatel, closes #864
3.0.2 (2026-05-26)
🐛 Bug Fixes
- Add missing response fields returned by the live API (#821) (e794411) by @apify-service-account
- Prevent
StreamedLogstop()from hanging on a silent stream (#825) (c15cb1b) by @vdusek - Flush
StreamedLogAsynctail whenstop()cancels the task (#754) (ea23338) by @vdusek
3.0.1 (2026-05-22)
🐛 Bug Fixes
- Add new API error codes and drop obsolete
UnknownBuildTagErrormodel (#813) (d1e2020) by @apify-service-account - Add support for tiered pricing in Actor charge events (#818) (c3ea8c1) by @apify-service-account, closes #811
- Allow 128MB memory limits and add
CItoRunOriginin models (#819) (01eb993) by @apify-service-account
3.0.0 (2026-05-20)
- Check out the Upgrading guide to ensure a smooth update.
🚀 Features
- [breaking] Introduce fully typed clients (#604) (81ee194) by @vdusek, closes #21, #481
- [breaking] Introduce tiered timeout system with per-endpoint configuration (#653) (723ec6e) by @vdusek
- [breaking] Generate
Literaltype aliases instead ofStrEnumclasses (#759) (2bf5a75) by @vdusek, closes #576 - Make HTTP client pluggable with abstract base classes (#641) (5ae33a0) by @vdusek, closes #416
- Accept Pydantic models as alternatives to dicts in resource client methods (#663) (b778c20) by @vdusek, closes #421
- Add
ownershipparameter to storage collection listing methods (#696) (51a92a3) by @nmanerikar - Add
filterandcursorparameters tolist_requestsmethod (#743) (3445ff7) by @mvolfik - Add
ApifyApiErrorsubclasses grouped by HTTP status (#737) (a6daff7) by @vdusek, closes #423 - Generate
TypedDicttypes for input-side models (#738) (2fd66d0) by @vdusek, closes #666 - Add
iteratemethods for paginated collections (#771) (3f3129c) by @Pijukatel, closes #539 - Accept camelCase keys in input
TypedDicts (#793) (7a579bf) by @vdusek, closes #756 - Expose
WebhooksListandJsonSerializablefrom public types module (#800) (104011c) by @vdusek
🐛 Bug Fixes
- Prevent
_prepare_request_callfrom mutating caller's headers dict (#746) (d553162) by @vdusek - Don't block
StatusMessageWatcherexit with 6s sleep on exception (#753) (48f5037) by @vdusek - Treat naive datetime query params as UTC (#752) (9ab096a) by @vdusek
- Raise
NotFoundErroron ambiguous 404 responses (#755) (701185e) by @vdusek - Correct deadline logic in
_wait_for_finish(#749) (fd0663e) by @vdusek - Preserve
count=0inRunClient'scharge(#751) (0a8942c) by @vdusek
🚜 Refactor
- [breaking] Update default timeout tiers on non-storage resource clients (#664) (0b35bbe) by @vdusek
- [breaking] Mark secondary arguments as keyword-only (#766) (4ca99fd) by @vdusek
- [breaking] Remove deprecated APIs (#799) (6e5df35) by @vdusek
⚙️ Miscellaneous Tasks
2.5.1 (2026-05-20)
🐛 Bug Fixes
2.5.0 (2026-02-18)
🚀 Features
🐛 Bug Fixes
- Prevent infinite loop in
_wait_for_finishon persistent 404s (#619) (00e8621) by @vdusek - Remove erroneous
asynckeyword from syncActorClient.default_build(#620) (b2b1103) by @vdusek - Use explicit
Nonechecks for client config to respect zero values (#623) (416fd98) by @vdusek - Correct boolean parsing of pagination
descheader inlist_items(#621) (9ca9d44) by @vdusek - Retry on all
impit.HTTPErrorexceptions, not just specific subclasses (#624) (03b0e9c) by @vdusek
2.4.1 (2026-01-30)
🐛 Bug Fixes
- Only include Actor standby when at least one field is provided (#597) (7112c09) by @vdusek, closes #595
- Add missing
tagged_buildsparameter to Actor update method (#596) (6210e80) by @vdusek, closes #585
2.4.0 (2026-01-09)
🚀 Features
🐛 Bug Fixes
- Fetch key-value store records as attachments (#573) (f5d2941) by @mvolfik
- Fix force permissions serialization for Actor calls (#575) (4a763f6) by @vdusek
2.3.0 (2025-11-13)
🚀 Features
- Add support for Python 3.14 (#520) (68ebbd9) by @vdusek
- Add signature arguments for dataset and kvs methods (#530) (10d1e45) by @Pijukatel, closes #517
🐛 Bug Fixes
- Update impit to fix rare
JSONDecodeError(#536) (c0b9096) by @Pijukatel
2.2.1 (2025-10-20)
🐛 Bug Fixes
- Move restart on error Actor option to Run options (#508) (8f73420) by @DaveHanns
2.2.0 (2025-10-13)
🚀 Features
- Add
KeyValueStoreClient(Async).get_record_public_url(#506) (6417d26) by @Pijukatel, closes #497 - Add
started_beforeandstarted_afterto run list (#513) (3aaa056) by @danpoletaev
2.1.0 (2025-09-15)
🚀 Features
🐛 Bug Fixes
- Casing in
exclusiveStartKeyAPI param (#495) (5e96f71) by @barjin, closes #484 - Presigned resource urls shouldn't follow base url (#500) (b224218) by @Pijukatel, closes #496
2.0.0 (2025-08-15)
- Check out the Upgrading guide to ensure a smooth update.
🚀 Features
- Extend status parameter to an array of possible statuses (#455) (76f6769) by @JanHranicky
- Expose
apify_client.errorsmodule (#468) (c0cc147) by @Mantisus, closes #158 - Add
dataset.create_items_public_urlandkey_value_store.create_keys_public_url(#453) (2b1e110) by @danpoletaev
⚙️ Miscellaneous Tasks
🚜 Refactor
- [breaking] Remove support for passing a single string to the
unwindparameter inDatasetClient(#467) (e8aea2c) by @Mantisus, closes #255 - [breaking] Remove deprecated constant re-exports from
consts.py(#466) (7731f0b) by @Mantisus, closes #163 - [breaking] Replace
httpxHTTP client withimpit(#456) (1df6792) by @Mantisus - [breaking] Remove deprecated
as_bytesandas_fileparameters fromKeyValueStoreClient.get_record(#463) (b880231) by @Mantisus - [breaking] Remove
parse_responsearg from thecallmethod (#462) (840d51a) by @Mantisus, closes #166
1.12.2 (2025-08-08)
🐛 Bug Fixes
- Fix API error with stream (#459) (0c91ca5) by @Pijukatel
1.12.1 (2025-07-30)
🐛 Bug Fixes
1.12.0 (2025-06-26)
🚀 Features
- Allow sorting of Actors collection (#422) (df6e47d) by @protoss70
- Add
KeyValueStoreClient.record_exists(#427) (519529b) by @janbuchar
🐛 Bug Fixes
- Enable to add headers template in webhooks created dynamically (#419) (b84d1ec) by @gaelloyoly
- Rename
sortByparameters option (#426) (a270409) by @protoss70
1.11.0 (2025-06-13)
🚀 Features
- Add
validate_inputendpoint (#396) (1c5bf85) by @Pijukatel, closes #151 - Add list kv store keys by collection or prefix (#397) (6747c20) by @MFori
- Add redirected Actor logs (#403) (fd02cd8) by @Pijukatel, closes #402
- Add
unlock_requestsmethod toRequestQueueclients (#408) (d4f0018) by @drobnikj - Add
StatusMessageWatcher(#407) (a535512) by @Pijukatel, closes #404
1.10.0 (2025-04-29)
🚀 Features
1.9.4 (2025-04-24)
🐛 Bug Fixes
default_build()returnsBuildClient(#389) (8149052) by @danpoletaev
1.9.3 (2025-04-14)
🚀 Features
- Add
maxItemsandmaxTotalChargeUsdtoresurrect(#360) (a020807) by @novotnyj - Add get default build method (#385) (f818b95) by @danpoletaev
1.9.2 (2025-02-14)
🐛 Bug Fixes
- Add missing PPE-related Actor parameters (#351) (75b1c6c) by @janbuchar
1.9.1 (2025-02-07)
🐛 Bug Fixes
- Add
statsattribute forApifyClientAsync(#348) (6631f8c) by @Mantisus - Fix return type of charge API call (#350) (28102fe) by @janbuchar
1.9.0 (2025-02-04)
🚀 Features
- Add
user.update_limits(#279) (7aed9c9) by @MFori, closes #329 - Add charge method to the run client for "pay per event" (#304) (3bd6bbb) by @Jkuzz
- Add error data to
ApifyApiError(#314) (df2398b) by @Pijukatel, closes #306 - Add GET:
dataset.statistics(#324) (19ea4ad) by @MFori - Add
get_open_api_specificationmethod toBuildClient(#336) (9ebcedb) by @danpoletaev - Add rate limit statistics (#343) (f35c68f) by @Mantisus
1.8.1 (2024-09-17)
🐛 Bug Fixes
1.8.0 (2024-08-30)
- Drop support for Python 3.8
🚀 Features
- Adds
headers_templatetowebhooksandwebhooks_collection(#239) (6dbd781) by @jakerobers - Add Actor standby (#248) (dd4bf90) by @jirimoravcik
- Allow passing list of fields to
unwindparameter (#256) (036b455) by @fnesveda
1.7.1 (2024-07-11)
🐛 Bug Fixes
- Fix breaking change (sync -> async) in 1.7.0
- Fix getting storages of last run
1.7.0 (2024-05-20)
🐛 Bug Fixes
- Fix abort of last task run
- Fix abort of last Actor run
ActorClient's andTaskClient'slast_runmethods are asynchronous
1.6.4 (2024-02-27)
🚀 Features
- Add
monthlyUsage()andlimits()methods toUserClient
1.6.3 (2024-02-16)
🚀 Features
- Add
log()method toBuildClient
1.6.2 (2024-01-08)
⚙️ Miscellaneous Tasks
- Relative imports were replaced for absolute imports
1.6.1 (2023-12-11)
🐛 Bug Fixes
- Fix
_BaseHTTPClient._parse_params()method to ensure correct conversion of API list parameters
1.6.0 (2023-11-16)
⚙️ Miscellaneous Tasks
- Migrate from Autopep8 and Flake8 to Ruff
1.5.0 (2023-10-18)
🚀 Features
- Add support for Python 3.12
- Add DELETE to Actor runs
- Add DELETE to Actor builds
⚙️ Miscellaneous Tasks
- Rewrite documentation publication to use Docusaurus
- Remove PR Toolkit workflow
1.4.1 (2023-09-06)
🚀 Features
- Add
StoreCollectionClientfor listing Actors in the Apify Store - Add support for specifying the
max_itemsparameter for pay-per result Actors and their runs
⚙️ Miscellaneous Tasks
- Improve logging of HTTP requests
- Remove
pytest-randomlyPytest plugin
1.4.0 (2023-08-23)
🚀 Features
- Add
RunClient.rebootmethod to reboot Actor runs
⚙️ Miscellaneous Tasks
- Simplify code via
flake8-simplify - Unify indentation in configuration files
1.3.1 (2023-07-28)
⚙️ Miscellaneous Tasks
- Start importing general constants and utilities from the
apify-sharedlibrary
1.3.0 (2023-07-24)
🚀 Features
- Add
list_and_lock_head,delete_request_lock,prolong_request_lockmethods toRequestQueueClient - Add
batch_add_requests,batch_delete_requests,list_requestsmethodsRequestQueueClient
1.2.2 (2023-05-31)
🐛 Bug Fixes
- Fix encoding webhook lists in request parameters
1.2.1 (2023-05-23)
🐛 Bug Fixes
- Relax dependency requirements to improve compatibility with other libraries
1.2.0 (2023-05-23)
🚀 Features
- Add option to change the build, memory limit and timeout when resurrecting a run
⚙️ Miscellaneous Tasks
- Update dependencies
1.1.1 (2023-05-05)
⚙️ Miscellaneous Tasks
- Change GitHub workflows to use new secrets
1.1.0 (2023-05-05)
🚀 Features
- Add support for
is_status_message_terminalflag in Actor run status message update
⚙️ Miscellaneous Tasks
- Switch from
setup.pytopyproject.tomlfor specifying project setup
1.0.0 (2023-03-13)
⚙️ Miscellaneous Tasks
- [breaking] Drop support for Python 3.7, add support for Python 3.11
- [breaking] Unify methods for streaming resources
- [breaking] Switch underlying HTTP library from
requeststohttpx
🚀 Features
- Add support for asynchronous usage via
ApifyClientAsync - Add configurable socket timeout for requests to the Apify API
- Add
py.typedfile to signal type checkers that this package is typed - Add method to update status message for a run
- Add option to set up webhooks for Actor builds
- Add logger with basic debugging info
- Add support for
schemaparameter inget_or_createmethod for datasets and key-value stores - Add support for
titleparameter in task and schedule methods - Add
x-apify-workflow-keyheader support - Add support for
flattenandviewparameters in dataset items methods - Add support for
originparameter in Actor/task run methods - Add clients for Actor version environment variables
🐛 Bug Fixes
- Disallow
NaNandInfinityvalues in JSONs sent to the Apify API
⚙️ Miscellaneous Tasks
- Simplify retrying with exponential backoff
- Improve checks for "not found" errors
- Simplify flake8 config
- Update development dependencies
- Simplify development scripts
- Update GitHub Actions versions to fix deprecations
- Unify unit test style
- Unify preparing resource representation
- Update output management in GitHub Workflows to fix deprecations
- Improve type hints across codebase
- Add option to manually publish the package with a workflow dispatch
- Add
pre-committo run code quality checks before committing - Convert
unittest-style tests topytest-style tests - Backport project setup improvements from
apify-sdk-python
0.6.0 (2022-06-27)
🚜 Refactor
- Drop support for single-file Actors
⚙️ Miscellaneous Tasks
- Update dependencies
- Fix some lint issues in shell scripts and
setup.py - Add Python 3.10 to unit test roster
0.5.0 (2021-09-16)
🚜 Refactor
- Improve retrying broken API server connections
🐛 Bug Fixes
- Fix timeout value in actively waiting for a run to finish
⚙️ Miscellaneous Tasks
- Update development dependencies
0.4.0 (2021-09-07)
🚜 Refactor
- Improve handling of
Enumarguments - Improve support for storing more data types in key-value stores
🐛 Bug Fixes
- Fix values of some
ActorJobStatusEnummembers
0.3.0 (2021-08-26)
🚀 Features
- Add the
test()method to the webhook client - Add support for indicating the pagination direction in the
ListPageobjects
🚜 Refactor
- Improve support for storing more data types in datasets
🐛 Bug Fixes
- Fix return type in the
DatasetClient.list_items()method docs
⚙️ Miscellaneous Tasks
- Add human-friendly names to the jobs in GitHub Action workflows
- Update development dependencies
0.2.0 (2021-08-09)
🚀 Features
- Add the
gracefullyparameter to the "Abort run" method
🚜 Refactor
- Replace
base_urlwithapi_urlin the client constructor to enable easier passing of the API server url from environment variables available to Actors on the Apify platform
⚙️ Miscellaneous Tasks
- Change tags for Actor images with this client on Docker Hub to be aligned with the Apify SDK Node.js images
- Update the
requestsdependency to 2.26.0 - Update development dependencies
0.1.0 (2021-08-02)
🚜 Refactor
- Methods using specific option values for arguments now use well-defined and documented
Enums for those arguments instead of generic strings - Make the submodule
apify_client.constscontaining thoseEnums available
⚙️ Miscellaneous Tasks
- Update development dependencies
- Enforce unified use of single quotes and double quotes
- Add repository dispatch to build Actor images with this client when publishing a new version
0.0.1 (2021-05-13)
- Initial release of the package.