canonical: https://jentic.com/apis/bungie.net/bungie

# Bungie.Net API

The Bungie.Net API exposes the platform behind Bungie.net and the Destiny video games, covering player profiles, Destiny 2 character and inventory data, item actions, social features, fireteam finder, group/clan management, and content delivery for news and help articles. It is used by community sites, Destiny companion apps, and tools that read or modify a player's gameplay state. Read endpoints work with an X-API-Key, while operations that modify a player's data require OAuth 2.0 authorization with the appropriate scope.

## For AI agents

Read Destiny 2 player profiles, inventories, and stats and perform in-game actions like equipping items, transferring loadouts, and managing clans on behalf of an authenticated player.

## Scope

Does not handle game purchases, billing, or non-Bungie titles - use for Destiny 2 and Bungie.net player, clan, and content operations only.

## Capabilities

- Look up a player's Destiny 2 profile, characters, inventory, and progressions
- Equip, transfer, lock, or pull from postmaster on Destiny 2 items
- Snapshot, equip, and update Destiny 2 loadouts
- Search Destiny entity definitions (items, perks, activities) by text
- Manage clan and group membership, walls, and forums via GroupV2
- Browse, search, and create Fireteam Finder listings for activities
- Fetch Bungie.net news, help articles, and community content

## Use cases

### Destiny 2 companion app data

Power third-party companion apps that show a player's vault, characters, weapons, and progressions. The Destiny2 endpoints return profile components, character inventories, and item instances with manifest IDs that map to the public definition catalog. Apps typically combine this with the Destiny manifest to render rich item details client-side.

Example prompt: For a given Destiny 2 membershipId and membershipType, fetch the player's profile components and list their characters and equipped items.

### In-game item actions on behalf of a player

Perform OAuth-scoped item actions like equipping a weapon, transferring an item between vault and character, locking a god-roll, or snapshotting a loadout. These are write operations that require the MoveEquipDestinyItems scope and a valid user OAuth token. They power loadout managers and DIM-style inventory tools.

Example prompt: POST to `/Destiny2/Actions/Items/EquipItem`/ with the itemInstanceId and characterId for a player who has authorized the MoveEquipDestinyItems scope, then verify by re-reading the character's equipped items.

### Clan and fireteam management

Build clan dashboards and LFG tools using the GroupV2 and FireteamFinder endpoints. Read clan membership, post to clan walls with the appropriate scope, and create or browse open fireteam listings filtered by activity. Suitable for clan websites, Discord bots, and matchmaking utilities.

Example prompt: List open Fireteam Finder listings for a given activity graph hash and return the top results with their joinability and language.

### AI agent Destiny assistant via Jentic

An AI assistant can read a player's current Destiny 2 state and execute scoped item actions on their behalf - for example, suggesting and equipping a loadout for a specific activity. Jentic stores the OAuth refresh token and the X-API-Key separately, so the agent only ever calls operations with scoped, short-lived credentials.

Example prompt: Search Jentic for 'equip a Destiny 2 loadout', load the EquipLoadout schema, then execute it with the player's characterId and chosen loadoutIndex after confirming the player intent.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/Destiny2/Actions/Items/EquipItem/` | Equip an item on a character |
| POST | `/Destiny2/Actions/Items/TransferItem/` | Transfer an item between vault and character |
| POST | `/Destiny2/Actions/Items/PullFromPostmaster/` | Pull an item from the postmaster |
| POST | `/Destiny2/Actions/Loadouts/EquipLoadout/` | Equip a saved loadout |
| POST | `/Destiny2/Actions/Loadouts/SnapshotLoadout/` | Snapshot the current equipped state as a loadout |
| GET | `/Destiny2/Armory/Search/{type}/{searchTerm}/` | Search Destiny entity definitions |
| GET | `/Content/Rss/NewsArticles/{pageToken}/` | Fetch the Bungie.net news article feed |

## Key resources

