A lightweight Rust wrapper for the Waypoint (Halo) API that enables retrieval of player and match information, including service records and game history.
Usage requires authentication with a personal Microsoft account.
This project is provided as-is. The author assumes no responsibility for any potential issues arising from its use, including possible violations of the API’s terms of service.
This is a small HTTP proxy service that authenticates with Halo Waypoint and exposes selected Waypoint endpoints over a local Rocket web server.
It handles login, session/cookie storage, and forwards requests to the Waypoint API, returning JSON responses.
- Set the following environment variables:
export WAYPOINT_USERNAME="you@example.com"
export WAYPOINT_PASSWORD="s3cr3t"
export WAYPOINT_GAMERTAG="MyGTag"- Build and run:
cargo run --releaseIt can also be run via Docker:
docker build -t halo-api .-
GET /H5/<endpoint>?<query..>
Proxies requests to Halo 5 (H5) Waypoint endpoints.
<endpoint>is the path fragment used in the official Waypoint H5 API. -
GET /HI/<endpoint>?<query..>
Proxies requests to Halo Infinite (HI) Waypoint endpoints.
Query parameters are forwarded exactly as provided.
Halo 5 endpoint:
curl "http://localhost:8000/H5/metadata?lang=en-US&version=latest"Halo Infinite endpoint:
curl "http://localhost:8000/HI/players/stats?player=MyGTag"- On startup, the service logs in to Waypoint and maintains a
reqwest::Clientwith cookie store enabled. - If login fails, the program exits immediately.
- Non-success HTTP status codes from Waypoint are mapped to the crate's
WaypointErrortype. - Successful responses are returned as raw JSON (
serde_json::Value).
Note: This is currently implemented as a Rocket + reqwest-based proxy server rather than a pure library wrapper.