fkrzski / laravel-steam-api-sdk
Laravel bridge for fkrzski/php-steam-api-sdk — service provider, Steam facade and test fakes for the Steam Web API.
Fund package maintenance!
Requires
- php: ^8.5.0
- fkrzski/php-steam-api-sdk: ^0.6
- illuminate/contracts: ^13.0
- illuminate/support: ^13.0
- saloonphp/saloon: ^4.0
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.29.1
- orchestra/testbench: ^11.0
- pestphp/pest: ^5.0.0
- pestphp/pest-plugin-phpstan: ^5.0.2
- pestphp/pest-plugin-rector: ^5.0.3
- pestphp/pest-plugin-type-coverage: ^5.0.0
- phpstan/phpstan: ^2.2.7
- rector/rector: ^2.4.2
- symfony/var-dumper: ^8.0.8
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-04 19:28:11 UTC
README
Laravel bridge for fkrzski/php-steam-api-sdk. Ships a service provider, a Steam facade and a Steam::fake() test helper so you can talk to the Steam Web API the Laravel way.
It powers the player stats on Dead by Stats.
- Auto-discovered
SteamConnectorbinding, scoped per request and safe under Octane. - Rate-limit budget shared across processes through the Laravel cache store.
- Fluent
Steamfacade with first-class request helpers. - Localised payloads follow your application locale, or the language you pin in config.
AsSteamIdEloquent cast,SteamIdRulevalidation rule and one-liner test fakes via Saloon'sMockClient, with DTO factories for the payloads.
Requirements
- PHP 8.5+
- Laravel 13+
Installation
composer require fkrzski/laravel-steam-api-sdk
The service provider and Steam facade are auto-discovered. Run the installer to publish the config and store your key:
php artisan steam:install
It writes config/steam-api.php and asks for your Steam Web API key, appending it to .env. Both steps are also fine to do by hand:
php artisan vendor:publish --tag=steam-api-config
STEAM_API_KEY=your-steam-web-api-key
Quick start
use Fkrzski\LaravelSteamApiSdk\Facades\Steam; use Fkrzski\SteamApiSdk\ValueObjects\SteamId; $id = SteamId::fromSteamId64('76561198000000000'); $summaries = Steam::summaries([$id]); $bans = Steam::bans([$id]); $friends = Steam::friends($id); $groups = Steam::groups($id); $library = Steam::ownedGames($id, appIdsFilter: [381210]); $recentGames = Steam::recentlyPlayedGames($id); $level = Steam::steamLevel($id); $badges = Steam::badges($id); $quests = Steam::communityBadgeProgress($id); $stats = Steam::userStats($id, appId: 381210); $achievements = Steam::achievements($id, appId: 381210); $playing = Steam::currentPlayers(appId: 381210); $globalStats = Steam::globalAchievements(gameId: 381210); $gameSchema = Steam::schema(appId: 381210); $resolvedId = Steam::resolveVanityUrl('gabelogannewell');
Each helper returns a strongly-typed DTO from the underlying SDK — you never touch raw JSON.
Documentation
Full documentation lives at docs.fkrzski.dev/laravel-steam-api-sdk:
- Guide — the
SteamIdvalue object, facade helpers, exceptions, and concurrent requests. - Configuration — the config file, your API key, and the cache-backed rate limit.
- API reference — every facade method, its parameters, return type, and errors.
- Eloquent cast — persist a Steam ID on a model with
AsSteamId. - Route binding — opt in to resolving a
{steamId}route parameter into aSteamIdvalue object. - Validation rule — validate submitted Steam IDs with
SteamIdRule. - Testing — fake the Steam Web API with
Steam::fake().
License
MIT. See LICENSE.md.
