3 releases

0.1.2 Oct 8, 2023
0.1.1 Sep 8, 2023
0.1.0 Sep 8, 2023

#1535 in Encoding

MIT license

19KB
457 lines

rust-oura-api

A client for the Oura V2 REST API, written in Rust.

Documentation for the Oura V2 API is available here.

The client relies on reqwest for the underlying HTTP client and serde 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

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.

Dependencies

~4–20MB
~223K SLoC