#octopus-energy #api-client #kraken #client #energy

octopust

A high-performance, idiomatic Rust client for the Octopus Energy API

6 releases (3 breaking)

0.4.0 Jul 22, 2025
0.3.0 Jul 3, 2025
0.2.0 Jun 25, 2025
0.1.2 Jun 25, 2025

#1555 in Asynchronous

Download history

381 downloads per month

MIT license

41KB
973 lines

octopust

rust-clippy analyze

octopust is an idiomatic, high-performance Rust client for the Octopus Energy API.
Built for speed, safety, and ergonomics, it helps you interact with Octopus Energy's Kraken platform with ease. 🐙⚡


Features

  • Async/await support for high performance
  • Strongly-typed request and response models using Serde
  • Simple and extensible API client
  • Covers core Octopus Energy endpoints (products, accounts, consumption and industry)
  • Comprehensive error handling
  • Well-documented and tested

Supported APIs

octopust currently supports the following public Octopus Energy API endpoints:

  • Products: List available electricity and gas products/tariffs.
  • Tariffs & Rates: Retrieve tariff unit rates and standing charges.
  • Consumption: Fetch electricity and gas consumption data by MPAN/MPRN.
  • Industry Reference Data: Get grid supply points (GSPs).

Example

use octopust::Client;

#[tokio::main]
async fn main() {
    let client = Client::new("YOUR_API_KEY");
    match client.list_products(ProductQuery {
        ..Default::default()
    }).await {
        Ok(products) => {
            for product in products {
                println!("{:?}", product);
            }
        }
        Err(e) => eprintln!("Error: {:?}", e),
    }
}

Getting Started

  1. Add to your Cargo.toml:

    octopust = "0.3.0"
    
  2. See the examples/ directory for more usage patterns.

Documentation

Contributing

Contributions are welcome! Please open issues or PRs for bug reports, feature requests, or documentation improvements.

License

MIT


octopust is not affiliated with Octopus Energy.
Logo and trademark rights belong to their respective owners.

Dependencies

~6–21MB
~228K SLoC