- **User** — Read Bungie.net user profiles and linked memberships.
- **Destiny2** — Read player profiles, characters, vendors, and perform item actions and loadouts.
- **GroupV2** — Manage clans and groups, members, walls, and forums.
- **FireteamFinder** — Create, search, and join open fireteam listings.
- **Content** — Fetch Bungie.net news articles, content by tag, and help articles.
- **Forum** — Read and post to Bungie.net forums.
- **Tokens** — Read and apply user tokens and partner offer rewards.

## Why Jentic

- **Setup:** Wiring the Bungie.Net API by hand means learning its X-API-Key header alongside a per-user OAuth authorization-code flow against www.bungie.net/Platform and refreshing tokens yourself. Through Jentic you install once, import the Bungie.Net API from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** Bungie's Destiny 2 actions target the character and items through the request body rather than the URL path, so scope the agent by the operations it needs, such as equipping a loadout or searching the armory. Because you choose the allowed operations, it can equip and snapshot loadouts without being able to transfer items or pull from the postmaster unless you add those.
- **Credential handling:** Your Bungie X-API-Key and per-user OAuth refresh token are stored once, encrypted, by your own Jentic One instance, and only a scoped short-lived access token is injected at execution time. The long-lived secrets never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'equip a Destiny 2 loadout' or 'search the armory', and Jentic returns the matching Destiny2 operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Riot Games API** — Riot Games API exposes player and match data for League of Legends, Valorant, and TFT.
- **Steam Web API** — Steam Web API for cross-game stats and friends data on the Steam platform.
- **Akamai API** — Akamai's content delivery and edge network APIs for media-heavy applications.

## FAQ

### What authentication does the Bungie.Net API use?

Every request requires an X-API-Key header obtained from https://www.bungie.net/en/Application. Operations that read or modify a user's data additionally require OAuth 2.0 authorization-code with scopes such as ReadDestinyInventoryAndVault or MoveEquipDestinyItems. Through Jentic, both the API key and the user OAuth refresh token are vault-scoped per call.

### Can I equip a loadout on behalf of a Destiny 2 player?

Yes - POST `/Destiny2/Actions/Loadouts/EquipLoadout`/ swaps to a saved loadout. The request requires a valid OAuth token with the MoveEquipDestinyItems scope. Use SnapshotLoadout to capture the current state before swapping if you want a rollback.

### How do I search for a Destiny 2 item by name?

GET `/Destiny2/Armory/Search/{type}/{searchTerm}`/ returns Destiny entity definitions matching the search term. Resolve the returned hashes against the Destiny manifest to get full item, perk, or activity details.

### What are the rate limits for the Bungie.Net API?

The OpenAPI spec does not declare explicit limits. Bungie publishes throttle guidance in their developer documentation - most endpoints are subject to per-application and per-user quotas. Cache profile data where possible and avoid polling tighter than the platform's recommended cadence.

### How do I read a player's Destiny 2 profile through Jentic?

Run `pip install jentic` and search for 'get a Destiny 2 player profile'. Jentic returns the matching GetProfile operation under Destiny2 with its component query parameter; load the schema and execute with the player's membershipType and membershipId - credentials stay in your Jentic One instance.

### Can I post to Bungie.net forums and clan walls with this API?

Yes. The Forum and GroupV2 endpoints support creating posts and replies. Posting to a clan wall requires the WriteGroups OAuth scope, and forum write operations require the BnetWrite scope, which Bungie restricts to elevated-trust applications.

### Can I limit what my agent is allowed to do with the Bungie.Net API?

Yes. Because Jentic One is self-hosted and you decide which operations your agent may call, you can grant it just the Destiny 2 actions it needs, such as equipping and snapshotting loadouts or searching the armory. Bungie's item actions target the character and items through the request body rather than the URL path, so an agent scoped to EquipLoadout and SnapshotLoadout cannot transfer items or pull from the postmaster unless you explicitly add those operations. Your X-API-Key and per-user OAuth refresh token stay in your own instance, and only a scoped short-lived access token is injected when a permitted call runs.
