diff --git a/CHANGELOG.md b/CHANGELOG.md index 00626e1..874fd2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,23 @@ All notable changes to the Rust Apify API client are documented here. The format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project adheres to [Semantic Versioning](https://semver.org/). +## [0.4.5] - 2026-07-03 + +### Changed +- Bumped `API_SPEC_VERSION` to `v2-2026-07-02T131926Z`. +- Bumped crate version to `0.4.5`. + +### Documentation +- Added `chrono` to the extra-dependency install instructions. +- Expanded the `DatasetListItemsOptions`/`DatasetDownloadOptions` and `ActorBuildOptions` field lists into per-field descriptions, and corrected the `output_fields` description. +- Removed a stray `get_statistics` bullet from the request-queue return-types list. + +## [0.4.4] - 2026-07-01 + +### Changed +- Bumped `API_SPEC_VERSION` to `v2-2026-07-01T115402Z`. +- Bumped crate version to `0.4.4`. + ## [0.4.3] - 2026-06-30 ### Changed diff --git a/Cargo.toml b/Cargo.toml index f031c78..a4c0279 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apify-client" -version = "0.4.3" +version = "0.4.5" authors = ["Apify Technologies "] description = "An official, but experimental, AI-generated and AI-maintained Rust client for the Apify API (https://apify.com)." license = "Apache-2.0" diff --git a/README.md b/README.md index 0ad7f2e..5482b3e 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,11 @@ project needs `serde_json`. Two more dependencies are needed only for specific f - `futures-util = "0.3"` — to consume `LogClient::stream()` (log streaming/redirection); it provides the `StreamExt` trait used by the [`log_redirection`](examples/log_redirection.rs) example. See [`docs/misc.md`](docs/misc.md#logs--clientlogbuild_or_run_id). +- `chrono = "0.4"` — only if you construct or read timestamp values yourself. Model timestamp + fields (e.g. `Actor::created_at`, `ActorRun::started_at`) are typed as `chrono::DateTime` + and `chrono` is **not** re-exported, so snippets that call `chrono::Utc::now()` (e.g. the + `monthly_usage` example in [`docs/misc.md`](docs/misc.md#logs--clientlogbuild_or_run_id) and the + account example) need it as a direct dependency. By default the client uses the system TLS (`native-tls`). To use rustls instead: diff --git a/docs/README.md b/docs/README.md index 2059beb..2a2691a 100644 --- a/docs/README.md +++ b/docs/README.md @@ -34,9 +34,12 @@ tokio = { version = "1", features = ["macros", "rt-multi-thread"] } ``` Some snippets and examples need extra crates: add `serde_json = "1"` when you read -dynamically-typed responses as `serde_json::Value` (as the README Quick start does), and +dynamically-typed responses as `serde_json::Value` (as the README Quick start does), `futures-util = "0.3"` to consume `LogClient::stream()` (log streaming — see -[Store, users and logs](misc.md#logs--clientlogbuild_or_run_id)). +[Store, users and logs](misc.md#logs--clientlogbuild_or_run_id)), and `chrono = "0.4"` if you +construct or read timestamp values yourself (model timestamp fields are `chrono::DateTime` +and `chrono` is not re-exported, so snippets calling `chrono::Utc::now()` — such as the +`monthly_usage` and account examples — need it as a direct dependency). Create a client and call a resource: diff --git a/docs/actors.md b/docs/actors.md index 481c774..6c82a17 100644 --- a/docs/actors.md +++ b/docs/actors.md @@ -53,7 +53,14 @@ client-side polling budget: ### `ActorBuildOptions` -`beta_packages`, `tag`, `use_cache`, `wait_for_finish` — all optional. +All optional: + +- `tag` — build tag to assign to the resulting build (e.g. `latest`). +- `use_cache` — reuse cached Docker layers from previous builds to speed the build up. +- `beta_packages` — build against the beta versions of the Apify SDK/CLI packages instead of the + stable ones. +- `wait_for_finish` — maximum number of seconds the server waits for the build to finish before + responding (a server-side wait, not client-side polling). ### Input validation diff --git a/docs/storages.md b/docs/storages.md index 4ed567b..4138095 100644 --- a/docs/storages.md +++ b/docs/storages.md @@ -65,10 +65,31 @@ let scratch = client.datasets().get_or_create(None).await?; | `download_items(format, options)` | `DownloadItemsFormat`, `DatasetDownloadOptions` | `Vec` | Export items as JSON/CSV/XLSX/XML/RSS/HTML. | | `create_items_public_url(options, expires)` | `DatasetListItemsOptions`, `Option` | `String` | Shareable (HMAC-signed for private) items URL. | -`DatasetListItemsOptions`: `offset`, `limit`, `desc`, `fields`, `output_fields`, `omit`, -`skip_empty`, `skip_hidden`, `clean`, `unwind`, `flatten`, `view`, `simplified`, -`skip_failed_pages`. `DatasetDownloadOptions` adds `attachment`, `bom`, `delimiter`, -`skip_header_row`, `xml_root`, `xml_row`, `feed_title`, `feed_description`. +`DatasetListItemsOptions` (all optional): + +- `offset` / `limit` / `desc` — pagination window and reverse (newest-first) ordering. +- `fields` — comma-separated allow-list of top-level fields to keep in each item. +- `output_fields` — positionally renames the fields selected by `fields` in the output; requires + `fields`, and the two lists must have equal length (the i-th `output_fields` name becomes the + output name of the i-th `fields` entry). +- `omit` — comma-separated fields to drop from each item. +- `skip_empty` — omit items that are empty after field filtering. +- `skip_hidden` — omit hidden fields (those whose names start with `#`). +- `clean` — shorthand for `skip_hidden` + `skip_empty` (only non-empty, non-hidden items). +- `unwind` — comma-separated fields whose array values are expanded into separate items. +- `flatten` — comma-separated fields whose nested objects are flattened into dotted keys. +- `view` — name of a dataset view to apply. +- `simplified` — return the simplified form of the items. +- `skip_failed_pages` — skip pages that failed to be scraped (crawler datasets). + +`DatasetDownloadOptions` adds format-specific export controls (all optional): + +- `attachment` — set the `Content-Disposition: attachment` header so browsers download the file. +- `bom` — prepend a UTF-8 byte-order mark (useful for CSV opened in Excel). +- `delimiter` — CSV field delimiter (default `,`). +- `skip_header_row` — omit the CSV header row. +- `xml_root` / `xml_row` — element names for the XML root and per-item rows. +- `feed_title` / `feed_description` — title and description for RSS output. `DownloadItemsFormat` (re-exported at the crate root) selects the export format for `download_items`. Variants: `Json`, `Jsonl`, `Csv`, `Xlsx`, `Xml`, `Rss`, `Html`. The method @@ -155,7 +176,6 @@ open-ended and most callers do not consume them structurally. Their shapes (read - `list_requests` → an object with `items` (the page of requests), `count`, `limit`, and `exclusiveStartId` for cursor continuation. - `unlock_requests` → an object reporting how many locks were released (`unlockedCount`). -- `get_statistics` (datasets) → per-field statistics keyed by field name. ### `RequestQueueRequest` and request-queue return types diff --git a/src/version.rs b/src/version.rs index bf2a02b..4c5569f 100644 --- a/src/version.rs +++ b/src/version.rs @@ -10,4 +10,4 @@ pub const CLIENT_VERSION: &str = env!("CARGO_PKG_VERSION"); /// and verified against. /// /// This corresponds to the `info.version` field of the Apify OpenAPI document. -pub const API_SPEC_VERSION: &str = "v2-2026-06-30T091455Z"; +pub const API_SPEC_VERSION: &str = "v2-2026-07-02T131926Z";