{"name":"@deckyard/steam","description":"A thick, friendly layer over Valve's Steam Web API","versions":{"0.1.0":{"version":"0.1.0","kind":"git","url":"https://github.com/deckyard/deck-steam.git","ref":"0.1.0","commit":"97dfb8d6783808af58073b8471e150bb1177e809","checksum":"","yanked":false,"license":"LGPL-3.0-only","requires":{},"engines":{"jennifer":"\u003e=0.25.0"},"capabilities":["net"],"keywords":["steam","valve","games","rest","api"],"description":"A thick, friendly layer over Valve's Steam Web API","publishedAt":"1793218978","repoId":1432116115,"repoOwnerId":346943577,"repoOwner":"deckyard"}},"readme":"# @deckyard/steam\n\n[![test](https://github.com/deckyard/deck-steam/actions/workflows/test.yml/badge.svg)](https://github.com/deckyard/deck-steam/actions/workflows/test.yml)\n[![Documentation](https://img.shields.io/badge/docs-github%20pages-blue)](https://deckyard.github.io/deck-steam/)\n[![release](https://img.shields.io/github/v/release/deckyard/deck-steam)](https://github.com/deckyard/deck-steam/releases/latest)\n\nA typed client for Valve's Steam Web API (`ISteamUser`, `IPlayerService`,\n`ISteamUserStats`, `ISteamApps`, `ISteamNews`, `ISteamRemoteStorage`,\n`IEconService`, `IGameServersService`), the storefront on\n`store.steampowered.com` and the Community Market on `steamcommunity.com`,\nfor [Jennifer](https://jennifer-lang.dev/). Replies come back as structs,\nSteam ids are accepted in all three notations, arguments are checked before\nany request, and every failure is `Error{kind: \"steam\"}`.\n\n## Install\n\n```sh\njvc add @deckyard/steam\n```\n\n`jvc` vendors `src/` to `vendor/deckyard/steam/`. To vendor by hand, unpack\n`src/` from the release archive `deckyard-steam-\u003cversion\u003e.tar.gz` there.\nNeeds Jennifer 0.25.0 or newer and the default `jennifer` binary\n(`jennifer-tiny` has no `net`).\n\n## Example\n\n```jennifer\nimport \"@deckyard/steam/\" as steam;\n\ndef c as steam.Client init steam.clientFromEnv();      # reads STEAM_API_KEY\n\n# needs a key: profiles, libraries, achievements\ndef id as string init steam.resolveAccount($c, \"gabelogannewell\");\ndef p as steam.PlayerSummary init steam.playerSummary($c, $id);\nio.printf(\"%s is %s\\n\", $p.personaName, steam.personaStateName($p.personaState));\ndef lib as list of steam.OwnedGame init steam.ownedGames($c, $id, true, true);\nfor (def g in steam.mostPlayed($lib, 5)) {\n    io.printf(\"%s|pad=40 %f|prec=1 h\\n\", $g.name, steam.playtimeHours($g.playtimeForever));\n}\n\n# keyless: player counts, the storefront, the market, news\nio.printf(\"%d in game\\n\", steam.currentPlayers($c, 730));\ndef d as steam.AppDetails init steam.appDetails($c, 620);\ndef q as steam.MarketPrice init steam.priceOverview($c, 440, \"Mann Co. Supply Crate Key\");\nfor (def n in steam.newsForApp($c, 440, 3, 0)) {\n    io.printf(\"%s\\n  %s\\n\", $n.title, steam.summarize(steam.plainText($n.contents), 120));\n}\n\n# no request at all\nsteam.toSteamId2(\"76561197960287930\");    # STEAM_1:0:11101\n```\n\nGet a key at \u003chttps://steamcommunity.com/dev/apikey\u003e. `STEAM_VERBOSE=1`\nprints each request with the key redacted. [`examples/`](examples/) has one\nrunnable program per topic.\n\n## Documentation\n\n\u003chttps://deckyard.github.io/deck-steam/\u003e: a guide per topic and the\n[cheatsheet](docs/cheatsheet.md) of every export. Valve's own reference:\n[Steam Web API documentation](https://partner.steamgames.com/doc/webapi_overview).\n\n## Disclaimer\n\nSteam, Valve and the Steam logo are trademarks of Valve Corporation. This is\nan independent library, not affiliated with, endorsed or supported by Valve.\nValve changes the Web API without notice and has retired endpoints before\n(see [apps](docs/apps.md#the-catalogue)). Respect the\n[Steam Web API Terms of Use](https://steamcommunity.com/dev/apiterms) and the\nrate limits; hammering the Community Market gets an address blocked. Use at\nyour own risk; no warranty of any kind.\n\n## License\n\nLGPL-3.0-only, see [LICENSE](LICENSE). Copyright (C) 2026 mplx \u0026lt;mplx@jennifer-lang.dev\u0026gt;.\n"}