# rust-oura-api
A client for the Oura V2 REST API, written in Rust.
Documentation for the Oura V2 API is available [here](https://cloud.ouraring.com/v2/doc).
The client relies on [reqwest](https://docs.rs/reqwest/latest/reqwest/) for the underlying HTTP client and [serde](https://serde.rs) for serialization and deserialization.
## Features
Supports fetching following items from the Oura API and deserializing them into Rust structs:
- Daily Activity
- Daily Readiness
- Daily Sleep
- Daily SpO2
- Heart Rate
- Personal Info
- Rest Mode Period
- Ring Configuration
- Session
- Sleep
- Sleep Time
- Tag
- Workout
- TagV2
## Example Usage
```rust
use oura_api::{OuraClient, DateQuery};
// token is the personal access token for the Oura API
let token = std::env::var("OURA_PERSONAL_ACCESS_TOKEN").unwrap();
let client = OuraClient::new(&token);
let august_date_query = DateQuery::builder().start_date("2023-08-01").end_date("2023-08-31").build();
let august_daily_sleep = client.list_daily_sleep(august_date_query).unwrap();
```
For instructions on how to generate a personal access token, see the [Oura docs](https://cloud.ouraring.com/docs/authentication#personal-access-tokens).