A fast and effecient lowestbins implementation this uses parrallel requests to fetch all lowestbins in less than 2.5 SECONDS and uses the hyper server allowing for practically unlimited requests per second while only using 50mb of ram! Lowestbins-rs is used by Skytils for the lowestbins feature.
If you are using this in a project please credit me! or sponsor me on github github.com/sponsors/Tricked-dev
node:
const fetch = require("undici"); // node-fetch also works
let json = await fetch("https://lb.tricked.dev/lowestbins").then((res) =>
res.json()
);
console.log(json["ENCHANTMENT_ULTIMATE_SWARM_2"]);web/deno:
let json = await fetch("https://lb.tricked.dev/lowestbins").then((res) =>
res.json()
);
console.log(json["ENCHANTMENT_ULTIMATE_SWARM_2"]);import requests
json = requests.get("https://lb.tricked.dev/lowestbins").json()
print(json["ENCHANTMENT_ULTIMATE_SWARM_2"])Returns a JSON object with lowest bins and bazaar prices. Supports
?typeand?pricefilters.
Returns the historical price average for the specified number of days (e.g.,
/averages/7day). RequiresENABLE_HISTORY=1.
Note on Compression: All endpoints support robust Gzip compression to save bandwidth. Just append
.gzto the path (e.g.,/lowestbins.json.gz,/averages/1day.json.gz).
Query Parameters: Most data endpoints support the following filters:
?type=all|auction|bazaar(Default:all) - Filters items by their market source.?price=historical|available(Default:historical) - Filters auction items by their state (availablemeans currently active on the Auction House).
Some items are normalized into custom keys in /lowestbins.
- Pets:
PET-AMMONITE-LEGENDARY,PET-AMMONITE-LEGENDARY-100 - Potions:
POTION-HASTE-4-ENHANCED - Runes:
RUNE-BITE-1 - New Year Cake:
NEW_YEAR_CAKE,NEW_YEAR_CAKE-1 - Perfect stats variants:
BOUNCY_BOOTS-PERFECT
Regular items still use normal ids, for example: HYPERION.
Returns a text file with all lowestbins easier to parse and smaller in size
Returns the price of a item as number this endpoint can be used to get more up to date prices due to it not being cached as often
Returns prometheus metrics of the prices
Returns basic data about the api and update time
docker run --name lowestbins -p 8080:8080 -e HOST=0.0.0.0 -e UPDATE_SECONDS=120 -d ghcr.io/tricked-dev/lowestbins:latest- If you're on Linux, you can go to releases and download the binary
- Windows/MacOS: you need to install cargo and run
cargo build --releaseand the exe/binary should be in the./target/release/lowestbins.
Env variables
PORT # The port to run the server on
HOST # The host to run the server on
SAVE_TO_DISK # set to 0 to not save the auctions to disk
OVERWRITES # Overwrite values format: `BLESSED_BAIT:200,ROCK_CANDY:6000,NON_EXISTENT_ITEM:200`
UPDATE_SECONDS # The amount of seconds to wait before updating the lowestbins
WEBHOOK_URL # The webhook url used for reporting the requests (discord/discord compatible)
RUST_LOG # The log level lowestbins=debug recommended
ENABLE_HISTORY # set to 1 to enable historical price tracking (default: 0)- NBT parsing
- Fetching auctions and returning the lowest bin
- hyper server
- skytils compatible
- metrics endpoint
/metrics - rust
- price history
- granular filtering (
?type&?price) - gzip compression
- use quiche for faster quests
- use cargo pgo to optimize binaries
Licensed under the Apache 2 License

