Giter Club home page Giter Club logo

api's Introduction

The Bungie.Net API

Full Documentation: https://bungie-net.github.io/multi/index.html

Documentation as one single, gigantic page: https://bungie-net.github.io

This section will be added to as time goes by - we're working with it as we go!

2022-12-06 Update for the Season of the Seraph

  • Added responseMintedTimestamp and secondaryComponentsMintedTimestamp to DestinyProfileResponse.
    • Use these new values to handle stale cached responses from the Destiny2.GetProfile API.
  • Added new EquipFailureReason enum flag values, and renamed ItemNotOnCharacter to ItemWrapped.
  • Added new categoryfilter and includebody parameters to the /Content/Rss/NewsArticle/<page>/ API.
    • Going forward, new news content will be available via the RSS feeds and this API.

2022-08-23 Update for the Season of Plunder

  • Added Support for Epic Games accounts.

2022-07-19 Update for Solstice 2022

  • Added DestinyEventCardDefinition for the new seasonal Event Card feature.
    • The Event Card challenges root node has three child nodes (one for each character class), so clients should respect node visibility to show the appropriate records.
  • Added new properties for eventCardHashesOwned and activeEventCardHash to DestinyProfileComponent.

2022-05-24 Update for the Season of the Haunted

  • Added new DestinyActivityModeType enum values for Zone Control, Rift, and Iron Banner: Rift.
  • Added a displayHint string property to DestinyTraitDefinition.
  • Added a shouldShowLargeIcons boolean property to DestinyRecordDefinition.
  • Added a new DestinyVendorItemState enum value for Locked sale items.

2022-05-01 Update for housekeeping

  • Added a definition mapping and specification for DestinySandboxPatternDefinition.
  • Fixed the DestinyTraitCategoryDefinition.traitHashes mapping to properly reference DestinyTraitDefinition.
  • Added a deprecation warning to DestinyObjectiveDefinition.valueStyle, which is no longer populated by game content.
    • Please use inProgressValueStyle and completedValueStyle instead.

2022-02-22 Update for The Witch Queen

  • Items
    • Added new ItemState flag values for Shaped (Crafted) and Deepsight (HighlightedObjective) weapons.
    • Added DestinyItemCraftingBlockDefinition for more details in crafting recipe (Pattern) item definitions.
    • Added recipeItemHash to DestinyItemInventoryBlockDefinition for a reference to the crafted item's recipe (Pattern) definition.
    • Added craftingRequirements to DestinyItemSocketEntryPlugItemRandomizedDefinition for plugs used in crafting.
      • New 'Enhanced Trait' plug item definitions have an inventory.tierType value of Common (3) instead of Basic (2).
    • Added a new DestinyItemSubType for Glaive weapons.
  • Objectives
    • Added uiLabel and uiState properties to DestinyObjectiveDefinition.
    • Added DestinyObjectiveUiStyle enum values for highlighted objectives (Deepsight), crafted item objectives (date, level, progress), and memento reward objectives.
    • Added LevelAndReward to DestinyUnlockValueUIStyle for memento reward objectives.
  • Craftables
    • Added the craftingRootNodeHash to Destiny2CoreSettings for the display of Shaping progress.
      • The exoticCatalystsRootNodeHash now includes unlock progress records for weapon shaping 'Patterns' as well as Exotic Catalysts.
    • Added craftables (crafting recipe items) as children of DestinyPresentationNodeDefinition.
    • Added a new Craftables enum value for DestinyComponentType for use with GetProfile.
    • Added characterCraftables state to DestinyProfileResponse.
      • Only initial Shaping state is returned, not Reshaping state.
  • Material Requirements can now have non-constant values.
    • Added countIsConstant for constant count values.
    • Non-constant counts will have a value of 0 in the definition.
    • We plan to add support for non-constant counts in the API, but we don't have an ETA.
  • Activities
    • Added activityWasStartedFromBeginning to DestinyPostGameCarnageReportData as an alternative to startingPhaseIndex.
    • Added a new DestinyActivityModeType enum value for Offensive activities.
      • We plan to add another enum value for Master and Legend LostSector activities soon.

2022-01-06 Update for Mapped Definition Attributes

Added hash-to-definition-type mapping attributes that were missing for many contract class properties.

2021-12-07 Update for Bungie's 30th Anniversary

Added a new InsertSocketPlugFree API for 'free and reversible' socket actions available to 3rd-party Destiny 2 apps (no new application scopes required).

  • This includes Armor 2.0 mods, Weapon perks, Stasis abilities, Shaders, Ornaments, and Ghost Projections.
    • Only 'randomized' or 'reusable' socket plugs items with no 'insertion material requirements' will be allowed.
    • You will not be able to overwrite a 'non-free' plug item with a 'free' plug item (for example: replacing a Weapon mod with an 'Empty Socket Mod').
  • 3rd-party Destiny 2 apps will still not be able to spend your currencies for socket actions.
    • As such, 3rd-party Destiny 2 apps won’t be able to apply Weapon and Armor Masterwork tiers, Weapon mods, Armor 1.0 mods, Ghost 2.0 mods, and Ship Transmat effects.
  • Destiny2CoreSettings includes new hash arrays for some additional restrictions:
    • Check insertPlugFreeProtectedPlugItemHashes for protected plug item hashes that you can't overwrite (currently just Riven's Curse and Transcendent Blessing mods).
    • Check insertPlugFreeBlockedSocketTypeHashes for blocked socket type hashes that you can't change (currently just Weapon 'Kill Tracker' sockets).
  • The InsertSocketPlugFree API will initially be rate-limited to 2 socket actions per-second, per-user.
    • This rate can be adjusted based on your feedback and service stability.

2021-11-18 Update for Bungie Name Search

Added new Bungie Name search APIs with POST requests for special characters.

  • You can call these to find player names that have colons, slashes, angle brackets, etc.

2021-10-12 Update for Uninstanced Item Perks

Added support for perk state components on uninstanced items.

  • Mostly just for the Trials of Osiris 'Passage' quest items to show whether a 'Mercy' has been used or not.

2021-09-03 Update for Display Name Search and Stasis Energy

Added docs for the new Bungie Name search API and the Stasis Energy type enum value.

2021-08-24 Update for Cross Play and the Season of the Lost

Added Bungie Names and Bungie Friends.

2021-05-25 Update for Vendor String Variables

Added the 'StringVariables' component option to the D2 Vendor APIs.

2021-05-11 Update for the Season of the Splicer

