- Bumped
ApifyClientVersion.ApiSpecVersionto the Apify OpenAPI specv2-2026-07-10T105921Zand the project version to0.1.3. - The default HTTP transport now negotiates and transparently decompresses brotli, gzip and deflate responses, matching the API's newly documented response compression and the reference client.
- Bumped
ApifyClientVersion.ApiSpecVersionto the Apify OpenAPI specv2-2026-07-08T143931Zand the project version to0.1.2. - Aligned the
User-AgentOS token with the reference client's Nodeos.platform()values (win32,darwin,linux,android,freebsd, and — for platforms without a dedicated .NET helper —openbsd,netbsd,sunos,aix) instead ofwindows. - Request bodies of at least 1024 bytes are compressed before sending. The compression algorithm is
selectable via the new
ApifyClientOptions.RequestCompressionoption (RequestCompressionenum): brotli (Content-Encoding: br) by default, or gzip (Content-Encoding: gzip).
- Bumped
ApifyClientVersion.ApiSpecVersionto the Apify OpenAPI specv2-2026-07-07T132551Zand the project version to0.1.1. - Corrected a wrong
LastRunOptionsdoc comment:OriginandStatusare spec-declared query parameters on the last-run endpoints (the comment had claimedOriginwas not);waitForFinishis intentionally omitted for parity with the reference client'slastRun. Behaviour unchanged.
- Initial .NET client for the Apify API (spec
v2-2026-07-02T131926Z). - Resource clients for Actors, Actor versions and environment variables, builds, runs, datasets, key-value stores, request queues, tasks, schedules, webhooks, webhook dispatches, the Apify Store, users, and logs.
- Async-first API (
Task-returning,CancellationToken-aware) with convenience helpers consistent with the JS reference client:Actor().CallAsync()/StartAsync(),ValidateInputAsync(),DefaultBuildAsync(),LastRun(), runAbortAsync/MetamorphAsync/RebootAsync/ResurrectAsync/ChargeAsync/WaitForFinishAsync, datasetListItemsAsync/DownloadItemsAsync/PushItemsAsync/ public URLs, key-value store records and public URLs, request queue batch add with retries, and log streaming. - Auto-paging lazy iteration (
IAsyncEnumerable) across all collection clients (IterateAsync) and dataset items (IterateItemsAsync), plus request-queue and Store iteration, matching the reference client's paginated iterators. - Run log redirection:
RunClient.GetStreamedLog(toLog, fromStart)returns aStreamedLogthat forwards a run's live log to a sink one message at a time, andActor/TaskCallAsyncaccept alogsink that redirects the run's log for the duration of the wait. - Last-run accessors forward their
status/originfilters to the run's nested dataset, key-value store, request queue, and log clients. - Binary-safe storage payloads:
KeyValueStoreRecord.ValueandDownloadItemsAsyncreturnbyte[](raw bytes), andSetRecordAsyncacceptsbyte[], so binary records and exports (e.g. XLSX) are not corrupted;SetRecordJsonAsyncserializes to JSON bytes. RequestQueueRequest.UserDataandActorEnvVarName/Value/IsSecretomit the field when set tonull(rather than writing a JSONnull), honoring the documented null-omit contract.BatchAddRequestsAsyncrequires a non-emptyUniqueKeyper request, splits batches by both the 25-request count limit and the ~9 MiB payload-size limit, dispatches chunks with up toBatchAddRequestsOptions.MaxParallelconcurrent calls (results merged in input order), and retries only the requests the API reports unprocessed in a successful response. Consistent with the reference client, a failed batch call reports that chunk's not-yet-processed requests as unprocessed rather than throwing.PaginationList<T>.Countis the number of items in the page (matching the indexer); the total across all pages is exposed asTotal.Datasets().GetOrCreateAsync()andKeyValueStores().GetOrCreateAsync()accept an optional schema.RequestQueue(id, RequestQueueClientOptions)acceptsClientKeyandTimeoutSecs;PaginateRequestsAsync()acceptsPaginateRequestsOptions(Limit,MaxPageLimit,ExclusiveStartId,Cursor,Filter).- Replaceable HTTP transport (
IHttpTransport) with a defaultHttpClient-based implementation; automatic retries with exponential backoff and jitter, growing per-attempt timeouts, and HMAC-SHA256 storage URL signing. - Public
ApifyClientVersion.ClientVersionandApifyClientVersion.ApiSpecVersionconstants. - Integration test suite, documentation with runnable examples, a data-model property reference
(
docs/models.md), and CI workflows for integration tests and publishing (manual NuGet.org publish via Trusted Publishing: theNuGet/loginaction exchanges a GitHub OIDC token for a short-lived key, using only theNUGET_USERrepository secret — no long-lived NuGet API key is stored).