Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "apify-client"
version = "0.4.3"
version = "0.4.5"
authors = ["Apify Technologies <support@apify.com>"]
description = "An official, but experimental, AI-generated and AI-maintained Rust client for the Apify API (https://apify.com)."
license = "Apache-2.0"
Expand Down
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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<Utc>`
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:

Expand Down
7 changes: 5 additions & 2 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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<Utc>`
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:

Expand Down
9 changes: 8 additions & 1 deletion docs/actors.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
30 changes: 25 additions & 5 deletions docs/storages.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,31 @@ let scratch = client.datasets().get_or_create(None).await?;
| `download_items(format, options)` | `DownloadItemsFormat`, `DatasetDownloadOptions` | `Vec<u8>` | Export items as JSON/CSV/XLSX/XML/RSS/HTML. |
| `create_items_public_url(options, expires)` | `DatasetListItemsOptions`, `Option<i64>` | `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
Expand Down Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion src/version.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Loading