Includes reward item visibility and string variables.

  • String variable placeholders (formatted as {var:1234567890}) are found in Destiny definition localized strings.
  • D2 Profile API clients can request the new StringVariables component to get per-character integer values by hash.
  • Clients can then replace the {var:(hash)} placeholders with the corresponding integer values.
  • String variables are currently used in the following places:
    • Armor Synthesis bounties from Ada-1 (descriptions, reward names, tooltips, failure strings)
    • A single Seasonal Challenge record description

2021-02-09 Update for the Season of the Chosen

Includes seasonal challenges, item flavor text, gilded titles, record interval rewards, and season preview definitions.

2020-12-08 Update for Destiny 2 version 3.0.1

Includes 'ApiPurchasable' values for vendor items, and 'currentlyCanRoll' for randomized socket plugs.

2020-11-19 Update for Ghost Energy

Includes new enum values for Ghost and Subclass energy types.

2020-11-10 Update for Beyond Light and the Season of the Hunt

Includes changes for Stasis, item icon watermarks, 'Active' and 'Legacy' Triumphs, and scored presentation nodes.

Caveat - The new energy type for Ghost mods is not yet implemented.

2020-07-07 Update for Bungie Day 2020

Includes changes for the 'SetTrackedState' API and the current season reward power cap.

2020-06-09 Update for Season of Arrivals

Includes changes for Season of Arrivals, item versions, and power caps.

2020-03-10 Update for Season of the Worthy

Includes changes for Season of the Worthy, Trials of Osiris, and Stat Trackers (aka Metrics).

2020-02-13 Late Winter Refresh

Upkeep update. Includes traits info and new activity types.

2019-12-05 Winter Wishlist! File your requests here!

Go here for more information: #1158

We would love your input! Even though we will have a very limited amount of time to work on improvements over the upcoming holiday season, it'll still be useful to know what you folks consider to be the highest priorities so that we can hopefully push in those directions in the coming year!

2019-09-26 Pre-release Shadowkeep API Changes

Head here for more information: https://github.com/Bungie-net/api/wiki/2.4.0-(Shadowkeep)-API-Changes

I'm New to the API. What can I do with it?

  • (TODO: Create a grand overview tour of Destiny API features for new users in wiki, including how to get mobile databases and what the heck a mobile database is)

How do I register to use the API?

  • You're in luck! Check out our wiki article... in fact, check out the wiki in general, we'll be adding to it as time allows:

https://github.com/Bungie-net/api/wiki/Bungie.net-Application-Portal

Are there any restrictions on the API?

Right now the API doesn’t require a User-Agent header for requests and we haven’t set a standard for one. We will continue the policy of not requiring one for the foreseeable future. Starting now we do ask you send a User-Agent header as a best practice. Your agent string should include the app name and ap-id with an optional web url and/or email address. A suggested format is “AppName/Version AppId/appIdNum (+webUrl;contactEmail)”

For example: User-Agent: Really Cool App/1.0 AppId/##### (+www.example.com;[email protected])

It would be helpful to us and may also allow us to provide more detailed metrics in the future to app owners who provide one. On the off chance we need to contact you about your app this will help us reach out to you and may prevent us from having to disable an app (though only as a last resort!).

What about the Destiny 1 API?

  • It is alive and well, under the /d1/Platform/Destiny/ root URL. We unfortunately don't have the time to write documentation for the D1 API, but community member Lowlines made this fantastic documentation. Buy him a beer sometime, or name your first kid after him or something. Or donate to him if he accepts donations, which he should because the work he did in D1 was totally boss.

I'm a Destiny 1 API Veteran. What's new in the API?

  • Component-based Destiny Requests

    • Destiny2.GetProfile, Destiny2.GetCharacter, and Destiny2.GetItem are now the fundamental building blocks of Destiny data, replacing our large and disparate specialized endpoints.
    • GetCharacter and GetItem are provided for situations where you know the specific character or item you're looking at in your UI, but we fully anticipate that most calls will be made through GetProfile. At any layer of depth, you can now get any data for the layer below by passing the components you want returned in the ?components= querystring parameter of the method.
    • For example, you can pass the CharacterInventories component to GetProfile, and you will receive the full inventory for all characters (provided that they have granted you permission to access that data, in the same way as in Destiny 1: our privacy policies and settings have not changed since D1, and still apply to D2 data).
    • In this way, my hope is that we can reduce the number of round trips you're currently having to make, while letting you control how much bandwidth you use up. Ask for only the components that you need!
  • Milestones

    • Advisors have disappeared, but in their place are "Milestones". Mirroring the game's concept of Milestones, these reflect all of the activities that a player can do in game. Essentially these become Advisors with matching Definition data, which reduces the payload we have to return in live requests and makes including Milestone information as part of a Profile or Character request more feasible.
    • We will, as we did with Advisors, tack on additional data that we can associate with the Milestone where possible and add to it over time.
    • Milestones will, like Advisors, continue to evolve over time - and, like Advisors, I will probably come to regret how I implemented our view of them. But for now, I feel hopeful.
    • Like Advisors, there are "Public" Milestones: views of what can be done in the game right now agnostic to an individual player's state. For this information, you will want to seek out Destiny2.GetPublicMilestones.
  • The Near-Deprecation of Talent Grids

    • In an act that I can only describe as Benevolence, the designers turned away from Talent Grids like they were going to turn into a pillar of salt.
    • Unfortunately, Talent Grids aren't dead entirely. Items may still have them, and they have even more rules stacked on top of how they work now, to support the one place where they currently are still being used: Character Builds/Subclasses.
    • Please see DestinyTalentGridDefinition to delve into the abyss.
    • Eventually, I would like to create a derivative definition of this specifically for Builds in an attempt to simplify what you have to understand: but I did not find time to do so before release (and I'm not 100% confident that I'd be able to remove enough complexity for it to be worth it to create a derivative definition).
  • The Ascent of Sockets for Item Customization

  • (Add more... probably redirect this to a set of wiki pages)

Swagger/OpenAPI Specs (or, how to generate your own clients for the BNet API)

NOTE: There are currently bugs in the generated documentation: it worked well enough to build the HTML documentation you'll see at the links above, but users are reporting a variety of issues - and in some cases, missing data - when they go to generate clients. Due to severe time constraints, I've not been able to prioritize fixing bugs in the documentation. It's still on our backlog, but for now any client generators you build will have to work with what we've got.

