Gw2api
Wrapper for the Guild Wars 2 API in PHP
Install / Use
/learn @GW2Treasures/Gw2apiREADME
gw2treasures/gw2api
<!-- badges -->PHP wrapper for the Guild Wars 2 API.
Features
- Support for all v2 endpoints (including authenticated)
- Parallel requests for pagination and bulk expansion
Requirements
- PHP >= 7.2
Setup
Using composer (recommended)
composer require gw2treasures/gw2api
If you haven't included composers autoloader yet, you will have to add this before being able to use the GW2 API Wrapper.
include 'vendor/autoload.php';
Using the gw2api.phar archive
You need to download the latest gw2api.phar and the guzzle.phar of the latest 7.x version of the guzzle library and place both files in your project directory. Now you can include both files to start using the GW2 API wrapper.
include __DIR__ . '/gw2api.phar';
include __DIR__ . '/guzzle.phar';
Examples
// create new api instance
$api = new \GW2Treasures\GW2Api\GW2Api();
// get all worlds
$worlds = $api->worlds()->all();
// get some happy quaggans
$quaggans = $api->quaggans()->many([ 'cheer', 'party' ]);
// get item details in german
$ektoplasmakugel = $api->items()->lang('de')->get(19721);
// search recipes
$recipes = $api->recipes()->search()->input(46746);
// get all character names
$characters = $api->characters('api_key')->ids();
// get 10 recently bought items
$recentlyBought = $api->commerce()->transactions('api_key')->history()->buys()->page(0, 10);
Usage
For all examples it is assumed that you have a variable $api = new GW2Api().
Endpoint Overview
API Endpoint | Class<sup>†</sup> <br>Instance | Flags<sup>‡</sup>
-----------------------------|----------------------------------------------------------------------------------------------------|-------------------
/v2/account | [Account\AccountEndpoint][AccountEndpoint] <br>GW2Api::account() | 🔒
/v2/account/achievements | [Account\AchievementEndpoint][Account\AchievementEndpoint] <br>GW2Api::account()->achievement() | 🔒
/v2/account/bank | [Account\BankEndpoint][Account\BankEndpoint] <br>GW2Api::account()->bank() | 🔒
/v2/account/dyes | [Account\DyeEndpoint][Account\DyeEndpoint] <br>GW2Api::account()->dyes() | 🔒
/v2/account/finishers | [Account\FinisherEndpoint][Account\FinisherEndpoint] <br>GW2Api::account()->finishers() | 🔒
/v2/account/inventory | [Account\InventoryEndpoint][Account\InventoryEndpoint] <br>GW2Api::account()->inventory() | 🔒
/v2/account/masteries | [Account\MasteryEndpoint][Account\MasteryEndpoint] <br>GW2Api::account()->masteries() | 🔒
/v2/account/materials | [Account\MaterialEndpoint][Account\MaterialEndpoint] <br>GW2Api::account()->materials() | 🔒
/v2/account/minis | [Account\MiniEndpoint][Account\MiniEndpoint] <br>GW2Api::account()->minis() | 🔒
/v2/account/recipes | [Account\RecipeEndpoint][Account\RecipeEndpoint] <br>GW2Api::account()->recipes() | 🔒
/v2/account/skins | [Account\SkinEndpoint][Account\SkinEndpoint] <br>GW2Api::account()->skins() | 🔒
/v2/account/titles | [Account\TitleEndpoint][Account\TitleEndpoint] <br>GW2Api::account()->titles() | 🔒
/v2/account/wallet | [Account\WalletEndpoint][Account\WalletEndpoint] <br>GW2Api::account()->wallet() | 🔒
/v2/achievements | [Achievement\AchievementEndpoint][AchievementEndpoint] <br>GW2Api::achievements() | 📦🌏
/v2/achievements/categories | [Achievement\CategoryEndpoint][Achievement\CategoryEndpoint]<br>GW2Api::achievements()->categories()| 📦🌏
/v2/achievements/daily | [Achievement\DailyEndpoint][Achievement\DailyEndpoint] <br>GW2Api::achievements()->daily() |
/v2/achievements/daily/tomorrow | [Achievement\DailyTomorrowEndpoint][Achievement\DailyTomorrowEndpoint] <br>GW2Api::achievements()->daily()->tomorrow() |
/v2/achievements/groups | [Achievement\GroupEndpoint][Achievement\GroupEndpoint] <br>GW2Api::achievements()->groups() | 📦🌏
/v2/backstory/answers | [Backstory\AnswerEndpoint][Backstory\AnswerEndpoint] <br>GW2Api::backstory()->answers() | 📦🌏
/v2/backstory/questions | [Backstory\QuestionEndpoint][Backstory\QuestionEndpoint] <br>GW2Api::backstory()->questions() | 📦🌏
/v2/build | [Build\BuildEndpoint][BuildEndpoint] <br>GW2Api::build() |
/v2/characters | [Character\CharacterEndpoint][CharacterEndpoint] <br>GW2Api::characters() | 🔒📦
/v2/characters/:id/backstory | [Character\BackstoryEndpoint][Character\BackstoryEndpoint] <br>GW2Api::characters()->backstoryOf()| 🔒
/v2/characters/:id/core | [Character\CoreEndpoint][Character\CoreEndpoint] <br>GW2Api::characters()->coreOf() | 🔒
/v2/characters/:id/crafting | [Character\CraftingEndpoint][Character\CraftingEndpoint] <br>GW2Api::characters()->craftingOf()| 🔒
/v2/characters/:id/equipment | [Character\EquipmentEndpoint][Character\EquipmentEndpoint] <br>GW2Api::characters()->equipmentOf() | 🔒
/v2/characters/:id/heropoints| [Character\HeropointEndpoint][Character\HeropointEndpoint] <br>GW2Api::characters()->heropointsOf()| 🔒
/v2/characters/:id/inventory | [Character\InventoryEndpoint][Character\InventoryEndpoint] <br>GW2Api::characters()->inventoryOf() | 🔒
/v2/characters/:id/recipes | [Character\RecipeEndpoint][Character\RecipeEndpoint] <br>GW2Api::characters()->recipesOf() | 🔒
/v2/characters/:id/skills | [Character\SkillEndpoint][Character\SkillEndpoint] <br>GW2Api::characters()->skillsOf() | 🔒
/v2/characters/:id/specializations | [Character\SpecializationEndpoint][Character\SpecializationEndpoint] <br>GW2Api::characters()->specializationsOf() | 🔒
/v2/characters/:id/training | [Character\TrainingEndpoint][Character\TrainingEndpoint] <br>GW2Api::characters()->trainingOf()| 🔒
/v2/colors | [Color\ColorEndpoint][ColorEndpoint] <br>GW2Api::colors() | 📦🌏
/v2/commerce/exchange | [Commerce\ExchangeEndpoint][Commerce\ExchangeEndpoint] <br>GW2Api::commerce()->exchange() |
/v2/commerce/listings | [Commerce\ListingEndpoint][Commerce\ListingEndpoint] <br>GW2Api::commerce()->listings() | 📦
/v2/commerce/prices | [Commerce\PriceEndpoint][Commerce\PriceEndpoint] <br>GW2Api::commerce()->prices() | 📦
/v2/commerce/transactions | [Commerce\Transaction\TransactionEndpoint][Commerce\TransactionEndpoint] <br>GW2Api::commerce()->transactions() | 🔒📄
/v2/continents | [Continent\ContinentEndpoint][ContinentEndpoint] <br>GW2Api::continents() | 📦🌏
/v2/currencies | [Currency\CurrencyEndpoint][CurrencyEndpoint] <br>GW2Api::currencies() | 📦🌏
/v2/novelties | [Novelty\NoveltyEndpoint][NoveltyEndpoint] <br>GW2Api::novelties() | 📦🌏
/v2/emblem | [Emblem\EmblemEndpoint][EmblemEndpoint] <br>GW2Api::emblem() |
~~/v2/events~~ | disabled | 🌏🚫
~~/v2/events-state~~ | disabled | 🚫
/v2/files | [File\FileEndpoint][FileEndpoint] <br>GW2Api::files() | 📦
/v2/finishers | [Finisher\FinisherEndpoint][FinisherEndpoint] <br>GW2Api::finishers() | 📦🌏
/v2/guild/:id | [Guild\DetailsEndpoint][Guild\DetailsEndpoint] <br>GW2Api::guild()->detailsOf() | 🔓 | 🚫
/v2/guild/:id/log | [Guild\Authenticated\LogEndpoint][Guild\Authenticated\LogEndpoint] <br>GW2Api::guild()->logOf() | 🔒
/v2/guild/:id/members | [Guild\Authenticated\MemberEndpoint][Guild\Authenticated\MemberEndpoint] <br>GW2Api::guild()->membersOf() | 🔒
/v2/guild/:id/ranks | [Guild\Authenticated\RankEndpoint][Guild\Authenticated\RankEndpoint] <br>GW2Api::guild()->ranksOf() | 🔒
/v2/guild/:id/stash | [Guild\Authenticated\StashEndpoint][Guild\Authenticated\StashEndpoint] <br>GW2Api::guild()->stashOf() | 🔒
/v2/guild/:id/teams | [Guild\Authenticated\TeamEndpoint][Guild\Authenticated\TeamEndpoint] <br>GW2Api::guild()->teamsOf() | 🔒
/v2/guild/:id/treasury | [Guild\Authenticated\TreasuryEndpoint][Guild\Authenticated\TreasuryEndpoint] <br>GW2Api::guild()->treasuryOf()| 🔒
/v2/guild/:id/upgrades | [Guild\Authenticated\UpgradeEndpoint][Guild\Authenticated\UpgradeEndpoint] <br>GW2Api::guild()->upgradesOf() | 🔒
/v2/guild/permissions | [Guild\PermissionEndpoint][Guild\PermissionEndpoint] <br>GW2Api::guild()->permissionsOf() | 📦🌏
/v2/guild/upgrades | [Guild\UpgradeEndpoint][Guild\Upgra
Related Skills
gh-issues
345.9kFetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
node-connect
345.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
oracle
345.9kBest practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
taskflow-inbox-triage
345.9kname: taskflow-inbox-triage description: Example TaskFlow authoring pattern for inbox triage. Use when messages need different treatment based on intent, with some routes notifying immediately, some w
