# hypixel
Asynchronous Rust client for the [Hypixel Public API](https://api.hypixel.net),
with a focus on SkyBlock.
```rust
use hypixel::HypixelClient;
#[tokio::main]
async fn main() -> hypixel::Result<()> {
let client = HypixelClient::new("YOUR-API-KEY");
let profiles = client.skyblock_profiles("UUID").await?;
println!("{} profiles", profiles.len());
// Keyless endpoints work without a key:
let bazaar = HypixelClient::unauthenticated().skyblock_bazaar().await?;
println!("{} bazaar products", bazaar.products.len());
Ok(())
}
```
## Features
- Full v2 endpoint coverage: general, SkyBlock, and resources, plus
`skyblock_auctions_all` for fetching the whole auction listing concurrently.
- Strongly-typed models, down to the SkyBlock member sections (skills,
dungeons, slayers, pets, currencies, HOTM), with an `extra` catch-all on
every object so responses keep deserializing as Hypixel evolves the API.
- Rate-limit state parsed from response headers ([`HypixelClient::rate_limit`]),
with optional automatic retries and response caching on the builder.
- Helpers in [`util`]: leveling math for the SkyBlock curves (skills,
catacombs and dungeon classes, slayers, pets, HOTM, profile level) with
`member_summary` resolving a whole member at once; bazaar spreads and
after-tax flip finding; lowest-BIN aggregation by name or decoded item id;
networth estimates that count recombobulators, potato books, and
enchantments; and (under the default `nbt` feature) base64+gzip NBT
inventory decoding.
- Username and UUID lookups against the Mojang API in the `mojang` module.
## Feature flags
- `nbt` *(default)*: enables [`util::nbt`] and NBT-based networth extraction.
Disable with `default-features = false` if you do not need NBT decoding.
## License
MIT