Extension Properties on OpenAPI Specs (or, how to generate much cooler clients for the BNet API if you want to take the time to do so)

  • x-mapped-definition = This property has hash identifiers that map to a Manifest Database definition. This property will reveal which type of Manifest Database definition it points to. If it's a uint32, it points to a single definition. If it's a List, each value points to a different definition. If it's a Dictionary<uint32, X>, its' keys point to different definitions.

  • x-mobile-manifest-name = If populated, this is the name of the Mobile Manifest table that holds this data as a first-class entity. The existence of this field implies that this entity is a first-order Destiny Definition aggregate.

  • x-enum-values = I really hate that the OpenAPI spec doesn't have a way to tell you both the identifier and the numeric value of an enum, much less documentation for enum values, so I added this extension as a way to return that info. It'll give you way more than the basically useless base "enum" property.

  • x-destiny-component-type-dependency = A new concept in the Destiny 2 API is "Components". You will see that our Destiny Profile/Character calls have been mostly simplified down to just GetProfile/GetCharacter/GetItem. This simplification is made possible by Components, which are identifiers you pass into the requests to specify how much data you want back. An entity with this property will only be returned if you've passed the named Component Identifier into the GetProfile/GetCharacter/GetItem methods.

  • x-dictionary-key = OpenAPI didn't have a good way for me to specify that the key of a dictionary was actually meant to be something other than a string (even if always encoded as a string in JSON). This extension property lets me tell you what it really is, so you can strongly type it and convert it if desired.

  • x-preview = This boolean indicates that the Operation in question is not yet ready for prime time. You will have to read the documentation to find out just how not ready it is, at least for now.

