body
andcontentType
parameters ofclient.tasks.runTask()
were deprecated in favor of newinput
parameter.- Added new methods to get and update input of actor task -
client.tasks.getInput()
andclient.tasks.updateInput()
.
- Added
simplified
andskipFailedPages
parameters todatasets.getItems()
to support legacy crawler produced datasets.
- Added parameter retryOnStatusCodes to define an array of HTTP status codes on which
client retries the request. Default value is
[429]
(only rate limit exceeded).
- Fix of non-JSON crawler execution results retrieval
- Added support for clientKey parameter to request queue endpoints.
- Fixed a bug where last retry stats would not be saved correctly.
- Client now retries request in a case of an invalid JSON response (incomplete response payload).
apifyClient.stats.rateLimitErrors
is now anArray
and tracks errors per retry count.
- Added
client.tasks.listWebhooks()
to list task webhooks.
- Added
client.webhooks
providing access to Apify webhooks. - Added
client.webhookDispatches
providing access to Apify webhook dispatches. - Added
client.acts.listWebhooks()
to list actor webhooks.
- Added exponential backoff to
datasets.getItems()
in a case of "Unexpected end of JSON input" error
- Added more details to
ApifyClientError
for easier debugging - Added
client.acts.metamorphRun()
, see documentation for more information.
- Improve
.toString()
message ofApifyClientError
.
- Added
clean
,skipHidden
andskipEmpty
parameters toclient.datasets.getItems()
method.
- Increased number of retries for request queue endpoints that may be slower to scale up.
- Fixed getActorVersion method, now returns
null
if version does not exist
- Added
ApifyClient.stats
object that collects various statistics of the API client
- Methods for Apify storages (i.e. key-value stores, datasets and request queues) that use other than GET HTTP method now require token parameter.
tasks.runTask()
method now allows to overload input and options from actor task configuration.
- All key-value store records with content type
text/*
are now parsed into string. - Option
promise
to customize Promise implementation is not supported any more. - All methods now use native promises instead of Bluebird implementation. Make sure that your code doesn't depend on Bluebird.
- All Boolean parameters of v2 endpoints (Actor, Storages) are now truly Boolean and don't accept
1
astrue
. Legacy crawler API hasn't changed. - Added support for actor versions API.
- Endpoint to get items from dataset now passes
encoding: null
to support XSLX format.
- Added support for actor tasks API.
- Requests repeated more than
expBackOffMaxRepeats/2
times are logged.
- Added
client.tasks
providing access to Apify tasks.
- Upgraded NPM dependencies
- Renamed
ApifyError
toApifyClientError
- Added support for more content types to
utils.parseBody()
.
- Added support for pre-serialized data (strings) to
Apify.datasets.putItems()
.
- Added
executionId
parameter to getCrawlerSettings method. You can get crawler settings for specific execution with that.
- Thrown error in a case of failed request now contains details such as
URL
,method
, ... .
- All date fields (ending with
At
) such asmodifiedAt
,createdAt
, etc. are now parsed toDate
object.
- Added
client.requestQueues
providing access to Apify Request Queue. - RequestQueue / KeyValueStore / Dataset now support
[username]~[store-name]
instead of store ID.
- Added
client.users.getUser()
method that retrieves own accout details including usage and limits.
- WARNING: Method
datasets.getItems()
now returns object PaginationList with items wrapped inside instead of plain items array. This helps to iterate through all the items using pagination. This change is not backward compatible!
- Support for Function type added to
utils.checkParamOrThrow()
- Updated GitHub repo and Travis CI links
- Datasets group addded