
# box-open-sdk (Rust)
[](https://crates.io/crates/box-open-sdk)
[](https://docs.rs/box-open-sdk)
A **community, unofficial** Box API client for Rust — typed models for the whole
Box surface, one async manager per API area behind a single `Client`, and a
`reqwest`/`tokio` runtime with retry, exponential backoff, `Retry-After`
handling, and automatic token refresh.
> **Not affiliated with, authorized, or endorsed by Box, Inc.** "Box" is a
> trademark of Box, Inc. This is an independent, generated client.
## Install
```toml
[dependencies]
box-open-sdk = "0.1"
```
## Quickstart
```rust,ignore
use box_open_sdk::client::Client;
use box_open_sdk::runtime::Auth;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Developer token for a quick start; CCG, OAuth, and JWT are also supported.
let client = Client::new(Auth::developer_token("DEVELOPER_TOKEN"));
// Every API area is a typed manager field on the client.
let me = client.users.get_me(None).await?;
println!("{me:?}");
Ok(())
}
```
## Authentication
The runtime implements Box's four auth flows — **developer token**, **client
credentials (CCG)**, **OAuth 2.0** (with a pluggable refresh-token store), and
**JWT** (server auth). See [`docs/auth.md`](./docs/auth.md).
## Pagination
List endpoints return an auto-paging stream — advancing the cursor and fetching
the next page is handled for you. See [`docs/pagination.md`](./docs/pagination.md).
## Documentation
API reference on [docs.rs](https://docs.rs/box-open-sdk); the [`docs/`](./docs)
tree carries the per-manager reference and the authentication, pagination, and
errors guides.
## License
MIT. Generated by [box-gantry](https://github.com/unofficialbox/box-gantry).