FAQ

  • Certain APIs are marked as PENDING in the documentation, what does that mean?

    • This may mean that their tentative contracts are being exposed in the documentation for review, or that they're going to be live but in a "Beta" state. Look at the description of the specific endpoint for details.
  • Can you provide documentation for the specific stat properties and modes that will be returned?

    • For the time being, we can't reveal that data. I apologize for the inconvenience!
  • How do I do X? What does Feature/Property Z mean?

    • If you've got specific questions, please add a Question to our Issues list! We'll try to answer as time allows, and we'll use this input to improve our documentation!
  • I have suggestions on how to improve the API/alternative ways I'd like to see the data returned! Where can I submit that input?

    • Add an Enhancement request to our Issues list! As time allows, we'll comb through them. This will be particularly useful for Pending endpoints like Vendors, where there's still time to improve on the contracts before we turn them on.
    • Ideally, I'd like to see these become a place where the dev community as a whole can debate on the benefits and drawbacks of a change to the API, which will help us all to make the experience better for everyone.
    • It'll be a bit harder to make contract-adjusting changes to endpoints that are already release ready, but we can discuss ways to extend it. If the enhancement is compelling enough, it may even be worth versioning the API. But we're going to try to avoid that if at all possible.
  • I've found a bug!

    • Please start up a Bug in the Issues list! It'll give us a good place to organize bugs that are reported, and to report back on them when they are fixed.
    • Note that the API is only part of the work that we do, and we have ongoing Bungie.Net feature work that sometimes pulls us away from the API: as such, Bugs may take a while to be resolved depending on other issues on our plate. But my hope is that this location will help to make community-located bugs more exposed and easier to track, which should help us in our own prioritization of tasks!
  • I need technical support for the game! (or Please give me loot!)

    • None of us here have access to the specialized support tools required to diagnose in-game issues and/or give sweet/phat lootz. Please hit up the #Help forums on Bungie.net if you have technical support questions aside from the API itself!
  • Will I be denied access to GetProfile/GetCharacter/GetItem if I lack OAuth scopes?

    • You will not be denied results if you don't have particular scopes, but components will be denied to you. I don't have a good way of encoding this in the spec at the moment, but I will look into doing so in the future (potentially as an extension property, as there's no good way to encode partial success due to OAuth scopes):
    • ReadDestinyVendorsAndAdvisors is required for characterActivities, characterProgressions, kiosks and characterKiosks
    • ReadDestinyInventoryAndVault is required for profileCurrencies, profileInventory, characterInventories and vendorReceipts
    • That is all in addition to the user's privacy settings: you may still be denied the component if you're not passing their auth token and you're asking for components that they've marked private. Your app should always assume and be able to handle the situation where an expected Component is not returned to you, even if the handling is just showing the user an error message. (if you can of course, a more elegant handling of the situation is always preferred!)
  • Where are my consumable items?

    • Consumables are now in an Account-level bucket called "Consumables". They are shared across all of your characters, meaning that you don't have to transfer them back and forth anymore. Oh, glorious day!
  • I have a project I'd like to recruit help for, or one that I'd like to show off!

    • We're trying to keep the "Issues" section specific to the API itself, BUT you should definitely go to the officially unofficial Discord for the Bungie.Net API, set up by community member Xorth: https://discord.gg/E5uB4BW There are sections over there for project promotion, general discussion and so on!
  • I am unable to get results from endpoints that require authentication. I always get WebAuthRequired back, even though I am passing both my X-API-Key header and the Authorization header.

    • It turns out, if you hit the API with bungie.net rather than www.bungie.net, we currently redirect you and lose the authorization header in the process. I'd like to fix this along with resolving other redirection issues covered in #55, but for now be careful that you're using exactly https://www.bungie.net for your URLs, and make sure that your URLs are terminating with a trailing slash (/). Otherwise, you'll encounter our undesirable redirections.
  • Were you sent here by the devil?

    • No, good sir, I'm on the level!

Known Issues

  • If our environment goes down entirely, to the point where we can no longer process your request, we are currently returning the same static error HTML page(s) to any API request that the website is returning. If you get an HTML response to an API request, know that this is the undesirable side effect of our environment being down and handle it with your own messaging and error handling as needed.

  • Some Vendors are currently showing incorrect items in certain situations/times of day (and in some cases, all the time). Unfortunately the fix we need will require work that isn't going to go live until Forsaken goes live, which means that the Vendor endpoint will be somewhat unreliable until that time. I apologize for the inconvenience this is causing. The fix which will go live with Forsaken will hopefully solve Vendor consistency issues once and for all.

api's People

Contributors

jshaffstall-bng avatar randmbng avatar vthornheart-bng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

api's Issues

[Question] Some objective values not found in Manifest?

I've been working on getting values for the weekly nightfall, and I'm having an issue fetching one of the 'challenges' from the Manifest database. The other two values are both there, but the third isn't for some reason.

The hash ID is 4148319260, and I'm looking in DestinyObjectiveDefinition. Does anyone know why this is happening?

Question: OAuth Client Type for native apps

I'm developing an iOS app that uses the Bungie API, and it seems that any native application developed using the Bungie.Net API that requires user authentication would be forced to re-authenticate users every hour.

Reading Bungie.Net API's OAuth Documentation, I am supposed to select an OAuth Client Type for my application "as described in section 2.1 of the OAuth 2.0 specification." RFC 6749 clearly states that "A native application is a public client installed and executed on the device used by the resource owner." Then, I also see back in your OAuth documentation that "A public client differs from a confidential client in that... it will not receive a refresh token in response to a token request." So, if I'm reading this correctly, any native app will have to re-authenticate the user every hour, which is obviously not ideal.

Am I misinterpreting the documentation? Could a native app be considered a confidential client if the API Key is stored in the application binary in an encrypted format and any transient tokens are stored in the OS's secure storage, such as iOS's Keychain? If not, would you consider providing public clients refresh tokens?

v3.0 spec file is extending Reference Objects

Per the OpenAPI v3.0 spec posted for Reference objects: "This object cannot be extended with additional properties..."

However this is being done quite a bit in the current spec file version like this example where the x-destiny-component-type-dependency property is in the Reference object.

"DictionaryComponentResponseOfint64AndDestinyCharacterComponent": {
  "properties": {
     "data": {
        "type": "object",
           "additionalProperties": {
              "x-destiny-component-type-dependency": "Characters",
              "$ref": "#/components/schemas/Destiny.Entities.Characters.DestinyCharacterComponent"

WebView sign authentication support

I am aware of the topic: Question: OAuth Client Type for native apps, but I thought it was needed to create an issue for this specific alternate authentication mode.

Can it be assumed you have completely dropped this support, including for Destiny 1? If it is still possible to use WebView authentication, am I missing something that has changed?

I ask because end points to retrieve game data are limited to public information only. Even though I was able to successfully authenticate and am passing all of the proper cookies along.

Request headers:

GET https://www.bungie.net/d1/Platform/Destiny/1/MyAccount/Vault/ HTTP/1.1
X-CSRF: ***
X-API-Key: ***
Host: www.bungie.net
Cookie: bungleatk=***; bungled=***; bungledid=***; bunglefrogblastventcore=***; bungleloc=lc=en&lcin=true; bungleme=***; bunglemsa=***; bungles=WebView=True&UserFlowMode=SignIn&UserICT=None&UserSCT=None&UserForce=False&UserIDN=; sto-id-sg_live.bungie.net=***; __cfduid=***

Response:

{"ErrorCode":99,"ThrottleSeconds":0,"ErrorStatus":"WebAuthRequired","Message":"Please sign-in to continue.","MessageData":{}}

Error 2106 - AuthorizationCodeInvalid

Hey everyone,
I've been beating my head against the wall with the authentication process. I'm attempting to use the code provided by the re-direct to get the api token (api, refresh token) and I keep getting the same error message from Bungie:

{
  ErrorCode = 2106;
  ErrorStatus = AuthorizationCodeInvalid;
  Message = "Authorization code is invalid.";
  MessageData = {};
  ThrottleSeconds = 0;
}

The code given to be looks like this: M11A1A11A-A1A1-11A1-11A1-A1A11AA11A1A which doesn't match the examples I see (I've swapped all letters and numbers for As and 1s). Is this a valid format or do I have to do something to it? Like hashing it or something?

Note I'm trying this using an Xbox Login.

Application Not Found for App Owner?

I'm working through suuuuper basic authentication via Auth0.com and standard OAuth flow. When I'm signed in with my own account, I can't auth with my public app. However, when I'm signed out I can hit it just fine. Is this because I'm already "authenticated" with the app as the owner?

Add a x-default-value property

This is a suggestion to add some kind of default/sample value property. When I iterate through a data structure to build a sample json I by default set strings to "" and numbers to 0 but there are instances where having like an example value would be useful such as with definition hashes, image urls and date time strings.

Clarification for inventory from getProfile endpoint

If I want to get a guardians inventory, in destiny 1 you called the inventory endpoint on a characterId.

For destiny 2, it looks like it's possible to make a getProfile request with CharacterEquipment, CharacterInventories components to get all character inventories in one go?

Now, do I need to have both CharacterInventories and CharacterEquipment to get the full picture? Or will CharacterInventories also have the equipped items.

Request: Single Manifest Item Lookup

In the D1 api we could look up a single hash and get it's definition.

Url is: https://www.bungie.net/d1/platform/Destiny/Manifest/{type}/{hash}/ This was very useful, would love to it make a come back! If it's not possible, I understand. thanks!

v2 spec responses > schema missing required type property

The v2 spec requires a type property in the responses > schema object.

So as is this is causing a validation issue:

    <SNIP>
    "responses": {
      "200": {
        "description": "The response for this request.  We don't have documentation for it yet...
        "schema": {
          "properties": {
            "Response": {
              "$ref": "#/definitions/User.GeneralUser"
            }, 
          <SNIP>

I believe what it's asking for is something like this:

    <SNIP>
    "responses": {
      "200": {
        "description": "The response for this request.  We don't have documentation for it yet...
        "schema": {
          "type": "object",
          "properties": {
            "Response": {
              "$ref": "#/definitions/User.GeneralUser"
            }, 
          <SNIP>

Get account level activity history

Currently you have to pass a characterId, which leads me to make up to 3 requests and then resort all the games by period. Would be great to have one call that just does it.

Would it be possible to get higher res icons in the API

Destiny in-game has larger icons for gear now the game is 4K. The API still provides icons at the Destiny 1 size. Now phone screens are so highres people have started to comment the icons look blurry. It would be great if it was possible to get higher res versions of the icons.

Some referenced responses are missing required description field

In the v3 spec, some Path object Response objects are missing the required Response object "description" property:

For example with /User/GetBungieNetUserById/

    "responses": {
      "200": {
        "$ref": "#/components/responses/User.GeneralUser"
      }
    }

and

"responses": {
  "User.GeneralUser": {
    "content": {
      "application/json": {
        "schema": {
          "properties": {
            "Response": {
              "$ref": "#/components/schemas/User.GeneralUser"
            },
            "ErrorCode": {
              "$ref": "#/components/schemas/Exceptions.PlatformErrorCodes"
            },
            "ThrottleSeconds": {
              "type": "integer",
              "format": "int32"

OAuth Token Endpoint "Cannot parse client_id"

I'm trying to get OAuth up and running using a public client type, I get my authorization code from the Authorization endpoint but when trying to send a request to the Token endpoint I always get a "400 - Cannot parse client_id".

I am setting client_id, grant_type, and code in the body of my POST request with "application/x-www-form-urlencoded" as the Content-Type. Can anyone point me in the right direction here?

Better feedback for when Bungie.net services are down

While there are ways to track the status of services and stuff within the APIs, it is not really well documented and should be something everyone is briefed on when they start using the APIs. Whether this is just a matter of better documentation or whether there needs to be a dedicated endpoint with a simplified response structure is something we need to figure out.

Destiny.TierType Enums don't match in-game terminology

I think this is something I think has been in the APIs since D1, but now that we are all official and all, might be worth naming these to match in-game before anyone starts using them. :)

Identifier Value Description
Unknown 0  
Currency 1  
Basic 2  
Common 3  
Rare 4  
Superior 5  
Exotic 6  

There might be other Enums that are still using internal development names that while most of us know what they are, other might go whaat? New item level!!

Clan info guidance

I'm moving my question over from the Bungie group per your post:

My D1 "Clan Leaderboards" app is currently broken because I can't figure out how to retrieve a user's clan groupId after these changes.

  • The old method of /User/GetBungieAccount/ no longer returns the clans block.
  • The earlier recommended method of /Groups/MyClans/ returns Endpoint not found.

I looked at the new D2 spec and see endpoints that require the clan groupId but don't see what provides it. So now I'm stuck. I don't know how to get the clan groupId that is required for the Clan Leaderboards endpoint for either D1 or D2

Can you provide some direction on how to get the clan groupId for D1 and D2 after the Aug 28 changes?

Spelling issues in various files

Note: Also includes
#19
#18
#17

These are ones that weren't large enough for their own issue.

User.UserMembership and User.UserInfoCard

displayName
Display Name the player has chosen for themselves. The display name is optional when the data type is used as input to a platform API.

User.UserInfoCard

This contract supplies basic information commonly used to display a minimal amount of information about a user. Take care to not add more properties here unless the property applies in all (or at least the majority) of the situations where UserInfoCard is used. Avoid adding game specific or platform specific details here. In cases where UserInfoCard is a subset of the data needed in a contract, use UserInfoCard as a property of other contracts.

Partnerships.PartnershipType

Representing external partners to which BNet users can link accounts, but that are not Account System credentials: partnerships that BNet uses exclusively for data.

Queries.SearchResult and SearchResultOfPostResponse and Forum.PostSearchResponse

useTotalResults
If useTotalResults is true, then totalResults represents an accurate count. If False, it does not, and may be estimated/only the size of the current page. Either way, you should probably always only trust hasMore. This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward-compatible shims, of which useTotalResults is one.

GroupsV2.GroupResponse

currentUserMemberMap
This property will be populated if the authenticated user is a member of the group. Note that because of account linking, a user can sometimes be part of a clan more than once. As such, this returns the highest member type available.
currentUserPotentialMemberMap
This property will be populated if the authenticated user is an applicant or has an outstanding invitation to join. Note that because of account linking, a user can sometimes be part of a clan more than once.

GroupsV2.GroupFeatures

maximumMembershipsOfGroupType
Maximum number of groups of this type a typical membership may join. For example, a user may join about 50 General groups with their Bungie.net account. They may join one clan per Destiny membership.

GroupsV2.RuntimeGroupMemberType

The member levels used by all V2 Groups API. Individual group types use their own mappings in their native storage (general uses BnetDbGroupMemberType and D2 clans use ClanMemberLevel), but they are all translated to this in the runtime api. These runtime values should NEVER be stored anywhere, so the values can be changed as necessary.

Destiny.DestinyProgression

Information about a current character's status with a Progression. A progression is a value that can increase with activity and has levels. Think Character Level and Reputation Levels. Combine this "live" data with the related DestinyProgressionDefinition for a full picture of the Progression.
currentProgress
This is the total amount of progress obtained overall for this progression (for instance, the total amount of Character Level experience earned)
levelCap
This is the maximum possible level you can achieve for this progression (for example, the maximum character level obtainable)
stepIndex
Progressions define their levels in "steps". Since the last step may be repeatable, the user maybe at a higher level than the actual Step achieved in the progression. Not necessarily useful, but potentially interesting for those cruising the API. Relate this to the "steps" property of the DestinyProgression to see which step the user is on, if you care about that. (Note that this is Content Version dependent since it refers to indexes)
progressToNextLevel
The amount of progression (i.e. "Experience") needed to reach the next level of this Progression. Jeez, progression is such an overloaded word.

Destiny.Definitions.DestinyDefinition and Destiny.Definitions.DestinyProgressionDefinition

redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!

Destiny.Definitions.DestinyProgressionDefinition

A "Progression" in Destiny is best explained by an example. A Character's "Level" is a progression: it has Experience that can be earned, levels that can be gained, and is evaluated and displayed atvarious points in the game. A Character's "Faction Reputation" is also a progression for much the same reason. Progression is used by a variety of systems, and the definition of a Progression will generally only be useful if combining with live data (such as a character's DestinyCharacterProgressionComponent.progressions property, which holds that character's live Progression states). Fundamentally, a Progression measures your "Level" by evaluating the thresholds in its Steps (one step per level, except for the last step which can be repeated indefinitely for "Levels" that have no ceiling) against the total earned "progression points"/experience. (for simplicity purposes, we will henceforth refer to earned progression points as experience, though it need not be a mechanic that in any way resembles experience in a traditional sense). Earned experience is calculated in a variety of ways, determined by the Progression's scope. These go from looking up a stored value to performing exceedingly obtuse calculations. This is why we provide live data in DestinyCharacterProgressionComponent.progressions, so you don't have to worry about those.
steps
Progressions are divided into Steps, which roughly equate to "Levels" in the traditional sense of a Progression. Notably, the last step can be repeated indefinitely if repeatLastStep is true, meaning that the calculation for your level is not as simple as comparing your currentprogress to the max progress of the steps. These and more calculations are done for you if you grab live character progression data, such as in the DestinyCharacterProgressionComponent.
factionHash
If the value exists, this is the hash identifier for the Faction that owns this Progression. This is purely for convenience, if you're looking at a progression and want to know if and who it's related to in terms of Faction Reputation.

Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition

Many Destiny*Definition contracts - the "first order" entities of Destiny that have their own tables in the Manifest Database - also have displayable information. This is the base class for that display information.

Destiny.Definitions.DestinyProgressionDisplayPropertiesDefinition

displayUnitsName
When progressions show your "experience" gained, that bar has units (i.e. "Experience", "Bad Dudes Snuffed Out", whatever). This is the localized string for that unit of measurement.

Destiny.DestinyProgressionScope

There are many Progressions in Destiny (think Character Level, or Reputation). These are the various "Scopes" of Progressions, which affect many things:* Where/if they are stored* How they are calculated* Where they can be used in other game logic

Destiny.Definitions.DestinyProgressionStepDefinition

stepName
Very rarely, Progressions will have localized text describing the Level of the progression. This will be that localized text, if it exists. Otherwise, the standard appears to be to simply show the level numerically.
displayEffectType
This appears to be, when you "level up", whether a visual effect will display and on what entity. See DestinyProgressionStepDisplayEffect for slightly more info.
progressTotal
The total amount of progression points/"experience" you will need to initially reach this step. If this is the last step and the progression is repeating indefinitely (DestinyProgressionDefinition.repeatLastStep),this will also be the progress needed to level it up further by repeating this step again.

Destiny.DestinyItemQuantity

Used in a number of Destiny contracts to return data about an item stack and its quantity. Can optionally return an itemInstanceId if the item is instanced - in which case, the quantity returned will be 1. If it's not... uh, let me know okay? Thanks.
itemInstanceId
If this quantity is referring to a specific instance of an item, this will have the item's instance ID. Normally, this will be null.

Openapi-2.json with Swagger-Client resolves to incorrect protocol

Using the newest swagger-client for node, which seems to only support 2.0 specs, I kept getting an error for the server field. the client seems to be adding an extra http beofre the host field so requests become:

http://https://bungie.net/Platform/...

If I removed the https:// at the beginning of the host, it all works correctly and resolves to using https correctly.

I'm not 100% sure if this is a quirk with swagger-client, or an error with the codegen used; just reporting so it's known!

At the very least, thanks for all of the documentation! It's super great to see these endpoints in a documented manner and so organized too! Wondrous! I'm also super pumped for the amount of stats and granularity that can be returned! Let the analytic creativity FLOW!

here is a snipped of the openapi-2.json file that is relevant to this issue:

{
  "swagger": "2.0.0",
  "info": {
    "title": "Bungie.Net API",
    "description": "These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.",
    "termsOfService": "https://www.bungie.net/en/View/Bungie/terms",
    "contact": {
      "name": "Bungie.net API Support",
      "url": "https://github.com/Bungie-net/api",
      "email": "[email protected]"
    },
    "license": {
      "name": "BSD License 2.0",
      "url": "https://github.com/Bungie-net/api/blob/master/LICENSE"
    },
    "version": "2.0.0"
  },
  "host": "https://bungie.net",
  "basePath": "/Platform",
  "paths": {}

Clan members guidance

Also after the Aug 28th changes I am now getting Endpoint not found from the Group ClanMembers endpoint.

So even with a known clan groupId I'm uncertain how to retrieve D1 clan membership information to be able to use that to pull other stats for the clan.

Do you have any guidance on how to retrieve clan membership information for D1 and D2 after the Aug 28th changes?

Missing enum "DestinyComponentType" in API documentation

Referenced in any endpoint with querystring parameters such as Destiny2.GetProfile

components
A comma separated list of components to return (as strings or numeric values). See the DestinyComponentType enum for valid components to request. You must request at least one component to receive results.
Type: string

This was brought up already, but I'm adding it to github so it doesn't get lost

Item Categories are returning D1 names

The DestinyItemCategoryDefinition returns the wrong category names for weapons.

2 should be Kinetic (is Primary)
3 should be Energy (is Secondary)
4 should be Power (is Heavy)

Might also be happening with other categories, but I haven't checked those.

Spelling errors in Destiny.Definitions.Milestones.DestinyMilestoneType

Another case of rogue spacebars!

Tutorial: 1
One-time milestones that are specifically oriented toward teaching players about new mechanics and gameplay modes.

Weekly: 3
Milestones that repeat/reset on a weekly basis. They need not all reset on the same day or time, but do need to reset weekly to qualify for this type.

Special: 5
Special indicates that the event is not on a daily/weekly cadence, but does occur more than once. For instance, Iron Banner in Destiny 1 or the Dawning were examples of what could be termed "Special" events.

Spelling errors in Destiny.Definitions.DestinyInventoryItemDefinition

I'll keep working my way down the list slowly, but I think this is my last one for tonight.

So much of what you see in Destiny is actually an Item used in a new and creative way. This is the definition for Items in Destiny, which started off as just entities that could exist in your Inventory but ended up being the backing data for so much more: quests, reward previews, slots, and subclasses. In practice, you will want to associate this data with "live" item data from a Bungie.Net Platform call: these definitions describe the item in generic, non-instanced terms: but an actual instance of an item can vary widely from these generic definitions.

secondaryIcon
A secondary icon associated with the item. Currently this is used in very context specific applications, such as Emblem Nameplates.

secondaryOverlay
Pulled from the secondary icon, this is the "secondary background" of the secondary icon. Confusing? Sure, that's why I call it "overlay" here: because as far as it's been used thus far, it has been for an optional overlay image. We'll see if that holds up, but at least for now it explains what this image is a bit better.

secondarySpecial
Pulled from the Secondary Icon, this is the "special" background for the item. For Emblems, this is the background image used on the Details view: but it need not be limited to that for other types of items.

screenshot
If we were able to acquire an in-game screenshot for the item, the path to that screenshot will be returned here. Note that not all items have screenshots: particularly not any non-equippable items.

itemTypeDisplayName
The localized title/name of the item's type. This can be whatever the designers want, and has no guarantee of consistency between items.

itemTypeAndTierDisplayName
It became a common enough pattern in our UI to show Item Type and Tier combined into a single localized string that I'm just going to go ahead and start pre-creating these for items.

displaySource
In theory, it is a localized string telling you about how you can find the item. I really wish this was more consistent. Many times, it has nothing. Sometimes, it's instead a more narrative-forward description of the item. Which is cool, and I wish all properties had that data, but it should really be its own property.

tooltipStyle
An identifier that the game UI uses to determine what type of tooltip to show for the item. These have no corresponding definitions that BNet can link to: so it'll be up to you to interpret and display your UI differently according to these styles (or ignore it).

action
If the item can be "used", this block will be non-null, and will have data related to the action performed when using the item. (Guess what? 99% of the time, this action is "dismantle". Shocker)

inventory
If this item can exist in an inventory, this block will be non-null. In practice, every item that currently exists has one of these blocks. But note that it is not necessarily guaranteed.

setData
If this item is a quest, this block will be non-null. In practice, I wish I had called this the Questblock, but at the time it wasn't clear to me whether it would end up being used for purposes other than quests. It will contain data about the steps in the quest, and mechanics we can use for displaying and tracking the quest.

stats
If this item can have stats (such as a weapon, armor, or vehicle), this block will be non-null and populated with the stats found on the item.

equippingBlock
If this item can be equipped, this block will be non-null and will be populated with the conditions under which it can be equipped.

translationBlock
If this item can be rendered, this block will be non-null and will be populated with rendering information.

preview
If this item can be Used or Acquired to gain other items (for instance, how Eververse Boxes can be consumed to get items from the box), this block will be non-null and will give summary information for the items that can be acquired.

quality
If this item can have a level or stats, this block will be non-null and will be populated with default quality (item level, "quality", and infusion) data. See the block for more details, there's often less upfront information in D2 so you'll want to be aware of how you use quality and item level on the definition level now.

sourceData
If this item has a known source, this block will be non-null and populated with source information. Unfortunately, at this time we are not generating sources: that is some aggressively manual work which we didn't have time for, and I'm hoping to get back to at some point in the future.

objectives
If this item has Objectives (extra tasks that can be accomplished related to the item... most frequently when the item is a Quest Step and the Objectives need to be completed to move on to the next Quest Step), this block will be non-null and the objectives defined herein.

plug
If this item is a Plug, this will be non-null and the info defined herein. See DestinyItemPlugDefinition for more information.

sack
If this item is a "reward sack" that can be opened to provide other items, this will be non-null and the properties of the sack contained herein.

sockets
If this item has any Sockets, this will be non-null and the individual sockets on the item will be defined herein.

talentGrid
If the item has a Talent Grid, this will be non-null and the properties of the grid defined herein. Note that, while many items still have talent grids, the only ones with meaningful Nodes still on them will be Subclass/"Build" items.

investmentStats
If the item has stats, this block will be defined. It has the "raw" investment stats for the item. These investment stats don't take into account the ways that the items can spawn, nor do they take into account any Stat Group transformations. I have retained them for debugging purposes, but I do not know how useful people will find them.

loreHash
If the item has any related Lore (DestinyLoreDefinition), this will be the hash identifier you can use to look up the lore definition.

summaryItemHash
There are times when the game will show you a "summary/vague" version of an item - such as a description of its type represented as a DestinyInventoryItemDefinition - rather than display the item itself. This happens sometimes when summarizing possible rewards in a tooltip. This is the item displayed instead, if it exists.

animations
If any animations were extracted from game content for this item, these will be the definitions of those animations.

nonTransferrable
The intrinsic transferability of an item. I hate that this boolean is negative - but there's a reason. Just because an item is intrinsically transferrable doesn't mean that it can be transferred, and we don't want to imply that this is the only source of that transferability.

itemCategoryHashes
BNet attempts to make a more formal definition of item "Categories", as defined by DestinyItemCategoryDefinition. This is a list of all Categories that we were able to algorithmically determine that this item is a member of. (for instance, that it's a "Weapon", that it's an "Auto Rifle", etc...) The algorithm for these is, unfortunately, volatile. If you believe you see a miscategorized item, please let us know on the Bungie API forums.
^^^ Github repo instead of Bungie API forums?

specialItemType
In Destiny 1, we identified some items as having particular categories that we'd like to know about for various internal logic purposes. These are defined in SpecialItemType, and while these days the itemCategoryHashes are the preferred way of identifying types, we have retained this enum for its convenience.

itemType
A value indicating the "base" the of the item. This enum is a useful but dramatic oversimplification of what it means for an item to have a "Type". Still, it's handy in many situations. itemCategoryHashes are the preferred way of identifying types, we have retained this enum for its convenience.

itemSubType
A value indicating the "sub-type" of the item. For instance, where an item might have an itemType value "Weapon", this will be something more specific like "Auto Rifle". itemCategoryHashes are the preferred way of identifying types, we have retained this enum for its convenience.

classType
We run a similarly weak-sauce algorithm to try and determine whether an item is restricted to a specific class. If we find it to be restricted in such a way, we set this classType property to match the class' enumeration value so that users can easily identify class restricted items. If you see a mis-classed item, please inform the developers in the Bungie API forum.
^^^ Github repo instead of Bungie API forums?

damageTypeHashes
Theoretically, an item can have many possible damage types. In practice, this is not true, but just in case weapons start being made that have multiple (for instance, an item where a socket has reusable plugs for every possible damage type that you can choose from freely), this field will return all of the possible damage types that are available to the weapon by default.

damageTypes
This is the list of all damage types that we know ahead of time the item can take on. Unfortunately, this does not preclude the possibility of something funky happening to give the item a damage type that cannot be predicted beforehand: for example, if some designer decides to create arbitrary non-reusable plugs that cause damage type to change. This damage type prediction will only use the following to determine potential damage types: - Intrinsic perks - Talent Node perks - Known, reusable plugs for sockets

defaultDamageTypeHash
Similar to defaultDamageType, but represented as the hash identifier for a DestinyDamageTypeDefinition. I will likely regret leaving in the enumeration versions of these properties, but for now they're very convenient.

redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!

Group Endpoints

In the full API spec on github.io, the Content-Entities section mentions some Group-related data (for example, GroupsV2.GroupResponse and GroupsV2.GroupV2ClanInfo), but no Group-related endpoints are provided. Is it possible to expose those endpoints?

[Question] PassportJS and passport-oauth2

I apologize if this is not the place to ask this question. Has anybody gotten passport-oauth2 to work inside of an Express app to authenticate against Bungie's oAuth workflow? I get all the way to callbackURL and Passport throws an error that it cannot parse the response.

Question: Destiny 1 > Account Character list

Where has the list of characters associated with a user's Destiny 1 account moved to?

They used to be in the response from /platform/User/GetBungieAccount/{membershipId}/{membershipType}

Proposal: Response header indicating "you'll be rate-limited soon"

Please consider adding a response header to API requests that indicates something like "We would appreciate it if you make this request less frequently, and will rate-limit you if you ignore us; please wait at least X seconds before sending it again".

I've seen this done after a rate-limit event occurs, and it's invaluable in that scenario as well, where you say "Your rate limit will expire in X seconds", so that clients can schedule a timer and stop bothering the server.

It also provides several opportunities:

  • By randomizing X slightly (+/- 1%) you ensure a more even distribution of API clients over time, whether in reaction to an outage or simply load.
  • You can yourself and cellular users a lot of pointless requests during partial outages by including X=300 +/- seconds in your downtime responses, so that well-implemented clients override their native retry interval (which will always be the minimum permitted).
  • Clients that frequently make expensive requests can be assigned a higher X due to the cost of the queries.

So, this would (I'm making this up on the fly) look something like:

X-Rate-Limit: pause=67

Long-term, there's another interesting point. If you simply declare this a header that's mandatory to support, then you also gain the ability to stop advertising hard limits and can instead calibrate your rate limits dynamically, based on server load and all that jazz, using X-SDP headers:

X-Rate-Limit: pause=0, interval=31 (30 +/- randomized)

There's probably months of work possible down these lines of thinking to make a rockstar-grade API with server-autotuned refresh intervals granular to endpoints, so I'm going to pause here and let you consider the idea in general first :)

Spelling errors in Destiny.DestinyComponentType

Mostly seems like a rogue spacebar. I've fixed what I could find below, sorry the format isn't better, but it should be able to be copy/pasted back into your source.

100:
Profiles is the most basic component, only relevant when calling GetProfile. This returns basic information about the profile, which is almost nothing: a list of characterIds, some information about the last time you logged in, and that most sobering statistic: how long you've played.

101:
Only applicable for GetProfile, this will return information about receipts for refundable vendor items.

102:
Asking for this will get you the profile-level inventories, such as your Vault buckets (yeah, the Vault is really inventory buckets located on your Profile)

103:
This will get you a summary of items on your Profile that we consider to be "currencies", such as Glimmer. I mean, if there's Glimmer in Destiny 2. I didn't say there was Glimmer.

201:
This will get you information about any non-equipped items on the character or character(s) in question, if you're allowed to see it. You have to either be authenticated as that user, or that user must allow anonymous viewing of their non-equipped items in Bungie.Net settings to actually get results.

202:
This will get you information about the progression (faction, experience, etc... "levels") relevant to each character, if you are the currently authenticated user or the user has elected to allow anonymous viewing of its progression info.

203:
This will get you just enough information to be able to render the character in 3D if you have written a 3D rendering library for Destiny Characters, or "borrowed" ours. It's okay, I won't tell anyone if you're using it. I'm no snitch. (actually, we don't care if you use it - go to town)

204:
This will return info about activities that a user can see and gating on it, if you are the currently authenticated user or the user has elected to allow anonymous viewing of its progression info. Note that the data returned by this can be unfortunately problematic and relatively unreliable in some cases. We'll eventually work on making it more consistently reliable.

300:
This will return basic info about instanced items - whether they can be equipped, their tracked status, and some info commonly needed in many places (current damage type, primary stat value, etc)

301:
Items can have Objectives (DestinyObjectiveDefinition) bound to them. If they do, this will return info for items that have such bound objectives.

302:
Items can have perks (DestinyPerkDefinition). If they do, this will return info for what perks are active on items.

304:
Items can have stats, like rate of fire. Asking for this component will return requested item's stats if they have stats.

305:
Items can have sockets, where plugs can be inserted. Asking for this component will return all info relevant to the sockets on items that have them.

306:
Items can have talent grids, though that matters a lot less frequently than it used to. Asking for this component will return all relevant info about activated Nodes and Steps on this talent grid, like the good ol' days.

307:
Items that aren't instanced still have important information you need to know: how much of it you have, the itemHash so you can look up their DestinyInventoryItemDefinition, whether they're locked, etc... Both instanced and non-instanced items will have these properties.

308:
Items that are "Plugs" can be inserted into sockets. This returns statuses about those plugs and why they can/can't be inserted. I hear you giggling, there's nothing funny about inserting plugs. Get your head out of the gutter and pay attention!

500:
Asking for this component will return you the account's Kiosk statuses: that is, what items have been filled out/acquired. But only if you are the currently authenticated user or the user has elected to allow anonymous viewing of its progression info.

Proposal: Add better base/child class relationships

Currently, the generator is doing the dumb thing when it comes to conveying properties of classes that are inherited from base classes. It puts the property on the child class itself, rather than having a oneOf (or even allOf) relationship to a parent class.

Retaining the base class relationships would be great for a code generator, even if it makes the HTML documentation a bit more obtuse (or the HTML generator a little more recursive). I believe it'd certainly be worth it to have this improvement.

Thoughts? Suggestions? Again, this is another one that I don't know if I'll have time for before the game comes out. But I think it could come in handy.

Descriptions are hard wrapped not soft wrapped

Nothing a little decent regex can't fix, but it's still worth mentioning since it can have an impact on any sort of parsing of the API spec (ie Unofficial Wiki, Commented code generated from it, etc).

Mobile Manifests

I am looking into the design of my IOS app with PHP back end and the possibility of holding the basic data on the device by trimming down the manifest to only the info I require for my app and using a cache for a lot of the images,
limiting the need to request data

The question I have is how often is the manifest updated, is it just a reset day thing and what are the main areas that change. If it is possible to answer that ?

This questions apply's to D1 & D2 , but I assume they both run on a similar principle

Thanks In Advance

Activity History Truncated

Hitting this url https://www.bungie.net/Platform/Destiny2/1/Account/4611686018430034191/Character/2305843009260584043/Stats/Activities/?mode=5&count=100&page=0

This guy according to the AllTime stats has played 18 games. As you can see in the url, I'm asking for mode 5, all pvp, but I'm not getting all 18 games.

Proposal: Add metadata about generics

The following issue has spun up into a separate subject that's worth addressing:

#6

Right now, Swagger doesn't seem to have good conventions for relaying information about generics: info that would be useful for developers.

The current proposal is that we add metadata about generic properties - which would also imply that we should add schema for the base generic classes.

I'm not opposed to this idea, though I don't know if we'll have time to do it before launch.

Please discuss here: and if you have insight into the OpenAPI spec that you'd like to share for common patterns of addressing information such as generics (or if you just have an opinion about how you'd like this data to be conveyed), lay them on us!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.