swagger: '2.0' schemes: - https host: www.bungie.net basePath: /Platform info: contact: email: support@bungie.com name: Bungie.net API Support url: 'https://github.com/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.' license: name: BSD License 2.0 url: 'https://github.com/Bungie-net/api/blob/master/LICENSE' termsOfService: 'https://www.bungie.net/en/View/Bungie/terms' title: Bungie.Net version: 2.0.0 x-apisguru-categories: - media x-logo: backgroundColor: '#FFFFFF' url: 'https://pbs.twimg.com/profile_images/560547568992944129/x46z946T_400x400.jpeg' x-origin: - format: swagger url: 'https://raw.githubusercontent.com/Bungie-net/api/master/openapi-2.json' version: '2.0' x-providerName: bungie.net externalDocs: description: Our Wiki page about OAuth through Bungie.net. url: 'https://github.com/Bungie-net/api/wiki/OAuth-Documentation' securityDefinitions: apiKey: description: 'Every request requires an API key. To get an API key, register a new application at https://www.bungie.net/en/Application.' in: header name: X-API-Key type: apiKey oauth2: authorizationUrl: 'https://www.bungie.net/en/OAuth/Authorize' description: 'For requests that require Authentication, you will need to have your users authenticate via our OAuth mechanisms. See https://github.com/Bungie-net/api/wiki/OAuth-Documentation for more details.' flow: accessCode scopes: AdminGroups: "Administer Group/Clan Forums, Wall, and Members for groups and clans that the \r\nuser is a founder or an administrator." BnetWrite: 'Create new groups, clans, and forum posts.' EditUserData: 'Edit user data such as preferred language, status, motto, avatar selection and theme.' MoveEquipDestinyItems: Move or equip Destiny items ReadAndApplyTokens: Read offer history and claim and apply tokens for the user. ReadBasicUserProfile: 'Read basic user profile information such as the user''s handle, avatar icon, etc.' ReadDestinyInventoryAndVault: Read Destiny Inventory and Vault contents. ReadDestinyVendorsAndAdvisors: Access vendor and advisor data specific to a user. ReadGroups: "Read Group/Clan Forums, Wall, and Members for groups and clans that the \r\nuser has joined." ReadUserData: "Read user data such as who they are web notifications, \r\nclan/group memberships, recent activity, muted users." WriteGroups: "Write Group/Clan Forums, Wall, and Members for groups and clans that the \r\nuser has joined." tokenUrl: 'https://www.bungie.net/Platform/App/OAuth/token/' type: oauth2 tags: - description: user name: User - description: forum name: Forum - description: groupV2 name: GroupV2 - description: destiny2 name: Destiny2 - description: communitycontent name: CommunityContent - description: trending name: Trending paths: '/CommunityContent/Get/{sort}/{mediaFilter}/{page}/': get: description: Returns community content. operationId: CommunityContent.GetCommunityContent parameters: - description: The type of media to get enum: - '0' - '1' - '2' - '4' - '8' - '16' - '32' - '64' - '128' format: int32 in: path name: mediaFilter required: true type: integer - description: Zero based page format: int32 in: path name: page required: true type: integer - description: The sort mode. enum: - '0' - '1' - '2' format: byte in: path name: sort required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Forum.PostSearchResponse' ThrottleSeconds: format: int32 type: integer type: object tags: - CommunityContent '/CommunityContent/Live/All/{partnershipType}/{sort}/{page}/': get: description: Returns info about community members who are live streaming. operationId: CommunityContent.GetCommunityLiveStatuses parameters: - description: The hash of the Activity Mode for which streams should be retrieved. Don't pass it in or pass 0 to not filter by mode. format: uint32 in: query name: modeHash type: integer - description: Zero based page. format: int32 in: path name: page required: true type: integer - description: The type of partnership for which the status should be returned. enum: - '0' - '1' format: int32 in: path name: partnershipType required: true type: integer - description: The sort mode. enum: - '0' - '1' - '2' - '3' format: int32 in: path name: sort required: true type: integer - description: The locale for streams you'd like to see. Don't pass this to fall back on your BNet locale. Pass 'ALL' to not filter by locale. in: query name: streamLocale type: string responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/SearchResultOfCommunityLiveStatus' ThrottleSeconds: format: int32 type: integer type: object tags: - CommunityContent '/CommunityContent/Live/Clan/{partnershipType}/{sort}/{page}/': get: description: Returns info about community members who are live streaming in your clans. operationId: CommunityContent.GetCommunityLiveStatusesForClanmates parameters: - description: Zero based page. format: int32 in: path name: page required: true type: integer - description: The type of partnership for which the status should be returned. enum: - '0' - '1' format: int32 in: path name: partnershipType required: true type: integer - description: The sort mode. enum: - '0' - '1' - '2' - '3' format: int32 in: path name: sort required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/SearchResultOfCommunityLiveStatus' ThrottleSeconds: format: int32 type: integer type: object tags: - CommunityContent '/CommunityContent/Live/Featured/{partnershipType}/{sort}/{page}/': get: description: Returns info about Featured live streams. operationId: CommunityContent.GetFeaturedCommunityLiveStatuses parameters: - description: Zero based page. format: int32 in: path name: page required: true type: integer - description: The type of partnership for which the status should be returned. enum: - '0' - '1' format: int32 in: path name: partnershipType required: true type: integer - description: The sort mode. enum: - '0' - '1' - '2' - '3' format: int32 in: path name: sort required: true type: integer - description: The locale for streams you'd like to see. Don't pass this to fall back on your BNet locale. Pass 'ALL' to not filter by locale. in: query name: streamLocale type: string responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/SearchResultOfCommunityLiveStatus' ThrottleSeconds: format: int32 type: integer type: object tags: - CommunityContent '/CommunityContent/Live/Friends/{partnershipType}/{sort}/{page}/': get: description: Returns info about community members who are live streaming among your friends. operationId: CommunityContent.GetCommunityLiveStatusesForFriends parameters: - description: Zero based page. format: int32 in: path name: page required: true type: integer - description: The type of partnership for which the status should be returned. enum: - '0' - '1' format: int32 in: path name: partnershipType required: true type: integer - description: The sort mode. enum: - '0' - '1' - '2' - '3' format: int32 in: path name: sort required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/SearchResultOfCommunityLiveStatus' ThrottleSeconds: format: int32 type: integer type: object tags: - CommunityContent '/CommunityContent/Live/Users/{partnershipType}/{membershipType}/{membershipId}/': get: description: Gets the Live Streaming status of a particular Account and Membership Type. operationId: CommunityContent.GetStreamingStatusForMember parameters: - description: The membershipId related to that type. format: int64 in: path name: membershipId required: true type: integer - description: The type of account for which info will be extracted. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer - description: The type of partnership for which info will be extracted. enum: - '0' - '1' format: int32 in: path name: partnershipType required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Community.CommunityLiveStatus' ThrottleSeconds: format: int32 type: integer type: object tags: - CommunityContent /Destiny2/Actions/Items/ActivateTalentNode/: post: description: 'Activate a Talent Node. Chill out, everyone: we haven''t decided yet whether this will be able to activate nodes with costs, but if we do it will require special scope permission for an application attempting to do so. You must have a valid Destiny Account, and either be in a social space, in orbit, or offline. PREVIEW: This service is not actually implemented yet, but we are returning the planned schema of the endpoint for review, comment, and preparation for its eventual implementation.' operationId: Destiny2.ActivateTalentNode parameters: [] responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: format: int32 type: integer ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - MoveEquipDestinyItems tags: - Destiny2 - Preview x-preview: true /Destiny2/Actions/Items/EquipItem/: post: description: 'Equip an item. You must have a valid Destiny Account, and either be in a social space, in orbit, or offline.' operationId: Destiny2.EquipItem parameters: [] responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: format: int32 type: integer ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - MoveEquipDestinyItems tags: - Destiny2 /Destiny2/Actions/Items/EquipItems/: post: description: 'Equip a list of items by itemInstanceIds. You must have a valid Destiny Account, and either be in a social space, in orbit, or offline. Any items not found on your character will be ignored.' operationId: Destiny2.EquipItems parameters: [] responses: '200': description: The results of a bulk Equipping operation performed through the Destiny API. schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Destiny.DestinyEquipItemResults' ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - MoveEquipDestinyItems tags: - Destiny2 /Destiny2/Actions/Items/InsertSocketPlug/: post: description: 'Insert a plug into a socketed item. I know how it sounds, but I assure you it''s much more G-rated than you might be guessing. We haven''t decided yet whether this will be able to insert plugs that have side effects, but if we do it will require special scope permission for an application attempting to do so. You must have a valid Destiny Account, and either be in a social space, in orbit, or offline. PREVIEW: This service is not yet active, but we are returning the planned schema of the endpoint for review, comment, and preparation for its eventual implementation.' operationId: Destiny2.InsertSocketPlug parameters: [] responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: format: int32 type: integer ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - MoveEquipDestinyItems tags: - Destiny2 - Preview x-preview: true /Destiny2/Actions/Items/SetLockState/: post: description: Set the Lock State for an instanced item. You must have a valid Destiny Account. operationId: Destiny2.SetItemLockState parameters: [] responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: format: int32 type: integer ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - MoveEquipDestinyItems tags: - Destiny2 /Destiny2/Actions/Items/TransferItem/: post: description: Transfer an item to/from your vault. You must have a valid Destiny account. You must also pass BOTH a reference AND an instance ID if it's an instanced item. itshappening.gif operationId: Destiny2.TransferItem parameters: [] responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: format: int32 type: integer ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - MoveEquipDestinyItems tags: - Destiny2 '/Destiny2/Armory/Search/{type}/{searchTerm}/': get: description: Gets a page list of Destiny items. operationId: Destiny2.SearchDestinyEntities parameters: - description: 'Page number to return, starting with 0.' format: int32 in: query name: page type: integer - description: The string to use when searching for Destiny entities. in: path name: searchTerm required: true type: string - description: 'The type of entity for whom you would like results. These correspond to the entity''s definition contract name. For instance, if you are looking for items, this property should be ''DestinyInventoryItemDefinition''. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is tentatively in final form, but there may be bugs that prevent desirable operation.' in: path name: type required: true type: string responses: '200': description: 'The results of a search for Destiny content. This will be improved on over time, I''ve been doing some experimenting to see what might be useful.' schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Destiny.Definitions.DestinyEntitySearchResult' ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 - Preview x-preview: true '/Destiny2/Clan/{groupId}/WeeklyRewardState/': get: description: Returns information on the weekly clan rewards and if the clan has earned them or not. Note that this will always report rewards as not redeemed. operationId: Destiny2.GetClanWeeklyRewardState parameters: - description: A valid group id of clan. format: int64 in: path name: groupId required: true type: integer responses: '200': description: 'Represents a runtime instance of a user''s milestone status. Live Milestone data should be combined with DestinyMilestoneDefinition data to show the user a picture of what is available for them to do in the game, and their status in regards to said "things to do." Consider it a big, wonky to-do list, or Advisors 3.0 for those who remember the Destiny 1 API.' schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Destiny.Milestones.DestinyMilestone' ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 /Destiny2/Manifest/: get: description: Returns the current version of the manifest as a json object. operationId: Destiny2.GetDestinyManifest parameters: [] responses: '200': description: DestinyManifest is the external-facing contract for just the properties needed by those calling the Destiny Platform. schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Destiny.Config.DestinyManifest' ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 '/Destiny2/Manifest/{entityType}/{hashIdentifier}/': get: description: 'Returns the static definition of an entity of the given Type and hash identifier. Examine the API Documentation for the Type Names of entities that have their own definitions. Note that the return type will always *inherit from* DestinyDefinition, but the specific type returned will be the requested entity type if it can be found. Please don''t use this as a chatty alternative to the Manifest database if you require large sets of data, but for simple and one-off accesses this should be handy.' operationId: Destiny2.GetDestinyEntityDefinition parameters: - description: 'The type of entity for whom you would like results. These correspond to the entity''s definition contract name. For instance, if you are looking for items, this property should be ''DestinyInventoryItemDefinition''. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is tentatively in final form, but there may be bugs that prevent desirable operation.' in: path name: entityType required: true type: string - description: The hash identifier for the specific Entity you want returned. format: uint32 in: path name: hashIdentifier required: true type: integer responses: '200': description: Provides common properties for destiny definitions. schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Destiny.Definitions.DestinyDefinition' ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 /Destiny2/Milestones/: get: description: Gets public information about currently available Milestones. operationId: Destiny2.GetPublicMilestones parameters: [] responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: additionalProperties: $ref: '#/definitions/Destiny.Milestones.DestinyPublicMilestone' type: object ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 '/Destiny2/Milestones/{milestoneHash}/Content/': get: description: 'Gets custom localized content for the milestone of the given hash, if it exists.' operationId: Destiny2.GetPublicMilestoneContent parameters: - description: The identifier for the milestone to be returned. format: uint32 in: path name: milestoneHash required: true type: integer responses: '200': description: 'Represents localized, extended content related to Milestones. This is intentionally returned by a separate endpoint and not with Character-level Milestone data because we do not put localized data into standard Destiny responses, both for brevity of response and for caching purposes. If you really need this data, hit the Milestone Content endpoint.' schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Destiny.Milestones.DestinyMilestoneContent' ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 '/Destiny2/SearchDestinyPlayer/{membershipType}/{displayName}/': get: description: Returns a list of Destiny memberships given a full Gamertag or PSN ID. operationId: Destiny2.SearchDestinyPlayer parameters: - description: The full gamertag or PSN id of the player. Spaces and case are ignored. in: path name: displayName required: true type: string - description: 'A valid non-BungieNet membership type, or All.' enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: items: $ref: '#/definitions/User.UserInfoCard' type: array ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 '/Destiny2/Stats/AggregateClanStats/{groupId}/': get: description: 'Gets aggregated stats for a clan using the same categories as the clan leaderboards. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.' operationId: Destiny2.GetClanAggregateStats parameters: - description: Group ID of the clan whose leaderboards you wish to fetch. format: int64 in: path name: groupId required: true type: integer - description: 'List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.' in: query name: modes type: string responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: items: $ref: '#/definitions/Destiny.HistoricalStats.DestinyClanAggregateStat' type: array ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 - Preview x-preview: true /Destiny2/Stats/Definition/: get: description: Gets historical stats definitions. operationId: Destiny2.GetHistoricalStatsDefinition parameters: [] responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: additionalProperties: $ref: '#/definitions/Destiny.HistoricalStats.Definitions.DestinyHistoricalStatsDefinition' type: object ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 '/Destiny2/Stats/Leaderboards/Clans/{groupId}/': get: description: 'Gets leaderboards with the signed in user''s friends and the supplied destinyMembershipId as the focus. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.' operationId: Destiny2.GetClanLeaderboards parameters: - description: Group ID of the clan whose leaderboards you wish to fetch. format: int64 in: path name: groupId required: true type: integer - description: Maximum number of top players to return. Use a large number to get entire leaderboard. format: int32 in: query name: maxtop type: integer - description: 'List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.' in: query name: modes type: string - description: ID of stat to return rather than returning all Leaderboard stats. in: query name: statid type: string responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: additionalProperties: additionalProperties: $ref: '#/definitions/Destiny.HistoricalStats.DestinyLeaderboard' type: object type: object ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 - Preview x-preview: true '/Destiny2/Stats/Leaderboards/{membershipType}/{destinyMembershipId}/{characterId}/': get: description: 'Gets leaderboards with the signed in user''s friends and the supplied destinyMembershipId as the focus. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.' operationId: Destiny2.GetLeaderboardsForCharacter parameters: - description: The specific character to build the leaderboard around for the provided Destiny Membership. format: int64 in: path name: characterId required: true type: integer - description: The Destiny membershipId of the user to retrieve. format: int64 in: path name: destinyMembershipId required: true type: integer - description: Maximum number of top players to return. Use a large number to get entire leaderboard. format: int32 in: query name: maxtop type: integer - description: A valid non-BungieNet membership type. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer - description: 'List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.' in: query name: modes type: string - description: ID of stat to return rather than returning all Leaderboard stats. in: query name: statid type: string responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: additionalProperties: additionalProperties: $ref: '#/definitions/Destiny.HistoricalStats.DestinyLeaderboard' type: object type: object ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 - Preview x-preview: true '/Destiny2/Stats/PostGameCarnageReport/{activityId}/': get: description: Gets the available post game carnage report for the activity ID. operationId: Destiny2.GetPostGameCarnageReport parameters: - description: The ID of the activity whose PGCR is requested. format: int64 in: path name: activityId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Destiny.HistoricalStats.DestinyPostGameCarnageReportData' ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 '/Destiny2/{membershipType}/Account/{destinyMembershipId}/Character/{characterId}/Stats/': get: description: 'Gets historical stats for indicated character. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.' operationId: Destiny2.GetHistoricalStats parameters: - description: The id of the character to retrieve. You can omit this character ID or set it to 0 to get aggregate stats across all characters. format: int64 in: path name: characterId required: true type: integer - description: Last day to return when daily stats are requested. Use the format YYYY-MM-DD. format: date-time in: query name: dayend type: string - description: First day to return when daily stats are requested. Use the format YYYY-MM-DD format: date-time in: query name: daystart type: string - description: The Destiny membershipId of the user to retrieve. format: int64 in: path name: destinyMembershipId required: true type: integer - description: 'Group of stats to include, otherwise only general stats are returned. Comma separated list is allowed. Values: General, Weapons, Medals' in: query items: $ref: '#/definitions/Destiny.HistoricalStats.Definitions.DestinyStatsGroupType' name: groups type: array - description: A valid non-BungieNet membership type. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer - description: 'Game modes to return. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.' in: query items: $ref: '#/definitions/Destiny.HistoricalStats.Definitions.DestinyActivityModeType' name: modes type: array - description: 'Indicates a specific period type to return. Optional. May be: Daily, AllTime, or Activity' enum: - '0' - '1' - '2' - '3' format: int32 in: query name: periodType type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: additionalProperties: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsByPeriod' type: object ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 - Preview x-preview: true '/Destiny2/{membershipType}/Account/{destinyMembershipId}/Character/{characterId}/Stats/Activities/': get: description: 'Gets activity history stats for indicated character. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.' operationId: Destiny2.GetActivityHistory parameters: - description: The id of the character to retrieve. format: int64 in: path name: characterId required: true type: integer - description: Number of rows to return format: int32 in: query name: count type: integer - description: The Destiny membershipId of the user to retrieve. format: int64 in: path name: destinyMembershipId required: true type: integer - description: A valid non-BungieNet membership type. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer - description: 'A filter for the activity mode to be returned. None returns all activities. See the documentation for DestinyActivityModeType for valid values, and pass in string representation.' enum: - '0' - '2' - '3' - '4' - '5' - '6' - '7' - '9' - '10' - '11' - '12' - '13' - '15' - '16' - '17' - '18' - '19' - '20' - '21' - '22' - '24' - '25' - '26' - '27' - '28' - '29' - '30' - '31' - '32' - '37' - '38' - '39' - '40' format: int32 in: query name: mode type: integer - description: 'Page number to return, starting with 0.' format: int32 in: query name: page type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Destiny.HistoricalStats.DestinyActivityHistoryResults' ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 - Preview x-preview: true '/Destiny2/{membershipType}/Account/{destinyMembershipId}/Character/{characterId}/Stats/AggregateActivityStats/': get: description: 'Gets all activities the character has participated in together with aggregate statistics for those activities. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.' operationId: Destiny2.GetDestinyAggregateActivityStats parameters: - description: The specific character whose activities should be returned. format: int64 in: path name: characterId required: true type: integer - description: The Destiny membershipId of the user to retrieve. format: int64 in: path name: destinyMembershipId required: true type: integer - description: A valid non-BungieNet membership type. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Destiny.HistoricalStats.DestinyAggregateActivityResults' ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 - Preview x-preview: true '/Destiny2/{membershipType}/Account/{destinyMembershipId}/Character/{characterId}/Stats/UniqueWeapons/': get: description: 'Gets details about unique weapon usage, including all exotic weapons. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.' operationId: Destiny2.GetUniqueWeaponHistory parameters: - description: The id of the character to retrieve. format: int64 in: path name: characterId required: true type: integer - description: The Destiny membershipId of the user to retrieve. format: int64 in: path name: destinyMembershipId required: true type: integer - description: A valid non-BungieNet membership type. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalWeaponStatsData' ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 - Preview x-preview: true '/Destiny2/{membershipType}/Account/{destinyMembershipId}/Stats/': get: description: 'Gets aggregate historical stats organized around each character for a given account. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.' operationId: Destiny2.GetHistoricalStatsForAccount parameters: - description: The Destiny membershipId of the user to retrieve. format: int64 in: path name: destinyMembershipId required: true type: integer - description: 'Groups of stats to include, otherwise only general stats are returned. Comma separated list is allowed. Values: General, Weapons, Medals.' in: query items: $ref: '#/definitions/Destiny.HistoricalStats.Definitions.DestinyStatsGroupType' name: groups type: array - description: A valid non-BungieNet membership type. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsAccountResult' ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 - Preview x-preview: true '/Destiny2/{membershipType}/Account/{destinyMembershipId}/Stats/Leaderboards/': get: description: 'Gets leaderboards with the signed in user''s friends and the supplied destinyMembershipId as the focus. PREVIEW: This endpoint has not yet been implemented. It is being returned for a preview of future functionality, and for public comment/suggestion/preparation.' operationId: Destiny2.GetLeaderboards parameters: - description: The Destiny membershipId of the user to retrieve. format: int64 in: path name: destinyMembershipId required: true type: integer - description: Maximum number of top players to return. Use a large number to get entire leaderboard. format: int32 in: query name: maxtop type: integer - description: A valid non-BungieNet membership type. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer - description: 'List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.' in: query name: modes type: string - description: ID of stat to return rather than returning all Leaderboard stats. in: query name: statid type: string responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: additionalProperties: additionalProperties: $ref: '#/definitions/Destiny.HistoricalStats.DestinyLeaderboard' type: object type: object ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 - Preview x-preview: true '/Destiny2/{membershipType}/Profile/{destinyMembershipId}/': get: description: Returns Destiny Profile information for the supplied membership. operationId: Destiny2.GetProfile parameters: - description: 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. in: query items: $ref: '#/definitions/Destiny.DestinyComponentType' name: components type: array - description: Destiny membership ID. format: int64 in: path name: destinyMembershipId required: true type: integer - description: A valid non-BungieNet membership type. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer responses: '200': description: 'The response for GetDestinyProfile, with components for character and item-level data.' schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Destiny.Responses.DestinyProfileResponse' ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 '/Destiny2/{membershipType}/Profile/{destinyMembershipId}/Character/{characterId}/': get: description: Returns character information for the supplied character. operationId: Destiny2.GetCharacter parameters: - description: ID of the character. format: int64 in: path name: characterId required: true type: integer - description: 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. in: query items: $ref: '#/definitions/Destiny.DestinyComponentType' name: components type: array - description: Destiny membership ID. format: int64 in: path name: destinyMembershipId required: true type: integer - description: A valid non-BungieNet membership type. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer responses: '200': description: 'The response contract for GetDestinyCharacter, with components that can be returned for character and item-level data.' schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Destiny.Responses.DestinyCharacterResponse' ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 '/Destiny2/{membershipType}/Profile/{destinyMembershipId}/Character/{characterId}/Vendors/': get: description: 'Get currently available vendors. PREVIEW: This service is not yet active, but we are returning the planned schema of the endpoint for review, comment, and preparation for its eventual implementation.' operationId: Destiny2.GetVendors parameters: - description: The Destiny Character ID of the character for whom we're getting vendor info. format: int64 in: path name: characterId required: true type: integer - description: 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. in: query items: $ref: '#/definitions/Destiny.DestinyComponentType' name: components type: array - description: Destiny membership ID of another user. You may be denied. format: int64 in: path name: destinyMembershipId required: true type: integer - description: A valid non-BungieNet membership type. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: items: $ref: '#/definitions/Destiny.Responses.DestinyVendorResponse' type: array ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 - Preview x-preview: true '/Destiny2/{membershipType}/Profile/{destinyMembershipId}/Character/{characterId}/Vendors/{vendorHash}/': get: description: 'Get the details of a specific Vendor. PREVIEW: This service is not yet active, but we are returning the planned schema of the endpoint for review, comment, and preparation for its eventual implementation.' operationId: Destiny2.GetVendor parameters: - description: The Destiny Character ID of the character for whom we're getting vendor info. format: int64 in: path name: characterId required: true type: integer - description: 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. in: query items: $ref: '#/definitions/Destiny.DestinyComponentType' name: components type: array - description: Destiny membership ID of another user. You may be denied. format: int64 in: path name: destinyMembershipId required: true type: integer - description: A valid non-BungieNet membership type. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer - description: The Hash identifier of the Vendor to be returned. format: uint32 in: path name: vendorHash required: true type: integer responses: '200': description: A response containing all of the components for a vendor. schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Destiny.Responses.DestinyVendorResponse' ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 - Preview x-preview: true '/Destiny2/{membershipType}/Profile/{destinyMembershipId}/Item/{itemInstanceId}/': get: description: 'Retrieve the details of an instanced Destiny Item. An instanced Destiny item is one with an ItemInstanceId. Non-instanced items, such as materials, have no useful instance-specific details and thus are not queryable here.' operationId: Destiny2.GetItem parameters: - description: 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. in: query items: $ref: '#/definitions/Destiny.DestinyComponentType' name: components type: array - description: The membership ID of the destiny profile. format: int64 in: path name: destinyMembershipId required: true type: integer - description: The Instance ID of the destiny item. format: int64 in: path name: itemInstanceId required: true type: integer - description: A valid non-BungieNet membership type. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer responses: '200': description: 'The response object for retrieving an individual instanced item. None of these components are relevant for an item that doesn''t have an "itemInstanceId": for those, get your information from the DestinyInventoryDefinition.' schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Destiny.Responses.DestinyItemResponse' ThrottleSeconds: format: int32 type: integer type: object tags: - Destiny2 '/Forum/GetCoreTopicsPaged/{page}/{sort}/{quickDate}/{categoryFilter}/': get: description: Gets a listing of all topics marked as part of the core group. operationId: Forum.GetCoreTopicsPaged parameters: - description: The category filter. enum: - '0' - '1' - '2' - '4' - '8' - '16' - '32' - '64' - '128' format: int32 in: path name: categoryFilter required: true type: integer - description: Comma seperated list of locales posts must match to return in the result list. Default 'en' in: query name: locales type: string - description: Zero base page format: int32 in: path name: page required: true type: integer - description: The date filter. enum: - '0' - '1' - '2' - '3' - '4' format: int32 in: path name: quickDate required: true type: integer - description: The sort mode. enum: - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' format: byte in: path name: sort required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Forum.PostSearchResponse' ThrottleSeconds: format: int32 type: integer type: object tags: - Forum /Forum/GetForumTagSuggestions/: get: description: 'Gets tag suggestions based on partial text entry, matching them with other tags previously used in the forums.' operationId: Forum.GetForumTagSuggestions parameters: - description: The partial tag input to generate suggestions from. in: query name: partialtag type: string responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: items: $ref: '#/definitions/Tags.Models.Contracts.TagResponse' type: array ThrottleSeconds: format: int32 type: integer type: object tags: - Forum '/Forum/GetPostAndParent/{childPostId}/': get: description: Returns the post specified and its immediate parent. operationId: Forum.GetPostAndParent parameters: - description: '' format: uint64 in: path name: childPostId required: true type: integer - description: 'If this value is not null or empty, banned posts are requested to be returned' in: query name: showbanned type: string responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Forum.PostSearchResponse' ThrottleSeconds: format: int32 type: integer type: object tags: - Forum '/Forum/GetPostAndParentAwaitingApproval/{childPostId}/': get: description: Returns the post specified and its immediate parent of posts that are awaiting approval. operationId: Forum.GetPostAndParentAwaitingApproval parameters: - description: '' format: uint64 in: path name: childPostId required: true type: integer - description: 'If this value is not null or empty, banned posts are requested to be returned' in: query name: showbanned type: string responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Forum.PostSearchResponse' ThrottleSeconds: format: int32 type: integer type: object tags: - Forum '/Forum/GetPostsThreadedPaged/{parentPostId}/{page}/{pageSize}/{replySize}/{getParentPost}/{rootThreadMode}/{sortMode}/': get: description: 'Returns a thread of posts at the given parent, optionally returning replies to those posts as well as the original parent.' operationId: Forum.GetPostsThreadedPaged parameters: - description: '' in: path name: getParentPost required: true type: boolean - description: '' format: int32 in: path name: page required: true type: integer - description: '' format: int32 in: path name: pageSize required: true type: integer - description: '' format: uint64 in: path name: parentPostId required: true type: integer - description: '' format: int32 in: path name: replySize required: true type: integer - description: '' in: path name: rootThreadMode required: true type: boolean - description: 'If this value is not null or empty, banned posts are requested to be returned' in: query name: showbanned type: string - description: '' enum: - '0' - '1' format: int32 in: path name: sortMode required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Forum.PostSearchResponse' ThrottleSeconds: format: int32 type: integer type: object tags: - Forum '/Forum/GetPostsThreadedPagedFromChild/{childPostId}/{page}/{pageSize}/{replySize}/{rootThreadMode}/{sortMode}/': get: description: 'Returns a thread of posts starting at the topicId of the input childPostId, optionally returning replies to those posts as well as the original parent.' operationId: Forum.GetPostsThreadedPagedFromChild parameters: - description: '' format: uint64 in: path name: childPostId required: true type: integer - description: '' format: int32 in: path name: page required: true type: integer - description: '' format: int32 in: path name: pageSize required: true type: integer - description: '' format: int32 in: path name: replySize required: true type: integer - description: '' in: path name: rootThreadMode required: true type: boolean - description: 'If this value is not null or empty, banned posts are requested to be returned' in: query name: showbanned type: string - description: '' enum: - '0' - '1' format: int32 in: path name: sortMode required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Forum.PostSearchResponse' ThrottleSeconds: format: int32 type: integer type: object tags: - Forum '/Forum/GetTopicForContent/{contentId}/': get: description: 'Gets the post Id for the given content item''s comments, if it exists.' operationId: Forum.GetTopicForContent parameters: - description: '' format: int64 in: path name: contentId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: format: int64 type: integer ThrottleSeconds: format: int32 type: integer type: object tags: - Forum '/Forum/GetTopicsPaged/{page}/{pageSize}/{group}/{sort}/{quickDate}/{categoryFilter}/': get: description: Get topics from any forum. operationId: Forum.GetTopicsPaged parameters: - description: A category filter enum: - '0' - '1' - '2' - '4' - '8' - '16' - '32' - '64' - '128' format: int32 in: path name: categoryFilter required: true type: integer - description: 'The group, if any.' format: int64 in: path name: group required: true type: integer - description: Comma seperated list of locales posts must match to return in the result list. Default 'en' in: query name: locales type: string - description: Zero paged page number format: int32 in: path name: page required: true type: integer - description: Unused format: int32 in: path name: pageSize required: true type: integer - description: A date filter. enum: - '0' - '1' - '2' - '3' - '4' format: int32 in: path name: quickDate required: true type: integer - description: The sort mode. enum: - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' format: byte in: path name: sort required: true type: integer - description: 'The tags to search, if any.' in: query name: tagstring type: string responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Forum.PostSearchResponse' ThrottleSeconds: format: int32 type: integer type: object tags: - Forum '/Forum/Poll/{topicId}/': get: description: Gets the specified forum poll. operationId: Forum.GetPoll parameters: - description: The post id of the topic that has the poll. format: int64 in: path name: topicId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Forum.PostSearchResponse' ThrottleSeconds: format: int32 type: integer type: object tags: - Forum '/Forum/Recruit/Approve/{topicId}/': post: description: Allows the owner of a fireteam thread to approve all joined members and start a private message conversation with them. operationId: Forum.ApproveFireteamThread parameters: - description: The post id of the recruitment topic to approve. format: int64 in: path name: topicId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Messages.Responses.SaveMessageResult' ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - WriteGroups - BnetWrite tags: - Forum '/Forum/Recruit/Join/{topicId}/': post: description: Allows a user to slot themselves into a recruitment thread fireteam slot. Returns the new state of the fireteam. operationId: Forum.JoinFireteamThread parameters: - description: The post id of the recruitment topic you wish to join. format: int64 in: path name: topicId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Forum.ForumRecruitmentDetail' ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - WriteGroups - BnetWrite tags: - Forum '/Forum/Recruit/KickBan/{topicId}/{targetMembershipId}/': post: description: Allows a recruitment thread owner to kick a join user from the fireteam. Returns the new state of the fireteam. operationId: Forum.KickBanFireteamApplicant parameters: - description: The id of the user you wish to kick. format: int64 in: path name: targetMembershipId required: true type: integer - description: The post id of the recruitment topic you wish to join. format: int64 in: path name: topicId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Forum.ForumRecruitmentDetail' ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - WriteGroups - BnetWrite tags: - Forum '/Forum/Recruit/Leave/{topicId}/': post: description: Allows a user to remove themselves from a recruitment thread fireteam slot. Returns the new state of the fireteam. operationId: Forum.LeaveFireteamThread parameters: - description: The post id of the recruitment topic you wish to leave. format: int64 in: path name: topicId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Forum.ForumRecruitmentDetail' ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - WriteGroups - BnetWrite tags: - Forum /Forum/Recruit/Summaries/: post: description: Allows the caller to get a list of to 25 recruitment thread summary information objects. operationId: Forum.GetRecruitmentThreadSummaries parameters: [] responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: items: $ref: '#/definitions/Forum.ForumRecruitmentDetail' type: array ThrottleSeconds: format: int32 type: integer type: object tags: - Forum /GroupV2/Create/: post: description: Create a new group. operationId: GroupV2.CreateGroup parameters: [] responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/GroupsV2.GroupCreationResponse' ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - BnetWrite tags: - GroupV2 /GroupV2/GetAvailableAvatars/: get: description: Returns a list of all available group avatars for the signed-in user. operationId: GroupV2.GetAvailableAvatars parameters: [] responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: additionalProperties: type: string type: object ThrottleSeconds: format: int32 type: integer type: object tags: - GroupV2 /GroupV2/GetAvailableThemes/: get: description: Returns a list of all available group themes. operationId: GroupV2.GetAvailableThemes parameters: [] responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: items: $ref: '#/definitions/Config.GroupTheme' type: array ThrottleSeconds: format: int32 type: integer type: object tags: - GroupV2 '/GroupV2/GetUserClanInviteSetting/{mType}/': get: description: 'Gets the state of the user''s clan invite preferences for a particular membership type - true if they wish to be invited to clans, false otherwise.' operationId: GroupV2.GetUserClanInviteSetting parameters: - description: The Destiny membership type of the account we wish to access settings. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: mType required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: type: boolean ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - ReadUserData tags: - GroupV2 '/GroupV2/Name/{groupName}/{groupType}/': get: description: Get information about a specific group with the given name and type. operationId: GroupV2.GetGroupByName parameters: - description: Exact name of the group to find. in: path name: groupName required: true type: string - description: Type of group to find. enum: - '0' - '1' format: int32 in: path name: groupType required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/GroupsV2.GroupResponse' ThrottleSeconds: format: int32 type: integer type: object tags: - GroupV2 /GroupV2/Recommended/: post: description: Gets groups recommended for you based on the groups to whom those you follow belong. operationId: GroupV2.GetRecommendedGroups parameters: [] responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/GroupsV2.GroupSearchResponse' ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - ReadGroups tags: - GroupV2 /GroupV2/Search/: post: description: Search for Groups. operationId: GroupV2.GroupSearch parameters: [] responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/GroupsV2.GroupSearchResponse' ThrottleSeconds: format: int32 type: integer type: object tags: - GroupV2 '/GroupV2/SetUserClanInviteSetting/{mType}/{allowInvites}/': post: description: 'Sets the state of the user''s clan invite preferences - true if they wish to be invited to clans, false otherwise.' operationId: GroupV2.SetUserClanInviteSetting parameters: - description: 'True to allow invites of this user to clans, false otherwise.' in: path name: allowInvites required: true type: boolean - description: The Destiny membership type of linked account we are manipulating. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: mType required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: format: int32 type: integer ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - EditUserData tags: - GroupV2 '/GroupV2/User/Potential/{membershipType}/{membershipId}/{filter}/{groupType}/': get: description: Get information about the groups that a given member has applied to or been invited to. operationId: GroupV2.GetPotentialGroupsForMember parameters: - description: Filter apply to list of potential joined groups. enum: - '0' - '1' - '2' format: int32 in: path name: filter required: true type: integer - description: Type of group the supplied member applied. enum: - '0' - '1' format: int32 in: path name: groupType required: true type: integer - description: Membership ID to for which to find applied groups. format: int64 in: path name: membershipId required: true type: integer - description: Membership type of the supplied membership ID. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/GroupsV2.GroupPotentialMembershipSearchResponse' ThrottleSeconds: format: int32 type: integer type: object tags: - GroupV2 '/GroupV2/User/{membershipType}/{membershipId}/{filter}/{groupType}/': get: description: Get information about the groups that a given member has joined. operationId: GroupV2.GetGroupsForMember parameters: - description: Filter apply to list of joined groups. enum: - '0' - '1' - '2' format: int32 in: path name: filter required: true type: integer - description: Type of group the supplied member founded. enum: - '0' - '1' format: int32 in: path name: groupType required: true type: integer - description: Membership ID to for which to find founded groups. format: int64 in: path name: membershipId required: true type: integer - description: Membership type of the supplied membership ID. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/GroupsV2.GroupMembershipSearchResponse' ThrottleSeconds: format: int32 type: integer type: object tags: - GroupV2 '/GroupV2/{groupId}/': get: description: Get information about a specific group of the given ID. operationId: GroupV2.GetGroup parameters: - description: Requested group's id. format: int64 in: path name: groupId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/GroupsV2.GroupResponse' ThrottleSeconds: format: int32 type: integer type: object tags: - GroupV2 '/GroupV2/{groupId}/Admin/AbdicateFoundership/{membershipType}/{founderIdNew}/': post: description: An administrative method to allow the founder of a group or clan to give up their position to another admin permanently. operationId: GroupV2.AbdicateFoundership parameters: - description: The new founder for this group. Must already be a group admin. format: int64 in: path name: founderIdNew required: true type: integer - description: The target group id. format: int64 in: path name: groupId required: true type: integer - description: Membership type of the provided founderIdNew. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: type: boolean ThrottleSeconds: format: int32 type: integer type: object tags: - GroupV2 '/GroupV2/{groupId}/AdminsAndFounder/': get: description: Get the list of members in a given group who are of admin level or higher. operationId: GroupV2.GetAdminsAndFounderOfGroup parameters: - description: The ID of the group. format: int64 in: path name: groupId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/SearchResultOfGroupMember' ThrottleSeconds: format: int32 type: integer type: object tags: - GroupV2 '/GroupV2/{groupId}/Banned/': get: description: Get the list of banned members in a given group. Only accessible to group Admins and above. Not applicable to all groups. Check group features. operationId: GroupV2.GetBannedMembersOfGroup parameters: - description: Group ID whose banned members you are fetching format: int64 in: path name: groupId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/SearchResultOfGroupBan' ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - AdminGroups tags: - GroupV2 '/GroupV2/{groupId}/Edit/': post: description: Edit an existing group. You must have suitable permissions in the group to perform this operation. This latest revision will only edit the fields you pass in - pass null for properties you want to leave unaltered. operationId: GroupV2.EditGroup parameters: - description: Group ID of the group to edit. format: int64 in: path name: groupId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: format: int32 type: integer ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - AdminGroups tags: - GroupV2 '/GroupV2/{groupId}/EditClanBanner/': post: description: Edit an existing group's clan banner. You must have suitable permissions in the group to perform this operation. All fields are required. operationId: GroupV2.EditClanBanner parameters: - description: Group ID of the group to edit. format: int64 in: path name: groupId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: format: int32 type: integer ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - AdminGroups tags: - GroupV2 '/GroupV2/{groupId}/EditFounderOptions/': post: description: Edit group options only available to a founder. You must have suitable permissions in the group to perform this operation. operationId: GroupV2.EditFounderOptions parameters: - description: Group ID of the group to edit. format: int64 in: path name: groupId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: format: int32 type: integer ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - AdminGroups tags: - GroupV2 '/GroupV2/{groupId}/Members/': get: description: Get the list of members in a given group. operationId: GroupV2.GetMembersOfGroup parameters: - description: The ID of the group. format: int64 in: path name: groupId required: true type: integer - description: Filter out other member types. Use None for all members. enum: - '0' - '1' - '2' - '3' - '4' - '5' format: int32 in: query name: memberType type: integer - description: The name fragment upon which a search should be executed for members with matching display or unique names. in: query name: nameSearch type: string responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/SearchResultOfGroupMember' ThrottleSeconds: format: int32 type: integer type: object tags: - GroupV2 '/GroupV2/{groupId}/Members/Apply/{membershipType}/': post: description: Request permission to join the given group. operationId: GroupV2.RequestGroupMembership parameters: - description: ID of the group you would like to join. format: int64 in: path name: groupId required: true type: integer - description: MembershipType of the account to use when joining. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/GroupsV2.GroupApplicationResponse' ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - BnetWrite tags: - GroupV2 '/GroupV2/{groupId}/Members/ApproveAll/': post: description: Approve all of the pending users for the given group. operationId: GroupV2.ApproveAllPending parameters: - description: ID of the group. format: int64 in: path name: groupId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: items: $ref: '#/definitions/Entities.EntityActionResult' type: array ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - AdminGroups tags: - GroupV2 '/GroupV2/{groupId}/Members/ApproveList/': post: description: Approve all of the pending users for the given group. operationId: GroupV2.ApprovePendingForList parameters: - description: ID of the group. format: int64 in: path name: groupId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: items: $ref: '#/definitions/Entities.EntityActionResult' type: array ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - AdminGroups tags: - GroupV2 '/GroupV2/{groupId}/Members/DenyAll/': post: description: Deny all of the pending users for the given group. operationId: GroupV2.DenyAllPending parameters: - description: ID of the group. format: int64 in: path name: groupId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: items: $ref: '#/definitions/Entities.EntityActionResult' type: array ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - AdminGroups tags: - GroupV2 '/GroupV2/{groupId}/Members/DenyList/': post: description: Deny all of the pending users for the given group that match the passed-in . operationId: GroupV2.DenyPendingForList parameters: - description: ID of the group. format: int64 in: path name: groupId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: items: $ref: '#/definitions/Entities.EntityActionResult' type: array ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - AdminGroups tags: - GroupV2 '/GroupV2/{groupId}/Members/IndividualInvite/{membershipType}/{membershipId}/': post: description: Invite a user to join this group. operationId: GroupV2.IndividualGroupInvite parameters: - description: ID of the group you would like to join. format: int64 in: path name: groupId required: true type: integer - description: Membership id of the account being invited. format: int64 in: path name: membershipId required: true type: integer - description: MembershipType of the account being invited. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/GroupsV2.GroupApplicationResponse' ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - AdminGroups tags: - GroupV2 '/GroupV2/{groupId}/Members/IndividualInviteCancel/{membershipType}/{membershipId}/': post: description: Cancels a pending invitation to join a group. operationId: GroupV2.IndividualGroupInviteCancel parameters: - description: ID of the group you would like to join. format: int64 in: path name: groupId required: true type: integer - description: Membership id of the account being cancelled. format: int64 in: path name: membershipId required: true type: integer - description: MembershipType of the account being cancelled. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/GroupsV2.GroupApplicationResponse' ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - AdminGroups tags: - GroupV2 '/GroupV2/{groupId}/Members/InvitedIndividuals/': get: description: Get the list of users who have been invited into the group. operationId: GroupV2.GetInvitedIndividuals parameters: - description: ID of the group. format: int64 in: path name: groupId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/SearchResultOfGroupMemberApplication' ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - AdminGroups tags: - GroupV2 '/GroupV2/{groupId}/Members/Pending/': get: description: Get the list of users who are awaiting a decision on their application to join a given group. Modified to include application info. operationId: GroupV2.GetPendingMemberships parameters: - description: ID of the group. format: int64 in: path name: groupId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/SearchResultOfGroupMemberApplication' ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - AdminGroups tags: - GroupV2 '/GroupV2/{groupId}/Members/Rescind/{membershipType}/': post: description: Rescind your application to join the given group or leave the group if you are already a member.. operationId: GroupV2.RescindGroupMembership parameters: - description: ID of the group. format: int64 in: path name: groupId required: true type: integer - description: MembershipType of the account to leave. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/GroupsV2.GroupMemberLeaveResult' ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - BnetWrite tags: - GroupV2 '/GroupV2/{groupId}/Members/{membershipType}/{membershipId}/Ban/': post: description: Bans the requested member from the requested group for the specified period of time. operationId: GroupV2.BanMember parameters: - description: Group ID that has the member to ban. format: int64 in: path name: groupId required: true type: integer - description: Membership ID of the member to ban from the group. format: int64 in: path name: membershipId required: true type: integer - description: Membership type of the provided membership ID. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: format: int32 type: integer ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - AdminGroups tags: - GroupV2 '/GroupV2/{groupId}/Members/{membershipType}/{membershipId}/Kick/': post: description: 'Kick a member from the given group, forcing them to reapply if they wish to re-join the group. You must have suitable permissions in the group to perform this operation.' operationId: GroupV2.KickMember parameters: - description: Group ID to kick the user from. format: int64 in: path name: groupId required: true type: integer - description: Membership ID to kick. format: int64 in: path name: membershipId required: true type: integer - description: Membership type of the provided membership ID. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/GroupsV2.GroupMemberLeaveResult' ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - AdminGroups tags: - GroupV2 '/GroupV2/{groupId}/Members/{membershipType}/{membershipId}/SetMembershipType/{memberType}/': post: description: Edit the membership type of a given member. You must have suitable permissions in the group to perform this operation. operationId: GroupV2.EditGroupMembership parameters: - description: ID of the group to which the member belongs. format: int64 in: path name: groupId required: true type: integer - description: Membership ID to modify. format: int64 in: path name: membershipId required: true type: integer - description: Membership type of the provide membership ID. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer - description: New membertype for the specified member. enum: - '0' - '1' - '2' - '3' - '4' - '5' format: int32 in: path name: memberType required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: format: int32 type: integer ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - AdminGroups tags: - GroupV2 '/GroupV2/{groupId}/Members/{membershipType}/{membershipId}/Unban/': post: description: 'Unbans the requested member, allowing them to re-apply for membership.' operationId: GroupV2.UnbanMember parameters: - description: '' format: int64 in: path name: groupId required: true type: integer - description: Membership ID of the member to unban from the group format: int64 in: path name: membershipId required: true type: integer - description: Membership type of the provided membership ID. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: format: int32 type: integer ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - AdminGroups tags: - GroupV2 '/GroupV2/{groupId}/OptionalConversations/': get: description: Gets a list of available optional conversation channels and their settings. operationId: GroupV2.GetGroupOptionalConversations parameters: - description: Requested group's id. format: int64 in: path name: groupId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: items: $ref: '#/definitions/GroupsV2.GroupOptionalConversation' type: array ThrottleSeconds: format: int32 type: integer type: object tags: - GroupV2 '/GroupV2/{groupId}/OptionalConversations/Add/': post: description: Add a new optional conversation/chat channel. Requires admin permissions to the group. operationId: GroupV2.AddOptionalConversation parameters: - description: Group ID of the group to edit. format: int64 in: path name: groupId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: format: int64 type: integer ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - AdminGroups tags: - GroupV2 '/GroupV2/{groupId}/OptionalConversations/Edit/{conversationId}/': post: description: Edit the settings of an optional conversation/chat channel. Requires admin permissions to the group. operationId: GroupV2.EditOptionalConversation parameters: - description: Conversation Id of the channel being edited. format: int64 in: path name: conversationId required: true type: integer - description: Group ID of the group to edit. format: int64 in: path name: groupId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: format: int64 type: integer ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - AdminGroups tags: - GroupV2 /Trending/Categories/: get: description: 'Returns trending items for Bungie.net, collapsed into the first page of items per category. For pagination within a category, call GetTrendingCategory.' operationId: Trending.GetTrendingCategories parameters: [] responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Trending.TrendingCategories' ThrottleSeconds: format: int32 type: integer type: object tags: - Trending '/Trending/Categories/{categoryId}/{pageNumber}/': get: description: Returns paginated lists of trending items for a category. operationId: Trending.GetTrendingCategory parameters: - description: The ID of the category for whom you want additional results. in: path name: categoryId required: true type: string - description: 'The page # of results to return.' format: int32 in: path name: pageNumber required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/SearchResultOfTrendingEntry' ThrottleSeconds: format: int32 type: integer type: object tags: - Trending '/Trending/Details/{trendingEntryType}/{identifier}/': get: description: 'Returns the detailed results for a specific trending entry. Note that trending entries are uniquely identified by a combination of *both* the TrendingEntryType *and* the identifier: the identifier alone is not guaranteed to be globally unique.' operationId: Trending.GetTrendingEntryDetail parameters: - description: The identifier for the entity to be returned. in: path name: identifier required: true type: string - description: The type of entity to be returned. enum: - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' - '8' - '9' format: int32 in: path name: trendingEntryType required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/Trending.TrendingDetail' ThrottleSeconds: format: int32 type: integer type: object tags: - Trending /User/GetAvailableThemes/: get: description: Returns a list of all available user themes. operationId: User.GetAvailableThemes parameters: [] responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: items: $ref: '#/definitions/Config.UserTheme' type: array ThrottleSeconds: format: int32 type: integer type: object tags: - User '/User/GetBungieNetUserById/{id}/': get: description: Loads a bungienet user by membership id. operationId: User.GetBungieNetUserById parameters: - description: The requested Bungie.net membership id. format: int64 in: path name: id required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/User.GeneralUser' ThrottleSeconds: format: int32 type: integer type: object tags: - User '/User/GetMembershipsById/{membershipId}/{membershipType}/': get: description: Returns a list of accounts associated with the supplied membership ID and membership type. This will include all linked accounts (even when hidden) if supplied credentials permit it. operationId: User.GetMembershipDataById parameters: - description: The membership ID of the target user. format: int64 in: path name: membershipId required: true type: integer - description: Type of the supplied membership ID. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 in: path name: membershipType required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/User.UserMembershipData' ThrottleSeconds: format: int32 type: integer type: object tags: - User /User/GetMembershipsForCurrentUser/: get: description: Returns a list of accounts associated with signed in user. This is useful for OAuth implementations that do not give you access to the token response. operationId: User.GetMembershipDataForCurrentUser parameters: [] responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: $ref: '#/definitions/User.UserMembershipData' ThrottleSeconds: format: int32 type: integer type: object security: - oauth2: - ReadBasicUserProfile tags: - User '/User/GetUserAliases/{id}/': get: description: Loads aliases of a bungienet membership id. operationId: User.GetUserAliases parameters: - description: The requested Bungie.net membership id. format: int64 in: path name: id required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: items: $ref: '#/definitions/User.Models.UserAlias' type: array ThrottleSeconds: format: int32 type: integer type: object tags: - User /User/SearchUsers/: get: description: Returns a list of possible users based on the search string operationId: User.SearchUsers parameters: - description: The search string. in: query name: q type: string responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: items: $ref: '#/definitions/User.GeneralUser' type: array ThrottleSeconds: format: int32 type: integer type: object tags: - User '/User/{membershipId}/Partnerships/': get: description: Returns a user's linked Partnerships. operationId: User.GetPartnerships parameters: - description: The ID of the member for whom partnerships should be returned. format: int64 in: path name: membershipId required: true type: integer responses: '200': description: Look at the Response property for more information about the nature of this response schema: properties: ErrorCode: $ref: '#/definitions/Exceptions.PlatformErrorCodes' ErrorStatus: type: string Message: type: string MessageData: additionalProperties: type: string type: object Response: items: $ref: '#/definitions/Partnerships.PublicPartnershipDetail' type: array ThrottleSeconds: format: int32 type: integer type: object tags: - User definitions: Applications.ApplicationScopes: enum: - '1' - '2' - '4' - '8' - '16' - '32' - '64' - '128' - '256' - '512' - '1024' format: int64 type: integer x-enum-values: - description: 'Read basic user profile information such as the user''s handle, avatar icon, etc.' identifier: ReadBasicUserProfile numericValue: '1' - description: 'Read Group/Clan Forums, Wall, and Members for groups and clans that the user has joined.' identifier: ReadGroups numericValue: '2' - description: 'Write Group/Clan Forums, Wall, and Members for groups and clans that the user has joined.' identifier: WriteGroups numericValue: '4' - description: 'Administer Group/Clan Forums, Wall, and Members for groups and clans that the user is a founder or an administrator.' identifier: AdminGroups numericValue: '8' - description: 'Create new groups, clans, and forum posts.' identifier: BnetWrite numericValue: '16' - description: Move or equip Destiny items identifier: MoveEquipDestinyItems numericValue: '32' - description: Read Destiny Inventory and Vault contents. identifier: ReadDestinyInventoryAndVault numericValue: '64' - description: 'Read user data such as who they are web notifications, clan/group memberships, recent activity, muted users.' identifier: ReadUserData numericValue: '128' - description: 'Edit user data such as preferred language, status, motto, avatar selection and theme.' identifier: EditUserData numericValue: '256' - description: Access vendor and advisor data specific to a user. identifier: ReadDestinyVendorsAndAdvisors numericValue: '512' - description: Read offer history and claim and apply tokens for the user. identifier: ReadAndApplyTokens numericValue: '1024' BungieMembershipType: description: The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType. enum: - '0' - '1' - '2' - '4' - '10' - '254' - '-1' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: TigerXbox numericValue: '1' - identifier: TigerPsn numericValue: '2' - identifier: TigerBlizzard numericValue: '4' - identifier: TigerDemon numericValue: '10' - identifier: BungieNext numericValue: '254' - identifier: All numericValue: '-1' 'BungieMembershipType[]': items: $ref: '#/definitions/BungieMembershipType' type: array Community.CommunityLiveStatus: properties: activityModeHash: format: uint32 type: integer currentActivityHash: format: uint32 type: integer currentViewers: format: int32 type: integer dateFeatured: format: date-time type: string dateLastPlayed: format: date-time type: string dateStatusUpdated: format: date-time type: string dateStreamStarted: format: date-time type: string destinyCharacterId: format: int64 type: integer followers: format: int32 type: integer isFeatured: type: boolean isSubscribable: type: boolean locale: type: string overallViewers: format: int32 type: integer partnershipIdentifier: type: string partnershipType: $ref: '#/definitions/Partnerships.PartnershipType' thumbnail: type: string thumbnailLarge: type: string thumbnailSmall: type: string title: type: string trendingValue: format: float type: number url: type: string userInfo: $ref: '#/definitions/User.UserInfoCard' type: object Community.CommunityStatusSort: enum: - '0' - '1' - '2' - '3' format: int32 type: integer x-enum-values: - identifier: Viewers numericValue: '0' - identifier: Trending numericValue: '1' - identifier: OverallViewers numericValue: '2' - identifier: Followers numericValue: '3' Components.ComponentPrivacySetting: description: A set of flags for reason(s) why the component populated in the way that it did. Inspect the individual flags for the reasons. enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Public numericValue: '1' - identifier: Private numericValue: '2' Components.ComponentResponse: description: The base class for any component-returning object that may need to indicate information about the state of the component being returned. properties: privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object Config.GroupTheme: properties: description: type: string folder: type: string name: type: string type: object Config.UserTheme: properties: userThemeDescription: type: string userThemeId: format: int32 type: integer userThemeName: type: string type: object Content.CommentSummary: properties: commentCount: format: int32 type: integer topicId: format: int64 type: integer type: object Content.ContentItemPublicContract: properties: allowComments: type: boolean author: $ref: '#/definitions/User.GeneralUser' autoEnglishPropertyFallback: type: boolean cType: type: string cmsPath: type: string commentSummary: $ref: '#/definitions/Content.CommentSummary' contentId: format: int64 type: integer creationDate: format: date-time type: string hasAgeGate: type: boolean minimumAge: format: int32 type: integer modifyDate: format: date-time type: string properties: additionalProperties: type: object description: "Firehose content is really a collection of metadata and \"properties\", which are the potentially-but-not-strictly localizable data that comprises the meat of whatever content is being shown.\r\nAs Cole Porter would have crooned, \"Anything Goes\" with Firehose properties. They are most often strings, but they can theoretically be anything. They are JSON encoded, and could be JSON structures, simple strings, numbers etc... The Content Type of the item (cType) will describe the properties, and thus how they ought to be deserialized." type: object ratingImagePath: type: string representations: items: $ref: '#/definitions/Content.ContentRepresentation' type: array tags: items: type: string type: array type: object Content.ContentRepresentation: properties: name: type: string path: type: string validationString: type: string type: object Dates.DateRange: properties: end: format: date-time type: string start: format: date-time type: string type: object Destiny.Activities.DestinyPublicActivityStatus: description: 'Represents the public-facing status of an activity: any data about what is currently active in the Activity, regardless of an individual character''s progress in it.' properties: challengeObjectiveHashes: description: 'Active Challenges for the activity, if any - represented as hashes for DestinyObjectiveDefinitions.' items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyObjectiveDefinition' modifierHashes: description: 'The active modifiers on this activity, if any - represented as hashes for DestinyActivityModifierDefinitions.' items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.ActivityModifiers.DestinyActivityModifierDefinition' rewardTooltipItems: description: "If the activity itself provides any specific \"mock\" rewards, this will be the items and their quantity.\r\nWhy \"mock\", you ask? Because these are the rewards as they are represented in the tooltip of the Activity.\r\nThese are often pointers to fake items that look good in a tooltip, but represent an abstract concept of what you will get for a reward rather than the specific items you may obtain." items: $ref: '#/definitions/Destiny.DestinyItemQuantity' type: array type: object Destiny.ActivityGraphNodeHighlightType: description: 'The various known UI styles in which an item can be highlighted. It''ll be up to you to determine what you want to show based on this highlighting, BNet doesn''t have any assets that correspond to these states. And yeah, RiseOfIron and Comet have their own special highlight states. Don''t ask me, I can''t imagine they''re still used.' enum: - '0' - '1' - '2' - '3' - '4' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Normal numericValue: '1' - identifier: Hyper numericValue: '2' - identifier: Comet numericValue: '3' - identifier: RiseOfIron numericValue: '4' Destiny.BucketCategory: enum: - '0' - '1' - '2' - '3' - '4' format: int32 type: integer x-enum-values: - identifier: Invisible numericValue: '0' - identifier: Item numericValue: '1' - identifier: Currency numericValue: '2' - identifier: Equippable numericValue: '3' - identifier: Ignored numericValue: '4' Destiny.BucketScope: enum: - '0' - '1' format: int32 type: integer x-enum-values: - identifier: Character numericValue: '0' - identifier: Account numericValue: '1' Destiny.Challenges.DestinyChallengeStatus: description: "Represents the status and other related information for a challenge that is - or was - available to a player. \r\nA challenge is a bonus objective, generally tacked onto Quests or Activities, that provide additional variations on play." properties: objective: allOf: - $ref: '#/definitions/Destiny.Quests.DestinyObjectiveProgress' description: The progress - including completion status - of the active challenge. type: object type: object Destiny.Character.DestinyCharacterCustomization: description: "Raw data about the customization options chosen for a character's face and appearance.\r\nYou can look up the relevant class/race/gender combo in DestinyCharacterCustomizationOptionDefinition for the character, and then look up these values within the CustomizationOptions found to pull some data about their choices. Warning: not all of that data is meaningful. Some data has useful icons. Others have nothing, and are only meant for 3D rendering purposes (which we sadly do not expose yet)" properties: decalColor: format: uint32 type: integer decalIndex: format: int32 type: integer eyeColor: format: uint32 type: integer face: format: uint32 type: integer featureColors: items: format: uint32 type: integer type: array featureIndex: format: int32 type: integer hairColors: items: format: uint32 type: integer type: array hairIndex: format: int32 type: integer lipColor: format: uint32 type: integer personality: format: uint32 type: integer skinColor: format: uint32 type: integer wearHelmet: type: boolean type: object Destiny.Character.DestinyCharacterPeerView: description: 'A minimal view of a character''s equipped items, for the purpose of rendering a summary screen or showing the character in 3D.' properties: equipment: items: $ref: '#/definitions/Destiny.Character.DestinyItemPeerView' type: array type: object Destiny.Character.DestinyItemPeerView: description: 'Bare minimum summary information for an item, for the sake of 3D rendering the item.' properties: dyes: description: The list of dyes that have been applied to this item. items: $ref: '#/definitions/Destiny.DyeReference' type: array itemHash: description: The hash identifier of the item in question. Use it to look up the DestinyInventoryItemDefinition of the item for static rendering data. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' type: object Destiny.Components.Items.DestinyItemPlugComponent: description: "Plugs are non-instanced items that can provide Stat and Perk benefits when socketed into an instanced item. Items have Sockets, and Plugs are inserted into Sockets.\r\nThis component finds all items that are considered \"Plugs\" in your inventory, and return information about the plug aside from any specific Socket into which it could be inserted." properties: enableFailIndexes: description: "If a plug is not enabled, this will be populated with indexes into the plug item definition's plug.enabledRules property, so that you can show the reasons why it is not enabled.\r\nThis list will be empty if the plug is enabled." items: format: int32 type: integer type: array insertFailIndexes: description: "If the plug cannot be inserted for some reason, this will have the indexes into the plug item definition's plug.insertionRules property, so you can show the reasons why it can't be inserted.\r\nThis list will be empty if the plug can be inserted." items: format: int32 type: integer type: array type: object x-destiny-component-type-dependency: ItemPlugStates Destiny.Components.Kiosks.DestinyKioskItem: properties: canAcquire: description: 'If true, the user can not only see the item, but they can acquire it. It is possible that a user can see a kiosk item and not be able to acquire it.' type: boolean failureIndexes: description: 'Indexes into failureStrings for the Vendor, indicating the reasons why it failed if any.' items: format: int32 type: integer type: array index: description: 'The index of the item in the related DestinyVendorDefintion''s itemList property, representing the sale.' format: int32 type: integer type: object Destiny.Components.Kiosks.DestinyKiosksComponent: description: "A Kiosk is a Vendor (DestinyVendorDefinition) that sells items based on whether you have already acquired that item before.\r\nThis component returns information about what Kiosk items are available to you on a *Profile* level. It is theoretically possible for Kiosks to have items gated by specific Character as well. If you ever have those, you will find them on the individual character's DestinyCharacterKiosksComponent.\r\nNote that, because this component returns vendorItemIndexes (that is to say, indexes into the Kiosk Vendor's itemList property), these results are necessarily content version dependent. Make sure that you have the latest version of the content manifest databases before using this data." properties: kioskItems: additionalProperties: items: $ref: '#/definitions/Destiny.Components.Kiosks.DestinyKioskItem' type: array description: 'A dictionary keyed by the Kiosk Vendor''s hash identifier (use it to look up the DestinyVendorDefinition for the relevant kiosk vendor), and whose value is a list of all the items that the user can "see" in the Kiosk, and any other interesting metadata.' type: object x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyVendorDefinition' type: object x-destiny-component-type-dependency: Kiosks Destiny.Config.DestinyManifest: description: DestinyManifest is the external-facing contract for just the properties needed by those calling the Destiny Platform. properties: mobileAssetContentPath: type: string mobileClanBannerDatabasePath: type: string mobileGearAssetDataBases: items: $ref: '#/definitions/Destiny.Config.GearAssetDataBaseDefinition' type: array mobileGearCDN: additionalProperties: type: string type: object mobileWorldContentPaths: additionalProperties: type: string type: object version: type: string type: object Destiny.Config.GearAssetDataBaseDefinition: properties: path: type: string version: format: int32 type: integer type: object Destiny.DamageType: enum: - '0' - '1' - '2' - '3' - '4' - '5' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Kinetic numericValue: '1' - identifier: Arc numericValue: '2' - identifier: Thermal numericValue: '3' - identifier: Void numericValue: '4' - identifier: Raid numericValue: '5' Destiny.Definitions.ActivityModifiers.DestinyActivityModifierDefinition: description: 'Modifiers - in Destiny 1, these were referred to as "Skulls" - are changes that can be applied to an Activity.' properties: displayProperties: $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean type: object x-mobile-manifest-name: ActivityModifiers Destiny.Definitions.Animations.DestinyAnimationReference: properties: animIdentifier: type: string animName: type: string path: type: string type: object Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition: description: 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. properties: description: type: string hasIcon: type: boolean icon: description: "Note that \"icon\" is sometimes misleading, and should be interpreted in the context of the entity. For instance, in Destiny 1 the DestinyRecordBookDefinition's icon was a big picture of a book.\r\nBut usually, it will be a small square image that you can use as... well, an icon." type: string name: type: string type: object Destiny.Definitions.Common.DestinyPositionDefinition: properties: x: format: int32 type: integer 'y': format: int32 type: integer z: format: int32 type: integer type: object Destiny.Definitions.DestinyActivityChallengeDefinition: description: 'Represents a reference to a Challenge, which for now is just an Objective.' properties: objectiveHash: description: The hash for the Objective that matches this challenge. Use it to look up the DestinyObjectiveDefinition. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyObjectiveDefinition' type: object Destiny.Definitions.DestinyActivityDefinition: description: "The static data about Activities in Destiny 2.\r\nNote that an Activity must be combined with an ActivityMode to know - from a Gameplay perspective - what the user is \"Playing\".\r\nIn most PvE activities, this is fairly straightforward. A Story Activity can only be played in the Story Activity Mode.\r\nHowever, in PvP activities, the Activity alone only tells you the map being played, or the Playlist that the user chose to enter. You'll need to know the Activity Mode they're playing to know that they're playing Mode X on Map Y.\r\nActivity Definitions tell a great deal of information about what *could* be relevant to a user: what rewards they can earn, what challenges could be performed, what modifiers could be applied. To figure out which of these properties is actually live, you'll need to combine the definition with \"Live\" data from one of the Destiny endpoints.\r\nActivities also have Activity Types, but unfortunately in Destiny 2 these are even less reliable of a source of information than they were in Destiny 1. I will be looking into ways to provide more reliable sources for type information as time goes on, but for now we're going to have to deal with the limitations. See DestinyActivityTypeDefinition for more information." properties: activityGraphList: description: 'Unfortunately, in practice this is almost never populated. In theory, this is supposed to tell which Activity Graph to show if you bring up the director while in this activity.' items: $ref: '#/definitions/Destiny.Definitions.DestinyActivityGraphListEntryDefinition' type: array activityLevel: description: The difficulty level of the activity. format: int32 type: integer activityLightLevel: description: The recommended light level for this activity. format: int32 type: integer activityModeHashes: items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityModeDefinition' activityModeTypes: items: $ref: '#/definitions/Destiny.HistoricalStats.Definitions.DestinyActivityModeType' type: array activityTypeHash: description: 'The hash identifier for the Activity Type of this Activity. You may use it to look up the DestinyActivityTypeDefinition for human readable info, but be forewarned: Playlists and many PVP Map Activities will map to generic Activity Types. You''ll have to use your knowledge of the Activity Mode being played to get more specific information about what the user is playing.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityTypeDefinition' challenges: description: 'An activity can have many Challenges, of which any subset of them may be active for play at any given period of time. This gives the information about the challenges and data that we use to understand when they''re active and what rewards they provide. Sadly, at the moment there''s no central definition for challenges: much like "Skulls" were in Destiny 1, these are defined on individual activities and there can be many duplicates/near duplicates across the Destiny 2 ecosystem. I have it in mind to centralize these in a future revision of the API, but we are out of time.' items: $ref: '#/definitions/Destiny.Definitions.DestinyActivityChallengeDefinition' type: array destinationHash: description: 'The hash identifier for the Destination on which this Activity is played. Use it to look up the DestinyDestinationDefinition for human readable info about the destination. A Destination can be thought of as a more specific location than a "Place". For instance, if the "Place" is Earth, the "Destination" would be a specific city or region on Earth.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyDestinationDefinition' directActivityModeHash: format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityModeDefinition' directActivityModeType: enum: - '0' - '2' - '3' - '4' - '5' - '6' - '7' - '9' - '10' - '11' - '12' - '13' - '15' - '16' - '17' - '18' - '19' - '20' - '21' - '22' - '24' - '25' - '26' - '27' - '28' - '29' - '30' - '31' - '32' - '37' - '38' - '39' - '40' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Story numericValue: '2' - identifier: Strike numericValue: '3' - identifier: Raid numericValue: '4' - identifier: AllPvP numericValue: '5' - identifier: Patrol numericValue: '6' - identifier: AllPvE numericValue: '7' - identifier: Reserved9 numericValue: '9' - identifier: Control numericValue: '10' - identifier: Reserved11 numericValue: '11' - identifier: Clash numericValue: '12' - identifier: Reserved13 numericValue: '13' - identifier: Reserved15 numericValue: '15' - identifier: Nightfall numericValue: '16' - identifier: HeroicNightfall numericValue: '17' - identifier: AllStrikes numericValue: '18' - identifier: IronBanner numericValue: '19' - identifier: Reserved20 numericValue: '20' - identifier: Reserved21 numericValue: '21' - identifier: Reserved22 numericValue: '22' - identifier: Reserved24 numericValue: '24' - identifier: Reserved25 numericValue: '25' - identifier: Reserved26 numericValue: '26' - identifier: Reserved27 numericValue: '27' - identifier: Reserved28 numericValue: '28' - identifier: Reserved29 numericValue: '29' - identifier: Reserved30 numericValue: '30' - identifier: Supremacy numericValue: '31' - identifier: Reserved32 numericValue: '32' - identifier: Survival numericValue: '37' - identifier: Countdown numericValue: '38' - identifier: TrialsOfTheNine numericValue: '39' - identifier: Social numericValue: '40' displayProperties: allOf: - $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' description: 'The title, subtitle, and icon for the activity.' type: object guidedGame: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyActivityGuidedBlockDefinition' description: 'This block of data, if it exists, provides information about the guided game experience and restrictions for this activity. If it doesn''t exist, the game is not able to be played as a guided game.' type: object hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer isPlaylist: description: 'If True, this Activity is actually a Playlist that refers to multiple possible specific Activities and Activity Modes. For instance, a Crucible Playlist may have references to multiple Activities (Maps) with multiple Activity Modes (specific PvP gameplay modes). If this is true, refer to the playlistItems property for the specific entries in the playlist.' type: boolean isPvP: description: 'If true, this activity is a PVP activity or playlist.' type: boolean matchmaking: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyActivityMatchmakingBlockDefinition' description: 'This block of data provides information about the Activity''s matchmaking attributes: how many people can join and such.' type: object modifiers: description: 'Activities can have Modifiers, as defined in DestinyActivityModifierDefinition. These are references to the modifiers that *can* be applied to that activity, along with data that we use to determine if that modifier is actually active at any given point in time.' items: $ref: '#/definitions/Destiny.Definitions.DestinyActivityModifierReferenceDefinition' type: array optionalUnlockStrings: description: 'If there are status strings related to the activity and based on internal state of the game, account, or character, then this will be the definition of those strings and the states needed in order for the strings to be shown.' items: $ref: '#/definitions/Destiny.Definitions.DestinyActivityUnlockStringDefinition' type: array pgcrImage: description: 'When Activities are completed, we generate a "Post-Game Carnage Report", or PGCR, with details about what happened in that activity (how many kills someone got, which team won, etc...) We use this image as the background when displaying PGCR information, and often use it when we refer to the Activity in general.' type: string placeHash: description: 'The hash identifier for the "Place" on which this Activity is played. Use it to look up the DestinyPlaceDefinition for human readable info about the Place. A Place is the largest-scoped concept for location information. For instance, if the "Place" is Earth, the "Destination" would be a specific city or region on Earth.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyPlaceDefinition' playlistItems: description: 'Represents all of the possible activities that could be played in the Playlist, along with information that we can use to determine if they are active at the present time.' items: $ref: '#/definitions/Destiny.Definitions.DestinyActivityPlaylistItemDefinition' type: array redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean releaseIcon: description: 'If the activity has an icon associated with a specific release (such as a DLC), this is the path to that release''s icon.' type: string releaseTime: description: 'If the activity will not be visible until a specific and known time, this will be the seconds since the Epoch when it will become visible.' format: int32 type: integer rewards: description: 'The expected possible rewards for the activity. These rewards may or may not be accessible for an individual player based on their character state, the account state, and even the game''s state overall. But it is a useful reference for possible rewards you can earn in the activity. These match up to rewards displayed when you hover over the Activity in the in-game Director, and often refer to Placeholder or "Dummy" items: items that tell you what you can earn in vague terms rather than what you''ll specifically be earning (partly because the game doesn''t even know what you''ll earn specifically until you roll for it at the end)' items: $ref: '#/definitions/Destiny.Definitions.DestinyActivityRewardDefinition' type: array tier: description: The difficulty tier of the activity. format: int32 type: integer type: object x-mobile-manifest-name: Activities Destiny.Definitions.DestinyActivityGraphListEntryDefinition: description: "Destinations and Activities may have default Activity Graphs that should be shown when you bring up the Director and are playing in either.\r\nThis contract defines the graph referred to and the gating for when it is relevant." properties: activityGraphHash: description: The hash identifier of the DestinyActivityGraphDefinition that should be shown when opening the director. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.Director.DestinyActivityGraphDefinition' type: object Destiny.Definitions.DestinyActivityGuidedBlockDefinition: description: Guided Game information for this activity. properties: guidedDisbandCount: description: 'If -1, the guided group cannot be disbanded. Otherwise, take the total # of players in the activity and subtract this number: that is the total # of votes needed for the guided group to disband.' format: int32 type: integer guidedMaxLobbySize: description: The maximum amount of people that can be in the waiting lobby. format: int32 type: integer guidedMinLobbySize: description: The minimum amount of people that can be in the waiting lobby. format: int32 type: integer type: object Destiny.Definitions.DestinyActivityMatchmakingBlockDefinition: description: Information about matchmaking and party size for the activity. properties: isMatchmade: description: 'If TRUE, the activity is matchmade. Otherwise, it requires explicit forming of a party.' type: boolean maxParty: description: 'The maximum # of people allowed in a Fireteam.' format: int32 type: integer maxPlayers: description: 'The maximum # of people allowed across all teams in the activity.' format: int32 type: integer minParty: description: 'The minimum # of people in the fireteam for the activity to launch.' format: int32 type: integer requiresGuardianOath: description: 'If true, you have to Solemnly Swear to be up to Nothing But Good(tm) to play.' type: boolean type: object Destiny.Definitions.DestinyActivityModeDefinition: properties: activityModeCategory: $ref: '#/definitions/Destiny.DestinyActivityModeCategory' activityModeMappings: additionalProperties: $ref: '#/definitions/Destiny.HistoricalStats.Definitions.DestinyActivityModeType' type: object display: description: 'If FALSE, we want to ignore this type when we''re showing activity modes in BNet UI. It will still be returned in case 3rd parties want to use it for any purpose.' type: boolean displayProperties: $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' friendlyName: type: string hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer isAggregateMode: type: boolean isTeamBased: type: boolean modeType: $ref: '#/definitions/Destiny.HistoricalStats.Definitions.DestinyActivityModeType' order: description: The relative ordering of activity modes. format: int32 type: integer parentHashes: items: format: uint32 type: integer type: array pgcrImage: type: string redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean type: object x-mobile-manifest-name: ActivityModes Destiny.Definitions.DestinyActivityModifierReferenceDefinition: description: "A reference to an Activity Modifier from another entity, such as an Activity (for now, just Activities).\r\nThis defines some" properties: activityModifierHash: description: The hash identifier for the DestinyActivityModifierDefinition referenced by this activity. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.ActivityModifiers.DestinyActivityModifierDefinition' type: object Destiny.Definitions.DestinyActivityPlaylistItemDefinition: description: 'If the activity is a playlist, this is the definition for a specific entry in the playlist: a single possible combination of Activity and Activity Mode that can be chosen.' properties: activityHash: description: The hash identifier of the Activity that can be played. Use it to look up the DestinyActivityDefinition. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityDefinition' activityModeHashes: items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityModeDefinition' activityModeTypes: items: $ref: '#/definitions/Destiny.HistoricalStats.Definitions.DestinyActivityModeType' type: array directActivityModeHash: format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityModeDefinition' directActivityModeType: enum: - '0' - '2' - '3' - '4' - '5' - '6' - '7' - '9' - '10' - '11' - '12' - '13' - '15' - '16' - '17' - '18' - '19' - '20' - '21' - '22' - '24' - '25' - '26' - '27' - '28' - '29' - '30' - '31' - '32' - '37' - '38' - '39' - '40' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Story numericValue: '2' - identifier: Strike numericValue: '3' - identifier: Raid numericValue: '4' - identifier: AllPvP numericValue: '5' - identifier: Patrol numericValue: '6' - identifier: AllPvE numericValue: '7' - identifier: Reserved9 numericValue: '9' - identifier: Control numericValue: '10' - identifier: Reserved11 numericValue: '11' - identifier: Clash numericValue: '12' - identifier: Reserved13 numericValue: '13' - identifier: Reserved15 numericValue: '15' - identifier: Nightfall numericValue: '16' - identifier: HeroicNightfall numericValue: '17' - identifier: AllStrikes numericValue: '18' - identifier: IronBanner numericValue: '19' - identifier: Reserved20 numericValue: '20' - identifier: Reserved21 numericValue: '21' - identifier: Reserved22 numericValue: '22' - identifier: Reserved24 numericValue: '24' - identifier: Reserved25 numericValue: '25' - identifier: Reserved26 numericValue: '26' - identifier: Reserved27 numericValue: '27' - identifier: Reserved28 numericValue: '28' - identifier: Reserved29 numericValue: '29' - identifier: Reserved30 numericValue: '30' - identifier: Supremacy numericValue: '31' - identifier: Reserved32 numericValue: '32' - identifier: Survival numericValue: '37' - identifier: Countdown numericValue: '38' - identifier: TrialsOfTheNine numericValue: '39' - identifier: Social numericValue: '40' type: object Destiny.Definitions.DestinyActivityRewardDefinition: description: Activities can refer to one or more sets of tooltip-friendly reward data. These are the definitions for those tooltip friendly rewards. properties: rewardItems: description: "The \"Items provided\" in the reward. This is almost always a pointer to a DestinyInventoryItemDefintion for an item that you can't actually earn in-game, but that has name/description/icon information for the vague concept of the rewards you will receive. This is because the actual reward generation is non-deterministic and extremely complicated, so the best the game can do is tell you what you'll get in vague terms. And so too shall we.\r\nInteresting trivia: you actually *do* earn these items when you complete the activity. They go into a single-slot bucket on your profile, which is how you see the pop-ups of these rewards when you complete an activity that match these \"dummy\" items. You can even see them if you look at the last one you earned in your profile-level inventory through the BNet API! Who said reading documentation is a waste of time?" items: $ref: '#/definitions/Destiny.DestinyItemQuantity' type: array rewardText: description: 'The header for the reward set, if any.' type: string type: object Destiny.Definitions.DestinyActivityTypeDefinition: description: "The definition for an Activity Type.\r\nIn Destiny 2, an Activity Type represents a conceptual categorization of Activities.\r\nThese are most commonly used in the game for the subtitle under Activities, but BNet uses them extensively to identify and group activities by their common properties.\r\nUnfortunately, there has been a movement away from providing the richer data in Destiny 2 that we used to get in Destiny 1 for Activity Types. For instance, Nightfalls are grouped under the same Activity Type as regular Strikes. \r\nFor this reason, BNet will eventually migrate toward Activity Modes as a better indicator of activity category. But for the time being, it is still referred to in many places across our codebase." properties: displayProperties: $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean type: object x-mobile-manifest-name: ActivityTypes Destiny.Definitions.DestinyActivityUnlockStringDefinition: description: 'Represents a status string that could be conditionally displayed about an activity. Note that externally, you can only see the strings themselves. Internally we combine this information with server state to determine which strings should be shown.' properties: displayString: description: The string to be displayed if the conditions are met. type: string type: object Destiny.Definitions.DestinyBubbleDefinition: description: Basic identifying data about the bubble. Combine with DestinyDestinationBubbleSettingDefinition - see DestinyDestinationDefinition.bubbleSettings for more information. properties: hash: description: 'The identifier for the bubble: only guaranteed to be unique within the Destination.' format: uint32 type: integer type: object Destiny.Definitions.DestinyClassDefinition: description: 'Defines a Character Class in Destiny 2. These are types of characters you can play, like Titan, Warlock, and Hunter.' properties: classType: allOf: - $ref: '#/definitions/Destiny.DestinyClass' description: 'In Destiny 1, we added a convenience Enumeration for referring to classes. We''ve kept it, though mostly for posterity. This is the enum value for this definition''s class.' type: object displayProperties: $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' genderedClassNames: additionalProperties: type: string description: A localized string referring to the singular form of the Class's name when referred to in gendered form. Keyed by the DestinyGender. type: object hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer mentorVendorHash: description: 'If the Class has a Mentor (all classes *should*), this will be the hash identifier for that Vendor if you care.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyVendorDefinition' redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean type: object x-mobile-manifest-name: Classes Destiny.Definitions.DestinyDamageTypeDefinition: description: 'All damage types that are possible in the game are defined here, along with localized info and icons as needed.' properties: displayProperties: allOf: - $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' description: 'The description of the damage type, icon etc...' type: object enumValue: allOf: - $ref: '#/definitions/Destiny.DamageType' description: We have an enumeration for damage types for quick reference. This is the current definition's damage type enum value. type: object hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean showIcon: description: 'If TRUE, the game shows this damage type''s icon. Otherwise, it doesn''t. Whether you show it or not is up to you.' type: boolean transparentIconPath: description: A variant of the icon that is transparent and colorless. type: string type: object x-mobile-manifest-name: DamageTypes Destiny.Definitions.DestinyDefinition: description: Provides common properties for destiny definitions. properties: hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean type: object Destiny.Definitions.DestinyDestinationBubbleSettingDefinition: description: Human readable data about the bubble. Combine with DestinyBubbleDefinition - see DestinyDestinationDefinition.bubbleSettings for more information. properties: displayProperties: $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' type: object Destiny.Definitions.DestinyDestinationDefinition: description: "On to one of the more confusing subjects of the API. What is a Destination, and what is the relationship between it, Activities, Locations, and Places?\r\nA \"Destination\" is a specific region/city/area of a larger \"Place\". For instance, a Place might be Earth where a Destination might be Bellevue, Washington. (Please, pick a more interesting destination if you come to visit Earth)." properties: activityGraphEntries: description: 'If the Destination has default Activity Graphs (i.e. "Map") that should be shown in the director, this is the list of those Graphs. At most, only one should be active at any given time for a Destination: these would represent, for example, different variants on a Map if the Destination is changing on a macro level based on game state.' items: $ref: '#/definitions/Destiny.Definitions.DestinyActivityGraphListEntryDefinition' type: array bubbleSettings: description: "A Destination may have many \"Bubbles\" zones with human readable properties.\r\nWe don't get as much info as I'd like about them - I'd love to return info like where on the map they are located - but at least this gives you the name of those bubbles. bubbleSettings and bubbles both have the identical number of entries, and you should match up their indexes to provide matching bubble and bubbleSettings data." items: $ref: '#/definitions/Destiny.Definitions.DestinyDestinationBubbleSettingDefinition' type: array bubbles: description: "This provides the unique identifiers for every bubble in the destination (only guaranteed unique within the destination), and any intrinsic properties of the bubble.\r\nbubbleSettings and bubbles both have the identical number of entries, and you should match up their indexes to provide matching bubble and bubbleSettings data." items: $ref: '#/definitions/Destiny.Definitions.DestinyBubbleDefinition' type: array defaultFreeroamActivityHash: description: 'If this Destination has a default Free-Roam activity, this is the hash for that Activity. Use it to look up the DestinyActivityDefintion.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityDefinition' displayProperties: $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer placeHash: description: The place that "owns" this Destination. Use this hash to look up the DestinyPlaceDefinition. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyPlaceDefinition' redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean type: object x-mobile-manifest-name: Destinations Destiny.Definitions.DestinyDisplayCategoryDefinition: description: 'Display Categories are different from "categories" in that these are specifically for visual grouping and display of categories in Vendor UI. The "categories" structure is for validation of the contained items, and can be categorized entirely separately from "Display Categories", there need be and often will be no meaningful relationship between the two.' properties: displayProperties: $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' identifier: description: A string identifier for the display category. type: string type: object Destiny.Definitions.DestinyEntitySearchResult: description: 'The results of a search for Destiny content. This will be improved on over time, I''ve been doing some experimenting to see what might be useful.' properties: results: allOf: - $ref: '#/definitions/SearchResultOfDestinyEntitySearchResultItem' description: 'The items found that are matches/near matches for the searched-for term, sorted by something vaguely resembling "relevance". Hopefully this will get better in the future.' type: object suggestedWords: description: 'A list of suggested words that might make for better search results, based on the text searched for.' items: type: string type: array type: object Destiny.Definitions.DestinyEntitySearchResultItem: description: An individual Destiny Entity returned from the entity search. properties: displayProperties: allOf: - $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' description: 'Basic display properties on the entity, so you don''t have to look up the definition to show basic results for the item.' type: object entityType: description: 'The type of entity, returned as a string matching the DestinyDefinition''s contract class name. You''ll have to have your own mapping from class names to actually looking up those definitions in the manifest databases.' type: string hash: description: The hash identifier of the entity. You will use this to look up the DestinyDefinition relevant for the entity found. format: uint32 type: integer weight: description: The ranking value for sorting that we calculated using our relevance formula. This will hopefully get better with time and iteration. format: double type: number type: object Destiny.Definitions.DestinyEquipmentSlotDefinition: description: "Characters can not only have Inventory buckets (containers of items that are generally matched by their type or functionality), they can also have Equipment Slots.\r\nThe Equipment Slot is an indicator that the related bucket can have instanced items equipped on the character. For instance, the Primary Weapon bucket has an Equipment Slot that determines whether you can equip primary weapons, and holds the association between its slot and the inventory bucket from which it can have items equipped.\r\nAn Equipment Slot must have a related Inventory Bucket, but not all inventory buckets must have Equipment Slots." properties: applyCustomArtDyes: description: 'If True, equipped items should have their custom art dyes applied when rendering the item. Otherwise, custom art dyes on an item should be ignored if the item is equipped in this slot.' type: boolean bucketTypeHash: description: The inventory bucket that owns this equipment slot. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryBucketDefinition' displayProperties: $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' equipmentCategoryHash: description: 'These technically point to "Equipment Category Definitions". But don''t get excited. There''s nothing of significant value in those definitions, so I didn''t bother to expose them. You can use the hash here to group equipment slots by common functionality, which serves the same purpose as if we had the Equipment Category definitions exposed.' format: uint32 type: integer hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean type: object Destiny.Definitions.DestinyEquippingBlockDefinition: description: Items that can be equipped define this block. It contains information we need to understand how and when the item can be equipped. properties: attributes: allOf: - $ref: '#/definitions/Destiny.EquippingItemBlockAttributes' description: "These are custom attributes on the equippability of the item.\r\nFor now, this can only be \"equip on acquire\", which would mean that the item will be automatically equipped as soon as you pick it up." type: object displayStrings: description: These are strings that represent the possible Game/Account/Character state failure conditions that can occur when trying to equip the item. They match up one-to-one with requiredUnlockExpressions. items: type: string type: array equipmentSlotTypeHash: description: An equipped item *must* be equipped in an Equipment Slot. This is the hash identifier of the DestinyEquipmentSlotDefinition into which it must be equipped. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyEquipmentSlotDefinition' gearsetItemHash: description: 'If the item is part of a gearset, this is a reference to that gearset item.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' uniqueLabel: description: "If defined, this is the label used to check if the item has other items of matching types already equipped. \r\nFor instance, when you aren't allowed to equip more than one Exotic Weapon, that's because all exotic weapons have identical uniqueLabels and the game checks the to-be-equipped item's uniqueLabel vs. all other already equipped items (other than the item in the slot that's about to be occupied)." type: string uniqueLabelHash: description: The hash of that unique label. Does not point to a specific definition. format: uint32 type: integer type: object Destiny.Definitions.DestinyFactionDefinition: description: "These definitions represent Factions in the game. Factions have ended up unilaterally being related to Vendors that represent them, but that need not necessarily be the case.\r\nA Faction is really just an entity that has a related progression for which a character can gain experience. In Destiny 1, Dead Orbit was an example of a Faction: there happens to be a Vendor that represents Dead Orbit (and indeed, DestinyVendorDefinition.factionHash defines to this relationship), but Dead Orbit could theoretically exist without the Vendor that provides rewards." properties: displayProperties: $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer progressionHash: description: The hash identifier for the DestinyProgressionDefinition that indicates the character's relationship with this faction in terms of experience and levels. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyProgressionDefinition' redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean type: object x-mobile-manifest-name: Factions Destiny.Definitions.DestinyGearArtArrangementReference: properties: artArrangementHash: format: uint32 type: integer classHash: format: uint32 type: integer type: object Destiny.Definitions.DestinyGenderDefinition: description: 'Gender is a social construct, and as such we have definitions for Genders. Right now there happens to only be two, but we''ll see what the future holds.' properties: displayProperties: $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' genderType: allOf: - $ref: '#/definitions/Destiny.DestinyGender' description: 'This is a quick reference enumeration for all of the currently defined Genders. We use the enumeration for quicker lookups in related data, like DestinyClassDefinition.genderedClassNames.' type: object hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean type: object x-mobile-manifest-name: Genders Destiny.Definitions.DestinyInventoryBucketDefinition: description: "An Inventory (be it Character or Profile level) is comprised of many Buckets. An example of a bucket is \"Primary Weapons\", where all of the primary weapons on a character are gathered together into a single visual element in the UI: a subset of the inventory that has a limited number of slots, and in this case also has an associated Equipment Slot for equipping an item in the bucket.\r\nItem definitions declare what their \"default\" bucket is (DestinyInventoryItemDefinition.inventory.bucketTypeHash), and Item instances will tell you which bucket they are currently residing in (DestinyItemComponent.bucketHash). You can use this information along with the DestinyInventoryBucketDefinition to show these items grouped by bucket.\r\nYou cannot transfer an item to a bucket that is not its Default without going through a Vendor's \"accepted items\" (DestinyVendorDefinition.acceptedItems). This is how transfer functionality like the Vault is implemented, as a feature of a Vendor. See the vendor's acceptedItems property for more details." properties: bucketOrder: description: Use this property to provide a quick-and-dirty recommended ordering for buckets in the UI. Most UIs will likely want to forsake this for something more custom and manual. format: int32 type: integer category: allOf: - $ref: '#/definitions/Destiny.BucketCategory' description: An enum value for what items can be found in the bucket. See the BucketCategory enum for more details. type: object displayProperties: $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' enabled: description: 'If True, this bucket is enabled. Disabled buckets may include buckets that were included for test purposes, or that were going to be used but then were abandoned but never removed from content *cough*.' type: boolean fifo: description: 'if a FIFO bucket fills up, it will delete the oldest item from said bucket when a new item tries to be added to it. If this is FALSE, the bucket will not allow new items to be placed in it until room is made by the user manually deleting items from it. You can see an example of this with the Postmaster''s bucket.' type: boolean hasTransferDestination: description: 'If TRUE, there is at least one Vendor that can transfer items to/from this bucket. See the DestinyVendorDefinition''s acceptedItems property for more information on how transferring works.' type: boolean hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer itemCount: description: "The maximum # of item \"slots\" in a bucket. A slot is a given combination of item + quantity.\r\nFor instance, a Weapon will always take up a single slot, and always have a quantity of 1. But a material could take up only a single slot with hundreds of quantity." format: int32 type: integer location: allOf: - $ref: '#/definitions/Destiny.ItemLocation' description: "Sometimes, inventory buckets represent conceptual \"locations\" in the game that might not be expected. This value indicates the conceptual location of the bucket, regardless of where it is actually contained on the character/account. \r\nSee ItemLocation for details. \r\nNote that location includes the Vault and the Postmaster (both of whom being just inventory buckets with additional actions that can be performed on them through a Vendor)" type: object redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean scope: allOf: - $ref: '#/definitions/Destiny.BucketScope' description: 'Where the bucket is found. 0 = Character, 1 = Account' type: object type: object x-mobile-manifest-name: InventoryBuckets Destiny.Definitions.DestinyInventoryItemDefinition: description: "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.\r\nIn 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." properties: action: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyItemActionBlockDefinition' description: '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)' type: object allowActions: description: 'BNet may forbid the execution of actions on this item via the API. If that is occurring, allowActions will be set to false.' type: boolean animations: description: 'If any animations were extracted from game content for this item, these will be the definitions of those animations.' items: $ref: '#/definitions/Destiny.Definitions.Animations.DestinyAnimationReference' type: array classType: allOf: - $ref: '#/definitions/Destiny.DestinyClass' description: "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.\r\nIf you see a mis-classed item, please inform the developers in the Bungie API forum." type: object damageTypeHashes: description: '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.' items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyDamageTypeDefinition' damageTypes: description: "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.\r\nThis damage type prediction will only use the following to determine potential damage types:\r\n- Intrinsic perks\r\n- Talent Node perks\r\n- Known, reusable plugs for sockets" items: $ref: '#/definitions/Destiny.DamageType' type: array defaultDamageType: allOf: - $ref: '#/definitions/Destiny.DamageType' description: "If the item has a damage type that could be considered to be default, it will be populated here.\r\nFor various upsetting reasons, it's surprisingly cumbersome to figure this out. I hope you're happy." type: object defaultDamageTypeHash: description: "Similar to defaultDamageType, but represented as the hash identifier for a DestinyDamageTypeDefinition.\r\nI will likely regret leaving in the enumeration versions of these properties, but for now they're very convenient." format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyDamageTypeDefinition' displayProperties: $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' displaySource: description: '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.' type: string equippable: description: "If true, then you will be allowed to equip the item if you pass its other requirements.\r\nThis being false means that you cannot equip the item under any circumstances." type: boolean equippingBlock: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyEquippingBlockDefinition' description: '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.' type: object gearset: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyItemGearsetBlockDefinition' description: 'If this item has related items in a "Gear Set", this will be non-null and the relationships defined herein.' type: object hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer inventory: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyItemInventoryBlockDefinition' description: '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.' type: object investmentStats: description: '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.' items: $ref: '#/definitions/Destiny.Definitions.DestinyItemInvestmentStatDefinition' type: array itemCategoryHashes: description: "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...)\r\nThe algorithm for these is, unfortunately, volatile. If you believe you see a miscategorized item, please let us know on the Bungie API forums." items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyItemCategoryDefinition' itemSubType: allOf: - $ref: '#/definitions/Destiny.DestinyItemSubType' description: "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\".\r\nitemCategoryHashes are the preferred way of identifying types, we have retained this enum for its convenience." type: object itemType: allOf: - $ref: '#/definitions/Destiny.DestinyItemType' description: "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.\r\nitemCategoryHashes are the preferred way of identifying types, we have retained this enum for its convenience." type: object itemTypeAndTierDisplayName: description: 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. type: string itemTypeDisplayName: description: 'The localized title/name of the item''s type. This can be whatever the designers want, and has no guarantee of consistency between items.' type: string links: description: 'If we added any help or informational URLs about this item, these will be those links.' items: $ref: '#/definitions/Links.HyperlinkReference' type: array loreHash: description: 'If the item has any related Lore (DestinyLoreDefinition), this will be the hash identifier you can use to look up the lore definition.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.Lore.DestinyLoreDefinition' nonTransferrable: description: "The intrinsic transferability of an item.\r\nI hate that this boolean is negative - but there's a reason.\r\nJust 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." type: boolean objectives: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyItemObjectiveBlockDefinition' description: '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.' type: object perks: description: 'If the item has any *intrinsic* Perks (Perks that it will provide regardless of Sockets, Talent Grid, and other transitory state), they will be defined here.' items: $ref: '#/definitions/Destiny.Definitions.DestinyItemPerkEntryDefinition' type: array plug: allOf: - $ref: '#/definitions/Destiny.Definitions.Items.DestinyItemPlugDefinition' description: 'If this item *is* a Plug, this will be non-null and the info defined herein. See DestinyItemPlugDefinition for more information.' type: object preview: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyItemPreviewBlockDefinition' description: '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.' type: object quality: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyItemQualityBlockDefinition' description: '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.' type: object redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean sack: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyItemSackBlockDefinition' description: '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.' type: object screenshot: description: '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.' type: string secondaryIcon: description: 'A secondary icon associated with the item. Currently this is used in very context specific applications, such as Emblem Nameplates.' type: string secondaryOverlay: description: '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.' type: string secondarySpecial: description: '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.' type: string setData: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyItemSetBlockDefinition' description: 'If this item is a quest, this block will be non-null. In practice, I wish I had called this the Quest block, 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.' type: object sockets: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyItemSocketBlockDefinition' description: 'If this item has any Sockets, this will be non-null and the individual sockets on the item will be defined herein.' type: object sourceData: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyItemSourceBlockDefinition' description: '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.' type: object specialItemType: allOf: - $ref: '#/definitions/Destiny.SpecialItemType' description: '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.' type: object stats: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyItemStatBlockDefinition' description: '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.' type: object summary: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyItemSummaryBlockDefinition' description: Summary data about the item. type: object summaryItemHash: description: "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.\r\nThis happens sometimes when summarizing possible rewards in a tooltip. This is the item displayed instead, if it exists." format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' talentGrid: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyItemTalentGridBlockDefinition' description: '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.' type: object tooltipStyle: description: '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).' type: string translationBlock: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyItemTranslationBlockDefinition' description: 'If this item can be rendered, this block will be non-null and will be populated with rendering information.' type: object value: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyItemValueBlockDefinition' description: 'The conceptual "Value" of an item, if any was defined. See the DestinyItemValueBlockDefinition for more details.' type: object type: object x-mobile-manifest-name: Items Destiny.Definitions.DestinyInventoryItemStatDefinition: description: "Defines a specific stat value on an item, and the minimum/maximum range that we could compute for the item based on our heuristics for how the item might be generated.\r\nNot guaranteed to match real-world instances of the item, but should hopefully at least be close. If it's not close, let us know on the Bungie API forums." properties: maximum: description: The maximum possible value for this stat that we think the item can roll. format: int32 type: integer minimum: description: The minimum possible value for this stat that we think the item can roll. format: int32 type: integer statHash: description: The hash for the DestinyStatDefinition representing this stat. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyStatDefinition' value: description: "This value represents the stat value assuming the minimum possible roll but accounting for any mandatory bonuses that should be applied to the stat on item creation.\r\nIn Destiny 1, this was different from the \"minimum\" value because there were certain conditions where an item could be theoretically lower level/value than the initial roll. \r\nIn Destiny 2, this is not possible unless Talent Grids begin to be used again for these purposes or some other system change occurs... thus in practice, value and minimum should be the same in Destiny 2. Good riddance." format: int32 type: integer type: object Destiny.Definitions.DestinyItemActionBlockDefinition: description: 'If an item can have an action performed on it (like "Dismantle"), it will be defined here if you care.' properties: actionTypeLabel: description: The internal identifier for the action. type: string consumeEntireStack: description: 'If true, the entire stack is deleted when the action completes.' type: boolean deleteOnAction: description: 'If true, the item is deleted when the action completes.' type: boolean isPositive: description: 'The content has this property, however it''s not entirely clear how it is used.' type: boolean overlayIcon: description: 'The icon associated with the overlay screen for the action, if any.' type: string overlayScreenName: description: 'If the action has an overlay screen associated with it, this is the name of that screen. Unfortunately, we cannot return the screen''s data itself.' type: string progressionRewards: description: 'If performing this action earns you Progression, this is the list of progressions and values granted for those progressions by performing this action.' items: $ref: '#/definitions/Destiny.Definitions.DestinyProgressionRewardDefinition' type: array requiredCooldownHash: description: The identifier hash for the Cooldown associated with this action. We have not pulled this data yet for you to have more data to use for cooldowns. format: uint32 type: integer requiredCooldownSeconds: description: The number of seconds to delay before allowing this action to be performed again. format: int32 type: integer requiredItems: description: 'If the action requires other items to exist or be destroyed, this is the list of those items and requirements.' items: $ref: '#/definitions/Destiny.Definitions.DestinyItemActionRequiredItemDefinition' type: array requiredLocation: description: 'Theoretically, an item could have a localized string for a hint about the location in which the action should be performed. In practice, no items yet have this property.' type: string useOnAcquire: description: 'If true, this action will be performed as soon as you earn this item. Some rewards work this way, providing you a single item to pick up from a reward-granting vendor in-game and then immediately consuming itself to provide you multiple items.' type: boolean verbDescription: description: Localized text describing the action being performed. type: string verbName: description: Localized text for the verb of the action being performed. type: string type: object Destiny.Definitions.DestinyItemActionRequiredItemDefinition: description: The definition of an item and quantity required in a character's inventory in order to perform an action. properties: count: description: The minimum quantity of the item you have to have. format: int32 type: integer deleteOnAction: description: 'If true, the item/quantity will be deleted from your inventory when the action is performed. Otherwise, you''ll retain these required items after the action is complete.' type: boolean itemHash: description: The hash identifier of the item you need to have. Use it to look up the DestinyInventoryItemDefinition for more info. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' type: object Destiny.Definitions.DestinyItemCategoryDefinition: description: "In an attempt to categorize items by type, usage, and other interesting properties, we created DestinyItemCategoryDefinition: information about types that is assembled using a set of heuristics that examine the properties of an item such as what inventory bucket it's in, its item type name, and whether it has or is missing certain blocks of data.\r\nThis heuristic is imperfect, however. If you find an item miscategorized, let us know on the Bungie API forums!\r\nWe then populate all of the categories that we think an item belongs to in its DestinyInventoryItemDefinition.itemCategoryHashes property. You can use that to provide your own custom item filtering, sorting, aggregating... go nuts on it! And let us know if you see more categories that you wish would be added!" properties: displayProperties: $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' grantDestinyClass: allOf: - $ref: '#/definitions/Destiny.DestinyClass' description: "If an item belongs to this category, it will also get this class restriction enum value.\r\nSee the other \"grant\"-prefixed properties on this definition for my color commentary." type: object grantDestinyItemType: allOf: - $ref: '#/definitions/Destiny.DestinyItemType' description: 'If an item belongs to this category, it will also receive this item type. This is now how DestinyItemType is populated for items: it used to be an even jankier process, but that''s a story that requires more alcohol.' type: object grantDestinySubType: allOf: - $ref: '#/definitions/Destiny.DestinyItemSubType' description: "If an item belongs to this category, it will also receive this subtype enum value.\r\nI know what you're thinking - what if it belongs to multiple categories that provide sub-types?\r\nThe last one processed wins, as is the case with all of these \"grant\" enums. Now you can see one reason why we moved away from these enums... but they're so convenient when they work, aren't they?" type: object groupedCategoryHashes: description: "If this category is a \"parent\" category of other categories, those children will have their hashes listed in rendering order here, and can be looked up using these hashes against DestinyItemCategoryDefinition.\r\nIn this way, you can build up a visual hierarchy of item categories. That's what we did, and you can do it too. I believe in you. Yes, you, Carl.\r\n(I hope someone named Carl reads this someday)" items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyItemCategoryDefinition' hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer itemTypeRegex: description: The janky regular expression we used against the item type to try and discern whether the item belongs to this category. type: string itemTypeRegexNot: description: 'If the item type matches this janky regex, it does *not* belong to this category.' type: string originBucketIdentifier: description: 'If the item belongs to this bucket, it does belong to this category.' type: string redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean shortTitle: description: 'A shortened version of the title. The reason why we have this is because the Armory in German had titles that were too long to display in our UI, so these were localized abbreviated versions of those categories. The property still exists today, even though the Armory doesn''t exist for D2... yet.' type: string visible: description: 'If True, this category should be visible in UI. Sometimes we make categories that we don''t think are interesting externally. It''s up to you if you want to skip on showing them.' type: boolean type: object x-mobile-manifest-name: ItemCategories Destiny.Definitions.DestinyItemCreationEntryLevelDefinition: description: An overly complicated wrapper for the item level at which the item should spawn. properties: level: format: int32 type: integer type: object Destiny.Definitions.DestinyItemGearsetBlockDefinition: description: 'If an item has a related gearset, this is the list of items in that set, and an unlock expression that evaluates to a number representing the progress toward gearset completion (a very rare use for unlock expressions!)' properties: itemList: description: The list of hashes for items in the gearset. Use them to look up DestinyInventoryItemDefinition entries for the items in the set. items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' trackingValueMax: description: The maximum possible number of items that can be collected. format: int32 type: integer type: object Destiny.Definitions.DestinyItemInventoryBlockDefinition: description: If the item can exist in an inventory - the overwhelming majority of them can and do - then this is the basic properties regarding the item's relationship with the inventory. properties: bucketTypeHash: description: 'The hash identifier for the DestinyInventoryBucketDefinition to which this item belongs. I should have named this "bucketHash", but too many things refer to it now. Sigh.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryBucketDefinition' isInstanceItem: description: 'If TRUE, this item is instanced. Otherwise, it is a generic item that merely has a quantity in a stack (like Glimmer).' type: boolean maxStackSize: description: The maximum quantity of this item that can exist in a stack. format: int32 type: integer recoveryBucketTypeHash: description: 'If the item is picked up by the lost loot queue, this is the hash identifier for the DestinyInventoryBucketDefinition into which it will be placed. Again, I should have named this recoveryBucketHash instead.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryBucketDefinition' stackUniqueLabel: description: 'If this string is populated, you can''t have more than one stack with this label in a given inventory. Note that this is different from the equipping block''s unique label, which is used for equipping uniqueness.' type: string tierType: allOf: - $ref: '#/definitions/Destiny.TierType' description: 'The enumeration matching the tier type of the item to known values, again for convenience sake.' type: object tierTypeHash: description: 'The hash identifier for the Tier Type of the item, use to look up its DestinyItemTierTypeDefinition if you need to show localized data for the item''s tier.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.Items.DestinyItemTierTypeDefinition' tierTypeName: description: 'The localized name of the tier type, which is a useful shortcut so you don''t have to look up the definition every time. However, it''s mostly a holdover from days before we had a DestinyItemTierTypeDefinition to refer to.' type: string type: object Destiny.Definitions.DestinyItemInvestmentStatDefinition: description: "Represents a \"raw\" investment stat, before calculated stats are calculated and before any DestinyStatGroupDefinition is applied to transform the stat into something closer to what you see in-game.\r\nBecause these won't match what you see in-game, consider carefully whether you really want to use these stats. I have left them in case someone can do something useful or interesting with the pre-processed statistics." properties: statTypeHash: description: The hash identifier for the DestinyStatDefinition defining this stat. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyStatDefinition' value: description: 'The raw "Investment" value for the stat, before transformations are performed to turn this raw stat into stats that are displayed in the game UI.' format: int32 type: integer type: object Destiny.Definitions.DestinyItemObjectiveBlockDefinition: description: "An item can have objectives on it. In practice, these are the exclusive purview of \"Quest Step\" items: DestinyInventoryItemDefinitions that represent a specific step in a Quest.\r\nQuest steps have 1:M objectives that we end up processing and returning in live data as DestinyQuestStatus data, and other useful information." properties: displayActivityHashes: description: 'For every entry in objectiveHashes, there is a corresponding entry in this array at the same index. If the objective is meant to be associated with a specific DestinyActivityDefinition, there will be a valid hash at that index. Otherwise, it will be invalid (0).' items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityDefinition' narrative: description: 'The localized string for narrative text related to this quest step, if any.' type: string objectiveHashes: description: 'The hashes to Objectives (DestinyObjectiveDefinition) that are part of this Quest Step, in the order that they should be rendered.' items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyObjectiveDefinition' objectiveVerbName: description: 'The localized string describing an action to be performed associated with the objectives, if any.' type: string questTypeHash: description: 'A hashed value for the questTypeIdentifier, because apparently I like to be redundant.' format: uint32 type: integer questTypeIdentifier: description: 'The identifier for the type of quest being performed, if any. Not associated with any fixed definition, yet.' type: string questlineItemHash: description: The hash for the DestinyInventoryItemDefinition representing the Quest to which this Quest Step belongs. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' requireFullObjectiveCompletion: description: 'If True, all objectives must be completed for the step to be completed. If False, any one objective can be completed for the step to be completed.' type: boolean type: object Destiny.Definitions.DestinyItemPerkEntryDefinition: description: 'An intrinsic perk on an item, and the requirements for it to be activated.' properties: perkHash: description: A hash identifier for the DestinySandboxPerkDefinition being provided on the item. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinySandboxPerkDefinition' requirementDisplayString: description: 'If this perk is not active, this is the string to show for why it''s not providing its benefits.' type: string type: object Destiny.Definitions.DestinyItemPreviewBlockDefinition: description: "Items like Sacks or Boxes can have items that it shows in-game when you view details that represent the items you can obtain if you use or acquire the item.\r\nThis defines those categories, and gives some insights into that data's source." properties: derivedItemCategories: description: 'This is a list of the items being previewed, categorized in the same way as they are in the preview UI.' items: $ref: '#/definitions/Destiny.Definitions.Items.DestinyDerivedItemCategoryDefinition' type: array previewActionString: description: 'If the preview has an associated action (like "Open"), this will be the localized string for that action.' type: string previewVendorHash: description: 'If the preview data is derived from a fake "Preview" Vendor, this will be the hash identifier for the DestinyVendorDefinition of that fake vendor.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyVendorDefinition' type: object Destiny.Definitions.DestinyItemQualityBlockDefinition: description: "An item's \"Quality\" determines its calculated stats. The Level at which the item spawns is combined with its \"qualityLevel\" along with some additional calculations to determine the value of those stats.\r\nIn Destiny 2, most items don't have default item levels and quality, making this property less useful: these apparently are almost always determined by the complex mechanisms of the Reward system rather than statically. They are still provided here in case they are still useful for people. This also contains some information about Infusion." properties: infusionCategoryHash: description: The hash identifier for the infusion. It does not map to a Definition entity. format: uint32 type: integer infusionCategoryName: description: "The string identifier for this item's \"infusability\", if any. \r\nItems that match the same infusionCategoryName are allowed to infuse with each other." type: string itemLevels: description: "The \"base\" defined level of an item. This is a list because, in theory, each Expansion could define its own base level for an item.\r\nIn practice, not only was that never done in Destiny 1, but now this isn't even populated at all. When it's not populated, the level at which it spawns has to be inferred by Reward information, of which BNet receives an imperfect view and will only be reliable on instanced data as a result." items: format: int32 type: integer type: array progressionLevelRequirementHash: description: 'An item can refer to pre-set level requirements. They are defined in DestinyProgressionLevelRequirementDefinition, and you can use this hash to find the appropriate definition.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.Progression.DestinyProgressionLevelRequirementDefinition' qualityLevel: description: 'qualityLevel is used in combination with the item''s level to calculate stats like Attack and Defense. It plays a role in that calculation, but not nearly as large as itemLevel does.' format: int32 type: integer type: object Destiny.Definitions.DestinyItemSackBlockDefinition: description: 'Some items are "sacks" - they can be "opened" to produce other items. This is information related to its sack status, mostly UI strings. Engrams are an example of items that are considered to be "Sacks".' properties: detailAction: description: 'A description of what will happen when you open the sack. As far as I can tell, this is blank currently. Unknown whether it will eventually be populated with useful info.' type: string openAction: description: The localized name of the action being performed when you open the sack. type: string selectItemCount: format: int32 type: integer vendorSackType: type: string type: object Destiny.Definitions.DestinyItemSetBlockDefinition: description: 'Primarily for Quests, this is the definition of properties related to the item if it is a quest and its various quest steps.' properties: itemList: description: 'A collection of hashes of set items, for items such as Quest Metadata items that possess this data.' items: $ref: '#/definitions/Destiny.Definitions.DestinyItemSetBlockEntryDefinition' type: array requireOrderedSetItemAdd: description: 'If true, items in the set can only be added in increasing order, and adding an item will remove any previous item. For Quests, this is by necessity true. Only one quest step is present at a time, and previous steps are removed as you advance in the quest.' type: boolean setIsFeatured: description: 'If true, the UI should treat this quest as "featured"' type: boolean setType: description: A string identifier we can use to attempt to identify the category of the Quest. type: string type: object Destiny.Definitions.DestinyItemSetBlockEntryDefinition: description: Defines a particular entry in an ItemSet (AKA a particular Quest Step in a Quest) properties: itemHash: description: This is the hash identifier for a DestinyInventoryItemDefinition representing this quest step. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' trackingValue: description: 'Used for tracking which step a user reached. These values will be populated in the user''s internal state, which we expose externally as a more usable DestinyQuestStatus object. If this item has been obtained, this value will be set in trackingUnlockValueHash.' format: int32 type: integer type: object Destiny.Definitions.DestinyItemSocketBlockDefinition: description: 'If defined, the item has at least one socket.' properties: detail: description: 'This was supposed to be a string that would give per-item details about sockets. In practice, it turns out that all this ever has is the localized word "details". ... that''s lame, but perhaps it will become something cool in the future.' type: string socketCategories: description: 'A convenience property, that refers to the sockets in the "sockets" property, pre-grouped by category and ordered in the manner that they should be grouped in the UI. You could form this yourself with the existing data, but why would you want to? Enjoy life man.' items: $ref: '#/definitions/Destiny.Definitions.DestinyItemSocketCategoryDefinition' type: array socketEntries: description: Each socket on an item is defined here. Check inside for more info. items: $ref: '#/definitions/Destiny.Definitions.DestinyItemSocketEntryDefinition' type: array type: object Destiny.Definitions.DestinyItemSocketCategoryDefinition: description: Sockets are grouped into categories in the UI. These define which category and which sockets are under that category. properties: socketCategoryHash: description: 'The hash for the Socket Category: a quick way to go get the header display information for the category. Use it to look up DestinySocketCategoryDefinition info.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.Sockets.DestinySocketCategoryDefinition' socketIndexes: description: 'Use these indexes to look up the sockets in the "sockets.socketEntries" property on the item definition. These are the indexes under the category, in game-rendered order.' items: format: int32 type: integer type: array type: object Destiny.Definitions.DestinyItemSocketEntryDefinition: description: The definition information for a specific socket on an item. This will determine how the socket behaves in-game. properties: reusablePlugItems: description: "This is a list of pre-determined plugs that can *always* be plugged into this socket, without the character having the plug in their inventory.\r\nIf this list is populated, you will not be allowed to plug an arbitrary item in the socket: you will only be able to choose from one of these reusable plugs." items: $ref: '#/definitions/Destiny.Definitions.DestinyItemSocketEntryPlugItemDefinition' type: array singleInitialItemHash: description: 'If a valid hash, this is the hash identifier for the DestinyInventoryItemDefinition representing the Plug that will be initially inserted into the item on item creation. Otherwise, this Socket will either start without a plug inserted, or will have one randomly inserted.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' socketTypeHash: description: 'All sockets have a type, and this is the hash identifier for this particular type. Use it to look up the DestinySocketTypeDefinition: read there for more information on how socket types affect the behavior of the socket.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.Sockets.DestinySocketTypeDefinition' type: object Destiny.Definitions.DestinyItemSocketEntryPlugItemDefinition: description: 'The definition of a known, reusable plug that can be applied to a socket.' properties: plugItemHash: description: The hash identifier of a DestinyInventoryItemDefinition representing the plug that can be inserted. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' type: object Destiny.Definitions.DestinyItemSourceBlockDefinition: description: 'Data about an item''s "sources": ways that the item can be obtained.' properties: exclusive: allOf: - $ref: '#/definitions/BungieMembershipType' description: 'If we found that this item is exclusive to a specific platform, this will be set to the BungieMembershipType enumeration that matches that platform.' type: object sourceHashes: description: The list of hash identifiers for Reward Sources that hint where the item can be found (DestinyRewardSourceDefinition). items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyRewardSourceDefinition' sources: description: A collection of details about the stats that were computed for the ways we found that the item could be spawned. items: $ref: '#/definitions/Destiny.Definitions.Sources.DestinyItemSourceDefinition' type: array type: object Destiny.Definitions.DestinyItemStatBlockDefinition: description: "Information about the item's calculated stats, with as much data as we can find for the stats without having an actual instance of the item.\r\nNote that this means the entire concept of providing these stats is fundamentally insufficient: we cannot predict with 100% accuracy the conditions under which an item can spawn, so we use various heuristics to attempt to simulate the conditions as accurately as possible. Actual stats for items in-game can and will vary, but these should at least be useful base points for comparison and display.\r\nIt is also worth noting that some stats, like Magazine size, have further calculations performed on them by scripts in-game and on the game servers that BNet does not have access to. We cannot know how those stats are further transformed, and thus some stats will be inaccurate even on instances of items in BNet vs. how they appear in-game. This is a known limitation of our item statistics, without any planned fix." properties: hasDisplayableStats: description: 'A quick and lazy way to determine whether any stat other than the "primary" stat is actually visible on the item. Items often have stats that we return in case people find them useful, but they''re not part of the "Stat Group" and thus we wouldn''t display them in our UI. If this is False, then we''re not going to display any of these stats other than the primary one.' type: boolean primaryBaseStatHash: description: "This stat is determined to be the \"primary\" stat, and can be looked up in the stats or any other stat collection related to the item.\r\nUse this hash to look up the stat's value using DestinyInventoryItemDefinition.stats.stats, and the renderable data for the primary stat in the related DestinyStatDefinition." format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyStatDefinition' statGroupHash: description: "If the item's stats are meant to be modified by a DestinyStatGroupDefinition, this will be the identifier for that definition.\r\nIf you are using live data or precomputed stats data on the DestinyInventoryItemDefinition.stats.stats property, you don't have to worry about statGroupHash and how it alters stats: the already altered stats are provided to you. But if you want to see how the sausage gets made, or perform computations yourself, this is valuable information." format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyStatGroupDefinition' stats: additionalProperties: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemStatDefinition' description: "If you are looking for precomputed values for the stats on a weapon, this is where they are stored. Technically these are the \"Display\" stat values. Please see DestinyStatsDefinition for what Display Stat Values means, it's a very long story... but essentially these are the closest values BNet can get to the item stats that you see in-game.\r\nThese stats are keyed by the DestinyStatDefinition's hash identifier for the stat that's found on the item." type: object x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyStatDefinition' type: object Destiny.Definitions.DestinyItemSummaryBlockDefinition: description: This appears to be information used when rendering rewards. We don't currently use it on BNet. properties: sortPriority: description: 'Apparently when rendering an item in a reward, this should be used as a sort priority. We''re not doing it presently.' format: int32 type: integer type: object Destiny.Definitions.DestinyItemTalentGridBlockDefinition: description: "This defines information that can only come from a talent grid on an item. Items mostly have negligible talent grid data these days, but instanced items still retain grids as a source for some of this common information.\r\nBuilds/Subclasses are the only items left that still have talent grids with meaningful Nodes." properties: buildName: description: 'A shortcut string identifier for the "build" in question, if this talent grid has an associated build. Doesn''t map to anything we can expose at the moment.' type: string hudDamageType: allOf: - $ref: '#/definitions/Destiny.DamageType' description: 'If the talent grid implies a damage type, this is the enum value for that damage type.' type: object hudIcon: description: 'If the talent grid has a special icon that''s shown in the game UI (like builds, funny that), this is the identifier for that icon. Sadly, we don''t actually get that icon right now. I''ll be looking to replace this with a path to the actual icon itself.' type: string itemDetailString: description: 'This is meant to be a subtitle for looking at the talent grid. In practice, somewhat frustratingly, this always merely says the localized word for "Details". Great. Maybe it''ll have more if talent grids ever get used for more than builds and subclasses again.' type: string talentGridHash: description: The hash identifier of the DestinyTalentGridDefinition attached to this item. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyTalentGridDefinition' type: object Destiny.Definitions.DestinyItemTranslationBlockDefinition: description: 'This Block defines the rendering data associated with the item, if any.' properties: arrangements: items: $ref: '#/definitions/Destiny.Definitions.DestinyGearArtArrangementReference' type: array customDyes: items: $ref: '#/definitions/Destiny.DyeReference' type: array defaultDyes: items: $ref: '#/definitions/Destiny.DyeReference' type: array hasGeometry: type: boolean lockedDyes: items: $ref: '#/definitions/Destiny.DyeReference' type: array weaponPatternHash: format: uint32 type: integer weaponPatternIdentifier: type: string type: object Destiny.Definitions.DestinyItemValueBlockDefinition: description: "This defines an item's \"Value\". Unfortunately, this appears to be used in different ways depending on the way that the item itself is used.\r\nFor items being sold at a Vendor, this is the default \"sale price\" of the item. These days, the vendor itself almost always sets the price, but it still possible for the price to fall back to this value. For quests, it is a preview of rewards you can gain by completing the quest. For dummy items, if the itemValue refers to an Emblem, it is the emblem that should be shown as the reward. (jeez louise)\r\nIt will likely be used in a number of other ways in the future, it appears to be a bucket where they put arbitrary items and quantities into the item." properties: itemValue: description: 'References to the items that make up this item''s "value", and the quantity.' items: $ref: '#/definitions/Destiny.DestinyItemQuantity' type: array valueDescription: description: 'If there''s a localized text description of the value provided, this will be said description.' type: string type: object Destiny.Definitions.DestinyLocationDefinition: description: "A \"Location\" is a sort of shortcut for referring to a specific combination of Activity, Destination, Place, and even Bubble or NavPoint within a space.\r\nMost of this data isn't intrinsically useful to us, but Objectives refer to locations, and through that we can at least infer the Activity, Destination, and Place being referred to by the Objective." properties: hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer locationReleases: description: 'A Location may refer to different specific spots in the world based on the world''s current state. This is a list of those potential spots, and the data we can use at runtime to determine which one of the spots is the currently valid one.' items: $ref: '#/definitions/Destiny.Definitions.DestinyLocationReleaseDefinition' type: array redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean vendorHash: description: 'If the location has a Vendor on it, this is the hash identifier for that Vendor. Look them up with DestinyVendorDefinition.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyVendorDefinition' type: object x-mobile-manifest-name: Locations Destiny.Definitions.DestinyLocationReleaseDefinition: description: A specific "spot" referred to by a location. Only one of these can be active at a time for a given Location. properties: activityBubbleName: description: The Activity Bubble within the Destination. Look this up in the DestinyDestinationDefinition's bubbles and bubbleSettings properties. format: uint32 type: integer activityGraphHash: description: The Activity Graph being pointed to by this location. format: uint32 type: integer activityGraphNodeHash: description: 'The Activity Graph Node being pointed to by this location. (Remember that Activity Graph Node hashes are only unique within an Activity Graph: so use the combination to find the node being spoken of)' format: uint32 type: integer activityHash: description: The Activity being pointed to by this location. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityDefinition' activityPathBundle: description: 'If we had map information, this would tell us something cool about the path this location wants you to take. I wish we had map information.' format: uint32 type: integer activityPathDestination: description: 'If we had map information, this would tell us about path information related to destination on the map. Sad. Maybe you can do something cool with it. Go to town man.' format: uint32 type: integer destinationHash: description: The Destination being pointed to by this location. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyDestinationDefinition' displayProperties: allOf: - $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' description: 'Sadly, these don''t appear to be populated anymore (ever?)' type: object navPointType: allOf: - $ref: '#/definitions/Destiny.DestinyActivityNavPointType' description: The type of Nav Point that this represents. See the enumeration for more info. type: object spawnPoint: description: 'If we had map information, this spawnPoint would be interesting. But sadly, we don''t have that info.' format: uint32 type: integer worldPosition: description: 'Looks like it should be the position on the map, but sadly it does not look populated... yet?' items: format: int32 type: integer type: array type: object Destiny.Definitions.DestinyMaterialRequirement: description: 'Many actions relating to items require you to expend materials: - Activating a talent node - Inserting a plug into a socket The items will refer to material requirements by a materialRequirementsHash in these cases, and this is the definition for those requirements in terms of the item required, how much of it is required and other interesting info. This is one of the rare/strange times where a single contract class is used both in definitions *and* in live data response contracts. I''m not sure yet whether I regret that.' properties: count: description: The amount of the material required. format: int32 type: integer deleteOnAction: description: 'If True, the material will be removed from the character''s inventory when the action is performed.' type: boolean itemHash: description: The hash identifier of the material required. Use it to look up the material's DestinyInventoryItemDefinition. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' omitFromRequirements: description: 'If True, this requirement is "silent": don''t bother showing it in a material requirements display. I mean, I''m not your mom: I''m not going to tell you you *can''t* show it. But we won''t show it in our UI.' type: boolean type: object Destiny.Definitions.DestinyMaterialRequirementSetDefinition: description: "Represent a set of material requirements: Items that either need to be owned or need to be consumed in order to perform an action.\r\nA variety of other entities refer to these as gatekeepers and payments for actions that can be performed in game." properties: hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer materials: description: The list of all materials that are required. items: $ref: '#/definitions/Destiny.Definitions.DestinyMaterialRequirement' type: array redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean type: object Destiny.Definitions.DestinyNodeActivationRequirement: description: "Talent nodes have requirements that must be met before they can be activated.\r\nThis describes the material costs, the Level of the Talent Grid's progression required, and other conditional information that limits whether a talent node can be activated." properties: gridLevel: description: "The Progression level on the Talent Grid required to activate this node.\r\nSee DestinyTalentGridDefinition.progressionHash for the related Progression, and read DestinyProgressionDefinition's documentation to learn more about Progressions." format: int32 type: integer materialRequirementHashes: description: "The list of hash identifiers for material requirement sets: materials that are required for the node to be activated. See DestinyMaterialRequirementSetDefinition for more information about material requirements.\r\nIn this case, only a single DestinyMaterialRequirementSetDefinition will be chosen from this list, and we won't know which one will be chosen until an instance of the item is created." items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyMaterialRequirementSetDefinition' type: object Destiny.Definitions.DestinyNodeSocketReplaceResponse: description: 'This is a bit of an odd duck. Apparently, if talent nodes steps have this data, the game will go through on step activation and alter the first Socket it finds on the item that has a type matching the given socket type, inserting the indicated plug item.' properties: plugItemHash: description: The hash identifier of the plug item that will be inserted into the socket found. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' socketTypeHash: description: The hash identifier of the socket type to find amidst the item's sockets (the item to which this talent grid is attached). See DestinyInventoryItemDefinition.sockets.socketEntries to find the socket type of sockets on the item in question. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.Sockets.DestinySocketTypeDefinition' type: object Destiny.Definitions.DestinyNodeStepDefinition: description: "This defines the properties of a \"Talent Node Step\". When you see a talent node in game, the actual visible properties that you see (its icon, description, the perks and stats it provides) are not provided by the Node itself, but rather by the currently active Step on the node.\r\nWhen a Talent Node is activated, the currently active step's benefits are conferred upon the item and character.\r\nThe currently active step on talent nodes are determined when an item is first instantiated. Sometimes it is random, sometimes it is more deterministic (particularly when a node has only a single step).\r\nNote that, when dealing with Talent Node Steps, you must ensure that you have the latest version of content. stepIndex and nodeStepHash - two ways of identifying the step within a node - are both content version dependent, and thus are subject to change between content updates." properties: activationRequirement: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyNodeActivationRequirement' description: 'If the step has requirements for activation (they almost always do, if nothing else than for the Talent Grid''s Progression to have reached a certain level), they will be defined here.' type: object affectsLevel: description: 'If true, this step can affect the level of the item. See DestinyInventoryItemDefintion for more information about item levels and their effect on stats.' type: boolean affectsQuality: description: 'If this is true, the step affects the item''s Quality in some way. See DestinyInventoryItemDefinition for more information about the meaning of Quality. I already made a joke about Zen and the Art of Motorcycle Maintenance elsewhere in the documentation, so I will avoid doing it again. Oops too late' type: boolean canActivateNextStep: description: "There was a time when talent nodes could be activated multiple times, and the effects of subsequent Steps would be compounded on each other, essentially \"upgrading\" the node. We have moved away from this, but theoretically the capability still exists.\r\nI continue to return this in case it is used in the future: if true and this step is the current step in the node, you are allowed to activate the node a second time to receive the benefits of the next step in the node, which will then become the active step." type: boolean damageType: allOf: - $ref: '#/definitions/Destiny.DamageType' description: 'An enum representing a damage type granted by activating this step, if any.' type: object damageTypeHash: description: 'If the step provides a damage type, this will be the hash identifier used to look up the damage type''s DestinyDamageTypeDefinition.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyDamageTypeDefinition' displayProperties: allOf: - $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' description: These are the display properties actually used to render the Talent Node. The currently active step's displayProperties are shown. type: object interactionDescription: description: 'If you can interact with this node in some way, this is the localized description of that interaction.' type: string isNextStepRandom: description: 'If true, the next step to be chosen is random, and if you''re allowed to activate the next step. (if canActivateNextStep = true)' type: boolean nextStepIndex: description: "The stepIndex of the next step in the talent node, or -1 if this is the last step or if the next step to be chosen is random.\r\nThis doesn't really matter anymore unless canActivateNextStep begins to be used again." format: int32 type: integer nodeStepHash: description: 'The hash of this node step. Unfortunately, while it can be used to uniquely identify the step within a node, it is also content version dependent and should not be relied on without ensuring you have the latest vesion of content.' format: uint32 type: integer perkHashes: description: The list of hash identifiers for Perks (DestinySandboxPerkDefinition) that are applied when this step is active. Perks provide a variety of benefits and modifications - examine DestinySandboxPerkDefinition to learn more. items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinySandboxPerkDefinition' socketReplacements: description: 'If this step is activated, this will be a list of information used to replace socket items with new Plugs. See DestinyInventoryItemDefinition for more information about sockets and plugs.' items: $ref: '#/definitions/Destiny.Definitions.DestinyNodeSocketReplaceResponse' type: array startProgressionBarAtProgress: description: "When the Talent Grid's progression reaches this value, the circular \"progress bar\" that surrounds the talent node should be shown.\r\nThis also indicates the lower bound of said progress bar, with the upper bound being the progress required to reach activationRequirement.gridLevel. (at some point I should precalculate the upper bound and put it in the definition to save people time)" format: int32 type: integer statHashes: description: 'When the step provides stat benefits on the item or character, this is the list of hash identifiers for stats (DestinyStatDefinition) that are provided.' items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyStatDefinition' stepGroups: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyTalentNodeStepGroups' description: 'In Destiny 1, the Armory''s Perk Filtering was driven by a concept of TalentNodeStepGroups: categorizations of talent nodes based on their functionality. While the Armory isn''t a BNet-facing thing for now, and the new Armory will need to account for Sockets rather than Talent Nodes, this categorization capability feels useful enough to still keep around.' type: object stepIndex: description: "The index of this step in the list of Steps on the Talent Node.\r\nUnfortunately, this is the closest thing we have to an identifier for the Step: steps are not provided a content version agnostic identifier. This means that, when you are dealing with talent nodes, you will need to first ensure that you have the latest version of content." format: int32 type: integer type: object Destiny.Definitions.DestinyObjectiveDefinition: description: "Defines an \"Objective\".\r\nAn objective is a specific task you should accomplish in the game. These are referred to by:\r\n- Quest Steps (which are DestinyInventoryItemDefinition entities with Objectives)\r\n- Challenges (which are Objectives defined on an DestinyActivityDefintion)\r\n- Milestones (which refer to Objectives that are defined on both Quest Steps and Activities)\r\n- Anything else that the designers decide to do later.\r\nObjectives have progress, a notion of having been Completed, human readable data describing the task to be accomplished, and a lot of optional tack-on data that can enhance the information provided about the task." properties: allowNegativeValue: description: 'If true, the value is allowed to go negative.' type: boolean allowValueChangeWhenCompleted: description: "If true, you can effectively \"un-complete\" this objective if you lose progress after crossing the completion threshold. \r\nIf False, once you complete the task it will remain completed forever by locking the value." type: boolean completionValue: description: The value that the unlock value defined in unlockValueHash must reach in order for the objective to be considered Completed. Used in calculating progress and completion status. format: int32 type: integer displayProperties: allOf: - $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' description: 'Ideally, this should tell you what your task is. I''m not going to lie to you though. Sometimes this doesn''t have useful information at all. Which sucks, but there''s nothing either of us can do about it.' type: object hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer isCountingDownward: description: "If true, completion means having an unlock value less than or equal to the completionValue.\r\nIf False, completion means having an unlock value greater than or equal to the completionValue." type: boolean locationHash: description: 'OPTIONAL: a hash identifier for the location at which this objective must be accomplished, if there is a location defined. Look up the DestinyLocationDefinition for this hash for that additional location info.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyLocationDefinition' perks: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyObjectivePerkEntryDefinition' description: 'If this objective enables Perks intrinsically, the conditions for that enabling are defined here.' type: object progressDescription: description: Text to describe the progress bar. type: string redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean stats: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyObjectiveStatEntryDefinition' description: 'If this objective enables modifications on a player''s stats intrinsically, the conditions are defined here.' type: object valueStyle: allOf: - $ref: '#/definitions/Destiny.DestinyUnlockValueUIStyle' description: 'The UI style applied to the objective. It''s an enum, take a look at DestinyUnlockValueUIStyle for details of the possible styles. Use this info as you wish to customize your UI.' type: object type: object x-mobile-manifest-name: Objectives Destiny.Definitions.DestinyObjectivePerkEntryDefinition: description: "Defines the conditions under which an intrinsic perk is applied while participating in an Objective.\r\nThese perks will generally not be benefit-granting perks, but rather a perk that modifies gameplay in some interesting way." properties: perkHash: description: The hash identifier of the DestinySandboxPerkDefinition that will be applied to the character. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinySandboxPerkDefinition' style: allOf: - $ref: '#/definitions/Destiny.DestinyObjectiveGrantStyle' description: 'An enumeration indicating whether it will be applied as long as the Objective is active, when it''s completed, or until it''s completed.' type: object type: object Destiny.Definitions.DestinyObjectiveStatEntryDefinition: description: Defines the conditions under which stat modifications will be applied to a Character while participating in an objective. properties: stat: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyItemInvestmentStatDefinition' description: 'The stat being modified, and the value used.' type: object style: allOf: - $ref: '#/definitions/Destiny.DestinyObjectiveGrantStyle' description: 'Whether it will be applied as long as the objective is active, when it''s completed, or until it''s completed.' type: object type: object Destiny.Definitions.DestinyPlaceDefinition: description: "Okay, so Activities (DestinyActivityDefinition) take place in Destinations (DestinyDestinationDefinition). Destinations are part of larger locations known as Places (you're reading its documentation right now).\r\nPlaces are more on the planetary scale, like \"Earth\" and \"Your Mom.\"" properties: displayProperties: $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean type: object x-mobile-manifest-name: Places Destiny.Definitions.DestinyProgressionDefinition: description: "A \"Progression\" in Destiny is best explained by an example.\r\nA Character's \"Level\" is a progression: it has Experience that can be earned, levels that can be gained, and is evaluated and displayed at various points in the game. A Character's \"Faction Reputation\" is also a progression for much the same reason.\r\nProgression 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).\r\nFundamentally, 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).\r\nEarned 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." properties: displayProperties: $ref: '#/definitions/Destiny.Definitions.DestinyProgressionDisplayPropertiesDefinition' factionHash: description: "If the value exists, this is the hash identifier for the Faction that owns this Progression.\r\nThis 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." format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyFactionDefinition' hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean repeatLastStep: description: 'If this is True, then the progression doesn''t have a maximum level.' type: boolean scope: allOf: - $ref: '#/definitions/Destiny.DestinyProgressionScope' description: "The \"Scope\" of the progression indicates the source of the progression's live data.\r\nSee the DestinyProgressionScope enum for more info: but essentially, a Progression can either be backed by a stored value, or it can be a calculated derivative of other values." type: object source: description: 'If there''s a description of how to earn this progression in the local config, this will be that localized description.' type: string steps: description: "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 current progress to the max progress of the steps. \r\nThese and more calculations are done for you if you grab live character progression data, such as in the DestinyCharacterProgressionComponent." items: $ref: '#/definitions/Destiny.Definitions.DestinyProgressionStepDefinition' type: array visible: description: "If true, the Progression is something worth showing to users.\r\nIf false, BNet isn't going to show it. But that doesn't mean you can't. We're all friends here." type: boolean type: object x-mobile-manifest-name: Progressions Destiny.Definitions.DestinyProgressionDisplayPropertiesDefinition: properties: description: type: string displayUnitsName: description: '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.' type: string hasIcon: type: boolean icon: description: "Note that \"icon\" is sometimes misleading, and should be interpreted in the context of the entity. For instance, in Destiny 1 the DestinyRecordBookDefinition's icon was a big picture of a book.\r\nBut usually, it will be a small square image that you can use as... well, an icon." type: string name: type: string type: object Destiny.Definitions.DestinyProgressionMappingDefinition: description: "Aggregations of multiple progressions.\r\nThese are used to apply rewards to multiple progressions at once. They can sometimes have human readable data as well, but only extremely sporadically." properties: displayProperties: allOf: - $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' description: Infrequently defined in practice. Defer to the individual progressions' display properties. type: object displayUnits: description: 'The localized unit of measurement for progression across the progressions defined in this mapping. Unfortunately, this is very infrequently defined. Defer to the individual progressions'' display units.' type: string hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean type: object Destiny.Definitions.DestinyProgressionRewardDefinition: description: "Inventory Items can reward progression when actions are performed on them. A common example of this in Destiny 1 was Bounties, which would reward Experience on your Character and the like when you completed the bounty.\r\nNote that this maps to a DestinyProgressionMappingDefinition, and *not* a DestinyProgressionDefinition directly. This is apparently so that multiple progressions can be granted progression points/experience at the same time." properties: amount: description: The amount of experience to give to each of the mapped progressions. format: int32 type: integer applyThrottles: description: 'If true, the game''s internal mechanisms to throttle progression should be applied.' type: boolean progressionMappingHash: description: The hash identifier of the DestinyProgressionMappingDefinition that contains the progressions for which experience should be applied. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyProgressionMappingDefinition' type: object Destiny.Definitions.DestinyProgressionStepDefinition: description: This defines a single Step in a progression (which roughly equates to a level. See DestinyProgressionDefinition for caveats). properties: displayEffectType: allOf: - $ref: '#/definitions/Destiny.DestinyProgressionStepDisplayEffect' description: 'This appears to be, when you "level up", whether a visual effect will display and on what entity. See DestinyProgressionStepDisplayEffect for slightly more info.' type: object progressTotal: description: '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.' format: int32 type: integer rewardItems: description: A listing of items rewarded as a result of reaching this level. items: $ref: '#/definitions/Destiny.DestinyItemQuantity' type: array stepName: description: '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.' type: string type: object Destiny.Definitions.DestinyRaceDefinition: description: 'In Destiny, "Races" are really more like "Species". Sort of. I mean, are the Awoken a separate species from humans? I''m not sure. But either way, they''re defined here. You''ll see Exo, Awoken, and Human as examples of these Species. Players will choose one for their character.' properties: displayProperties: $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' genderedRaceNames: additionalProperties: type: string description: A localized string referring to the singular form of the Race's name when referred to in gendered form. Keyed by the DestinyGender. type: object hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer raceType: allOf: - $ref: '#/definitions/Destiny.DestinyRace' description: 'An enumeration defining the existing, known Races/Species for player characters. This value will be the enum value matching this definition.' type: object redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean type: object x-mobile-manifest-name: Races Destiny.Definitions.DestinyRewardSourceCategory: description: 'BNet''s custom categorization of reward sources. We took a look at the existing ways that items could be spawned, and tried to make high-level categorizations of them. This needs to be re-evaluated for Destiny 2.' enum: - '0' - '1' - '2' - '3' format: int32 type: integer x-enum-values: - description: The source doesn't fit well into any of the other types. identifier: None numericValue: '0' - description: The source is directly related to the rewards gained by playing an activity or set of activities. This currently includes Quests and other action in-game. identifier: Activity numericValue: '1' - description: This source is directly related to items that Vendors sell. identifier: Vendor numericValue: '2' - description: 'This source is a custom aggregation of items that can be earned in many ways, but that share some other property in common that is useful to share. For instance, in Destiny 1 we would make "Reward Sources" for every game expansion: that way, you could search reward sources to see what items became available with any given Expansion.' identifier: Aggregate numericValue: '3' Destiny.Definitions.DestinyRewardSourceDefinition: description: "Represents a heuristically-determined \"item source\" according to Bungie.net. These item sources are non-canonical: we apply a combination of special configuration and often-fragile heuristics to attempt to discern whether an item should be part of a given \"source,\" but we have known cases of false positives and negatives due to our imperfect heuristics.\r\nStill, they provide a decent approximation for people trying to figure out how an item can be obtained. DestinyInventoryItemDefinition refers to sources in the sourceDatas.sourceHashes property for all sources we determined the item could spawn from.\r\nAn example in Destiny 1 of a Source would be \"Nightfall\". If an item has the \"Nightfall\" source associated with it, it's extremely likely that you can earn that item while playing Nightfall, either during play or as an after-completion reward." properties: category: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyRewardSourceCategory' description: 'Sources are grouped into categories: common ways that items are provided. I hope to see this expand in Destiny 2 once we have time to generate accurate reward source data.' type: object displayProperties: $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean type: object x-mobile-manifest-name: RewardSources Destiny.Definitions.DestinySandboxPerkDefinition: description: "Perks are modifiers to a character or item that can be applied situationally.\r\n- Perks determine a weapons' damage type.\r\n- Perks put the Mods in Modifiers (they are literally the entity that bestows the Sandbox benefit for whatever fluff text about the modifier in the Socket, Plug or Talent Node)\r\n- Perks are applied for unique alterations of state in Objectives\r\nAnyways, I'm sure you can see why perks are so interesting.\r\nWhat Perks often don't have is human readable information, so we attempt to reverse engineer that by pulling that data from places that uniquely refer to these perks: namely, Talent Nodes and Plugs. That only gives us a subset of perks that are human readable, but those perks are the ones people generally care about anyways. The others are left as a mystery, their true purpose mostly unknown and undocumented." properties: damageType: allOf: - $ref: '#/definitions/Destiny.DamageType' description: "If this perk grants a damage type to a weapon, the damage type will be defined here.\r\nUnless you have a compelling reason to use this enum value, use the damageTypeHash instead to look up the actual DestinyDamageTypeDefinition." type: object damageTypeHash: description: "The hash identifier for looking up the DestinyDamageTypeDefinition, if this perk has a damage type.\r\nThis is preferred over using the damageType enumeration value, which has been left purely because it is occasionally convenient." format: uint32 type: integer displayProperties: allOf: - $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' description: 'These display properties are by no means guaranteed to be populated. Usually when it is, it''s only because we back-filled them with the displayProperties of some Talent Node or Plug item that happened to be uniquely providing that perk.' type: object hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer isDisplayable: description: 'If true, you can actually show the perk in the UI. Otherwise, it doesn''t have useful player-facing information.' type: boolean perkGroups: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyTalentNodeStepGroups' description: "An old holdover from the original Armory, this was an attempt to group perks by functionality.\r\nIt is as yet unpopulated, and there will be quite a bit of work needed to restore it to its former working order." type: object perkIdentifier: description: The string identifier for the perk. type: string redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean type: object x-mobile-manifest-name: SandboxPerks Destiny.Definitions.DestinyStatDefinition: description: "This represents a stat that's applied to a character or an item (such as a weapon, piece of armor, or a vehicle).\r\nAn example of a stat might be Attack Power on a weapon.\r\nStats go through a complex set of transformations before they end up being shown to the user as a number or a progress bar, and those transformations are fundamentally intertwined with the concept of a \"Stat Group\" (DestinyStatGroupDefinition). Items have both Stats and a reference to a Stat Group, and it is the Stat Group that takes the raw stat information and gives it both rendering metadata (such as whether to show it as a number or a progress bar) and the final transformation data (interpolation tables to turn the raw investment stat into a display stat). Please see DestinyStatGroupDefinition for more information on that transformational process.\r\nStats are segregated from Stat Groups because different items and types of items can refer to the same stat, but have different \"scales\" for the stat while still having the same underlying value. For example, both a Shotgun and an Auto Rifle may have a \"raw\" impact stat of 50, but the Auto Rifle's Stat Group will scale that 50 down so that, when it is displayed, it is a smaller value relative to the shotgun. (this is a totally made up example, don't assume shotguns have naturally higher impact than auto rifles because of this)\r\nA final caveat is that some stats, even after this \"final\" transformation, go through yet another set of transformations directly in the game as a result of dynamic, stateful scripts that get run. BNet has no access to these scripts, nor any way to know which scripts get executed. As a result, the stats for an item that you see in-game - particularly for stats that are often impacted by Perks, like Magazine Size - can change dramatically from what we return on Bungie.Net. This is a known issue with no fix coming down the pipeline. Take these stats with a grain of salt.\r\nStats actually go through four transformations, for those interested:\r\n1) \"Sandbox\" stat, the \"most raw\" form. These are pretty much useless without transformations applied, and thus are not currently returned in the API. If you really want these, we can provide them. Maybe someone could do something cool with it?\r\n2) \"Investment\" stat (the stat's value after DestinyStatDefinition's interpolation tables and aggregation logic is applied to the \"Sandbox\" stat value)\r\n3) \"Display\" stat (the stat's base UI-visible value after DestinyStatGroupDefinition's interpolation tables are applied to the Investment Stat value. For most stats, this is what is displayed.)\r\n4) Underlying in-game stat (the stat's actual value according to the game, after the game runs dynamic scripts based on the game and character's state. This is the final transformation that BNet does not have access to. For most stats, this is not actually displayed to the user, with the exception of Magazine Size which is then piped back to the UI for display in-game, but not to BNet.)" properties: aggregationType: allOf: - $ref: '#/definitions/Destiny.DestinyStatAggregationType' description: 'Stats can exist on a character or an item, and they may potentially be aggregated in different ways. The DestinyStatAggregationType enum value indicates the way that this stat is being aggregated.' type: object displayProperties: $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' hasComputedBlock: description: "True if the stat is computed rather than being delivered as a raw value on items.\r\nFor instance, the Light stat in Destiny 1 was a computed stat." type: boolean hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean type: object x-mobile-manifest-name: Stats Destiny.Definitions.DestinyStatDisplayDefinition: description: "Describes the way that an Item Stat (see DestinyStatDefinition) is transformed using the DestinyStatGroupDefinition related to that item. See both of the aforementioned definitions for more information about the stages of stat transformation.\r\nThis represents the transformation of a stat into a \"Display\" stat (the closest value that BNet can get to the in-game display value of the stat)" properties: displayAsNumeric: description: 'If this is true, the stat should be displayed as a number. Otherwise, display it as a progress bar. Or, you know, do whatever you want. There''s no displayAsNumeric police.' type: boolean displayInterpolation: description: "The interpolation table representing how the Investment Stat is transformed into a Display Stat. \r\nSee DestinyStatDefinition for a description of the stages of stat transformation." items: $ref: '#/definitions/Interpolation.InterpolationPoint' type: array maximumValue: description: 'Regardless of the output of interpolation, this is the maximum possible value that the stat can be. It should also be used as the upper bound for displaying the stat as a progress bar (the minimum always being 0)' format: int32 type: integer statHash: description: "The hash identifier for the stat being transformed into a Display stat.\r\nUse it to look up the DestinyStatDefinition, or key into a DestinyInventoryItemDefinition's stats property." format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyStatDefinition' type: object Destiny.Definitions.DestinyStatGroupDefinition: description: "When an inventory item (DestinyInventoryItemDefinition) has Stats (such as Attack Power), the item will refer to a Stat Group. This definition enumerates the properties used to transform the item's \"Investment\" stats into \"Display\" stats.\r\nSee DestinyStatDefinition's documentation for information about the transformation of Stats, and the meaning of an Investment vs. a Display stat.\r\nIf you don't want to do these calculations on your own, fear not: pulling live data from the BNet endpoints will return display stat values pre-computed and ready for you to use. I highly recommend this approach, saves a lot of time and also accounts for certain stat modifiers that can't easily be accounted for without live data (such as stat modifiers on Talent Grids and Socket Plugs)" properties: hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer maximumValue: description: "The maximum possible value that any stat in this group can be transformed into.\r\nThis is used by stats that *don't* have scaledStats entries below, but that still need to be displayed as a progress bar, in which case this is used as the upper bound for said progress bar. (the lower bound is always 0)" format: int32 type: integer overrides: additionalProperties: $ref: '#/definitions/Destiny.Definitions.DestinyStatOverrideDefinition' description: "The game has the ability to override, based on the stat group, what the localized text is that is displayed for Stats being shown on the item.\r\nMercifully, no Stat Groups use this feature currently. If they start using them, we'll all need to start using them (and those of you who are more prudent than I am can go ahead and start pre-checking for this.)" type: object redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean scaledStats: description: "Any stat that requires scaling to be transformed from an \"Investment\" stat to a \"Display\" stat will have an entry in this list. For more information on what those types of stats mean and the transformation process, see DestinyStatDefinition.\r\nIn retrospect, I wouldn't mind if this was a dictionary keyed by the stat hash instead. But I'm going to leave it be because [[After Apple Picking]]." items: $ref: '#/definitions/Destiny.Definitions.DestinyStatDisplayDefinition' type: array uiPosition: description: 'This apparently indicates the position of the stats in the UI? I''ve returned it in case anyone can use it, but it''s not of any use to us on BNet. Something''s being lost in translation with this value.' format: int32 type: integer type: object x-mobile-manifest-name: StatGroups Destiny.Definitions.DestinyStatOverrideDefinition: description: "Stat Groups (DestinyStatGroupDefinition) has the ability to override the localized text associated with stats that are to be shown on the items with which they are associated.\r\nThis defines a specific overridden stat. You could theoretically check these before rendering your stat UI, and for each stat that has an override show these displayProperties instead of those on the DestinyStatDefinition.\r\nOr you could be like us, and skip that for now because the game has yet to actually use this feature. But know that it's here, waiting for a resilliant young designer to take up the mantle and make us all look foolish by showing the wrong name for stats.\r\nNote that, if this gets used, the override will apply only to items using the overriding Stat Group. Other items will still show the default stat's name/description." properties: displayProperties: allOf: - $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' description: The display properties to show instead of the base DestinyStatDefinition display properties. type: object statHash: description: The hash identifier of the stat whose display properties are being overridden. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyStatDefinition' type: object Destiny.Definitions.DestinyTalentExclusiveGroup: description: 'As of Destiny 2, nodes can exist as part of "Exclusive Groups". These differ from exclusive sets in that, within the group, many nodes can be activated. But the act of activating any node in the group will cause "opposing" nodes (nodes in groups that are not allowed to be activated at the same time as this group) to deactivate.' properties: groupHash: description: 'The identifier for this exclusive group. Only guaranteed unique within the talent grid, not globally.' format: uint32 type: integer loreHash: description: 'If this group has an associated piece of lore to show next to it, this will be the identifier for that DestinyLoreDefinition.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.Lore.DestinyLoreDefinition' nodeHashes: description: 'A quick reference of the talent nodes that are part of this group, by their Talent Node hashes. (See DestinyTalentNodeDefinition.nodeHash)' items: format: uint32 type: integer type: array opposingGroupHashes: description: A quick reference of Groups whose nodes will be deactivated if any node in this group is activated. items: format: uint32 type: integer type: array opposingNodeHashes: description: 'A quick reference of Nodes that will be deactivated if any node in this group is activated, by their Talent Node hashes. (See DestinyTalentNodeDefinition.nodeHash)' items: format: uint32 type: integer type: array type: object Destiny.Definitions.DestinyTalentGridDefinition: description: "The time has unfortunately come to talk about Talent Grids.\r\nTalent Grids are the most complex and unintuitive part of the Destiny Definition data. Grab a cup of coffee before we begin, I can wait.\r\nTalent Grids were the primary way that items could be customized in Destiny 1. In Destiny 2, for now, talent grids have become exclusively used by Subclass/Build items: but the system is still in place for it to be used by items should the direction change back toward talent grids.\r\nTalent Grids have Nodes: the visual circles on the talent grid detail screen that have icons and can be activated if you meet certain requirements and pay costs. The actual visual data and effects, however, are driven by the \"Steps\" on Talent Nodes. Any given node will have 1:M of these steps, and the specific step that will be considered the \"current\" step (and thus the dictator of all benefits, visual state, and activation requirements on the Node) will almost always not be determined until an instance of the item is created. This is how, in Destiny 1, items were able to have such a wide variety of what users saw as \"Perks\": they were actually Talent Grids with nodes that had a wide variety of Steps, randomly chosen at the time of item creation.\r\nNow that Talent Grids are used exclusively by subclasses and builds, all of the properties within still apply: but there are additional visual elements on the Subclass/Build screens that are superimposed on top of the talent nodes. Unfortunately, BNet doesn't have this data: if you want to build a subclass screen, you will have to provide your own \"decorative\" assets, such as the visual connectors between nodes and the fancy colored-fire-bathed character standing behind the nodes.\r\nDestinyInventoryItem.talentGrid.talentGridHash defines an item's linked Talent Grid, which brings you to this definition that contains enough satic data about talent grids to make your head spin. These *must* be combined with instanced data - found when live data returns DestinyItemTalentGridComponent - in order to derive meaning. The instanced data will reference nodes and steps within these definitions, which you will then have to look up in the definition and combine with the instanced data to give the user the visual representation of their item's talent grid." properties: exclusiveSets: description: "Talent Nodes can exist in \"exclusive sets\": these are sets of nodes in which only a single node in the set can be activated at any given time. Activating a node in this set will automatically deactivate the other nodes in the set (referred to as a \"Swap\").\r\nIf a node in the exclusive set has already been activated, the game will not charge you materials to activate another node in the set, even if you have never activated it before, because you already paid the cost to activate one node in the set.\r\nNot to be confused with Exclusive Groups. (how the heck do we NOT get confused by that? Jeez) See the groups property for information about that only-tangentially-related concept." items: $ref: '#/definitions/Destiny.Definitions.DestinyTalentNodeExclusiveSetDefinition' type: array gridLevelPerColumn: description: 'The meaning of this has been lost in the sands of time: it still exists as a property, but appears to be unused in the modern UI of talent grids. It used to imply that each visual "column" of talent nodes required identical progression levels in order to be activated. Returning this value in case it is still useful to someone? Perhaps it''s just a bit of interesting history.' format: int32 type: integer groups: additionalProperties: $ref: '#/definitions/Destiny.Definitions.DestinyTalentExclusiveGroup' description: "Talent Nodes can have \"Exclusive Groups\". These are not to be confused with Exclusive Sets (see exclusiveSets property).\r\nLook at the definition of DestinyTalentExclusiveGroup for more information and how they work. These groups are keyed by the \"groupHash\" from DestinyTalentExclusiveGroup." type: object hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer independentNodeIndexes: description: 'This is a quick reference to the indexes of nodes that are not part of exclusive sets. Handy for knowing which talent nodes can only be activated directly, rather than via swapping.' items: format: int32 type: integer type: array index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer maxGridLevel: description: 'The maximum possible level of the Talent Grid: at this level, any nodes are allowed to be activated.' format: int32 type: integer nodeCategories: description: "BNet wants to show talent nodes grouped by similar purpose with localized titles. This is the ordered list of those categories: if you want to show nodes by category, you can iterate over this list, render the displayProperties for the category as the title, and then iterate over the talent nodes referenced by the category to show the related nodes.\r\nNote that this is different from Exclusive Groups or Sets, because these categories also incorporate \"Independent\" nodes that belong to neither sets nor groups. These are purely for visual grouping of nodes rather than functional grouping." items: $ref: '#/definitions/Destiny.Definitions.DestinyTalentNodeCategory' type: array nodes: description: The list of Talent Nodes on the Grid (recall that Nodes themselves are really just locations in the UI to show whatever their current Step is. You will only know the current step for a node by retrieving instanced data through platform calls to the API that return DestinyItemTalentGridComponent). items: $ref: '#/definitions/Destiny.Definitions.DestinyTalentNodeDefinition' type: array progressionHash: description: 'The hash identifier of the Progression (DestinyProgressionDefinition) that drives whether and when Talent Nodes can be activated on the Grid. Items will have instances of this Progression, and will gain experience that will eventually cause the grid to increase in level. As the grid''s level increases, it will cross the threshold where nodes can be activated. See DestinyTalentGridStepDefinition''s activation requirements for more information.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyProgressionDefinition' redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean type: object x-mobile-manifest-name: Talents Destiny.Definitions.DestinyTalentNodeCategory: description: "An artificial construct provided by Bungie.Net, where we attempt to group talent nodes by functionality.\r\nThis is a single set of references to Talent Nodes that share a common trait or purpose." properties: displayProperties: allOf: - $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' description: 'Will contain at least the "name", which will be the title of the category. We will likely not have description and an icon yet, but I''m going to keep my options open.' type: object identifier: description: 'Mostly just for debug purposes, but if you find it useful you can have it. This is BNet''s manually created identifier for this category.' type: string isLoreDriven: description: 'If true, we found the localized content in a related DestinyLoreDefinition instead of local BNet localization files. This is mostly for ease of my own future investigations.' type: boolean nodeHashes: description: The set of all hash identifiers for Talent Nodes (DestinyTalentNodeDefinition) in this Talent Grid that are part of this Category. items: format: uint32 type: integer type: array type: object Destiny.Definitions.DestinyTalentNodeDefinition: description: "Talent Grids on items have Nodes. These nodes have positions in the talent grid's UI, and contain \"Steps\" (DestinyTalentNodeStepDefinition), one of whom will be the \"Current\" step.\r\nThe Current Step determines the visual properties of the node, as well as what the node grants when it is activated.\r\nSee DestinyTalentGridDefinition for a more complete overview of how Talent Grids work, and how they are used in Destiny 2 (and how they were used in Destiny 1)." properties: autoUnlocks: description: 'If true, this node will automatically unlock when the Talent Grid''s level reaches the required level of the current step of this node.' type: boolean binaryPairNodeIndex: description: "At one point, Talent Nodes supported the idea of \"Binary Pairs\": nodes that overlapped each other visually, and where activating one deactivated the other. They ended up not being used, mostly because Exclusive Sets are *almost* a superset of this concept, but the potential for it to be used still exists in theory.\r\nIf this is ever used, this will be the index into the DestinyTalentGridDefinition.nodes property for the node that is the binary pair match to this node. Activating one deactivates the other." format: int32 type: integer column: description: 'The visual "column" where the node should be shown in the UI. If negative, the node is hidden.' format: int32 type: integer exclusiveWithNodeHashes: description: "The nodeHash values for nodes that are in an Exclusive Set with this node.\r\nSee DestinyTalentGridDefinition.exclusiveSets for more info about exclusive sets.\r\nAgain, note that these are nodeHashes and *not* nodeIndexes." items: format: uint32 type: integer type: array groupHash: description: "As of Destiny 2, nodes can exist as part of \"Exclusive Groups\". These differ from exclusive sets in that, within the group, many nodes can be activated. But the act of activating any node in the group will cause \"opposing\" nodes (nodes in groups that are not allowed to be activated at the same time as this group) to deactivate.\r\nSee DestinyTalentExclusiveGroup for more information on the details. This is an identifier for this node's group, if it is part of one." format: uint32 type: integer ignoreForCompletion: description: 'Comes from the talent grid node style: if true, then this node should be ignored for determining whether the grid is complete.' type: boolean isRandom: description: 'If this is true, the node''s step is determined randomly rather than the first step being chosen.' type: boolean isRandomRepurchasable: description: 'If this is true, the node can be "re-rolled" to acquire a different random current step. This is not used, but still exists for a theoretical future of talent grids.' type: boolean lastStepRepeats: description: "At one point, Nodes were going to be able to be activated multiple times, changing the current step and potentially piling on multiple effects from the previously activated steps. This property would indicate if the last step could be activated multiple times. \r\nThis is not currently used, but it isn't out of the question that this could end up being used again in a theoretical future." type: boolean layoutIdentifier: description: 'A string identifier for a custom visual layout to apply to this talent node. Unfortunately, we do not have any data for rendering these custom layouts. It will be up to you to interpret these strings and change your UI if you want to have custom UI matching these layouts.' type: string loreHash: description: 'Talent nodes can be associated with a piece of Lore, generally rendered in a tooltip. This is the hash identifier of the lore element to show, if there is one to be show.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.Lore.DestinyLoreDefinition' nodeHash: description: "The hash identifier for the node, which unfortunately is also content version dependent but can be (and ideally, should be) used instead of the nodeIndex to uniquely identify the node.\r\nThe two exist side-by-side for backcompat reasons due to the Great Talent Node Restructuring of Destiny 1, and I ran out of time to remove one of them and standardize on the other. Sorry!" format: uint32 type: integer nodeIndex: description: 'The index into the DestinyTalentGridDefinition''s "nodes" property where this node is located. Used to uniquely identify the node within the Talent Grid. Note that this is content version dependent: make sure you have the latest version of content before trying to use these properties.' format: int32 type: integer nodeStyleIdentifier: description: 'Comes from the talent grid node style: this identifier should be used to determine how to render the node in the UI.' type: string prerequisiteNodeIndexes: description: "Indexes into the DestinyTalentGridDefinition.nodes property for any nodes that must be activated before this one is allowed to be activated.\r\nI would have liked to change this to hashes for Destiny 2, but we have run out of time." items: format: int32 type: integer type: array randomActivationRequirement: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyNodeActivationRequirement' description: "At one point, you were going to be able to repurchase talent nodes that had random steps, to \"re-roll\" the current step of the node (and thus change the properties of your item). This was to be the activation requirement for performing that re-roll.\r\nThe system still exists to do this, as far as I know, so it may yet come back around!" type: object randomStartProgressionBarAtProgression: description: 'If the node''s step is randomly selected, this is the amount of the Talent Grid''s progression experience at which the progression bar for the node should be shown.' format: int32 type: integer row: description: 'The visual "row" where the node should be shown in the UI. If negative, then the node is hidden.' format: int32 type: integer steps: description: "At this point, \"steps\" have been obfuscated into conceptual entities, aggregating the underlying notions of \"properties\" and \"true steps\".\r\nIf you need to know a step as it truly exists - such as when recreating Node logic when processing Vendor data - you'll have to use the \"realSteps\" property below." items: $ref: '#/definitions/Destiny.Definitions.DestinyNodeStepDefinition' type: array type: object Destiny.Definitions.DestinyTalentNodeExclusiveSetDefinition: description: The list of indexes into the Talent Grid's "nodes" property for nodes in this exclusive set. (See DestinyTalentNodeDefinition.nodeIndex) properties: nodeIndexes: description: 'The list of node indexes for the exclusive set. Historically, these were indexes. I would have liked to replace this with nodeHashes for consistency, but it''s way too late for that. (9:09 PM, he''s right!)' items: format: int32 type: integer type: array type: object Destiny.Definitions.DestinyTalentNodeStepDamageTypes: enum: - '0' - '1' - '2' - '4' - '8' - '15' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Kinetic numericValue: '1' - identifier: Arc numericValue: '2' - identifier: Solar numericValue: '4' - identifier: Void numericValue: '8' - identifier: All numericValue: '15' Destiny.Definitions.DestinyTalentNodeStepGroups: description: These properties are an attempt to categorize talent node steps by certain common properties. See the related enumerations for the type of properties being categorized. properties: damageTypes: $ref: '#/definitions/Destiny.Definitions.DestinyTalentNodeStepDamageTypes' guardianAttributes: $ref: '#/definitions/Destiny.Definitions.DestinyTalentNodeStepGuardianAttributes' impactEffects: $ref: '#/definitions/Destiny.Definitions.DestinyTalentNodeStepImpactEffects' lightAbilities: $ref: '#/definitions/Destiny.Definitions.DestinyTalentNodeStepLightAbilities' weaponPerformance: $ref: '#/definitions/Destiny.Definitions.DestinyTalentNodeStepWeaponPerformances' type: object Destiny.Definitions.DestinyTalentNodeStepGuardianAttributes: enum: - '0' - '1' - '2' - '4' - '8' - '16' - '32' - '64' - '128' - '255' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Stats numericValue: '1' - identifier: Shields numericValue: '2' - identifier: Health numericValue: '4' - identifier: Revive numericValue: '8' - identifier: AimUnderFire numericValue: '16' - identifier: Radar numericValue: '32' - identifier: Invisibility numericValue: '64' - identifier: Reputations numericValue: '128' - identifier: All numericValue: '255' Destiny.Definitions.DestinyTalentNodeStepImpactEffects: enum: - '0' - '1' - '2' - '4' - '8' - '16' - '32' - '63' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: ArmorPiercing numericValue: '1' - identifier: Ricochet numericValue: '2' - identifier: Flinch numericValue: '4' - identifier: CollateralDamage numericValue: '8' - identifier: Disorient numericValue: '16' - identifier: HighlightTarget numericValue: '32' - identifier: All numericValue: '63' Destiny.Definitions.DestinyTalentNodeStepLightAbilities: enum: - '0' - '1' - '2' - '4' - '8' - '16' - '32' - '63' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Grenades numericValue: '1' - identifier: Melee numericValue: '2' - identifier: MovementModes numericValue: '4' - identifier: Orbs numericValue: '8' - identifier: SuperEnergy numericValue: '16' - identifier: SuperMods numericValue: '32' - identifier: All numericValue: '63' Destiny.Definitions.DestinyTalentNodeStepWeaponPerformances: enum: - '0' - '1' - '2' - '4' - '8' - '16' - '32' - '64' - '128' - '256' - '512' - '1024' - '2048' - '4096' - '8191' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: RateOfFire numericValue: '1' - identifier: Damage numericValue: '2' - identifier: Accuracy numericValue: '4' - identifier: Range numericValue: '8' - identifier: Zoom numericValue: '16' - identifier: Recoil numericValue: '32' - identifier: Ready numericValue: '64' - identifier: Reload numericValue: '128' - identifier: HairTrigger numericValue: '256' - identifier: AmmoAndMagazine numericValue: '512' - identifier: TrackingAndDetonation numericValue: '1024' - identifier: ShotgunSpread numericValue: '2048' - identifier: ChargeTime numericValue: '4096' - identifier: All numericValue: '8191' Destiny.Definitions.DestinyUnlockDefinition: description: 'Unlock Flags are small bits (literally, a bit, as in a boolean value) that the game server uses for an extremely wide range of state checks, progress storage, and other interesting tidbits of information.' properties: displayProperties: allOf: - $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' description: 'Sometimes, but not frequently, these unlock flags also have human readable information: usually when they are being directly tested for some requirement, in which case the string is a localized description of why the requirement check failed.' type: object hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean type: object x-mobile-manifest-name: Unlocks Destiny.Definitions.DestinyUnlockExpressionDefinition: description: "Where the sausage gets made. Unlock Expressions are the foundation of the game's gating mechanics and investment-related restrictions. They can test Unlock Flags and Unlock Values for certain states, using a sufficient amount of logical operators such that unlock expressions are effectively Turing complete.\r\nUse UnlockExpressionParser to evaluate expressions using an IUnlockContext parsed from Babel." properties: scope: allOf: - $ref: '#/definitions/Destiny.DestinyGatingScope' description: A shortcut for determining the most restrictive gating that this expression performs. See the DestinyGatingScope enum's documentation for more details. type: object type: object Destiny.Definitions.DestinyVendorAcceptedItemDefinition: description: "If you ever wondered how the Vault works, here it is.\r\nThe Vault is merely a set of inventory buckets that exist on your Profile/Account level. When you transfer items in the Vault, the game is using the Vault Vendor's DestinyVendorAcceptedItemDefinitions to see where the appropriate destination bucket is for the source bucket from whence your item is moving. If it finds such an entry, it transfers the item to the other bucket.\r\nThe mechanics for Postmaster works similarly, which is also a vendor. All driven by Accepted Items." properties: acceptedInventoryBucketHash: description: 'The "source" bucket for a transfer. When a user wants to transfer an item, the appropriate DestinyVendorDefinition''s acceptedItems property is evaluated, looking for an entry where acceptedInventoryBucketHash matches the bucket that the item being transferred is currently located. If it exists, the item will be transferred into whatever bucket is defined by destinationInventoryBucketHash.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryBucketDefinition' destinationInventoryBucketHash: description: 'This is the bucket where the item being transferred will be put, given that it was being transferred *from* the bucket defined in acceptedInventoryBucketHash.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryBucketDefinition' type: object Destiny.Definitions.DestinyVendorActionDefinition: description: 'If a vendor can ever end up performing actions, these are the properties that will be related to those actions. I''m not going to bother documenting this yet, as it is unused and unclear if it will ever be used... but in case it is ever populated and someone finds it useful, it is defined here.' properties: actionHash: format: uint32 type: integer actionId: type: string autoPerformAction: type: boolean description: type: string executeSeconds: format: int32 type: integer icon: type: string isPositive: type: boolean name: type: string verb: type: string type: object Destiny.Definitions.DestinyVendorCategoryEntryDefinition: description: 'This is the definition for a single Vendor Category, into which Sale Items are grouped.' properties: buyStringOverride: description: 'The localized string for making purchases from this category, if it is different from the vendor''s string for purchasing.' type: string categoryHash: description: 'The hashed identifier for the category. (note that this is NOT pointing to a DestinyVendorCategoryDefinition, it''s confusing but this is a sale item category in a vendor, not a categorization of vendors themselves)' format: uint32 type: integer categoryId: description: The string identifier of the category. type: string categoryIndex: description: The index of the category in the original category definitions for the vendor. format: int32 type: integer disabledDescription: description: 'If the category is disabled, this is the localized description to show.' type: string displayTitle: description: The localized title of the category. type: string hideFromRegularPurchase: description: True if this category doesn't allow purchases. type: boolean hideIfNoCurrency: description: 'If you don''t have the currency required to buy items from this category, should the items be hidden?' type: boolean overlay: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyVendorCategoryOverlayDefinition' description: 'If this category has an overlay prompt that should appear, this contains the details of that prompt.' type: object quantityAvailable: description: The amount of items that will be available when this category is shown. format: int32 type: integer showUnavailableItems: description: 'If items aren''t up for sale in this category, should we still show them (greyed out)?' type: boolean type: object Destiny.Definitions.DestinyVendorCategoryOverlayDefinition: description: The details of an overlay prompt to show to a user. They are all fairly self-explanatory localized strings that can be shown. properties: choiceDescription: type: string description: type: string icon: type: string title: type: string type: object Destiny.Definitions.DestinyVendorDefinition: description: "These are the definitions for Vendors.\r\nIn Destiny, a Vendor can be a lot of things - some things that you wouldn't expect, and some things that you don't even see directly in the game. Vendors are the Dolly Levi of the Destiny universe.\r\n- Traditional Vendors as you see in game: people who you come up to and who give you quests, rewards, or who you can buy things from.\r\n- Kiosks/Collections, which are really just Vendors that don't charge currency (or charge some pittance of a currency) and whose gating for purchases revolves more around your character's state.\r\n- Previews for rewards or the contents of sacks. These are implemented as Vendors, where you can't actually purchase from them but the items that they have for sale and the categories of sale items reflect the rewards or contents of the sack. This is so that the game could reuse the existing Vendor display UI for rewards and save a bunch of wheel reinvention.\r\n- Item Transfer capabilities, like the Vault and Postmaster. Vendors can have \"acceptedItem\" buckets that determine the source and destination buckets for transfers. When you interact with such a vendor, these buckets are what gets shown in the UI instead of any items that the Vendor would have for sale. Yep, the Vault is a vendor.\r\nIt is pretty much guaranteed that they'll be used for even more features in the future. They have come to be seen more as generic categorized containers for items than \"vendors\" in a traditional sense, for better or worse.\r\nWhere possible and time allows, we'll attempt to split those out into their own more digestible derived \"Definitions\": but often time does not allow that, as you can see from the above ways that vendors are used which we never split off from Vendor Definitions externally.\r\nSince Vendors are so many things to so many parts of the game, the definition is understandably complex. You will want to combine this data with live Vendor information from the API when it is available." properties: acceptedItems: description: 'If the Vendor is actually a vehicle for the transferring of items (like the Vault and Postmaster vendors), this defines the list of source->destination buckets for transferring.' items: $ref: '#/definitions/Destiny.Definitions.DestinyVendorAcceptedItemDefinition' type: array actions: description: 'Describes "actions" that can be performed on a vendor. Currently, none of these exist. But theoretically a Vendor could let you interact with it by performing actions. We''ll see what these end up looking like if they ever get used.' items: $ref: '#/definitions/Destiny.Definitions.DestinyVendorActionDefinition' type: array buyString: description: 'If the vendor has a custom localized string describing the "buy" action, that is returned here.' type: string categories: description: "These are the headers for sections of items that the vendor is selling. When you see items organized by category in the header, it is these categories that it is showing.\r\nWell, technically not *exactly* these. On BNet, it doesn't make sense to have categories be \"paged\" as we do in Destiny, so we run some heuristics to attempt to aggregate pages of categories together. \r\nThese are the categories post-concatenation, if the vendor had concatenation applied. If you want the pre-aggregated category data, use originalCategories." items: $ref: '#/definitions/Destiny.Definitions.DestinyVendorCategoryEntryDefinition' type: array consolidateCategories: description: 'If TRUE, consolidate categories that only differ by trivial properties (such as having minor differences in name)' type: boolean displayCategories: description: "Display Categories are different from \"categories\" in that these are specifically for visual grouping and display of categories in Vendor UI. \r\nThe \"categories\" structure is for validation of the contained items, and can be categorized entirely separately from \"Display Categories\", there need be and often will be no meaningful relationship between the two." items: $ref: '#/definitions/Destiny.Definitions.DestinyDisplayCategoryDefinition' type: array displayItemHash: description: "If the vendor has an item that should be displayed as the \"featured\" item, this is the hash identifier for that DestinyVendorItemDefinition.\r\nApparently this is usually a related currency, like a reputation token. But it need not be restricted to that." format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' displayProperties: $ref: '#/definitions/Destiny.Definitions.DestinyVendorDisplayPropertiesDefinition' enabled: description: 'If a vendor is not enabled, we won''t even save the vendor''s definition, and we won''t return any items or info about them. It''s as if they don''t exist.' type: boolean factionHash: description: "If the Vendor has a faction, this hash will be valid and point to a DestinyFactionDefinition.\r\nThe game UI and BNet often mine the faction definition for additional elements and details to place on the screen, such as the faction's Progression status (aka \"Reputation\")." format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyFactionDefinition' failureStrings: description: "If an item can't be purchased from the vendor, there may be many \"custom\"/game state specific reasons why not.\r\nThis is a list of localized strings with messages for those custom failures. The live BNet data will return a failureIndexes property for items that can't be purchased: using those values to index into this array, you can show the user the appropriate failure message for the item that can't be bought." items: type: string type: array hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer inhibitBuying: description: 'If this is true, you aren''t allowed to buy whatever the vendor is selling.' type: boolean inhibitSelling: description: 'If this is true, you''re not allowed to sell whatever the vendor is buying.' type: boolean interactions: description: 'In addition to selling items, vendors can have "interactions": UI where you "talk" with the vendor and they offer you a reward, some item, or merely acknowledge via dialog that you did something cool.' items: $ref: '#/definitions/Destiny.Definitions.DestinyVendorInteractionDefinition' type: array inventoryFlyouts: description: If the vendor shows you items from your own inventory - such as the Vault vendor does - this data describes the UI around showing those inventory buckets and which ones get shown. items: $ref: '#/definitions/Destiny.Definitions.DestinyVendorInventoryFlyoutDefinition' type: array itemList: description: "If the vendor sells items (or merely has a list of items to show like the \"Sack\" vendors do), this is the list of those items that the vendor can sell. From this list, only a subset will be available from the vendor at any given time, selected randomly and reset on the vendor's refresh interval.\r\nNote that a vendor can sell the same item multiple ways: for instance, nothing stops a vendor from selling you some specific weapon but using two different currencies, or the same weapon at multiple \"item levels\"." items: $ref: '#/definitions/Destiny.Definitions.DestinyVendorItemDefinition' type: array originalCategories: description: See the categories property for a description of categories and why originalCategories exists. items: $ref: '#/definitions/Destiny.Definitions.DestinyVendorCategoryEntryDefinition' type: array redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean resetIntervalMinutes: description: "A number used for calculating the frequency of a vendor's inventory resetting/refreshing.\r\nDon't worry about calculating this - we do it on the server side and send you the next refresh date with the live data." format: int32 type: integer resetOffsetMinutes: description: 'Again, used for reset/refreshing of inventory. Don''t worry too much about it. Unless you want to.' format: int32 type: integer sellString: description: Ditto for selling. Not that you can sell items to a vendor anymore. Will it come back? Who knows. The string's still there. type: string services: description: 'BNet doesn''t use this data yet, but it appears to be an optional list of flavor text about services that the Vendor can provide.' items: $ref: '#/definitions/Destiny.Definitions.DestinyVendorServiceDefinition' type: array unlockRanges: description: 'If we were able to predict the dates when this Vendor will be visible/available, this will be the list of those date ranges. Sadly, we''re not able to predict this very frequently, so this will often be useless data.' items: $ref: '#/definitions/Dates.DateRange' type: array vendorBanner: description: 'If the vendor has a custom banner image, that can be found here.' type: string vendorCategoryIdentifier: description: The identifier of the VendorCategoryDefinition for this vendor. type: string vendorIdentifier: description: 'The internal identifier for the Vendor. A holdover from the old days of Vendors, but we don''t have time to refactor it away.' type: string vendorPortrait: description: A portrait of the Vendor's smiling mug. Or frothing tentacles. type: string vendorSubcategoryIdentifier: description: The identifier of the VendorCategoryDefinition for this vendor's subcategory. type: string visible: description: 'If a vendor is not visible, we still have and will give vendor definition info, but we won''t use them for things like Advisors or UI.' type: boolean type: object x-mobile-manifest-name: Vendors Destiny.Definitions.DestinyVendorDisplayPropertiesDefinition: properties: description: type: string hasIcon: type: boolean icon: description: "Note that \"icon\" is sometimes misleading, and should be interpreted in the context of the entity. For instance, in Destiny 1 the DestinyRecordBookDefinition's icon was a big picture of a book.\r\nBut usually, it will be a small square image that you can use as... well, an icon." type: string largeIcon: type: string name: type: string requirementsDisplay: description: 'Vendors, in addition to expected display property data, may also show some "common requirements" as statically defined definition data. This might be when a vendor accepts a single type of currency, or when the currency is unique to the vendor and the designers wanted to show that currency when you interact with the vendor.' items: $ref: '#/definitions/Destiny.Definitions.DestinyVendorRequirementDisplayEntryDefinition' type: array subtitle: type: string type: object Destiny.Definitions.DestinyVendorInteractionDefinition: description: 'A Vendor Interaction is a dialog shown by the vendor other than sale items or transfer screens. The vendor is showing you something, and asking you to reply to it by choosing an option or reward.' properties: flavorLineOne: description: 'If the vendor interaction has flavor text, this is some of it.' type: string flavorLineTwo: description: 'If the vendor interaction has flavor text, this is the rest of it.' type: string headerDisplayProperties: allOf: - $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' description: The header for the interaction dialog. type: object instructions: description: The localized text telling the player what to do when they see this dialog. type: string questlineItemHash: description: 'If this interaction dialog is about a quest, this is the questline related to the interaction. You can use this to show the quest overview, or even the character''s status with the quest if you use it to find the character''s current Quest Step by checking their inventory against this questlineItemHash''s DestinyInventoryItemDefinition.setData.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' replies: description: The potential replies that the user can make to the interaction. items: $ref: '#/definitions/Destiny.Definitions.DestinyVendorInteractionReplyDefinition' type: array rewardBlockLabel: description: 'If this interaction is displaying rewards, this is the text to use for the header of the reward-displaying section of the interaction.' type: string rewardVendorCategoryIndex: description: 'If the vendor''s reward list is sourced from one of his categories, this is the index into the category array of items to show.' format: int32 type: integer sackInteractionList: description: 'If this interaction is meant to show you sacks, this is the list of types of sacks to be shown. If empty, the interaction is not meant to show sacks.' items: $ref: '#/definitions/Destiny.Definitions.DestinyVendorInteractionSackEntryDefinition' type: array uiInteractionType: description: 'A UI hint for the behavior of the interaction screen. BNet doesn''t use this, but you can choose to.' format: uint32 type: integer vendorCategoryIndex: description: 'If >= 0, this is the category of sale items to show along with this interaction dialog.' format: int32 type: integer type: object Destiny.Definitions.DestinyVendorInteractionReplyDefinition: description: "When the interaction is replied to, Reward sites will fire and items potentially selected based on whether the given unlock expression is TRUE.\r\nYou can potentially choose one from multiple replies when replying to an interaction: this is how you get either/or rewards from vendors." properties: itemRewardsSelection: allOf: - $ref: '#/definitions/Destiny.DestinyVendorInteractionRewardSelection' description: The rewards granted upon responding to the vendor. type: object reply: description: The localized text for the reply. type: string replyType: allOf: - $ref: '#/definitions/Destiny.DestinyVendorReplyType' description: An enum indicating the type of reply being made. type: object type: object Destiny.Definitions.DestinyVendorInteractionSackEntryDefinition: description: 'Compare this sackType to the sack identifier in the DestinyInventoryItemDefinition.vendorSackType property of items. If they match, show this sack with this interaction.' properties: sackType: format: uint32 type: integer type: object Destiny.Definitions.DestinyVendorInventoryFlyoutBucketDefinition: description: Information about a single inventory bucket in a vendor flyout UI and how it is shown. properties: collapsible: description: 'If true, the inventory bucket should be able to be collapsed visually.' type: boolean inventoryBucketHash: description: The inventory bucket whose contents should be shown. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryBucketDefinition' sortItemsBy: allOf: - $ref: '#/definitions/Destiny.DestinyItemSortType' description: The methodology to use for sorting items from the flyout. type: object type: object Destiny.Definitions.DestinyVendorInventoryFlyoutDefinition: description: 'The definition for an "inventory flyout": a UI screen where we show you part of an otherwise hidden vendor inventory: like the Vault inventory buckets.' properties: buckets: description: A list of inventory buckets and other metadata to show on the screen. items: $ref: '#/definitions/Destiny.Definitions.DestinyVendorInventoryFlyoutBucketDefinition' type: array displayProperties: allOf: - $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' description: The title and other common properties of the flyout. type: object flyoutId: description: 'An identifier for the flyout, in case anything else needs to refer to them.' format: uint32 type: integer lockedDescription: description: 'If the flyout is locked, this is the reason why.' type: string suppressNewness: description: 'If this is true, don''t show any of the glistening "this is a new item" UI elements, like we show on the inventory items themselves in in-game UI.' type: boolean type: object Destiny.Definitions.DestinyVendorItemDefinition: description: This represents an item being sold by the vendor. properties: action: allOf: - $ref: '#/definitions/Destiny.Definitions.DestinyVendorSaleItemActionBlockDefinition' description: 'The action to be performed when purchasing the item, if it''s not just "buy".' type: object categoryIndex: description: 'The index into the DestinyVendorDefinition.categories array, so you can find the category associated with this item.' format: int32 type: integer creationLevels: description: 'The Default level at which the item will spawn. Almost always driven by an adjusto these days. Ideally should be singular. It''s a long story how this ended up as a list, but there is always either going to be 0:1 of these entities.' items: $ref: '#/definitions/Destiny.Definitions.DestinyItemCreationEntryLevelDefinition' type: array currencies: description: 'This is a pre-compiled aggregation of item value and priceOverrideList, so that we have one place to check for what the purchaser must pay for the item. Use this instead of trying to piece together the price separately.' items: $ref: '#/definitions/Destiny.DestinyItemQuantity' type: array displayCategory: description: The string identifier for the category selling this item. type: string displayCategoryIndex: description: 'This is an index specifically into the display category, as opposed to the server-side Categories (which do not need to match or pair with each other in any way: server side categories are really just structures for common validation. Display Category will let us more easily categorize items visually)' format: int32 type: integer failureIndexes: description: 'An list of indexes into the DestinyVendorDefinition.failureStrings array, indicating the possible failure strings that can be relevant for this item.' items: format: int32 type: integer type: array inventoryBucketHash: description: The inventory bucket into which this item will be placed upon purchase. format: uint32 type: integer itemHash: description: "The hash identifier of the item being sold (DestinyInventoryItemDefinition).\r\nNote that a vendor can sell the same item in multiple ways, so don't assume that itemHash is a unique identifier for this entity." format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' maximumLevel: description: The maximum character level at which this item is available for sale. format: int32 type: integer minimumLevel: description: The minimum character level at which this item is available for sale. format: int32 type: integer originalCategoryIndex: description: 'Same as above, but for the original category indexes.' format: int32 type: integer purchasableScope: allOf: - $ref: '#/definitions/Destiny.DestinyGatingScope' description: "Similar to visibilityScope, it represents the most restrictive scope that determines whether the item can be purchased. It will at least be as restrictive as visibilityScope, but could be more restrictive if the item has additional purchase requirements beyond whether it is merely visible or not.\r\nSee DestinyGatingScope's documentation for more information." type: object quantity: description: The amount you will recieve of the item described in itemHash if you make the purchase. format: int32 type: integer refundPolicy: allOf: - $ref: '#/definitions/Destiny.DestinyVendorItemRefundPolicy' description: 'If this item can be refunded, this is the policy for what will be refundd, how, and in what time period.' type: object refundTimeLimit: description: The amount of time before refundability of the newly purchased item will expire. format: int32 type: integer vendorItemIndex: description: The index into the DestinyVendorDefinition.saleList. This is what we use to refer to items being sold throughout live and definition data. format: int32 type: integer visibilityScope: allOf: - $ref: '#/definitions/Destiny.DestinyGatingScope' description: "The most restrictive scope that determines whether the item is available in the Vendor's inventory. See DestinyGatingScope's documentation for more information.\r\nThis can be determined by Unlock gating, or by whether or not the item has purchase level requirements (minimumLevel and maximumLevel properties)." type: object type: object Destiny.Definitions.DestinyVendorRequirementDisplayEntryDefinition: description: 'The localized properties of the requirementsDisplay, allowing information about the requirement or item being featured to be seen.' properties: icon: type: string name: type: string source: type: string type: type: string type: object Destiny.Definitions.DestinyVendorSaleItemActionBlockDefinition: description: 'Not terribly useful, some basic cooldown interaction info.' properties: executeSeconds: format: float type: number isPositive: type: boolean type: object Destiny.Definitions.DestinyVendorServiceDefinition: description: 'When a vendor provides services, this is the localized name of those services.' properties: name: description: The localized name of a service provided. type: string type: object Destiny.Definitions.Director.DestinyActivityGraphArtElementDefinition: description: 'These Art Elements are meant to represent one-off visual effects overlaid on the map. Currently, we do not have a pipeline to import the assets for these overlays, so this info exists as a placeholder for when such a pipeline exists (if it ever will)' properties: position: allOf: - $ref: '#/definitions/Destiny.Definitions.Common.DestinyPositionDefinition' description: The position on the map of the art element. type: object type: object Destiny.Definitions.Director.DestinyActivityGraphConnectionDefinition: description: 'Nodes on a graph can be visually connected: this appears to be the information about which nodes to link. It appears to lack more detailed information, such as the path for that linking.' properties: destNodeHash: format: uint32 type: integer sourceNodeHash: format: uint32 type: integer type: object Destiny.Definitions.Director.DestinyActivityGraphDefinition: description: "Represents a Map View in the director: be them overview views, destination views, or other.\r\nThey have nodes which map to activities, and other various visual elements that we (or others) may or may not be able to use.\r\nActivity graphs, most importantly, have nodes which can have activities in various states of playability.\r\nUnfortunately, activity graphs are combined at runtime with Game UI-only assets such as fragments of map images, various in-game special effects, decals etc... that we don't get in these definitions.\r\nIf we end up having time, we may end up trying to manually populate those here: but the last time we tried that, before the lead-up to D1, it proved to be unmaintainable as the game's content changed. So don't bet the farm on us providing that content in this definition." properties: artElements: description: Represents one-off/special UI elements that appear on the map. items: $ref: '#/definitions/Destiny.Definitions.Director.DestinyActivityGraphArtElementDefinition' type: array connections: description: 'Represents connections between graph nodes. However, it lacks context that we''d need to make good use of it.' items: $ref: '#/definitions/Destiny.Definitions.Director.DestinyActivityGraphConnectionDefinition' type: array displayObjectives: description: 'Objectives can display on maps, and this is supposedly metadata for that. I have not had the time to analyze the details of what is useful within however: we could be missing important data to make this work. Expect this property to be expanded on later if possible.' items: $ref: '#/definitions/Destiny.Definitions.Director.DestinyActivityGraphDisplayObjectiveDefinition' type: array displayProgressions: description: 'Progressions can also display on maps, but similarly to displayObjectives we appear to lack some required information and context right now. We will have to look into it later and add more data if possible.' items: $ref: '#/definitions/Destiny.Definitions.Director.DestinyActivityGraphDisplayProgressionDefinition' type: array hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer linkedGraphs: description: Represents links between this Activity Graph and other ones. items: $ref: '#/definitions/Destiny.Definitions.Director.DestinyLinkedGraphDefinition' type: array nodes: description: These represent the visual "nodes" on the map's view. These are the activities you can click on in the map. items: $ref: '#/definitions/Destiny.Definitions.Director.DestinyActivityGraphNodeDefinition' type: array redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean type: object x-mobile-manifest-name: ActivityGraphs Destiny.Definitions.Director.DestinyActivityGraphDisplayObjectiveDefinition: description: 'When a Graph needs to show active Objectives, this defines those objectives as well as an identifier.' properties: id: description: $NOTE $amola 2017-01-19 This field is apparently something that CUI uses to manually wire up objectives to display info. I am unsure how it works. format: uint32 type: integer objectiveHash: description: The objective being shown on the map. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyObjectiveDefinition' type: object Destiny.Definitions.Director.DestinyActivityGraphDisplayProgressionDefinition: description: 'When a Graph needs to show active Progressions, this defines those objectives as well as an identifier.' properties: id: format: uint32 type: integer progressionHash: format: uint32 type: integer type: object Destiny.Definitions.Director.DestinyActivityGraphNodeActivityDefinition: description: 'The actual activity to be redirected to when you click on the node. Note that a node can have many Activities attached to it: but only one will be active at any given time. The list of Node Activities will be traversed, and the first one found to be active will be displayed. This way, a node can layer multiple variants of an activity on top of each other. For instance, one node can control the weekly Crucible Playlist. There are multiple possible playlists, but only one is active for the week.' properties: activityHash: description: The activity that will be activated if the user clicks on this node. Controls all activity-related information displayed on the node if it is active (the text shown in the tooltip etc) format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityDefinition' nodeActivityId: description: An identifier for this node activity. It is only guaranteed to be unique within the Activity Graph. format: uint32 type: integer type: object Destiny.Definitions.Director.DestinyActivityGraphNodeDefinition: description: 'This is the position and other data related to nodes in the activity graph that you can click to launch activities. An Activity Graph node will only have one active Activity at a time, which will determine the activity to be launched (and, unless overrideDisplay information is provided, will also determine the tooltip and other UI related to the node)' properties: activities: description: 'The node may have various possible activities that could be active for it, however only one may be active at a time. See the DestinyActivityGraphNodeActivityDefinition for details.' items: $ref: '#/definitions/Destiny.Definitions.Director.DestinyActivityGraphNodeActivityDefinition' type: array featuringStates: description: 'The node may have various visual accents placed on it, or styles applied. These are the list of possible styles that the Node can have. The game iterates through each, looking for the first one that passes a check of the required game/character/account state in order to show that style, and then renders the node in that style.' items: $ref: '#/definitions/Destiny.Definitions.Director.DestinyActivityGraphNodeFeaturingStateDefinition' type: array nodeId: description: 'An identifier for the Activity Graph Node, only guaranteed to be unique within its parent Activity Graph.' format: uint32 type: integer overrideDisplay: allOf: - $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' description: The node *may* have display properties that override the active Activity's display properties. type: object position: allOf: - $ref: '#/definitions/Destiny.Definitions.Common.DestinyPositionDefinition' description: The position on the map for this node. type: object type: object Destiny.Definitions.Director.DestinyActivityGraphNodeFeaturingStateDefinition: description: 'Nodes can have different visual states. This object represents a single visual state ("highlight type") that a node can be in, and the unlock expression condition to determine whether it should be set.' properties: highlightType: allOf: - $ref: '#/definitions/Destiny.ActivityGraphNodeHighlightType' description: 'The node can be highlighted in a variety of ways - the game iterates through these and finds the first FeaturingState that is valid at the present moment given the Game, Account, and Character state, and renders the node in that state. See the ActivityGraphNodeHighlightType enum for possible values.' type: object type: object Destiny.Definitions.Director.DestinyLinkedGraphDefinition: description: 'This describes links between the current graph and others, as well as when that link is relevant.' properties: description: type: string linkedGraphId: format: uint32 type: integer linkedGraphs: items: $ref: '#/definitions/Destiny.Definitions.Director.DestinyLinkedGraphEntryDefinition' type: array name: type: string overview: type: string unlockExpression: $ref: '#/definitions/Destiny.Definitions.DestinyUnlockExpressionDefinition' type: object Destiny.Definitions.Director.DestinyLinkedGraphEntryDefinition: properties: activityGraphHash: format: uint32 type: integer type: object Destiny.Definitions.Items.DestinyDerivedItemCategoryDefinition: description: "A shortcut for the fact that some items have a \"Preview Vendor\" - See DestinyInventoryItemDefinition.preview.previewVendorHash - that is intended to be used to show what items you can get as a result of acquiring or using this item.\r\nA common example of this in Destiny 1 was Eververse \"Boxes,\" which could have many possible items. This \"Preview Vendor\" is not a vendor you can actually see in the game, but it defines categories and sale items for all of the possible items you could get from the Box so that the game can show them to you. We summarize that info here so that you don't have to do that Vendor lookup and aggregation manually." properties: categoryDescription: description: 'The localized string for the category title. This will be something describing the items you can get as a group, or your likelihood/the quantity you''ll get.' type: string items: description: This is the list of all of the items for this category and the basic properties we'll know about them. items: $ref: '#/definitions/Destiny.Definitions.Items.DestinyDerivedItemDefinition' type: array type: object Destiny.Definitions.Items.DestinyDerivedItemDefinition: description: 'This is a reference to, and summary data for, a specific item that you can get as a result of Using or Acquiring some other Item (For example, this could be summary information for an Emote that you can get by opening an an Eververse Box) See DestinyDerivedItemCategoryDefinition for more information.' properties: iconPath: description: An icon for the item. type: string itemDescription: description: A brief description of the item. type: string itemDetail: description: 'Additional details about the derived item, in addition to the description.' type: string itemHash: description: 'The hash for the DestinyInventoryItemDefinition of this derived item, if there is one. Sometimes we are given this information as a manual override, in which case there won''t be an actual DestinyInventoryItemDefinition for what we display, but you can still show the strings from this object itself.' format: uint32 type: integer itemName: description: The name of the derived item. type: string vendorItemIndex: description: 'If the item was derived from a "Preview Vendor", this will be an index into the DestinyVendorDefinition''s itemList property. Otherwise, -1.' format: int32 type: integer type: object Destiny.Definitions.Items.DestinyItemPlugDefinition: description: "If an item is a Plug, its DestinyInventoryItemDefinition.plug property will be populated with an instance of one of these bad boys.\r\nThis gives information about when it can be inserted, what the plug's category is (and thus whether it is compatible with a socket... see DestinySocketTypeDefinition for information about Plug Categories and socket compatibility), whether it is enabled and other Plug info." properties: enabledMaterialRequirementHash: description: 'It''s not enough for the plug to be inserted. It has to be enabled as well. For it to be enabled, it may require materials. This is the hash identifier for the DestinyMaterialRequirementSetDefinition for those requirements, if there is one.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyMaterialRequirementSetDefinition' enabledRules: description: "The rules around whether the plug, once inserted, is enabled and providing its benefits.\r\nThe live data DestinyItemPlugComponent.enableFailIndexes will be an index into this array, so you can pull out the failure strings appropriate for the user." items: $ref: '#/definitions/Destiny.Definitions.Items.DestinyPlugRuleDefinition' type: array insertionMaterialRequirementHash: description: 'If inserting this plug requires materials, this is the hash identifier for looking up the DestinyMaterialRequirementSetDefinition for those requirements.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyMaterialRequirementSetDefinition' insertionRules: description: "The rules around when this plug can be inserted into a socket, aside from the socket's individual restrictions.\r\nThe live data DestinyItemPlugComponent.insertFailIndexes will be an index into this array, so you can pull out the failure strings appropriate for the user." items: $ref: '#/definitions/Destiny.Definitions.Items.DestinyPlugRuleDefinition' type: array onActionRecreateSelf: description: 'If you successfully socket the item, this will determine whether or not you get "refunded" on the plug.' type: boolean plugCategoryHash: description: 'The hash for the plugCategoryIdentifier. You can use this instead if you wish: I put both in the definition for debugging purposes.' format: uint32 type: integer plugCategoryIdentifier: description: The string identifier for the plug's category. Use the socket's DestinySocketTypeDefinition.plugWhitelist to determine whether this plug can be inserted into the socket. type: string previewItemOverrideHash: description: 'In the game, if you''re inspecting a plug item directly, this will be the item shown with the plug attached. Look up the DestinyInventoryItemDefinition for this hash for the item.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' type: object Destiny.Definitions.Items.DestinyItemTierTypeDefinition: description: "Defines the tier type of an item. Mostly this provides human readable properties for types like Common, Rare, etc...\r\nIt also provides some base data for infusion that could be useful." properties: displayProperties: $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer infusionProcess: allOf: - $ref: '#/definitions/Destiny.Definitions.Items.DestinyItemTierTypeInfusionBlock' description: 'If this tier defines infusion properties, they will be contained here.' type: object redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean type: object x-mobile-manifest-name: ItemTierTypes Destiny.Definitions.Items.DestinyItemTierTypeInfusionBlock: properties: baseQualityTransferRatio: description: The default portion of quality that will transfer from the infuser to the infusee item. (InfuserQuality - InfuseeQuality) * baseQualityTransferRatio = base quality transferred. format: float type: number minimumQualityIncrement: description: 'As long as InfuserQuality > InfuseeQuality, the amount of quality bestowed is guaranteed to be at least this value, even if the transferRatio would dictate that it should be less. The total amount of quality that ends up in the Infusee cannot exceed the Infuser''s quality however (for instance, if you infuse a 300 item with a 301 item and the minimum quality increment is 10, the infused item will not end up with 310 quality)' format: int32 type: integer type: object Destiny.Definitions.Items.DestinyPlugRuleDefinition: description: "Dictates a rule around whether the plug is enabled or insertable.\r\nIn practice, the live Destiny data will refer to these entries by index. You can then look up that index in the appropriate property (enabledRules or insertionRules) to get the localized string for the failure message if it failed." properties: failureMessage: description: The localized string to show if this rule fails. type: string type: object Destiny.Definitions.Lore.DestinyLoreDefinition: description: "These are definitions for in-game \"Lore,\" meant to be narrative enhancements of the game experience.\r\nDestinyInventoryItemDefinitions for interesting items point to these definitions, but nothing's stopping you from scraping all of these and doing something cool with them. If they end up having cool data." properties: displayProperties: $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean subtitle: type: string type: object x-mobile-manifest-name: Lore Destiny.Definitions.Milestones.DestinyMilestoneActivityDefinition: description: "Milestones can have associated activities which provide additional information about the context, challenges, modifiers, state etc... related to this Milestone. \r\nInformation we need to be able to return that data is defined here, along with Tier data to establish a relationship between a conceptual Activity and its difficulty levels and variants." properties: conceptualActivityHash: description: "The \"Conceptual\" activity hash. Basically, we picked the lowest level activity and are treating it as the canonical definition of the activity for rendering purposes.\r\nIf you care about the specific difficulty modes and variations, use the activities under \"Variants\"." format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityDefinition' variants: additionalProperties: $ref: '#/definitions/Destiny.Definitions.Milestones.DestinyMilestoneActivityVariantDefinition' description: "A milestone-referenced activity can have many variants, such as Tiers or alternative modes of play.\r\nEven if there is only a single variant, the details for these are represented within as a variant definition.\r\nIt is assumed that, if this DestinyMilestoneActivityDefinition is active, then all variants should be active.\r\nIf a Milestone could ever split the variants' active status conditionally, they should all have their own DestinyMilestoneActivityDefinition instead! The potential duplication will be worth it for the obviousness of processing and use." type: object x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityDefinition' type: object Destiny.Definitions.Milestones.DestinyMilestoneActivityVariantDefinition: description: "Represents a variant on an activity for a Milestone: a specific difficulty tier, or a specific activity variant for example.\r\nThese will often have more specific details, such as an associated Guided Game, progression steps, tier-specific rewards, and custom values." properties: activityHash: description: "The hash to use for looking up the variant Activity's definition (DestinyActivityDefinition), where you can find its distinguishing characteristics such as difficulty level and recommended light level. \r\nFrequently, that will be the only distinguishing characteristics in practice, which is somewhat of a bummer." format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityDefinition' order: description: "If you care to do so, render the variants in the order prescribed by this value.\r\nWhen you combine live Milestone data with the definition, the order becomes more useful because you'll be cross-referencing between the definition and live data." format: int32 type: integer type: object Destiny.Definitions.Milestones.DestinyMilestoneDefinition: description: "Milestones are an in-game concept where they're attempting to tell you what you can do next in-game.\r\nIf that sounds a lot like Advisors in Destiny 1, it is! So we threw out Advisors in the Destiny 2 API and tacked all of the data we would have put on Advisors onto Milestones instead.\r\nEach Milestone represents something going on in the game right now:\r\n- A \"ritual activity\" you can perform, like nightfall\r\n- A \"special event\" that may have activities related to it, like Taco Tuesday (there's no Taco Tuesday in Destiny 2)\r\n- A checklist you can fulfill, like helping your Clan complete all of its weekly objectives\r\n- A tutorial quest you can play through, like the introduction to the Crucible.\r\nMost of these milestones appear in game as well. Some of them are BNet only, because we're so extra. You're welcome." properties: displayProperties: $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' friendlyName: description: If the milestone has a friendly identifier for association with other features - such as Recruiting - that identifier can be found here. This is "friendly" in that it looks better in a URL than whatever the identifier for the Milestone actually is. type: string hasPredictableDates: description: 'A shortcut for clients - and the server - to understand whether we can predict the start and end dates for this event. In practice, there are multiple ways that an event could have predictable date ranges, but not all events will be able to be predicted via any mechanism (for instance, events that are manually triggered on and off)' type: boolean hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer image: description: A custom image someone made just for the milestone. Isn't that special? type: string index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer isInGameMilestone: description: 'Some milestones are explicit objectives that you can see and interact with in the game. Some milestones are more conceptual, built by BNet to help advise you on activities and events that happen in-game but that aren''t explicitly shown in game as Milestones. If this is TRUE, you can see this as a milestone in the game. If this is FALSE, it''s an event or activity you can participate in, but you won''t see it as a Milestone in the game''s UI.' type: boolean milestoneType: allOf: - $ref: '#/definitions/Destiny.Definitions.Milestones.DestinyMilestoneType' description: An enumeration listing one of the possible types of milestones. Check out the DestinyMilestoneType enum for more info! type: object quests: additionalProperties: $ref: '#/definitions/Destiny.Definitions.Milestones.DestinyMilestoneQuestDefinition' description: 'The full set of possible Quests that give the overview of the Milestone event/activity in question. Only one of these can be active at a time for a given Conceptual Milestone, but many of them may be "available" for the user to choose from. (for instance, with Milestones you can choose from the three available Quests, but only one can be active at a time) Keyed by the quest item.' type: object recruitable: description: 'If True, then the Milestone has been integrated with BNet''s recruiting feature.' type: boolean redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean rewards: additionalProperties: $ref: '#/definitions/Destiny.Definitions.Milestones.DestinyMilestoneRewardCategoryDefinition' description: 'If this milestone can provide rewards, this will define the categories into which the individual reward entries are placed.' type: object showInExplorer: description: 'If TRUE, this entry should be returned in the list of milestones for the "Explore Destiny" (i.e. new BNet homepage) features of Bungie.net (as long as the underlying event is active)' type: boolean values: additionalProperties: $ref: '#/definitions/Destiny.Definitions.Milestones.DestinyMilestoneValueDefinition' description: 'Sometimes, milestones will have arbitrary values associated with them that are of interest to us or to third party developers. This is the collection of those values'' definitions, keyed by the identifier of the value and providing useful definition information such as localizable names and descriptions for the value.' type: object vendors: description: 'Sometimes, milestones will have rewards provided by Vendors. This definition gives the information needed to understand which vendors are relevant, the order in which they should be returned if order matters, and the conditions under which the Vendor is relevant to the user.' items: $ref: '#/definitions/Destiny.Definitions.Milestones.DestinyMilestoneVendorDefinition' type: array type: object x-mobile-manifest-name: Milestones Destiny.Definitions.Milestones.DestinyMilestoneQuestDefinition: description: 'Any data we need to figure out whether this Quest Item is the currently active one for the conceptual Milestone. Even just typing this description, I already regret it.' properties: activities: additionalProperties: $ref: '#/definitions/Destiny.Definitions.Milestones.DestinyMilestoneActivityDefinition' description: The full set of all possible "conceptual activities" that are related to this Milestone. Tiers or alternative modes of play within these conceptual activities will be defined as sub-entities. Keyed by the Conceptual Activity Hash. Use the key to look up DestinyActivityDefinition. type: object x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityDefinition' displayProperties: allOf: - $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' description: 'The individual quests may have different definitions from the overall milestone: if there''s a specific active quest, use these displayProperties instead of that of the overall DestinyMilestoneDefinition.' type: object overrideImage: description: 'If populated, this image can be shown instead of the generic milestone''s image when this quest is live, or it can be used to show a background image for the quest itself that differs from that of the Activity or the Milestone.' type: string questItemHash: description: The item representing this Milestone quest. Use this hash to look up the DestinyInventoryItemDefinition for the quest to find its steps and human readable data. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' questRewards: allOf: - $ref: '#/definitions/Destiny.Definitions.Milestones.DestinyMilestoneQuestRewardsDefinition' description: 'The rewards you will get for completing this quest, as best as we could extract them from our data. Sometimes, it''ll be a decent amount of data. Sometimes, it''s going to be sucky. Sorry.' type: object type: object Destiny.Definitions.Milestones.DestinyMilestoneQuestRewardItem: description: "A subclass of DestinyItemQuantity, that provides not just the item and its quantity but also information that BNet can - at some point - use internally to provide more robust runtime information about the item's qualities.\r\nIf you want it, please ask! We're just out of time to wire it up right now. Or a clever person just may do it with our existing endpoints." properties: itemHash: description: The hash identifier for the item in question. Use it to look up the item's DestinyInventoryItemDefinition. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' itemInstanceId: description: '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.' format: int64 type: integer quantity: description: The amount of the item needed/available depending on the context of where DestinyItemQuantity is being used. format: int32 type: integer vendorHash: description: 'The quest reward item *may* be associated with a vendor. If so, this is that vendor. Use this hash to look up the DestinyVendorDefinition.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyVendorDefinition' vendorItemIndex: description: 'The quest reward item *may* be associated with a vendor. If so, this is the index of the item being sold, which we can use at runtime to find instanced item information for the reward item.' format: int32 type: integer type: object Destiny.Definitions.Milestones.DestinyMilestoneQuestRewardsDefinition: description: 'If rewards are given in a quest - as opposed to overall in the entire Milestone - there''s way less to track. We''re going to simplify this contract as a result. However, this also gives us the opportunity to potentially put more than just item information into the reward data if we''re able to mine it out in the future. Remember this if you come back and ask "why are quest reward items nested inside of their own class?"' properties: items: description: "The items that represent your reward for completing the quest.\r\nBe warned, these could be \"dummy\" items: items that are only used to render a good-looking in-game tooltip, but aren't the actual items themselves.\r\nFor instance, when experience is given there's often a dummy item representing \"experience\", with quantity being the amount of experience you got. We don't have a programmatic association between those and whatever Progression is actually getting that experience... yet." items: $ref: '#/definitions/Destiny.Definitions.Milestones.DestinyMilestoneQuestRewardItem' type: array type: object Destiny.Definitions.Milestones.DestinyMilestoneRewardCategoryDefinition: description: 'The definition of a category of rewards, that contains many individual rewards.' properties: categoryHash: description: Identifies the reward category. Only guaranteed unique within this specific component! format: uint32 type: integer categoryIdentifier: description: 'The string identifier for the category, if you want to use it for some end. Guaranteed unique within the specific component.' type: string displayProperties: allOf: - $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' description: Hopefully this is obvious by now. type: object order: description: 'If you want to use BNet''s recommended order for rendering categories programmatically, use this value and compare it to other categories to determine the order in which they should be rendered. I don''t feel great about putting this here, I won''t lie.' format: int32 type: integer rewardEntries: additionalProperties: $ref: '#/definitions/Destiny.Definitions.Milestones.DestinyMilestoneRewardEntryDefinition' description: 'If this milestone can provide rewards, this will define the sets of rewards that can be earned, the conditions under which they can be acquired, internal data that we''ll use at runtime to determine whether you''ve already earned or redeemed this set of rewards, and the category that this reward should be placed under.' type: object type: object Destiny.Definitions.Milestones.DestinyMilestoneRewardEntryDefinition: description: 'The definition of a specific reward, which may be contained in a category of rewards and that has optional information about how it is obtained.' properties: displayProperties: allOf: - $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' description: 'For us to bother returning this info, we should be able to return some kind of information about why these rewards are grouped together. This is ideally that information. Look at how confident I am that this will always remain true.' type: object items: description: 'The items you will get as rewards, and how much of it you''ll get.' items: $ref: '#/definitions/Destiny.DestinyItemQuantity' type: array order: description: 'If you want to follow BNet''s ordering of these rewards, use this number within a given category to order the rewards. Yeah, I know. I feel dirty too.' format: int32 type: integer rewardEntryHash: description: The identifier for this reward entry. Runtime data will refer to reward entries by this hash. Only guaranteed unique within the specific Milestone. format: uint32 type: integer rewardEntryIdentifier: description: 'The string identifier, if you care about it. Only guaranteed unique within the specific Milestone.' type: string vendorHash: description: 'If this reward is redeemed at a Vendor, this is the hash of the Vendor to go to in order to redeem the reward. Use this hash to look up the DestinyVendorDefinition.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyVendorDefinition' type: object Destiny.Definitions.Milestones.DestinyMilestoneType: description: 'The type of milestone. Milestones can be Tutorials, one-time/triggered/non-repeating but not necessarily tutorials, or Repeating Milestones.' enum: - '0' - '1' - '2' - '3' - '4' - '5' format: int32 type: integer x-enum-values: - identifier: Unknown numericValue: '0' - description: One-time milestones that are specifically oriented toward teaching players about new mechanics and gameplay modes. identifier: Tutorial numericValue: '1' - description: 'Milestones that, once completed a single time, can never be repeated.' identifier: OneTime numericValue: '2' - description: '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.' identifier: Weekly numericValue: '3' - description: Milestones that repeat or reset on a daily basis. identifier: Daily numericValue: '4' - description: '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.' identifier: Special numericValue: '5' Destiny.Definitions.Milestones.DestinyMilestoneValueDefinition: description: "The definition for information related to a key/value pair that is relevant for a particular Milestone or component within the Milestone. \r\nThis lets us more flexibly pass up information that's useful to someone, even if it's not necessarily us." properties: displayProperties: $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' key: type: string type: object Destiny.Definitions.Milestones.DestinyMilestoneVendorDefinition: description: "If the Milestone or a component has vendors whose inventories could/should be displayed that are relevant to it, this will return the vendor in question. \r\nIt also contains information we need to determine whether that vendor is actually relevant at the moment, given the user's current state." properties: vendorHash: description: The hash of the vendor whose wares should be shown as associated with the Milestone. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyVendorDefinition' type: object Destiny.Definitions.Progression.DestinyProgressionLevelRequirementDefinition: description: "These are pre-constructed collections of data that can be used to determine the Level Requirement for an item given a Progression to be tested (such as the Character's level).\r\nFor instance, say a character receives a new Auto Rifle, and that Auto Rifle's DestinyInventoryItemDefinition.quality.progressionLevelRequirementHash property is pointing at one of these DestinyProgressionLevelRequirementDefinitions. Let's pretend also that the progressionHash it is pointing at is the Character Level progression. In that situation, the character's level will be used to interpolate a value in the requirementCurve property. The value picked up from that interpolation will be the required level for the item." properties: hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer progressionHash: description: "The progression whose level should be used to determine the level requirement.\r\nLook up the DestinyProgressionDefinition with this hash for more information about the progression in question." format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyProgressionDefinition' redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean requirementCurve: description: "A curve of level requirements, weighted by the related progressions' level.\r\nInterpolate against this curve with the character's progression level to determine what the level requirement of the generated item that is using this data will be." items: $ref: '#/definitions/Interpolation.InterpolationPointFloat' type: array type: object x-mobile-manifest-name: ProgressionLevelRequirements Destiny.Definitions.Sockets.DestinyInsertPlugActionDefinition: description: 'Data related to what happens while a plug is being inserted, mostly for UI purposes.' properties: actionExecuteSeconds: description: 'How long it takes for the Plugging of the item to be completed once it is initiated, if you care.' format: int32 type: integer type: object Destiny.Definitions.Sockets.DestinyPlugWhitelistEntryDefinition: description: "Defines a plug \"Category\" that is allowed to be plugged into a socket of this type.\r\nThis should be compared against a given plug item's DestinyInventoryItemDefinition.plug.plugCategoryHash, which indicates the plug item's category." properties: categoryHash: description: "The hash identifier of the Plug Category to compare against the plug item's plug.plugCategoryHash.\r\nNote that this does NOT relate to any Definition in itself, it is only used for comparison purposes." format: uint32 type: integer categoryIdentifier: description: 'The string identifier for the category, which is here mostly for debug purposes.' type: string type: object Destiny.Definitions.Sockets.DestinySocketCategoryDefinition: description: "Sockets on an item are organized into Categories visually.\r\nYou can find references to the socket category defined on an item's DestinyInventoryItemDefinition.sockets.socketCategories property.\r\nThis has the display information for rendering the categories' header, and a hint for how the UI should handle showing this category." properties: displayProperties: $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean uiCategoryStyle: description: "A string hinting to the game's UI system about how the sockets in this category should be displayed.\r\nBNet doesn't use it: it's up to you to find valid values and make your own special UI if you want to honor this category style." format: uint32 type: integer type: object x-mobile-manifest-name: SocketCategories Destiny.Definitions.Sockets.DestinySocketTypeDefinition: description: "All Sockets have a \"Type\": a set of common properties that determine when the socket allows Plugs to be inserted, what Categories of Plugs can be inserted, and whether the socket is even visible at all given the current game/character/account state.\r\nSee DestinyInventoryItemDefinition for more information about Socketed items and Plugs." properties: displayProperties: allOf: - $ref: '#/definitions/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition' description: 'There are fields for this display data, but they appear to be unpopulated as of now. I am not sure where in the UI these would show if they even were populated, but I will continue to return this data in case it becomes useful.' type: object hash: description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r\nWhen entities refer to each other in Destiny content, it is this hash that they are referring to." format: uint32 type: integer index: description: The index of the entity as it was found in the investment tables. format: int32 type: integer insertAction: allOf: - $ref: '#/definitions/Destiny.Definitions.Sockets.DestinyInsertPlugActionDefinition' description: Defines what happens when a plug is inserted into sockets of this type. type: object plugWhitelist: description: "A list of Plug \"Categories\" that are allowed to be plugged into sockets of this type.\r\nThese should be compared against a given plug item's DestinyInventoryItemDefinition.plug.plugCategoryHash, which indicates the plug item's category.\r\nIf the plug's category matches any whitelisted plug, or if the whitelist is empty, it is allowed to be inserted." items: $ref: '#/definitions/Destiny.Definitions.Sockets.DestinyPlugWhitelistEntryDefinition' type: array redacted: description: 'If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!' type: boolean socketCategoryHash: format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.Sockets.DestinySocketCategoryDefinition' visibility: $ref: '#/definitions/Destiny.DestinySocketVisibility' type: object x-mobile-manifest-name: SocketTypes Destiny.Definitions.Sources.DestinyItemSourceDefinition: description: "Properties of a DestinyInventoryItemDefinition that store all of the information we were able to discern about how the item spawns, and where you can find the item.\r\nItems will have many of these sources, one per level at which it spawns, to try and give more granular data about where items spawn for specific level ranges." properties: computedStats: additionalProperties: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemStatDefinition' description: The stats computed for this level/quality range. type: object level: description: 'The level at which the item spawns. Essentially the Primary Key for this source data: there will be multiple of these source entries per item that has source data, grouped by the level at which the item spawns.' format: int32 type: integer maxLevelRequired: description: 'The maximum Character Level required for equipping the item when the item spawns at the item level defined on this DestinyItemSourceDefinition, as far as we saw in our processing.' format: int32 type: integer maxQuality: description: The maximum quality at which the item spawns for this level. format: int32 type: integer minLevelRequired: description: 'The minimum Character Level required for equipping the item when the item spawns at the item level defined on this DestinyItemSourceDefinition, as far as we saw in our processing.' format: int32 type: integer minQuality: description: 'The minimum Quality at which the item spawns for this level. Examine DestinyInventoryItemDefinition for more information about what Quality means. Just don''t ask Phaedrus about it, he''ll never stop talking and you''ll have to write a book about it.' format: int32 type: integer sourceHashes: description: The DestinyRewardSourceDefinitions found that can spawn the item at this level. items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyRewardSourceDefinition' type: object Destiny.DestinyActivity: description: "Represents the \"Live\" data that we can obtain about a Character's status with a specific Activity. This will tell you whether the character can participate in the activity, as well as some other basic mutable information. \r\nMeant to be combined with static DestinyActivityDefinition data for a full picture of the Activity." properties: activityHash: description: The hash identifier of the Activity. Use this to look up the DestinyActivityDefinition of the activity. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityDefinition' canJoin: description: 'If true, the user is allowed to join with another Fireteam in this activity.' type: boolean canLead: description: 'If true, the user is allowed to lead a Fireteam into this activity.' type: boolean difficultyTier: allOf: - $ref: '#/definitions/Destiny.DestinyActivityDifficultyTier' description: A DestinyActivityDifficultyTier enum value indicating the difficulty of the activity. type: object displayLevel: description: 'The difficulty level of the activity, if applicable.' format: int32 type: integer isCompleted: description: 'If true, we both have the ability to know that the user has completed this activity and they have completed it. Unfortunately, we can''t necessarily know this for all activities. As such, this should probably only be used if you already know in advance which specific activities you wish to check.' type: boolean isNew: description: 'If true, then the activity should have a "new" indicator in the Director UI.' type: boolean isVisible: description: 'If true, the user should be able to see this activity.' type: boolean recommendedLight: description: 'The recommended light level for the activity, if applicable.' format: int32 type: integer type: object Destiny.DestinyActivityDifficultyTier: description: An enumeration representing the potential difficulty levels of an activity. Their names are... more qualitative than quantitative. enum: - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' format: int32 type: integer x-enum-values: - identifier: Trivial numericValue: '0' - identifier: Easy numericValue: '1' - identifier: Normal numericValue: '2' - identifier: Challenging numericValue: '3' - identifier: Hard numericValue: '4' - identifier: Brave numericValue: '5' - identifier: AlmostImpossible numericValue: '6' - identifier: Impossible numericValue: '7' Destiny.DestinyActivityModeCategory: description: Activity Modes are grouped into a few possible broad categories. enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - description: 'Activities that are neither PVP nor PVE, such as social activities.' identifier: None numericValue: '0' - description: 'PvE activities, where you shoot aliens in the face.' identifier: PvE numericValue: '1' - description: 'PvP activities, where you teabag other humans in the face.' identifier: PvP numericValue: '2' Destiny.DestinyActivityNavPointType: enum: - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' - '8' - '9' - '10' - '11' - '12' - '13' - '14' - '15' - '16' format: int32 type: integer x-enum-values: - identifier: Inactive numericValue: '0' - identifier: PrimaryObjective numericValue: '1' - identifier: SecondaryObjective numericValue: '2' - identifier: TravelObjective numericValue: '3' - identifier: PublicEventObjective numericValue: '4' - identifier: AmmoCache numericValue: '5' - identifier: PointTypeFlag numericValue: '6' - identifier: CapturePoint numericValue: '7' - identifier: DefensiveEncounter numericValue: '8' - identifier: GhostInteraction numericValue: '9' - identifier: KillAi numericValue: '10' - identifier: QuestItem numericValue: '11' - identifier: PatrolMission numericValue: '12' - identifier: Incoming numericValue: '13' - identifier: ArenaObjective numericValue: '14' - identifier: AutomationHint numericValue: '15' - identifier: TrackedQuest numericValue: '16' Destiny.DestinyClass: enum: - '0' - '1' - '2' - '3' format: int32 type: integer x-enum-values: - identifier: Titan numericValue: '0' - identifier: Hunter numericValue: '1' - identifier: Warlock numericValue: '2' - identifier: Unknown numericValue: '3' Destiny.DestinyComponentType: enum: - '0' - '100' - '101' - '102' - '103' - '200' - '201' - '202' - '203' - '204' - '205' - '300' - '301' - '302' - '303' - '304' - '305' - '306' - '307' - '308' - '400' - '401' - '402' - '500' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - description: '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.' identifier: Profiles numericValue: '100' - description: 'Only applicable for GetProfile, this will return information about receipts for refundable vendor items.' identifier: VendorReceipts numericValue: '101' - description: '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)' identifier: ProfileInventories numericValue: '102' - description: '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.' identifier: ProfileCurrencies numericValue: '103' - description: This will get you summary info about each of the characters in the profile. identifier: Characters numericValue: '200' - description: '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.' identifier: CharacterInventories numericValue: '201' - description: '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.' identifier: CharacterProgressions numericValue: '202' - description: '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)' identifier: CharacterRenderData numericValue: '203' - description: '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.' identifier: CharacterActivities numericValue: '204' - description: This will return info about the equipped items on the character(s). Everyone can see this. identifier: CharacterEquipment numericValue: '205' - description: '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)' identifier: ItemInstances numericValue: '300' - description: 'Items can have Objectives (DestinyObjectiveDefinition) bound to them. If they do, this will return info for items that have such bound objectives.' identifier: ItemObjectives numericValue: '301' - description: 'Items can have perks (DestinyPerkDefinition). If they do, this will return info for what perks are active on items.' identifier: ItemPerks numericValue: '302' - description: 'If you just want to render the weapon, this is just enough info to do that rendering.' identifier: ItemRenderData numericValue: '303' - description: 'Items can have stats, like rate of fire. Asking for this component will return requested item''s stats if they have stats.' identifier: ItemStats numericValue: '304' - description: '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.' identifier: ItemSockets numericValue: '305' - description: '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.' identifier: ItemTalentGrids numericValue: '306' - description: '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.' identifier: ItemCommonData numericValue: '307' - description: '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!' identifier: ItemPlugStates numericValue: '308' - identifier: Vendors numericValue: '400' - identifier: VendorCategories numericValue: '401' - identifier: VendorSales numericValue: '402' - description: '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.' identifier: Kiosks numericValue: '500' Destiny.DestinyEquipItemResult: description: The results of an Equipping operation performed through the Destiny API. properties: equipStatus: allOf: - $ref: '#/definitions/Exceptions.PlatformErrorCodes' description: 'A PlatformErrorCodes enum indicating whether it succeeded, and if it failed why.' type: object itemInstanceId: description: 'The instance ID of the item in question (all items that can be equipped must, but definition, be Instanced and thus have an Instance ID that you can use to refer to them)' format: int64 type: integer type: object Destiny.DestinyEquipItemResults: description: The results of a bulk Equipping operation performed through the Destiny API. properties: equipResults: items: $ref: '#/definitions/Destiny.DestinyEquipItemResult' type: array type: object Destiny.DestinyGameVersions: description: A flags enumeration indicating the versions of the game that a given user has purchased. enum: - '0' - '1' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Destiny2 numericValue: '1' Destiny.DestinyGatingScope: description: "This enumeration represents the most restrictive type of gating that is being performed by an entity. This is useful as a shortcut to avoid a lot of lookups when determining whether the gating on an Entity applies to everyone equally, or to their specific Profile or Character states.\r\nNone = There is no gating on this item. Global = The gating on this item is based entirely on global game state. It will be gated the same for everyone. Clan = The gating on this item is at the Clan level. For instance, if you're gated by Clan level this will be the case. Profile = The gating includes Profile-specific checks, but not on the Profile's characters. An example of this might be when you acquire an Emblem: the Emblem will be available in your Kiosk for all characters in your Profile from that point onward. Character = The gating includes Character-specific checks, including character level restrictions. An example of this might be an item that you can't purchase from a Vendor until you reach a specific Character Level. Item = The gating includes item-specific checks. For BNet, this generally implies that we'll show this data only on a character level or deeper. AssumedWorstCase = The unlocks and checks being used for this calculation are of an unknown type and are used for unknown purposes. For instance, if some great person decided that an unlock value should be globally scoped, but then the game changes it using character-specific data in a way that BNet doesn't know about. Because of the open-ended potential for this to occur, many unlock checks for \"globally\" scoped unlock data may be assumed as the worst case unless it has been specifically whitelisted as otherwise. That sucks, but them's the breaks." enum: - '0' - '1' - '2' - '3' - '4' - '5' - '6' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Global numericValue: '1' - identifier: Clan numericValue: '2' - identifier: Profile numericValue: '3' - identifier: Character numericValue: '4' - identifier: Item numericValue: '5' - identifier: AssumedWorstCase numericValue: '6' Destiny.DestinyGender: enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - identifier: Male numericValue: '0' - identifier: Female numericValue: '1' - identifier: Unknown numericValue: '2' Destiny.DestinyItemQuantity: description: '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.' properties: itemHash: description: The hash identifier for the item in question. Use it to look up the item's DestinyInventoryItemDefinition. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' itemInstanceId: description: '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.' format: int64 type: integer quantity: description: The amount of the item needed/available depending on the context of where DestinyItemQuantity is being used. format: int32 type: integer type: object Destiny.DestinyItemSortType: description: Determines how items are sorted in an inventory bucket. enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - identifier: ItemId numericValue: '0' - identifier: Timestamp numericValue: '1' - identifier: StackSize numericValue: '2' Destiny.DestinyItemSubType: description: "This Enumeration further classifies items by more specific categorizations than DestinyItemType. The \"Sub-Type\" is where we classify and categorize items one step further in specificity: \"Auto Rifle\" instead of just \"Weapon\" for example, or \"Vanguard Bounty\" instead of merely \"Bounty\".\r\nThese sub-types are provided for historical compatibility with Destiny 1, but an ideal alternative is to use DestinyItemCategoryDefinitions and the DestinyItemDefinition.itemCategories property instead. Item Categories allow for arbitrary hierarchies of specificity, and for items to belong to multiple categories across multiple hierarchies simultaneously. For this enum, we pick a single type as a \"best guess\" fit.\r\nNOTE: This is not all of the item types available, and some of these are holdovers from Destiny 1 that may or may not still exist." enum: - '0' - '1' - '2' - '5' - '6' - '7' - '8' - '9' - '10' - '11' - '12' - '13' - '14' - '16' - '17' - '18' - '19' - '20' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Crucible numericValue: '1' - identifier: Vanguard numericValue: '2' - identifier: Exotic numericValue: '5' - identifier: AutoRifle numericValue: '6' - identifier: Shotgun numericValue: '7' - identifier: Machinegun numericValue: '8' - identifier: HandCannon numericValue: '9' - identifier: RocketLauncher numericValue: '10' - identifier: FusionRifle numericValue: '11' - identifier: SniperRifle numericValue: '12' - identifier: PulseRifle numericValue: '13' - identifier: ScoutRifle numericValue: '14' - identifier: Crm numericValue: '16' - identifier: Sidearm numericValue: '17' - identifier: Sword numericValue: '18' - identifier: Mask numericValue: '19' - identifier: Shader numericValue: '20' Destiny.DestinyItemType: description: "An enumeration that indicates the high-level \"type\" of the item, attempting to iron out the context specific differences for specific instances of an entity. For instance, though a weapon may be of various wepaon \"Types\", in DestinyItemType they are all classified as \"Weapon\". This allows for better filtering on a higher level of abstraction for the concept of types.\r\n This enum is provided for historical compatibility with Destiny 1, but an ideal alternative is to use DestinyItemCategoryDefinitions and the DestinyItemDefinition.itemCategories property instead. Item Categories allow for arbitrary hierarchies of specificity, and for items to belong to multiple categories across multiple hierarchies simultaneously. For this enum, we pick a single type as a \"best guess\" fit.\r\n NOTE: This is not all of the item types available, and some of these are holdovers from Destiny 1 that may or may not still exist." enum: - '0' - '1' - '2' - '3' - '7' - '8' - '9' - '10' - '11' - '12' - '13' - '14' - '15' - '16' - '17' - '18' - '19' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Currency numericValue: '1' - identifier: Armor numericValue: '2' - identifier: Weapon numericValue: '3' - identifier: Message numericValue: '7' - identifier: Engram numericValue: '8' - identifier: Consumable numericValue: '9' - identifier: ExchangeMaterial numericValue: '10' - identifier: MissionReward numericValue: '11' - identifier: QuestStep numericValue: '12' - identifier: QuestStepComplete numericValue: '13' - identifier: Emblem numericValue: '14' - identifier: Quest numericValue: '15' - identifier: Subclass numericValue: '16' - identifier: ClanBanner numericValue: '17' - identifier: Aura numericValue: '18' - identifier: Mod numericValue: '19' Destiny.DestinyObjectiveGrantStyle: description: 'Some Objectives provide perks, generally as part of providing some kind of interesting modifier for a Challenge or Quest. This indicates when the Perk is granted.' enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - identifier: WhenIncomplete numericValue: '0' - identifier: WhenComplete numericValue: '1' - identifier: Always numericValue: '2' Destiny.DestinyProgression: description: 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. properties: currentProgress: description: 'This is the total amount of progress obtained overall for this progression (for instance, the total amount of Character Level experience earned)' format: int32 type: integer dailyLimit: description: 'If this progression has a daily limit, this is that limit.' format: int32 type: integer dailyProgress: description: The amount of progress earned today for this progression. format: int32 type: integer level: description: 'This is the level of the progression (for instance, the Character Level).' format: int32 type: integer levelCap: description: 'This is the maximum possible level you can achieve for this progression (for example, the maximum character level obtainable)' format: int32 type: integer nextLevelAt: description: The total amount of progression (i.e. "Experience") needed in order to reach the next level. format: int32 type: integer progressToNextLevel: description: 'The amount of progression (i.e. "Experience") needed to reach the next level of this Progression. Jeez, progression is such an overloaded word.' format: int32 type: integer progressionHash: description: The hash identifier of the Progression in question. Use it to look up the DestinyProgressionDefinition in static data. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyProgressionDefinition' stepIndex: description: 'Progressions define their levels in "steps". Since the last step may be repeatable, the user may be 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.)' format: int32 type: integer weeklyLimit: description: 'If this progression has a weekly limit, this is that limit.' format: int32 type: integer weeklyProgress: description: The amount of progress earned toward this progression in the current week. format: int32 type: integer type: object Destiny.DestinyProgressionScope: description: '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' enum: - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' - '8' format: int32 type: integer x-enum-values: - identifier: Account numericValue: '0' - identifier: Character numericValue: '1' - identifier: Clan numericValue: '2' - identifier: Item numericValue: '3' - identifier: ImplicitFromEquipment numericValue: '4' - identifier: Mapped numericValue: '5' - identifier: MappedAggregate numericValue: '6' - identifier: MappedStat numericValue: '7' - identifier: MappedUnlockValue numericValue: '8' Destiny.DestinyProgressionStepDisplayEffect: description: 'If progression is earned, this determines whether the progression shows visual effects on the character or its item - or neither.' enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Character numericValue: '1' - identifier: Item numericValue: '2' Destiny.DestinyRace: enum: - '0' - '1' - '2' - '3' format: int32 type: integer x-enum-values: - identifier: Human numericValue: '0' - identifier: Awoken numericValue: '1' - identifier: Exo numericValue: '2' - identifier: Unknown numericValue: '3' Destiny.DestinySocketVisibility: enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - identifier: Visible numericValue: '0' - identifier: Hidden numericValue: '1' - identifier: HiddenWhenEmpty numericValue: '2' Destiny.DestinyStat: description: 'Represents a stat on an item *or* Character (NOT a Historical Stat, but a physical attribute stat like Attack, Defense etc...)' properties: maximumValue: description: 'The highest possible value for the stat, if we were able to compute it. (I wouldn''t necessarily trust this value right now. I would like to improve its calculation in later iterations of the API. Consider this a placeholder for desired future functionality)' format: int32 type: integer statHash: description: The hash identifier for the Stat. Use it to look up the DestinyStatDefinition for static data about the stat. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyStatDefinition' value: description: The current value of the Stat. format: int32 type: integer type: object Destiny.DestinyStatAggregationType: description: "When a Stat (DestinyStatDefinition) is aggregated, this is the rules used for determining the level and formula used for aggregation.\r\n* CharacterAverage = apply a weighted average using the related DestinyStatGroupDefinition on the DestinyInventoryItemDefinition across the character's equipped items. See both of those definitions for details. * Character = don't aggregate: the stat should be located and used directly on the character. * Item = don't aggregate: the stat should be located and used directly on the item." enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - identifier: CharacterAverage numericValue: '0' - identifier: Character numericValue: '1' - identifier: Item numericValue: '2' Destiny.DestinyTalentNode: description: 'I see you''ve come to find out more about Talent Nodes. I''m so sorry. Talent Nodes are the conceptual, visual nodes that appear on Talent Grids. Talent Grids, in Destiny 1, were found on almost every instanced item: they had Nodes that could be activated to change the properties of the item. In Destiny 2, Talent Grids only exist for Builds/Subclasses, and while the basic concept is the same (Nodes can be activated once you''ve gained sufficient Experience on the Item, and provide effects), there are some new concepts from Destiny 1. Examine DestinyTalentGridDefinition and its subordinates for more information. This is the "Live" information for the current status of a Talent Node on a specific item. Talent Nodes have many Steps, but only one can be active at any one time: and it is the Step that determines both the visual and the game state-changing properties that the Node provides. Examine this and DestinyTalentNodeStepDefinition carefully. *IMPORTANT NOTE* Talent Nodes are, unfortunately, Content Version DEPENDENT. Though they refer to hashes for Nodes and Steps, those hashes are not guaranteed to be immutable across content versions. This is a source of great exasperation for me, but as a result anyone using Talent Grid data must ensure that the content version of their static content matches that of the server responses before showing or making decisions based on talent grid data.' properties: activationGridLevel: description: 'The progression level required on the Talent Grid in order to be able to activate this talent node. Talent Grids have their own Progression - similar to Character Level, but in this case it is experience related to the item itself.' format: int32 type: integer hidden: description: Whether or not the talent node is actually visible in the game's UI. Whether you want to show it in your own UI is up to you! I'm not gonna tell you who to sock it to. type: boolean isActivated: description: 'If true, the node is activated: it''s current step then provides its benefits.' type: boolean materialsToUpgrade: description: 'If the node has material requirements to be activated, this is the list of those requirements.' items: $ref: '#/definitions/Destiny.Definitions.DestinyMaterialRequirement' type: array nodeHash: description: The hash of the Talent Node being referred to (in DestinyTalentGridDefinition.nodes). Deceptively CONTENT VERSION DEPENDENT. We have no guarantee of the hash's immutability between content versions. format: uint32 type: integer nodeIndex: description: 'The index of the Talent Node being referred to (an index into DestinyTalentGridDefinition.nodes[]). CONTENT VERSION DEPENDENT.' format: int32 type: integer nodeStatsBlock: allOf: - $ref: '#/definitions/Destiny.DestinyTalentNodeStatBlock' description: This property has some history. A talent grid can provide stats on both the item it's related to and the character equipping the item. This returns data about those stat bonuses. type: object progressPercent: description: 'If you want to show a progress bar or circle for how close this talent node is to being activate-able, this is the percentage to show. It follows the node''s underlying rules about when the progress bar should first show up, and when it should be filled.' format: float type: number state: allOf: - $ref: '#/definitions/Destiny.DestinyTalentNodeState' description: 'An DestinyTalentNodeState enum value indicating the node''s state: whether it can be activated or swapped, and why not if neither can be performed.' type: object stepIndex: description: 'The currently relevant Step for the node. It is this step that has rendering data for the node and the benefits that are provided if the node is activated. (the actual rules for benefits provided are extremely complicated in theory, but with how Talent Grids are being used in Destiny 2 you don''t have to worry about a lot of those old Destiny 1 rules.) This is an index into: DestinyTalentGridDefinition.nodes[nodeIndex].steps[stepIndex]' format: int32 type: integer type: object Destiny.DestinyTalentNodeStatBlock: description: This property has some history. A talent grid can provide stats on both the item it's related to and the character equipping the item. This returns data about those stat bonuses. properties: currentStepStats: description: The stat benefits conferred when this talent node is activated for the current Step that is active on the node. items: $ref: '#/definitions/Destiny.DestinyStat' type: array nextStepStats: description: 'This is a holdover from the old days of Destiny 1, when a node could be activated multiple times, conferring multiple steps worth of benefits: you would use this property to show what activating the "next" step on the node would provide vs. what the current step is providing. While Nodes are currently not being used this way, the underlying system for this functionality still exists. I hesitate to remove this property while the ability for designers to make such a talent grid still exists. Whether you want to show it is up to you.' items: $ref: '#/definitions/Destiny.DestinyStat' type: array type: object Destiny.DestinyTalentNodeState: enum: - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' - '8' - '9' - '10' - '11' - '12' - '13' format: int32 type: integer x-enum-values: - identifier: Invalid numericValue: '0' - identifier: CanUpgrade numericValue: '1' - identifier: NoPoints numericValue: '2' - identifier: NoPrerequisites numericValue: '3' - identifier: NoSteps numericValue: '4' - identifier: NoUnlock numericValue: '5' - identifier: NoMaterial numericValue: '6' - identifier: NoGridLevel numericValue: '7' - identifier: SwappingLocked numericValue: '8' - identifier: MustSwap numericValue: '9' - identifier: Complete numericValue: '10' - identifier: Unknown numericValue: '11' - identifier: CreationOnly numericValue: '12' - identifier: Hidden numericValue: '13' Destiny.DestinyUnlockStatus: description: "Indicates the status of an \"Unlock Flag\" on a Character or Profile.\r\nThese are individual bits of state that can be either set or not set, and sometimes provide interesting human-readable information in their related DestinyUnlockDefinition." properties: isSet: description: Whether the unlock flag is set. type: boolean unlockHash: description: 'The hash identifier for the Unlock Flag. Use to lookup DestinyUnlockDefinition for static data. Not all unlocks have human readable data - in fact, most don''t. But when they do, it can be very useful to show. Even if they don''t have human readable data, you might be able to infer the meaning of an unlock flag with a bit of experimentation...' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyUnlockDefinition' type: object Destiny.DestinyUnlockValueUIStyle: description: 'If you''re showing an unlock value in the UI, this is the format in which it should be shown. You''ll have to build your own algorithms on the client side to determine how best to render these options.' enum: - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' - '8' format: int32 type: integer x-enum-values: - description: 'Generally, Automatic means "Just show the number"' identifier: Automatic numericValue: '0' - description: 'Show the number as a fractional value. For this to make sense, the value being displayed should have a comparable upper bound, like the progress to the next level of a Progression.' identifier: Fraction numericValue: '1' - description: 'Show the number as a checkbox. 0 Will mean unchecked, any other value will mean checked.' identifier: Checkbox numericValue: '2' - description: 'Show the number as a percentage. For this to make sense, the value being displayed should have a comparable upper bound, like the progress to the next level of a Progression.' identifier: Percentage numericValue: '3' - description: 'Show the number as a date and time. The number will be the number of seconds since the Unix Epoch (January 1st, 1970 at midnight UTC). It''ll be up to you to convert this into a date and time format understandable to the user in their time zone.' identifier: DateTime numericValue: '4' - description: 'Show the number as a floating point value that represents a fraction, where 0 is min and 1 is max. For this to make sense, the value being displayed should have a comparable upper bound, like the progress to the next level of a Progression.' identifier: FractionFloat numericValue: '5' - description: Show the number as a straight-up integer. identifier: Integer numericValue: '6' - description: Show the number as a time duration. The value will be returned as seconds. identifier: TimeDuration numericValue: '7' - description: 'Don''t bother showing the value at all, it''s not easily human-interpretable, and used for some internal purpose.' identifier: Hidden numericValue: '8' Destiny.DestinyVendorInteractionRewardSelection: description: 'When a Vendor Interaction provides rewards, they''ll either let you choose one or let you have all of them. This determines which it will be.' enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: One numericValue: '1' - identifier: All numericValue: '2' Destiny.DestinyVendorItemRefundPolicy: description: The action that happens when the user attempts to refund an item. enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - identifier: NotRefundable numericValue: '0' - identifier: DeletesItem numericValue: '1' - identifier: RevokesLicense numericValue: '2' Destiny.DestinyVendorReplyType: description: This determines the type of reply that a Vendor will have during an Interaction. enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - identifier: Accept numericValue: '0' - identifier: Decline numericValue: '1' - identifier: Complete numericValue: '2' Destiny.DyeReference: properties: channelHash: format: uint32 type: integer dyeHash: format: uint32 type: integer type: object Destiny.Entities.Characters.DestinyCharacterActivitiesComponent: description: 'This component holds activity data for a character. It will tell you about the character''s current activity status, as well as activities that are available to the user.' properties: availableActivities: description: The list of activities that the user can play. items: $ref: '#/definitions/Destiny.DestinyActivity' type: array currentActivityHash: description: 'If the user is in an activity, this will be the hash of the Activity being played. Note that you must combine this info with currentActivityModeHash to get a real picture of what the user is doing right now. For instance, PVP "Activities" are just maps: it''s the ActivityMode that determines what type of PVP game they''re playing.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityDefinition' currentActivityModeHash: description: 'If the user is in an activity, this will be the hash of the activity mode being played. Combine with currentActivityHash to give a person a full picture of what they''re doing right now.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityModeDefinition' currentActivityModeHashes: items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityModeDefinition' currentActivityModeType: enum: - '0' - '2' - '3' - '4' - '5' - '6' - '7' - '9' - '10' - '11' - '12' - '13' - '15' - '16' - '17' - '18' - '19' - '20' - '21' - '22' - '24' - '25' - '26' - '27' - '28' - '29' - '30' - '31' - '32' - '37' - '38' - '39' - '40' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Story numericValue: '2' - identifier: Strike numericValue: '3' - identifier: Raid numericValue: '4' - identifier: AllPvP numericValue: '5' - identifier: Patrol numericValue: '6' - identifier: AllPvE numericValue: '7' - identifier: Reserved9 numericValue: '9' - identifier: Control numericValue: '10' - identifier: Reserved11 numericValue: '11' - identifier: Clash numericValue: '12' - identifier: Reserved13 numericValue: '13' - identifier: Reserved15 numericValue: '15' - identifier: Nightfall numericValue: '16' - identifier: HeroicNightfall numericValue: '17' - identifier: AllStrikes numericValue: '18' - identifier: IronBanner numericValue: '19' - identifier: Reserved20 numericValue: '20' - identifier: Reserved21 numericValue: '21' - identifier: Reserved22 numericValue: '22' - identifier: Reserved24 numericValue: '24' - identifier: Reserved25 numericValue: '25' - identifier: Reserved26 numericValue: '26' - identifier: Reserved27 numericValue: '27' - identifier: Reserved28 numericValue: '28' - identifier: Reserved29 numericValue: '29' - identifier: Reserved30 numericValue: '30' - identifier: Supremacy numericValue: '31' - identifier: Reserved32 numericValue: '32' - identifier: Survival numericValue: '37' - identifier: Countdown numericValue: '38' - identifier: TrialsOfTheNine numericValue: '39' - identifier: Social numericValue: '40' x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityModeDefinition' currentActivityModeTypes: items: $ref: '#/definitions/Destiny.HistoricalStats.Definitions.DestinyActivityModeType' type: array currentPlaylistActivityHash: format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityDefinition' dateActivityStarted: description: The last date that the user started playing an activity. format: date-time type: string lastCompletedStoryHash: description: 'This will have the activity hash of the last completed story/campaign mission, in case you care about that.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityDefinition' type: object x-destiny-component-type-dependency: CharacterActivities Destiny.Entities.Characters.DestinyCharacterComponent: description: 'This component contains base properties of the character. You''ll probably want to always request this component, but hey you do you.' properties: baseCharacterLevel: description: 'The "base" level of your character, not accounting for any light level.' format: int32 type: integer characterId: description: The unique identifier for the character. format: int64 type: integer classHash: description: Use this hash to look up the character's DestinyClassDefinition. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyClassDefinition' classType: allOf: - $ref: '#/definitions/Destiny.DestinyClass' description: "Mostly for historical purposes at this point, this is an enumeration for the character's class.\r\nIt'll be preferable in the general case to look up the related definition: but for some people this was too convenient to remove." type: object dateLastPlayed: description: The last date that the user played Destiny. format: date-time type: string emblemBackgroundPath: description: 'A shortcut path to the user''s currently equipped emblem background image. If you''re just showing summary info for a user, this is more convenient than examining their equipped emblem and looking up the definition.' type: string emblemHash: description: The hash of the currently equipped emblem for the user. Can be used to look up the DestinyInventoryItemDefinition. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' emblemPath: description: 'A shortcut path to the user''s currently equipped emblem image. If you''re just showing summary info for a user, this is more convenient than examining their equipped emblem and looking up the definition.' type: string genderHash: description: Use this hash to look up the character's DestinyGenderDefinition. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyGenderDefinition' genderType: allOf: - $ref: '#/definitions/Destiny.DestinyGender' description: "Mostly for historical purposes at this point, this is an enumeration for the character's Gender.\r\nIt'll be preferable in the general case to look up the related definition: but for some people this was too convenient to remove. And yeah, it's an enumeration and not a boolean. Fight me." type: object levelProgression: allOf: - $ref: '#/definitions/Destiny.DestinyProgression' description: 'The progression that indicates your character''s level. Not their light level, but their character level: you know, the thing you max out a couple hours in and then ignore for the sake of light level.' type: object light: description: 'The user''s calculated "Light Level". Light level is an indicator of your power that mostly matters in the end game, once you''ve reached the maximum character level: it''s a level that''s dependent on the average Attack/Defense power of your items.' format: int32 type: integer membershipId: description: Every Destiny Profile has a membershipId. This is provided on the character as well for convenience. format: int64 type: integer membershipType: allOf: - $ref: '#/definitions/BungieMembershipType' description: membershipType tells you the platform on which the character plays. Examine the BungieMembershipType enumeration for possible values. type: object minutesPlayedThisSession: description: 'If the user is currently playing, this is how long they''ve been playing.' format: int64 type: integer minutesPlayedTotal: description: 'If this value is 525,600, then they played Destiny for a year. Or they''re a very dedicated Rent fan. Note that this includes idle time, not just time spent actually in activities shooting things.' format: int64 type: integer percentToNextLevel: description: 'A number between 0 and 100, indicating the whole and fractional % remaining to get to the next character level.' format: float type: number raceHash: description: Use this hash to look up the character's DestinyRaceDefinition. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyRaceDefinition' raceType: allOf: - $ref: '#/definitions/Destiny.DestinyRace' description: "Mostly for historical purposes at this point, this is an enumeration for the character's race.\r\nIt'll be preferable in the general case to look up the related definition: but for some people this was too convenient to remove." type: object stats: additionalProperties: format: int32 type: integer description: "Your character's stats, such as Agility, Resilience, etc... *not* historical stats.\r\nYou'll have to call a different endpoint for those." type: object type: object x-destiny-component-type-dependency: Characters Destiny.Entities.Characters.DestinyCharacterProgressionComponent: description: 'This component returns anything that could be considered "Progression" on a user: data where the user is gaining levels, reputation, completions, rewards, etc...' properties: factions: additionalProperties: $ref: '#/definitions/Destiny.Progression.DestinyFactionProgression' description: 'A dictionary of all known Factions, keyed by the Faction''s hash. It contains data about this character''s status with the faction.' type: object x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyFactionDefinition' milestones: additionalProperties: $ref: '#/definitions/Destiny.Milestones.DestinyMilestone' description: 'Milestones are related to the simple progressions shown in the game, but return additional and hopefully helpful information for users about the specifics of the Milestone''s status.' type: object x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.Milestones.DestinyMilestoneDefinition' progressions: additionalProperties: $ref: '#/definitions/Destiny.DestinyProgression' description: "A Dictionary of all known progressions for the Character, keyed by the Progression's hash.\r\nNot all progressions have user-facing data, but those who do will have that data contained in the DestinyProgressionDefinition." type: object x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyProgressionDefinition' quests: description: "If the user has any active quests, the quests' statuses will be returned here.\r\nNote that quests have been largely supplanted by Milestones, but that doesn't mean that they won't make a comeback independent of milestones at some point." items: $ref: '#/definitions/Destiny.Quests.DestinyQuestStatus' type: array uninstancedItemObjectives: additionalProperties: items: $ref: '#/definitions/Destiny.Quests.DestinyObjectiveProgress' type: array description: "Sometimes, you have items in your inventory that don't have instances, but still have Objective information. This provides you that objective information for uninstanced items. \r\nThis dictionary is keyed by the item's hash: which you can use to look up the name and description for the overall task(s) implied by the objective. The value is the list of objectives for this item, and their statuses." type: object x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' type: object x-destiny-component-type-dependency: CharacterProgressions Destiny.Entities.Characters.DestinyCharacterRenderComponent: description: "Only really useful if you're attempting to render the character's current appearance in 3D, this returns a bare minimum of information, pre-aggregated, that you'll need to perform that rendering. Note that you need to combine this with other 3D assets and data from our servers.\r\nExamine the Javascript returned by https://bungie.net/sharedbundle/spasm to see how we use this data, but be warned: the rabbit hole goes pretty deep." properties: customDyes: description: 'Custom dyes, calculated by iterating over the character''s equipped items. Useful for pre-fetching all of the dye data needed from our server.' items: $ref: '#/definitions/Destiny.DyeReference' type: array customization: allOf: - $ref: '#/definitions/Destiny.Character.DestinyCharacterCustomization' description: 'This is actually something that Spasm.js *doesn''t* do right now, and that we don''t return assets for yet. This is the data about what character customization options you picked. You can combine this with DestinyCharacterCustomizationOptionDefinition to show some cool info, and hopefully someday to actually render a user''s face in 3D. We''ll see if we ever end up with time for that.' type: object peerView: allOf: - $ref: '#/definitions/Destiny.Character.DestinyCharacterPeerView' description: "A minimal view of:\r\n- Equipped items\r\n- The rendering-related custom options on those equipped items\r\nCombined, that should be enough to render all of the items on the equipped character." type: object type: object x-destiny-component-type-dependency: CharacterRenderData Destiny.Entities.Inventory.DestinyInventoryComponent: description: "A list of minimal information for items in an inventory: be it a character's inventory, or a Profile's inventory. (Note that the Vault is a collection of inventory buckets in the Profile's inventory)\r\nInventory Items returned here are in a flat list, but importantly they have a bucketHash property that indicates the specific inventory bucket that is holding them. These buckets constitute things like the separate sections of the Vault, the user's inventory slots, etc. See DestinyInventoryBucketDefinition for more info." properties: items: description: 'The items in this inventory. If you care to bucket them, use the item''s bucketHash property to group them.' items: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemComponent' type: array type: object Destiny.Entities.Items.DestinyItemComponent: description: 'The base item component, filled with properties that are generally useful to know in any item request or that don''t feel worthwhile to put in their own component.' properties: bindStatus: allOf: - $ref: '#/definitions/Destiny.ItemBindStatus' description: 'If the item is bound to a location, it will be specified in this enum.' type: object bucketHash: description: The hash identifier for the specific inventory bucket in which the item is located. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryBucketDefinition' itemHash: description: 'The identifier for the item''s definition, which is where most of the useful static information for the item can be found.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' itemInstanceId: description: 'If the item is instanced, it will have an instance ID. Lack of an instance ID implies that the item has no distinct local qualities aside from stack size.' format: int64 type: integer location: allOf: - $ref: '#/definitions/Destiny.ItemLocation' description: 'An easy reference for where the item is located. Redundant if you got the item from an Inventory, but useful when making detail calls on specific items.' type: object lockable: description: 'If the item can be locked, this will indicate that state.' type: boolean quantity: description: 'The quantity of the item in this stack. Note that Instanced items cannot stack. If an instanced item, this value will always be 1 (as the stack has exactly one item in it)' format: int32 type: integer state: allOf: - $ref: '#/definitions/Destiny.ItemState' description: 'A flags enumeration indicating the states of the item: whether it''s tracked or locked for example.' type: object transferStatus: allOf: - $ref: '#/definitions/Destiny.TransferStatuses' description: 'If there is a known error state that would cause this item to not be transferable, this Flags enum will indicate all of those error states. Otherwise, it will be 0 (CanTransfer).' type: object type: object Destiny.Entities.Items.DestinyItemInstanceComponent: description: "If an item is \"instanced\", this will contain information about the item's instance that doesn't fit easily into other components. One might say this is the \"essential\" instance data for the item.\r\nItems are instanced if they require information or state that can vary. For instance, weapons are Instanced: they are given a unique identifier, uniquely generated stats, and can have their properties altered. Non-instanced items have none of these things: for instance, Glimmer has no unique properties aside from how much of it you own.\r\nYou can tell from an item's definition whether it will be instanced or not by looking at the DestinyInventoryItemDefinition's definition.inventory.isInstanceItem property." properties: canEquip: description: 'If this is an equippable item, you can check it here. There are permanent as well as transitory reasons why an item might not be able to be equipped: check cannotEquipReason for details.' type: boolean cannotEquipReason: allOf: - $ref: '#/definitions/Destiny.EquipFailureReason' description: 'If you cannot equip the item, this is a flags enum that enumerates all of the reasons why you couldn''t equip the item. You may need to refine your UI further by using unlockHashesRequiredToEquip and equipRequiredLevel.' type: object damageType: allOf: - $ref: '#/definitions/Destiny.DamageType' description: 'If the item has a damage type, this is the item''s current damage type.' type: object damageTypeHash: description: 'The current damage type''s hash, so you can look up localized info and icons for it.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyDamageTypeDefinition' equipRequiredLevel: description: 'If the item cannot be equipped until you reach a certain level, that level will be reflected here.' format: int32 type: integer isEquipped: description: Is the item currently equipped on the given character? type: boolean itemLevel: description: 'The Item''s "Level" has the most significant bearing on its stats, such as Light and Power.' format: int32 type: integer primaryStat: allOf: - $ref: '#/definitions/Destiny.DestinyStat' description: 'The item stat that we consider to be "primary" for the item. For instance, this would be "Attack" for Weapons or "Defense" for armor.' type: object quality: description: The "Quality" of the item has a lesser - but still impactful - bearing on stats like Light and Power. format: int32 type: integer unlockHashesRequiredToEquip: description: "Sometimes, there are limitations to equipping that are represented by character-level flags called \"unlocks\".\r\nThis is a list of flags that they need in order to equip the item that the character has not met. Use these to look up the descriptions to show in your UI by looking up the relevant DestinyUnlockDefinitions for the hashes." items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyUnlockDefinition' type: object x-destiny-component-type-dependency: ItemInstances Destiny.Entities.Items.DestinyItemObjectivesComponent: description: 'Items can have objectives and progression. When you request this block, you will obtain information about any Objectives and progression tied to this item.' properties: objectives: description: "If the item has a hard association with objectives, your progress on them will be defined here. \r\nObjectives are our standard way to describe a series of tasks that have to be completed for a reward." items: $ref: '#/definitions/Destiny.Quests.DestinyObjectiveProgress' type: array type: object x-destiny-component-type-dependency: ItemObjectives Destiny.Entities.Items.DestinyItemPerksComponent: description: "Instanced items can have perks: benefits that the item bestows.\r\nThese are related to DestinySandboxPerkDefinition, and sometimes - but not always - have human readable info. When they do, they are the icons and text that you see in an item's tooltip.\r\nTalent Grids, Sockets, and the item itself can apply Perks, which are then summarized here for your convenience." properties: perks: description: The list of perks to display in an item tooltip - and whether or not they have been activated. items: $ref: '#/definitions/Destiny.Perks.DestinyPerkReference' type: array type: object x-destiny-component-type-dependency: ItemPerks Destiny.Entities.Items.DestinyItemRenderComponent: description: 'Many items can be rendered in 3D. When you request this block, you will obtain the custom data needed to render this specific instance of the item.' properties: artRegions: additionalProperties: format: int32 type: integer description: "A dictionary for rendering gear components, with:\r\nkey = Art Arrangement Region Index\r\nvalue = The chosen Arrangement Index for the Region, based on the value of a stat on the item used for making the choice." type: object useCustomDyes: description: 'If you should use custom dyes on this item, it will be indicated here.' type: boolean type: object x-destiny-component-type-dependency: ItemRenderData Destiny.Entities.Items.DestinyItemSocketState: description: 'The status of a given item''s socket. (which plug is inserted, if any: whether it is enabled, what "reusable" plugs can be inserted, etc...)' properties: enableFailIndexes: description: 'If a plug is inserted but not enabled, this will be populated with indexes into the plug item definition''s plug.enabledRules property, so that you can show the reasons why it is not enabled.' items: format: int32 type: integer type: array isEnabled: description: "Even if a plug is inserted, it doesn't mean it's enabled.\r\nThis flag indicates whether the plug is active and providing its benefits." type: boolean plugHash: description: "The currently active plug, if any.\r\nNote that, because all plugs are statically defined, its effect on stats and perks can be statically determined using the plug item's definition. The stats and perks can be taken at face value on the plug item as the stats and perks it will provide to the user/item." format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' reusablePlugHashes: description: "If the item supports reusable plugs, this is the list of plug item hashes that are currently allowed to be used for this socket. (sometimes restrictions may cause reusable plugs defined on the item definition to not be valid, so you should trust the instanced reusablePlugHashes list rather than the definition's list)\r\nA Reusable Plug is a plug that you can *always* insert into this socket, regardless of whether or not you have the plug in your inventory. In practice, a socket will *either* have reusable plugs *or* it will allow for plugs in your inventory to be inserted. See DestinyInventoryItemDefinition.socket for more info." items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' type: object Destiny.Entities.Items.DestinyItemSocketsComponent: description: "Instanced items can have sockets, which are slots on the item where plugs can be inserted.\r\nSockets are a bit complex: be sure to examine the documentation on the DestinyInventoryItemDefinition's \"socket\" block and elsewhere on these objects for more details." properties: sockets: description: 'The list of all sockets on the item, and their status information.' items: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemSocketState' type: array type: object x-destiny-component-type-dependency: ItemSockets Destiny.Entities.Items.DestinyItemStatsComponent: description: "If you want the stats on an item's instanced data, get this component.\r\nThese are stats like Attack, Defense etc... and *not* historical stats.\r\nNote that some stats have additional computation in-game at runtime - for instance, Magazine Size - and thus these stats might not be 100% accurate compared to what you see in-game for some stats. I know, it sucks. I hate it too." properties: stats: additionalProperties: $ref: '#/definitions/Destiny.DestinyStat' description: 'If the item has stats that it provides (damage, defense, etc...), it will be given here.' type: object x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyStatDefinition' type: object x-destiny-component-type-dependency: ItemStats Destiny.Entities.Items.DestinyItemTalentGridComponent: description: "Well, we're here in Destiny 2, and Talent Grids are unfortunately still around.\r\nThe good news is that they're pretty much only being used for certain base information on items and for Builds/Subclasses. The bad news is that they still suck. If you really want this information, grab this component.\r\nAn important note is that talent grids are defined as such:\r\nA Grid has 1:M Nodes, which has 1:M Steps.\r\nAny given node can only have a single step active at one time, which represents the actual visual contents and effects of the Node (for instance, if you see a \"Super Cool Bonus\" node, the actual icon and text for the node is coming from the current Step of that node).\r\nNodes can be grouped into exclusivity sets *and* as of D2, exclusivity groups (which are collections of exclusivity sets that affect each other).\r\nSee DestinyTalentGridDefinition for more information. Brace yourself, the water's cold out there in the deep end." properties: gridProgression: allOf: - $ref: '#/definitions/Destiny.DestinyProgression' description: 'If the item has a progression, it will be detailed here. A progression means that the item can gain experience. Thresholds of experience are what determines whether and when a talent node can be activated.' type: object isGridComplete: description: "Indicates whether the talent grid on this item is completed, and thus whether it should have a gold border around it.\r\nOnly will be true if the item actually *has* a talent grid, and only then if it is completed (i.e. every exclusive set has an activated node, and every non-exclusive set node has been activated)" type: boolean nodes: description: "Detailed information about the individual nodes in the talent grid.\r\nA node represents a single visual \"pip\" in the talent grid or Build detail view, though each node may have multiple \"steps\" which indicate the actual bonuses and visual representation of that node." items: $ref: '#/definitions/Destiny.DestinyTalentNode' type: array talentGridHash: description: "Most items don't have useful talent grids anymore, but Builds in particular still do.\r\nYou can use this hash to lookup the DestinyTalentGridDefinition attached to this item, which will be crucial for understanding the node values on the item." format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyTalentGridDefinition' type: object x-destiny-component-type-dependency: ItemTalentGrids Destiny.Entities.Profiles.DestinyProfileComponent: description: 'The most essential summary information about a Profile (in Destiny 1, we called these "Accounts").' properties: characterIds: description: 'A list of the character IDs, for further querying on your part.' items: format: int64 type: integer type: array dateLastPlayed: description: The last time the user played with any character on this Profile. format: date-time type: string userInfo: allOf: - $ref: '#/definitions/User.UserInfoCard' description: 'If you need to render the Profile (their platform name, icon, etc...) somewhere, this property contains that information.' type: object versionsOwned: allOf: - $ref: '#/definitions/Destiny.DestinyGameVersions' description: 'If you want to know what expansions they own, this will contain that data.' type: object type: object x-destiny-component-type-dependency: Profiles Destiny.Entities.Profiles.DestinyVendorReceiptsComponent: description: 'For now, this isn''t used for much: it''s a record of the recent refundable purchases that the user has made. In the future, it could be used for providing refunds/buyback via the API. Wouldn''t that be fun?' properties: receipts: description: The receipts for refundable purchases made at a vendor. items: $ref: '#/definitions/Destiny.Vendors.DestinyVendorReceipt' type: array type: object x-destiny-component-type-dependency: VendorReceipts Destiny.Entities.Vendors.DestinyVendorCategoriesComponent: description: "A vendor can have many categories of items that they sell. This component will return the category information for available items, as well as the index into those items in the user's sale item list.\r\nNote that, since both the category and items are indexes, this data is Content Version dependent. Be sure to check that your content is up to date before using this data. This is an unfortunate, but permanent, limitation of Vendor data." properties: categories: description: 'The list of categories for items that the vendor sells, in rendering order.' items: $ref: '#/definitions/Destiny.Entities.Vendors.DestinyVendorCategory' type: array type: object x-destiny-component-type-dependency: VendorCategories Destiny.Entities.Vendors.DestinyVendorCategory: description: Information about the category and items currently sold in that category. properties: categoryIndex: description: 'An index into the DestinyVendorDefinition.categories property, so you can grab the display data for this category.' format: int32 type: integer itemIndexes: description: 'An ordered list of indexes into items being sold in this category (DestinyVendorDefinition.itemList) which will contain more information about the items being sold themselves. Can also be used to index into DestinyVendorSaleItemComponent data, if you asked for that data to be returned.' items: format: int32 type: integer type: array type: object Destiny.Entities.Vendors.DestinyVendorComponent: description: This component contains essential/summary information about the vendor. properties: ackState: allOf: - $ref: '#/definitions/User.AckState' description: "Long ago, we thought it would be a good idea to have special UI that showed whether or not you've seen a Vendor's inventory after cycling. \r\nFor now, we don't have that UI anymore. This property still exists for historical purposes. Don't worry about it." type: object canPurchase: description: "If True, you can purchase from the Vendor.\r\nTheoretically, Vendors can be restricted from selling items. In practice, none do that (yet?)." type: boolean enabled: description: "If True, the Vendor is currently accessible. \r\nIf False, they may not actually be visible in the world at the moment." type: boolean nextRefreshDate: description: The date when this vendor's inventory will next rotate/refresh. format: date-time type: string progression: allOf: - $ref: '#/definitions/Destiny.DestinyProgression' description: 'If the Vendor has a related Reputation, this is the Progression data that represents the character''s Reputation level with this Vendor.' type: object vendorHash: description: The unique identifier for the vendor. Use it to look up their DestinyVendorDefinition. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyVendorDefinition' type: object x-destiny-component-type-dependency: Vendors Destiny.Entities.Vendors.DestinyVendorSaleItemComponent: description: "Request this component if you want the details about an item being sold in relation to the character making the request: whether the character can buy it, whether they can afford it, and other data related to purchasing the item.\r\nNote that if you want instance, stats, etc... data for the item, you'll have to request additional components such as ItemInstances, ItemPerks etc... and acquire them from the DestinyVendorResponse's \"items\" property." properties: costs: description: A summary of the current costs of the item. items: $ref: '#/definitions/Destiny.DestinyItemQuantity' type: array failureIndexes: description: "Indexes in to the \"failureStrings\" lookup table in DestinyVendorDefinition for the given Vendor. Gives some more reliable failure information for why you can't purchase an item.\r\nIt is preferred to use these over requiredUnlocks and unlockStatuses: the latter are provided mostly in case someone can do something interesting with it that I didn't anticipate." items: format: int32 type: integer type: array itemHash: description: 'The hash of the item being sold, as a quick shortcut for looking up the DestinyInventoryItemDefinition of the sale item.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' requiredUnlocks: description: "If you can't buy the item due to a complex character state, these will be hashes for DestinyUnlockDefinitions that you can check to see messages regarding the failure (if the unlocks have human readable information: it is not guaranteed that Unlocks will have human readable strings, and your application will have to handle that)\r\nPrefer using failureIndexes instead. These are provided for informational purposes, but have largely been supplanted by failureIndexes." items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyUnlockDefinition' saleStatus: allOf: - $ref: '#/definitions/Destiny.VendorItemStatus' description: 'A flag indicating whether the requesting character can buy the item, and if not the reasons why the character can''t buy it.' type: object unlockStatuses: description: "If any complex unlock states are checked in determining purchasability, these will be returned here along with the status of the unlock check.\r\nPrefer using failureIndexes instead. These are provided for informational purposes, but have largely been supplanted by failureIndexes." items: $ref: '#/definitions/Destiny.DestinyUnlockStatus' type: array vendorItemIndex: description: "The index into the DestinyVendorDefinition.itemList property. Note that this means Vendor data *is* Content Version dependent: make sure you have the latest content before you use Vendor data, or these indexes may mismatch. \r\nMost systems avoid this problem, but Vendors is one area where we are unable to reasonably avoid content dependency at the moment." format: int32 type: integer type: object x-destiny-component-type-dependency: VendorSales Destiny.EquipFailureReason: description: 'The reasons why an item cannot be equipped, if any. Many flags can be set, or "None" if' enum: - '0' - '1' - '2' - '4' - '8' - '16' format: int32 type: integer x-enum-values: - description: The item is/was able to be equipped. identifier: None numericValue: '0' - description: This is not the kind of item that can be equipped. Did you try equipping Glimmer or something? identifier: ItemUnequippable numericValue: '1' - description: 'This item is part of a "unique set", and you can''t have more than one item of that same set type equipped at once. For instance, if you already have an Exotic Weapon equipped, you can''t equip a second one in another weapon slot.' identifier: ItemUniqueEquipRestricted numericValue: '2' - description: 'This item has state-based gating that prevents it from being equipped in certain circumstances. For instance, an item might be for Warlocks only and you''re a Titan, or it might require you to have beaten some special quest that you haven''t beaten yet. Use the additional failure data passed on the item itself to get more information about what the specific failure case was (See DestinyInventoryItemDefinition and DestinyItemInstanceComponent)' identifier: ItemFailedUnlockCheck numericValue: '4' - description: 'This item requires you to have reached a specific character level in order to equip it, and you haven''t reached that level yet.' identifier: ItemFailedLevelCheck numericValue: '8' - description: 'This item can''t be equipped on the character requested, because it must be in that character''s inventory first. Transfer the item to the character you want to equip it before you attempt to equip it.' identifier: ItemNotOnCharacter numericValue: '16' Destiny.EquippingItemBlockAttributes: enum: - '0' - '1' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: EquipOnAcquire numericValue: '1' Destiny.HistoricalStats.Definitions.DestinyActivityModeType: enum: - '0' - '2' - '3' - '4' - '5' - '6' - '7' - '9' - '10' - '11' - '12' - '13' - '15' - '16' - '17' - '18' - '19' - '20' - '21' - '22' - '24' - '25' - '26' - '27' - '28' - '29' - '30' - '31' - '32' - '37' - '38' - '39' - '40' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Story numericValue: '2' - identifier: Strike numericValue: '3' - identifier: Raid numericValue: '4' - identifier: AllPvP numericValue: '5' - identifier: Patrol numericValue: '6' - identifier: AllPvE numericValue: '7' - identifier: Reserved9 numericValue: '9' - identifier: Control numericValue: '10' - identifier: Reserved11 numericValue: '11' - identifier: Clash numericValue: '12' - identifier: Reserved13 numericValue: '13' - identifier: Reserved15 numericValue: '15' - identifier: Nightfall numericValue: '16' - identifier: HeroicNightfall numericValue: '17' - identifier: AllStrikes numericValue: '18' - identifier: IronBanner numericValue: '19' - identifier: Reserved20 numericValue: '20' - identifier: Reserved21 numericValue: '21' - identifier: Reserved22 numericValue: '22' - identifier: Reserved24 numericValue: '24' - identifier: Reserved25 numericValue: '25' - identifier: Reserved26 numericValue: '26' - identifier: Reserved27 numericValue: '27' - identifier: Reserved28 numericValue: '28' - identifier: Reserved29 numericValue: '29' - identifier: Reserved30 numericValue: '30' - identifier: Supremacy numericValue: '31' - identifier: Reserved32 numericValue: '32' - identifier: Survival numericValue: '37' - identifier: Countdown numericValue: '38' - identifier: TrialsOfTheNine numericValue: '39' - identifier: Social numericValue: '40' 'Destiny.HistoricalStats.Definitions.DestinyActivityModeType[]': items: $ref: '#/definitions/Destiny.HistoricalStats.Definitions.DestinyActivityModeType' type: array Destiny.HistoricalStats.Definitions.DestinyHistoricalStatsDefinition: properties: category: allOf: - $ref: '#/definitions/Destiny.HistoricalStats.Definitions.DestinyStatsCategoryType' description: Category for the stat. type: object group: allOf: - $ref: '#/definitions/Destiny.HistoricalStats.Definitions.DestinyStatsGroupType' description: Statistic group type: object iconImage: description: Optional URI to an icon for the statistic type: string medalTierHash: description: The tier associated with this medal - be it implicitly or explicitly. format: uint32 type: integer mergeMethod: description: Optional icon for the statistic enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - description: 'When collapsing multiple instances of the stat together, add the values.' identifier: Add numericValue: '0' - description: 'When collapsing multiple instances of the stat together, take the lower value.' identifier: Min numericValue: '1' - description: 'When collapsing multiple instances of the stat together, take the higher value.' identifier: Max numericValue: '2' modes: description: Game modes where this statistic can be reported. items: $ref: '#/definitions/Destiny.HistoricalStats.Definitions.DestinyActivityModeType' type: array periodTypes: description: Time periods the statistic covers items: $ref: '#/definitions/Destiny.HistoricalStats.Definitions.PeriodType' type: array statDescription: description: Description of a stat if applicable. type: string statId: description: Unique programmer friendly ID for this stat type: string statName: description: Display name type: string unitLabel: description: Localized Unit Name for the stat. type: string unitType: allOf: - $ref: '#/definitions/Destiny.HistoricalStats.Definitions.UnitType' description: 'Unit, if any, for the statistic' type: object weight: description: Weight assigned to this stat indicating its relative impressiveness. format: int32 type: integer type: object x-mobile-manifest-name: HistoricalStats Destiny.HistoricalStats.Definitions.DestinyStatsCategoryType: enum: - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' - '8' - '9' - '10' - '11' - '12' - '13' - '14' - '15' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Kills numericValue: '1' - identifier: Assists numericValue: '2' - identifier: Deaths numericValue: '3' - identifier: Criticals numericValue: '4' - identifier: KDa numericValue: '5' - identifier: KD numericValue: '6' - identifier: Score numericValue: '7' - identifier: Entered numericValue: '8' - identifier: TimePlayed numericValue: '9' - identifier: MedalWins numericValue: '10' - identifier: MedalGame numericValue: '11' - identifier: MedalSpecialKills numericValue: '12' - identifier: MedalSprees numericValue: '13' - identifier: MedalMultiKills numericValue: '14' - identifier: MedalAbilities numericValue: '15' Destiny.HistoricalStats.Definitions.DestinyStatsGroupType: enum: - '0' - '1' - '2' - '3' - '100' - '101' - '102' - '103' - '104' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: General numericValue: '1' - identifier: Weapons numericValue: '2' - identifier: Medals numericValue: '3' - identifier: ReservedGroups numericValue: '100' - identifier: Leaderboard numericValue: '101' - identifier: Activity numericValue: '102' - identifier: UniqueWeapon numericValue: '103' - identifier: Internal numericValue: '104' Destiny.HistoricalStats.Definitions.DestinyStatsMergeMethod: enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - description: 'When collapsing multiple instances of the stat together, add the values.' identifier: Add numericValue: '0' - description: 'When collapsing multiple instances of the stat together, take the lower value.' identifier: Min numericValue: '1' - description: 'When collapsing multiple instances of the stat together, take the higher value.' identifier: Max numericValue: '2' Destiny.HistoricalStats.Definitions.PeriodType: enum: - '0' - '1' - '2' - '3' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Daily numericValue: '1' - identifier: AllTime numericValue: '2' - identifier: Activity numericValue: '3' 'Destiny.HistoricalStats.Definitions.PeriodType[]': items: $ref: '#/definitions/Destiny.HistoricalStats.Definitions.PeriodType' type: array Destiny.HistoricalStats.Definitions.UnitType: enum: - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' - '8' - '9' - '10' - '11' - '12' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - description: Indicates the statistic is a simple count of something. identifier: Count numericValue: '1' - description: Indicates the statistic is a per game average. identifier: PerGame numericValue: '2' - description: Indicates the number of seconds identifier: Seconds numericValue: '3' - description: Indicates the number of points earned identifier: Points numericValue: '4' - description: Values represents a team ID identifier: Team numericValue: '5' - description: Values represents a distance (units to-be-determined) identifier: Distance numericValue: '6' - description: Ratio represented as a whole value from 0 to 100. identifier: Percent numericValue: '7' - description: 'Ratio of something, shown with decimal places' identifier: Ratio numericValue: '8' - description: True or false identifier: Boolean numericValue: '9' - description: The stat is actually a weapon type. identifier: WeaponType numericValue: '10' - description: 'Indicates victory, defeat, or something in between.' identifier: Standing numericValue: '11' - description: 'Number of milliseconds some event spanned. For example, race time, or lap time.' identifier: Milliseconds numericValue: '12' Destiny.HistoricalStats.DestinyActivityHistoryResults: properties: activities: description: 'List of activities, the most recent activity first.' items: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsPeriodGroup' type: array type: object Destiny.HistoricalStats.DestinyAggregateActivityResults: properties: activities: description: List of all activities the player has participated in. items: $ref: '#/definitions/Destiny.HistoricalStats.DestinyAggregateActivityStats' type: array type: object Destiny.HistoricalStats.DestinyAggregateActivityStats: properties: activityHash: description: Hash ID that can be looked up in the DestinyActivityTable. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityDefinition' values: additionalProperties: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsValue' description: Collection of stats for the player in this activity. type: object type: object Destiny.HistoricalStats.DestinyClanAggregateStat: properties: mode: allOf: - $ref: '#/definitions/Destiny.HistoricalStats.Definitions.DestinyActivityModeType' description: 'The id of the mode of stats (allPvp, allPvE, etc)' type: object statId: description: The id of the stat type: string value: allOf: - $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsValue' description: Value of the stat for this player type: object type: object Destiny.HistoricalStats.DestinyHistoricalStatsAccountResult: properties: characters: items: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsPerCharacter' type: array mergedAllCharacters: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsWithMerged' mergedDeletedCharacters: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsWithMerged' type: object Destiny.HistoricalStats.DestinyHistoricalStatsActivity: properties: directorActivityHash: format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityDefinition' instanceId: description: This value can be used to get additional data about this activity such as who else was playing. format: int64 type: integer isPrivate: description: Whether or not the match was a private match. type: boolean mode: allOf: - $ref: '#/definitions/Destiny.HistoricalStats.Definitions.DestinyActivityModeType' description: Indicates the game mode of the activity. type: object modes: items: $ref: '#/definitions/Destiny.HistoricalStats.Definitions.DestinyActivityModeType' type: array referenceId: description: Hash ID that can be looked up in the DestinyActivityTable. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityDefinition' type: object Destiny.HistoricalStats.DestinyHistoricalStatsByPeriod: properties: allTime: additionalProperties: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsValue' type: object allTimeTier1: additionalProperties: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsValue' type: object allTimeTier2: additionalProperties: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsValue' type: object allTimeTier3: additionalProperties: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsValue' type: object daily: items: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsPeriodGroup' type: array monthly: items: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsPeriodGroup' type: array type: object Destiny.HistoricalStats.DestinyHistoricalStatsPerCharacter: properties: characterId: format: int64 type: integer deleted: type: boolean merged: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsByPeriod' results: additionalProperties: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsByPeriod' type: object type: object Destiny.HistoricalStats.DestinyHistoricalStatsPeriodGroup: properties: activityDetails: allOf: - $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsActivity' description: 'If the period group is for a specific activity, this property will be set.' type: object period: description: 'Period for the group. If the stat periodType is day, then this will have a specific day. If the type is monthly, then this value will be the first day of the applicable month. This value is not set when the periodType is ''all time''.' format: date-time type: string values: additionalProperties: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsValue' description: Collection of stats for the period. type: object type: object Destiny.HistoricalStats.DestinyHistoricalStatsResults: additionalProperties: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsByPeriod' type: object Destiny.HistoricalStats.DestinyHistoricalStatsValue: properties: basic: allOf: - $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsValuePair' description: Basic stat value. type: object pga: allOf: - $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsValuePair' description: 'Per game average for the statistic, if applicable' type: object statId: description: Unique ID for this stat type: string weighted: allOf: - $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsValuePair' description: Weighted value of the stat if a weight greater than 1 has been assigned. type: object type: object Destiny.HistoricalStats.DestinyHistoricalStatsValuePair: properties: displayValue: description: Localized formated version of the value. type: string value: description: Raw value of the statistic format: double type: number type: object Destiny.HistoricalStats.DestinyHistoricalStatsWithMerged: properties: merged: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsByPeriod' results: additionalProperties: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsByPeriod' type: object type: object Destiny.HistoricalStats.DestinyHistoricalWeaponStats: properties: referenceId: description: The hash ID of the item definition that describes the weapon. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' values: additionalProperties: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsValue' description: Collection of stats for the period. type: object type: object Destiny.HistoricalStats.DestinyHistoricalWeaponStatsData: properties: weapons: description: List of weapons and their perspective values. items: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalWeaponStats' type: array type: object Destiny.HistoricalStats.DestinyLeaderboard: properties: entries: items: $ref: '#/definitions/Destiny.HistoricalStats.DestinyLeaderboardEntry' type: array statId: type: string type: object Destiny.HistoricalStats.DestinyLeaderboardEntry: properties: characterId: description: ID of the player's best character for the reported stat. format: int64 type: integer player: allOf: - $ref: '#/definitions/Destiny.HistoricalStats.DestinyPlayer' description: Identity details of the player type: object rank: description: Where this player ranks on the leaderboard. A value of 1 is the top rank. format: int32 type: integer value: allOf: - $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsValue' description: Value of the stat for this player type: object type: object Destiny.HistoricalStats.DestinyLeaderboardResults: additionalProperties: additionalProperties: $ref: '#/definitions/Destiny.HistoricalStats.DestinyLeaderboard' type: object properties: focusCharacterId: description: 'Indicate the character ID of the character that is the focal point of the provided leaderboards. May be null, in which case any character from the focus membership can appear in the provided leaderboards.' format: int64 type: integer focusMembershipId: description: Indicate the membership ID of the account that is the focal point of the provided leaderboards. format: int64 type: integer type: object Destiny.HistoricalStats.DestinyPlayer: properties: bungieNetUserInfo: allOf: - $ref: '#/definitions/User.UserInfoCard' description: 'Details about the player as they are known on BungieNet. This will be undefined if the player has marked their credential private, or does not have a BungieNet account.' type: object characterClass: description: Class of the character if applicable and available. type: string characterLevel: description: Level of the character if available. Zero if it is not available. format: int32 type: integer clanName: description: Current clan name for the player. This value may be null or an empty string if the user does not have a clan. type: string clanTag: description: Current clan tag for the player. This value may be null or an empty string if the user does not have a clan. type: string destinyUserInfo: allOf: - $ref: '#/definitions/User.UserInfoCard' description: 'Details about the player as they are known in game (platform display name, Destiny emblem)' type: object lightLevel: description: Light Level of the character if available. Zero if it is not available. format: int32 type: integer type: object Destiny.HistoricalStats.DestinyPostGameCarnageReportData: properties: activityDetails: allOf: - $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsActivity' description: Details about the activity. type: object entries: description: Collection of players and their data for this activity. items: $ref: '#/definitions/Destiny.HistoricalStats.DestinyPostGameCarnageReportEntry' type: array period: description: Date and time for the activity. format: date-time type: string teams: description: Collection of stats for the player in this activity. items: $ref: '#/definitions/Destiny.HistoricalStats.DestinyPostGameCarnageReportTeamEntry' type: array type: object Destiny.HistoricalStats.DestinyPostGameCarnageReportEntry: properties: characterId: description: ID of the player's character used in the activity. format: int64 type: integer extended: allOf: - $ref: '#/definitions/Destiny.HistoricalStats.DestinyPostGameCarnageReportExtendedData' description: Extended data extracted from the activity blob. type: object player: allOf: - $ref: '#/definitions/Destiny.HistoricalStats.DestinyPlayer' description: Identity details of the player type: object score: allOf: - $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsValue' description: Score of the player if available type: object standing: description: Standing of the player format: int32 type: integer values: additionalProperties: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsValue' description: Collection of stats for the player in this activity. type: object type: object Destiny.HistoricalStats.DestinyPostGameCarnageReportExtendedData: properties: values: additionalProperties: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsValue' description: Collection of stats for the player in this activity. type: object weapons: description: List of weapons and their perspective values. items: $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalWeaponStats' type: array type: object Destiny.HistoricalStats.DestinyPostGameCarnageReportTeamEntry: properties: score: allOf: - $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsValue' description: Score earned by the team type: object standing: allOf: - $ref: '#/definitions/Destiny.HistoricalStats.DestinyHistoricalStatsValue' description: Team's standing relative to other teams. type: object teamId: description: Integer ID for the team. format: int32 type: integer teamName: description: Alpha or Bravo type: string type: object Destiny.ItemBindStatus: enum: - '0' - '1' - '2' - '3' format: int32 type: integer x-enum-values: - identifier: NotBound numericValue: '0' - identifier: BoundToCharacter numericValue: '1' - identifier: BoundToAccount numericValue: '2' - identifier: BoundToGuild numericValue: '3' Destiny.ItemLocation: enum: - '0' - '1' - '2' - '3' - '4' format: int32 type: integer x-enum-values: - identifier: Unknown numericValue: '0' - identifier: Inventory numericValue: '1' - identifier: Vault numericValue: '2' - identifier: Vendor numericValue: '3' - identifier: Postmaster numericValue: '4' Destiny.ItemState: enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Locked numericValue: '1' - identifier: Tracked numericValue: '2' Destiny.Milestones.DestinyMilestone: description: 'Represents a runtime instance of a user''s milestone status. Live Milestone data should be combined with DestinyMilestoneDefinition data to show the user a picture of what is available for them to do in the game, and their status in regards to said "things to do." Consider it a big, wonky to-do list, or Advisors 3.0 for those who remember the Destiny 1 API.' properties: availableQuests: description: 'Indicates what quests are available for this Milestone. Usually this will be only a single Quest, but some quests have multiple available that you can choose from at any given time. All possible quests for a milestone can be found in the DestinyMilestoneDefinition, but they must be combined with this Live data to determine which one(s) are actually active right now. It is possible for Milestones to not have any quests.' items: $ref: '#/definitions/Destiny.Milestones.DestinyMilestoneQuest' type: array endDate: description: 'If known, this is the date when the event will next end or repeat. It will only be populated for events with fixed and repeating start and end dates.' format: date-time type: string milestoneHash: description: 'The unique identifier for the Milestone. Use it to look up the DestinyMilestoneDefinition, so you can combine the other data in this contract with static definition data.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.Milestones.DestinyMilestoneDefinition' rewards: description: 'If the entity to which this component is attached has known active Rewards for the player, this will detail information about those rewards, keyed by the RewardEntry Hash. (See DestinyMilestoneDefinition for more information about Reward Entries) Note that these rewards are not for the Quests related to the Milestone. Think of these as "overview/checklist" rewards that may be provided for Milestones that may provide rewards for performing a variety of tasks that aren''t under a specific Quest.' items: $ref: '#/definitions/Destiny.Milestones.DestinyMilestoneRewardCategory' type: array startDate: description: 'If known, this is the date when the event last began or refreshed. It will only be populated for events with fixed and repeating start and end dates.' format: date-time type: string values: additionalProperties: format: float type: number description: 'Milestones may have arbitrary key/value pairs associated with them, for data that users will want to know about but that doesn''t fit neatly into any of the common components such as Quests. A good example of this would be - if this existed in Destiny 1 - the number of wins you currently have on your Trials of Osiris ticket. Looking in the DestinyMilestoneDefinition, you can use the string identifier of this dictionary to look up more info about the value, including localized string content for displaying the value. The value in the dictionary is the floating point number. The definition will tell you how to format this number.' type: object vendorHashes: description: 'A milestone may have one or more active vendors that are "related" to it (that provide rewards, or that are the initiators of the Milestone). I already regret this, even as I''m typing it. You see, sometimes a milestone may be directly correlated with a set of vendors that provide varying tiers of rewards. The player may not be able to interact with one or more of those vendors. This will return the hashes of the Vendors that the player *can* interact with, allowing you to show their current inventory as rewards or related items to the Milestone or its activities.' items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyVendorDefinition' type: object Destiny.Milestones.DestinyMilestoneActivity: description: 'Sometimes, we know the specific activity that the Milestone wants you to play. This entity provides additional information about that Activity and all of its variants. (sometimes there''s only one variant, but I think you get the point)' properties: activityHash: description: 'The hash of an arbitrarily chosen variant of this activity. We''ll go ahead and call that the "canonical" activity, because if you''re using this value you should only use it for properties that are common across the variants: things like the name of the activity, it''s location, etc... Use this hash to look up the DestinyActivityDefinition of this activity for rendering data.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityDefinition' modifierHashes: description: 'If the activity has modifiers, this will be the list of modifiers that all variants have in common. Perform lookups against DestinyActivityModifierDefinition which defines the modifier being applied to get at the modifier data. Note that, in the DestiyActivityDefinition, you will see many more modifiers than this being referred to: those are all *possible* modifiers for the activity, not the active ones. Use only the active ones to match what''s really live.' items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.ActivityModifiers.DestinyActivityModifierDefinition' variants: description: 'If you want more than just name/location/etc... you''re going to have to dig into and show the variants of the conceptual activity. These will differ in seemingly arbitrary ways, like difficulty level and modifiers applied. Show it in whatever way tickles your fancy.' items: $ref: '#/definitions/Destiny.Milestones.DestinyMilestoneActivityVariant' type: array type: object Destiny.Milestones.DestinyMilestoneActivityCompletionStatus: description: 'Represents this player''s personal completion status for the Activity under a Milestone, if the activity has trackable completion and progress information. (most activities won''t, or the concept won''t apply. For instance, it makes sense to talk about a tier of a raid as being Completed or having progress, but it doesn''t make sense to talk about a Crucible Playlist in those terms.' properties: completed: description: 'If the activity has been "completed", that information will be returned here.' type: boolean phases: description: 'If the Activity has discrete "phases" that we can track, that info will be here. Otherwise, this value will be NULL. Note that this is a list and not a dictionary: the order implies the ascending order of phases or progression in this activity.' items: $ref: '#/definitions/Destiny.Milestones.DestinyMilestoneActivityPhase' type: array type: object Destiny.Milestones.DestinyMilestoneActivityPhase: description: 'Represents whatever information we can return about an explicit phase in an activity. In the future, I hope we''ll have more than just "guh, you done gone and did something," but for the forseeable future that''s all we''ve got. I''m making it more than just a list of booleans out of that overly-optimistic hope.' properties: complete: description: Indicates if the phase has been completed. type: boolean type: object Destiny.Milestones.DestinyMilestoneActivityVariant: description: Represents custom data that we know about an individual variant of an activity. properties: activityHash: description: 'The hash for the specific variant of the activity related to this milestone. You can pull more detailed static info from the DestinyActivityDefinition, such as difficulty level.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityDefinition' completionStatus: allOf: - $ref: '#/definitions/Destiny.Milestones.DestinyMilestoneActivityCompletionStatus' description: 'An OPTIONAL component: if it makes sense to talk about this activity variant in terms of whether or not it has been completed or what progress you have made in it, this will be returned. Otherwise, this will be NULL.' type: object type: object Destiny.Milestones.DestinyMilestoneContent: description: 'Represents localized, extended content related to Milestones. This is intentionally returned by a separate endpoint and not with Character-level Milestone data because we do not put localized data into standard Destiny responses, both for brevity of response and for caching purposes. If you really need this data, hit the Milestone Content endpoint.' properties: about: description: The "About this Milestone" text from the Firehose. type: string itemCategories: description: 'If DPS has defined items related to this Milestone, they can categorize those items in the Firehose. That data will then be returned as item categories here.' items: $ref: '#/definitions/Destiny.Milestones.DestinyMilestoneContentItemCategory' type: array status: description: 'The Current Status of the Milestone, as driven by the Firehose.' type: string tips: description: 'A list of tips, provided by the Firehose.' items: type: string type: array type: object Destiny.Milestones.DestinyMilestoneContentItemCategory: description: 'Part of our dynamic, localized Milestone content is arbitrary categories of items. These are built in our content management system, and thus aren''t the same as programmatically generated rewards.' properties: itemHashes: items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' title: type: string type: object Destiny.Milestones.DestinyMilestoneQuest: description: 'If a Milestone has one or more Quests, this will contain the live information for the character''s status with one of those quests.' properties: activity: allOf: - $ref: '#/definitions/Destiny.Milestones.DestinyMilestoneActivity' description: '*IF* the Milestone has an active Activity that can give you greater details about what you need to do, it will be returned here. Remember to associate this with the DestinyMilestoneDefinition''s activities to get details about the activity, including what specific quest it is related to if you have multiple quests to choose from.' type: object challenges: description: 'The activities referred to by this quest can have many associated challenges. They are all contained here, with activityHashes so that you can associate them with the specific activity variants in which they can be found. In retrospect, I probably should have put these under the specific Activity Variants, but it''s too late to change it now. Theoretically, a quest without Activities can still have Challenges, which is why this is on a higher level than activity/variants, but it probably should have been in both places. That may come as a later revision.' items: $ref: '#/definitions/Destiny.Challenges.DestinyChallengeStatus' type: array questItemHash: description: 'Quests are defined as Items in content. As such, this is the hash identifier of the DestinyInventoryItemDefinition that represents this quest. It will have pointers to all of the steps in the quest, and display information for the quest (title, description, icon etc) Individual steps will be referred to in the Quest item''s DestinyInventoryItemDefinition.setData property, and themselves are Items with their own renderable data.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' status: allOf: - $ref: '#/definitions/Destiny.Quests.DestinyQuestStatus' description: The current status of the quest for the character making the request. type: object type: object Destiny.Milestones.DestinyMilestoneRewardCategory: description: Represents a category of "summary" rewards that can be earned for the Milestone regardless of specific quest rewards that can be earned. properties: entries: description: 'The individual reward entries for this category, and their status.' items: $ref: '#/definitions/Destiny.Milestones.DestinyMilestoneRewardEntry' type: array rewardCategoryHash: description: 'Look up the relevant DestinyMilestoneDefinition, and then use rewardCategoryHash to look up the category info in DestinyMilestoneDefinition.rewards.' format: uint32 type: integer type: object Destiny.Milestones.DestinyMilestoneRewardEntry: description: The character-specific data for a milestone's reward entry. See DestinyMilestoneDefinition for more information about Reward Entries. properties: earned: description: 'If TRUE, the player has earned this reward.' type: boolean redeemed: description: 'If TRUE, the player has redeemed/picked up/obtained this reward. Feel free to alias this to "gotTheShinyBauble" in your own codebase.' type: boolean rewardEntryHash: description: 'The identifier for the reward entry in question. It is important to look up the related DestinyMilestoneRewardEntryDefinition to get the static details about the reward, which you can do by looking up the milestone''s DestinyMilestoneDefinition and examining the DestinyMilestoneDefinition.rewards[rewardCategoryHash].rewardEntries[rewardEntryHash] data.' format: uint32 type: integer type: object Destiny.Milestones.DestinyPublicMilestone: description: 'Information about milestones, presented in a character state-agnostic manner. Combine this data with DestinyMilestoneDefinition to get a full picture of the milestone, which is basically a checklist of things to do in the game. Think of this as GetPublicAdvisors 3.0, for those who used the Destiny 1 API.' properties: availableQuests: description: 'A milestone not need have even a single quest, but if there are active quests they will be returned here.' items: $ref: '#/definitions/Destiny.Milestones.DestinyPublicMilestoneQuest' type: array endDate: description: 'If known, this is the date when the Milestone will expire/recycle/end.' format: date-time type: string milestoneHash: description: The hash identifier for the milestone. Use it to look up the DestinyMilestoneDefinition for static data about the Milestone. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.Milestones.DestinyMilestoneDefinition' startDate: description: 'If known, this is the date when the Milestone started/became active.' format: date-time type: string vendorHashes: description: Sometimes milestones - or activities active in milestones - will have relevant vendors. These are the vendors that are currently relevant. items: format: uint32 type: integer type: array type: object Destiny.Milestones.DestinyPublicMilestoneActivity: description: 'A milestone may have one or more conceptual Activities associated with it, and each of those conceptual activities could have a variety of variants, modes, tiers, what-have-you. Our attempts to determine what qualifies as a conceptual activity are, unfortunately, janky. So if you see missing modes or modes that don''t seem appropriate to you, let us know and I''ll buy you a beer if we ever meet up in person.' properties: activityHash: description: 'The hash identifier of the activity that''s been chosen to be considered the canonical "conceptual" activity definition. This may have many variants, defined herein.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityDefinition' modifierHashes: description: 'The activity may have 0-to-many modifiers: if it does, this will contain the hashes to the DestinyActivityModifierDefinition that defines the modifier being applied.' items: format: uint32 type: integer type: array x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.ActivityModifiers.DestinyActivityModifierDefinition' variants: description: 'Every relevant variation of this conceptual activity, including the conceptual activity itself, have variants defined here.' items: $ref: '#/definitions/Destiny.Milestones.DestinyPublicMilestoneActivityVariant' type: array type: object Destiny.Milestones.DestinyPublicMilestoneActivityVariant: description: Represents a variant of an activity that's relevant to a milestone. properties: activityHash: description: 'The hash identifier of this activity variant. Examine the activity''s definition in the Manifest database to determine what makes it a distinct variant. Usually it will be difficulty level or whether or not it is a guided game variant of the activity, but theoretically it could be distinguished in any arbitrary way.' format: uint32 type: integer type: object Destiny.Milestones.DestinyPublicMilestoneChallenge: description: A Milestone can have many Challenges. Challenges are just extra Objectives that provide a fun way to mix-up play and provide extra rewards. properties: activityHash: description: 'IF the Objective is related to a specific Activity, this will be that activity''s hash. Use it to look up the DestinyActivityDefinition for additional data to show.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityDefinition' objectiveHash: description: 'The objective for the Challenge, which should have human-readable data about what needs to be done to accomplish the objective. Use this hash to look up the DestinyObjectiveDefinition.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyObjectiveDefinition' type: object Destiny.Milestones.DestinyPublicMilestoneQuest: properties: activity: allOf: - $ref: '#/definitions/Destiny.Milestones.DestinyPublicMilestoneActivity' description: 'A milestone need not have an active activity, but if there is one it will be returned here, along with any variant and additional information.' type: object challenges: description: 'For the given quest there could be 0-to-Many challenges: mini quests that you can perform in the course of doing this quest, that may grant you rewards and benefits.' items: $ref: '#/definitions/Destiny.Milestones.DestinyPublicMilestoneChallenge' type: array questItemHash: description: 'Quests are defined as Items in content. As such, this is the hash identifier of the DestinyInventoryItemDefinition that represents this quest. It will have pointers to all of the steps in the quest, and display information for the quest (title, description, icon etc) Individual steps will be referred to in the Quest item''s DestinyInventoryItemDefinition.setData property, and themselves are Items with their own renderable data.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.Milestones.DestinyMilestoneDefinition' type: object Destiny.Perks.DestinyPerkReference: description: "The list of perks to display in an item tooltip - and whether or not they have been activated.\r\nPerks apply a variety of effects to a character, and are generally either intrinsic to the item or provided in activated talent nodes or sockets." properties: iconPath: description: The icon for the perk. type: string isActive: description: 'Whether this perk is currently active. (We may return perks that you have not actually activated yet: these represent perks that you should show in the item''s tooltip, but that the user has not yet activated.)' type: boolean perkHash: description: 'The hash identifier for the perk, which can be used to look up DestinySandboxPerkDefinition if it exists. Be warned, perks frequently do not have user-viewable information. You should examine whether you actually found a name/description in the perk''s definition before you show it to the user.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinySandboxPerkDefinition' visible: description: 'Some perks provide benefits, but aren''t visible in the UI. This value will let you know if this is perk should be shown in your UI.' type: boolean type: object Destiny.Progression.DestinyFactionProgression: description: 'Mostly for historical purposes, we segregate Faction progressions from other progressions. This is just a DestinyProgression with a shortcut for finding the DestinyFactionDefinition of the faction related to the progression.' properties: currentProgress: description: 'This is the total amount of progress obtained overall for this progression (for instance, the total amount of Character Level experience earned)' format: int32 type: integer dailyLimit: description: 'If this progression has a daily limit, this is that limit.' format: int32 type: integer dailyProgress: description: The amount of progress earned today for this progression. format: int32 type: integer factionHash: description: The hash identifier of the Faction related to this progression. Use it to look up the DestinyFactionDefinition for more rendering info. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyFactionDefinition' level: description: 'This is the level of the progression (for instance, the Character Level).' format: int32 type: integer levelCap: description: 'This is the maximum possible level you can achieve for this progression (for example, the maximum character level obtainable)' format: int32 type: integer nextLevelAt: description: The total amount of progression (i.e. "Experience") needed in order to reach the next level. format: int32 type: integer progressToNextLevel: description: 'The amount of progression (i.e. "Experience") needed to reach the next level of this Progression. Jeez, progression is such an overloaded word.' format: int32 type: integer progressionHash: description: The hash identifier of the Progression in question. Use it to look up the DestinyProgressionDefinition in static data. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyProgressionDefinition' stepIndex: description: 'Progressions define their levels in "steps". Since the last step may be repeatable, the user may be 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.)' format: int32 type: integer weeklyLimit: description: 'If this progression has a weekly limit, this is that limit.' format: int32 type: integer weeklyProgress: description: The amount of progress earned toward this progression in the current week. format: int32 type: integer type: object Destiny.Quests.DestinyObjectiveProgress: description: Returns data about a character's status with a given Objective. Combine with DestinyObjectiveDefinition static data for display purposes. properties: activityHash: description: 'If the Objective has an Activity associated with it, this is the unique identifier of the Activity being referred to. Use to look up the DestinyActivityDefinition in static data. This will give localized data about *what* you should be playing for the objective to be achieved.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyActivityDefinition' complete: description: Whether or not the Objective is completed. type: boolean destinationHash: description: 'If the Objective has a Destination associated with it, this is the unique identifier of the Destination being referred to. Use to look up the DestinyDestinationDefinition in static data. This will give localized data about *where* in the universe the objective should be achieved.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyDestinationDefinition' objectiveHash: description: The unique identifier of the Objective being referred to. Use to look up the DestinyObjectiveDefinition in static data. format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyObjectiveDefinition' progress: description: 'If progress has been made, and the progress can be measured numerically, this will be the value of that progress. You can compare it to the DestinyObjectiveDefinition.completionValue property for current vs. upper bounds, and use DestinyObjectiveDefinition.valueStyle to determine how this should be rendered. Note that progress, in Destiny 2, need not be a literal numeric progression. It could be one of a number of possible values, even a Timestamp. Always examine DestinyObjectiveDefinition.valueStyle before rendering progress.' format: int32 type: integer type: object Destiny.Quests.DestinyQuestStatus: description: 'Data regarding the progress of a Quest for a specific character. Quests are composed of multiple steps, each with potentially multiple objectives: this QuestStatus will return Objective data for the *currently active* step in this quest.' properties: completed: description: 'Whether or not the whole quest has been completed, regardless of whether or not you have redeemed the rewards for the quest.' type: boolean itemInstanceId: description: 'The current Quest Step will be an instanced item in the player''s inventory. If you care about that, this is the instance ID of that item.' format: int64 type: integer questHash: description: 'The hash identifier for the Quest Item. (Note: Quests are defined as Items, and thus you would use this to look up the quest''s DestinyInventoryItemDefinition). For information on all steps in the quest, you can then examine its DestinyInventoryItemDefinition.setData property for Quest Steps (which are *also* items). You can use the Item Definition to display human readable data about the overall quest.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' redeemed: description: Whether or not you have redeemed rewards for this quest. type: boolean started: description: Whether or not you have started this quest. type: boolean stepHash: description: 'The hash identifier of the current Quest Step, which is also a DestinyInventoryItemDefinition. You can use this to get human readable data about the current step and what to do in that step.' format: uint32 type: integer x-mapped-definition: $ref: '#/definitions/Destiny.Definitions.DestinyInventoryItemDefinition' stepObjectives: description: 'A step can have multiple objectives. This will give you the progress for each objective in the current step, in the order in which they are rendered in-game.' items: $ref: '#/definitions/Destiny.Quests.DestinyObjectiveProgress' type: array tracked: description: Whether or not the quest is tracked type: boolean vendorHash: description: 'If the quest has a related Vendor that you should talk to in order to initiate the quest/earn rewards/continue the quest, this will be the hash identifier of that Vendor. Look it up its DestinyVendorDefinition.' format: uint32 type: integer type: object Destiny.Requests.Actions.DestinyActionRequest: properties: membershipType: $ref: '#/definitions/BungieMembershipType' type: object Destiny.Requests.Actions.DestinyCharacterActionRequest: properties: characterId: format: int64 type: integer membershipType: $ref: '#/definitions/BungieMembershipType' type: object Destiny.Requests.Actions.DestinyItemActionRequest: properties: characterId: format: int64 type: integer itemId: format: int64 type: integer membershipType: $ref: '#/definitions/BungieMembershipType' type: object Destiny.Requests.Actions.DestinyItemSetActionRequest: properties: characterId: format: int64 type: integer itemIds: items: format: int64 type: integer type: array membershipType: $ref: '#/definitions/BungieMembershipType' type: object Destiny.Requests.Actions.DestinyItemStateRequest: properties: characterId: format: int64 type: integer itemId: format: int64 type: integer membershipType: $ref: '#/definitions/BungieMembershipType' state: type: boolean type: object Destiny.Requests.DestinyItemTransferRequest: properties: characterId: format: int64 type: integer itemId: format: int64 type: integer itemReferenceHash: format: uint32 type: integer membershipType: $ref: '#/definitions/BungieMembershipType' stackSize: format: int32 type: integer transferToVault: type: boolean type: object Destiny.Responses.DestinyCharacterResponse: description: 'The response contract for GetDestinyCharacter, with components that can be returned for character and item-level data.' properties: activities: allOf: - $ref: '#/definitions/SingleComponentResponseOfDestinyCharacterActivitiesComponent' description: "Activity data - info about current activities available to the player.\r\nCOMPONENT TYPE: CharacterActivities" type: object x-destiny-component-type-dependency: CharacterActivities character: allOf: - $ref: '#/definitions/SingleComponentResponseOfDestinyCharacterComponent' description: "Base information about the character in question.\r\nCOMPONENT TYPE: Characters" type: object x-destiny-component-type-dependency: Characters equipment: allOf: - $ref: '#/definitions/SingleComponentResponseOfDestinyInventoryComponent' description: "Equipped items on the character.\r\nCOMPONENT TYPE: CharacterEquipment" type: object x-destiny-component-type-dependency: CharacterEquipment inventory: allOf: - $ref: '#/definitions/SingleComponentResponseOfDestinyInventoryComponent' description: "The character-level non-equipped inventory items.\r\nCOMPONENT TYPE: CharacterInventories" type: object x-destiny-component-type-dependency: CharacterInventories itemComponents: allOf: - $ref: '#/definitions/DestinyItemComponentSetOfint64' description: "The set of components belonging to the player's instanced items.\r\nCOMPONENT TYPE: [See inside the DestinyItemComponentSet contract for component types.]" type: object kiosks: allOf: - $ref: '#/definitions/SingleComponentResponseOfDestinyKiosksComponent' description: "Items available from Kiosks that are available to this specific character. \r\nCOMPONENT TYPE: Kiosks" type: object x-destiny-component-type-dependency: Kiosks progressions: allOf: - $ref: '#/definitions/SingleComponentResponseOfDestinyCharacterProgressionComponent' description: "Character progression data, including Milestones.\r\nCOMPONENT TYPE: CharacterProgressions" type: object x-destiny-component-type-dependency: CharacterProgressions renderData: allOf: - $ref: '#/definitions/SingleComponentResponseOfDestinyCharacterRenderComponent' description: "Character rendering data - a minimal set of information about equipment and dyes used for rendering.\r\nCOMPONENT TYPE: CharacterRenderData" type: object x-destiny-component-type-dependency: CharacterRenderData type: object Destiny.Responses.DestinyItemResponse: description: 'The response object for retrieving an individual instanced item. None of these components are relevant for an item that doesn''t have an "itemInstanceId": for those, get your information from the DestinyInventoryDefinition.' properties: characterId: description: 'If the item is on a character, this will return the ID of the character that is holding the item.' format: int64 type: integer instance: allOf: - $ref: '#/definitions/SingleComponentResponseOfDestinyItemInstanceComponent' description: "Basic instance data for the item.\r\nCOMPONENT TYPE: ItemInstances" type: object x-destiny-component-type-dependency: ItemInstances item: allOf: - $ref: '#/definitions/SingleComponentResponseOfDestinyItemComponent' description: "Common data for the item relevant to its non-instanced properties.\r\nCOMPONENT TYPE: ItemCommonData" type: object x-destiny-component-type-dependency: ItemCommonData objectives: allOf: - $ref: '#/definitions/SingleComponentResponseOfDestinyItemObjectivesComponent' description: "Information specifically about the item's objectives.\r\nCOMPONENT TYPE: ItemObjectives" type: object x-destiny-component-type-dependency: ItemObjectives perks: allOf: - $ref: '#/definitions/SingleComponentResponseOfDestinyItemPerksComponent' description: "Information specifically about the perks currently active on the item.\r\nCOMPONENT TYPE: ItemPerks" type: object x-destiny-component-type-dependency: ItemPerks renderData: allOf: - $ref: '#/definitions/SingleComponentResponseOfDestinyItemRenderComponent' description: "Information about how to render the item in 3D.\r\nCOMPONENT TYPE: ItemRenderData" type: object x-destiny-component-type-dependency: ItemRenderData sockets: allOf: - $ref: '#/definitions/SingleComponentResponseOfDestinyItemSocketsComponent' description: "Information about the sockets of the item: which are currently active, what potential sockets you could have and the stats/abilities/perks you can gain from them.\r\nCOMPONENT TYPE: ItemSockets" type: object x-destiny-component-type-dependency: ItemSockets stats: allOf: - $ref: '#/definitions/SingleComponentResponseOfDestinyItemStatsComponent' description: "Information about the computed stats of the item: power, defense, etc...\r\nCOMPONENT TYPE: ItemStats" type: object x-destiny-component-type-dependency: ItemStats talentGrid: allOf: - $ref: '#/definitions/SingleComponentResponseOfDestinyItemTalentGridComponent' description: "Information about the talent grid attached to the item. Talent nodes can provide a variety of benefits and abilities, and in Destiny 2 are used almost exclusively for the character's \"Builds\".\r\nCOMPONENT TYPE: ItemTalentGrids" type: object x-destiny-component-type-dependency: ItemTalentGrids type: object Destiny.Responses.DestinyProfileResponse: description: 'The response for GetDestinyProfile, with components for character and item-level data.' properties: characterActivities: allOf: - $ref: '#/definitions/DictionaryComponentResponseOfint64AndDestinyCharacterActivitiesComponent' description: "Character activity data - the activities available to this character and its status, keyed by the Character's Id.\r\nCOMPONENT TYPE: CharacterActivities" type: object x-destiny-component-type-dependency: CharacterActivities characterEquipment: allOf: - $ref: '#/definitions/DictionaryComponentResponseOfint64AndDestinyInventoryComponent' description: "The character's equipped items, keyed by the Character's Id.\r\nCOMPONENT TYPE: CharacterEquipment" type: object x-destiny-component-type-dependency: CharacterEquipment characterInventories: allOf: - $ref: '#/definitions/DictionaryComponentResponseOfint64AndDestinyInventoryComponent' description: "The character-level non-equipped inventory items, keyed by the Character's Id.\r\nCOMPONENT TYPE: CharacterInventories" type: object x-destiny-component-type-dependency: CharacterInventories characterKiosks: allOf: - $ref: '#/definitions/DictionaryComponentResponseOfint64AndDestinyKiosksComponent' description: "Items available from Kiosks that are available to a specific character as opposed to the account as a whole. It must be combined with data from the profileKiosks property to get a full picture of the character's available items to check out of a kiosk.\r\nThis component returns information about what Kiosk items are available to you on a *Character* level. Usually, kiosk items will be earned for the entire Profile (all characters) at once. To find those, look in the profileKiosks property.\r\nCOMPONENT TYPE: Kiosks" type: object x-destiny-component-type-dependency: Kiosks characterProgressions: allOf: - $ref: '#/definitions/DictionaryComponentResponseOfint64AndDestinyCharacterProgressionComponent' description: "Character-level progression data, keyed by the Character's Id.\r\nCOMPONENT TYPE: CharacterProgressions" type: object x-destiny-component-type-dependency: CharacterProgressions characterRenderData: allOf: - $ref: '#/definitions/DictionaryComponentResponseOfint64AndDestinyCharacterRenderComponent' description: "Character rendering data - a minimal set of info needed to render a character in 3D - keyed by the Character's Id.\r\nCOMPONENT TYPE: CharacterRenderData" type: object x-destiny-component-type-dependency: CharacterRenderData characters: allOf: - $ref: '#/definitions/DictionaryComponentResponseOfint64AndDestinyCharacterComponent' description: "Basic information about each character, keyed by the CharacterId.\r\nCOMPONENT TYPE: Characters" type: object x-destiny-component-type-dependency: Characters itemComponents: allOf: - $ref: '#/definitions/DestinyItemComponentSetOfint64' description: "Information about instanced items across all returned characters, keyed by the item's instance ID.\r\nCOMPONENT TYPE: [See inside the DestinyItemComponentSet contract for component types.]" type: object profile: allOf: - $ref: '#/definitions/SingleComponentResponseOfDestinyProfileComponent' description: "The basic information about the Destiny Profile (formerly \"Account\").\r\nCOMPONENT TYPE: Profiles" type: object x-destiny-component-type-dependency: Profiles profileCurrencies: allOf: - $ref: '#/definitions/SingleComponentResponseOfDestinyInventoryComponent' description: "The profile-level currencies owned by the Destiny Profile.\r\nCOMPONENT TYPE: ProfileCurrencies" type: object x-destiny-component-type-dependency: ProfileCurrencies profileInventory: allOf: - $ref: '#/definitions/SingleComponentResponseOfDestinyInventoryComponent' description: "The profile-level inventory of the Destiny Profile.\r\nCOMPONENT TYPE: ProfileInventories" type: object x-destiny-component-type-dependency: ProfileInventories profileKiosks: allOf: - $ref: '#/definitions/SingleComponentResponseOfDestinyKiosksComponent' description: "Items available from Kiosks that are available Profile-wide (i.e. across all characters)\r\nThis component returns information about what Kiosk items are available to you on a *Profile* level. It is theoretically possible for Kiosks to have items gated by specific Character as well. If you ever have those, you will find them on the characterKiosks property.\r\nCOMPONENT TYPE: Kiosks" type: object x-destiny-component-type-dependency: Kiosks vendorReceipts: allOf: - $ref: '#/definitions/SingleComponentResponseOfDestinyVendorReceiptsComponent' description: "Recent, refundable purchases you have made from vendors. When will you use it? Couldn't say...\r\nCOMPONENT TYPE: VendorReceipts" type: object x-destiny-component-type-dependency: VendorReceipts type: object Destiny.Responses.DestinyVendorResponse: description: A response containing all of the components for a vendor. properties: categories: allOf: - $ref: '#/definitions/SingleComponentResponseOfDestinyVendorCategoriesComponent' description: "Categories that the vendor has available, and references to the sales therein.\r\nCOMPONENT TYPE: VendorCategories" type: object x-destiny-component-type-dependency: VendorCategories items: allOf: - $ref: '#/definitions/DestinyItemComponentSetOfint32' description: "Item components, keyed by the vendorItemIndex of the active sale items.\r\nCOMPONENT TYPE: [See inside the DestinyItemComponentSet contract for component types.]" type: object sales: allOf: - $ref: '#/definitions/DictionaryComponentResponseOfint32AndDestinyVendorSaleItemComponent' description: "Sales, keyed by the vendorItemIndex of the item being sold.\r\nCOMPONENT TYPE: VendorSales" type: object x-destiny-component-type-dependency: VendorSales vendor: allOf: - $ref: '#/definitions/SingleComponentResponseOfDestinyVendorComponent' description: "The base properties of the vendor.\r\nCOMPONENT TYPE: Vendors" type: object x-destiny-component-type-dependency: Vendors type: object Destiny.SpecialItemType: description: "As you run into items that need to be classified for Milestone purposes in ways that we cannot infer via Babel or Bonbobo-sourced data, add a new classification here and use a string constant to represent it in the local item config file.\r\nNOTE: This is not all of the item types available, and some of these are holdovers from Destiny 1 that may or may not still exist." enum: - '0' - '1' - '8' - '9' - '23' - '24' - '25' - '27' - '29' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: SpecialCurrency numericValue: '1' - identifier: Armor numericValue: '8' - identifier: Weapon numericValue: '9' - identifier: Engram numericValue: '23' - identifier: Consumable numericValue: '24' - identifier: ExchangeMaterial numericValue: '25' - identifier: MissionReward numericValue: '27' - identifier: Currency numericValue: '29' Destiny.TierType: enum: - '0' - '1' - '2' - '3' - '4' - '5' - '6' format: int32 type: integer x-enum-values: - identifier: Unknown numericValue: '0' - identifier: Currency numericValue: '1' - identifier: Basic numericValue: '2' - identifier: Common numericValue: '3' - identifier: Rare numericValue: '4' - identifier: Superior numericValue: '5' - identifier: Exotic numericValue: '6' Destiny.TransferStatuses: description: 'Whether you can transfer an item, and why not if you can''t.' enum: - '0' - '1' - '2' - '4' format: int32 type: integer x-enum-values: - description: The item can be transferred. identifier: CanTransfer numericValue: '0' - description: You can't transfer the item because it is equipped on a character. identifier: ItemIsEquipped numericValue: '1' - description: The item is defined as not transferrable in its DestinyInventoryItemDefinition.nonTransferrable property. identifier: NotTransferrable numericValue: '2' - description: 'You could transfer the item, but the place you''re trying to put it has run out of room! Check your remaining Vault and/or character space.' identifier: NoRoomInDestination numericValue: '4' Destiny.VendorItemStatus: enum: - '0' - '1' - '2' - '4' - '8' - '16' - '32' - '64' - '128' - '256' - '512' - '1024' - '2048' - '4096' format: int32 type: integer x-enum-values: - identifier: Success numericValue: '0' - identifier: NoInventorySpace numericValue: '1' - identifier: NoFunds numericValue: '2' - identifier: NoProgression numericValue: '4' - identifier: NoUnlock numericValue: '8' - identifier: NoQuantity numericValue: '16' - identifier: OutsidePurchaseWindow numericValue: '32' - identifier: NotAvailable numericValue: '64' - identifier: UniquenessViolation numericValue: '128' - identifier: UnknownError numericValue: '256' - identifier: AlreadySelling numericValue: '512' - identifier: Unsellable numericValue: '1024' - identifier: SellingInhibited numericValue: '2048' - identifier: AlreadyOwned numericValue: '4096' Destiny.Vendors.DestinyVendorReceipt: description: 'If a character purchased an item that is refundable, a Vendor Receipt will be created on the user''s Destiny Profile. These expire after a configurable period of time, but until then can be used to get refunds on items. BNet does not provide the ability to refund a purchase *yet*, but you know.' properties: currencyPaid: description: 'The amount paid for the item, in terms of items that were consumed in the purchase and their quantity.' items: $ref: '#/definitions/Destiny.DestinyItemQuantity' type: array expiresOn: description: The date at which this receipt is rendered invalid. format: date-time type: string itemReceived: allOf: - $ref: '#/definitions/Destiny.DestinyItemQuantity' description: 'The item that was received, and its quantity.' type: object licenseUnlockHash: description: The unlock flag used to determine whether you still have the purchased item. format: uint32 type: integer purchasedByCharacterId: description: The ID of the character who made the purchase. format: int64 type: integer refundPolicy: allOf: - $ref: '#/definitions/Destiny.DestinyVendorItemRefundPolicy' description: 'Whether you can get a refund, and what happens in order for the refund to be received. See the DestinyVendorItemRefundPolicy enum for details.' type: object sequenceNumber: description: The identifier of this receipt. format: int32 type: integer timeToExpiration: description: The seconds since epoch at which this receipt is rendered invalid. format: int64 type: integer type: object DestinyItemComponentSetOfint32: properties: instances: $ref: '#/definitions/DictionaryComponentResponseOfint32AndDestinyItemInstanceComponent' x-destiny-component-type-dependency: ItemInstances objectives: $ref: '#/definitions/DictionaryComponentResponseOfint32AndDestinyItemObjectivesComponent' x-destiny-component-type-dependency: ItemObjectives perks: $ref: '#/definitions/DictionaryComponentResponseOfint32AndDestinyItemPerksComponent' x-destiny-component-type-dependency: ItemPerks plugStates: $ref: '#/definitions/DictionaryComponentResponseOfuint32AndDestinyItemPlugComponent' x-destiny-component-type-dependency: ItemPlugStates renderData: $ref: '#/definitions/DictionaryComponentResponseOfint32AndDestinyItemRenderComponent' x-destiny-component-type-dependency: ItemRenderData sockets: $ref: '#/definitions/DictionaryComponentResponseOfint32AndDestinyItemSocketsComponent' x-destiny-component-type-dependency: ItemSockets stats: $ref: '#/definitions/DictionaryComponentResponseOfint32AndDestinyItemStatsComponent' x-destiny-component-type-dependency: ItemStats talentGrids: $ref: '#/definitions/DictionaryComponentResponseOfint32AndDestinyItemTalentGridComponent' x-destiny-component-type-dependency: ItemTalentGrids type: object DestinyItemComponentSetOfint64: properties: instances: $ref: '#/definitions/DictionaryComponentResponseOfint64AndDestinyItemInstanceComponent' x-destiny-component-type-dependency: ItemInstances objectives: $ref: '#/definitions/DictionaryComponentResponseOfint64AndDestinyItemObjectivesComponent' x-destiny-component-type-dependency: ItemObjectives perks: $ref: '#/definitions/DictionaryComponentResponseOfint64AndDestinyItemPerksComponent' x-destiny-component-type-dependency: ItemPerks plugStates: $ref: '#/definitions/DictionaryComponentResponseOfuint32AndDestinyItemPlugComponent' x-destiny-component-type-dependency: ItemPlugStates renderData: $ref: '#/definitions/DictionaryComponentResponseOfint64AndDestinyItemRenderComponent' x-destiny-component-type-dependency: ItemRenderData sockets: $ref: '#/definitions/DictionaryComponentResponseOfint64AndDestinyItemSocketsComponent' x-destiny-component-type-dependency: ItemSockets stats: $ref: '#/definitions/DictionaryComponentResponseOfint64AndDestinyItemStatsComponent' x-destiny-component-type-dependency: ItemStats talentGrids: $ref: '#/definitions/DictionaryComponentResponseOfint64AndDestinyItemTalentGridComponent' x-destiny-component-type-dependency: ItemTalentGrids type: object DictionaryComponentResponseOfint32AndDestinyItemInstanceComponent: properties: data: additionalProperties: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemInstanceComponent' x-destiny-component-type-dependency: ItemInstances type: object privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object DictionaryComponentResponseOfint32AndDestinyItemObjectivesComponent: properties: data: additionalProperties: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemObjectivesComponent' x-destiny-component-type-dependency: ItemObjectives type: object privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object DictionaryComponentResponseOfint32AndDestinyItemPerksComponent: properties: data: additionalProperties: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemPerksComponent' x-destiny-component-type-dependency: ItemPerks type: object privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object DictionaryComponentResponseOfint32AndDestinyItemRenderComponent: properties: data: additionalProperties: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemRenderComponent' x-destiny-component-type-dependency: ItemRenderData type: object privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object DictionaryComponentResponseOfint32AndDestinyItemSocketsComponent: properties: data: additionalProperties: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemSocketsComponent' x-destiny-component-type-dependency: ItemSockets type: object privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object DictionaryComponentResponseOfint32AndDestinyItemStatsComponent: properties: data: additionalProperties: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemStatsComponent' x-destiny-component-type-dependency: ItemStats type: object privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object DictionaryComponentResponseOfint32AndDestinyItemTalentGridComponent: properties: data: additionalProperties: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemTalentGridComponent' x-destiny-component-type-dependency: ItemTalentGrids type: object privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object DictionaryComponentResponseOfint32AndDestinyVendorSaleItemComponent: properties: data: additionalProperties: $ref: '#/definitions/Destiny.Entities.Vendors.DestinyVendorSaleItemComponent' x-destiny-component-type-dependency: VendorSales type: object privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object DictionaryComponentResponseOfint64AndDestinyCharacterActivitiesComponent: properties: data: additionalProperties: $ref: '#/definitions/Destiny.Entities.Characters.DestinyCharacterActivitiesComponent' x-destiny-component-type-dependency: CharacterActivities type: object privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object DictionaryComponentResponseOfint64AndDestinyCharacterComponent: properties: data: additionalProperties: $ref: '#/definitions/Destiny.Entities.Characters.DestinyCharacterComponent' x-destiny-component-type-dependency: Characters type: object privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object DictionaryComponentResponseOfint64AndDestinyCharacterProgressionComponent: properties: data: additionalProperties: $ref: '#/definitions/Destiny.Entities.Characters.DestinyCharacterProgressionComponent' x-destiny-component-type-dependency: CharacterProgressions type: object privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object DictionaryComponentResponseOfint64AndDestinyCharacterRenderComponent: properties: data: additionalProperties: $ref: '#/definitions/Destiny.Entities.Characters.DestinyCharacterRenderComponent' x-destiny-component-type-dependency: CharacterRenderData type: object privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object DictionaryComponentResponseOfint64AndDestinyInventoryComponent: properties: data: additionalProperties: $ref: '#/definitions/Destiny.Entities.Inventory.DestinyInventoryComponent' type: object privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object DictionaryComponentResponseOfint64AndDestinyItemInstanceComponent: properties: data: additionalProperties: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemInstanceComponent' x-destiny-component-type-dependency: ItemInstances type: object privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object DictionaryComponentResponseOfint64AndDestinyItemObjectivesComponent: properties: data: additionalProperties: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemObjectivesComponent' x-destiny-component-type-dependency: ItemObjectives type: object privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object DictionaryComponentResponseOfint64AndDestinyItemPerksComponent: properties: data: additionalProperties: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemPerksComponent' x-destiny-component-type-dependency: ItemPerks type: object privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object DictionaryComponentResponseOfint64AndDestinyItemRenderComponent: properties: data: additionalProperties: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemRenderComponent' x-destiny-component-type-dependency: ItemRenderData type: object privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object DictionaryComponentResponseOfint64AndDestinyItemSocketsComponent: properties: data: additionalProperties: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemSocketsComponent' x-destiny-component-type-dependency: ItemSockets type: object privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object DictionaryComponentResponseOfint64AndDestinyItemStatsComponent: properties: data: additionalProperties: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemStatsComponent' x-destiny-component-type-dependency: ItemStats type: object privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object DictionaryComponentResponseOfint64AndDestinyItemTalentGridComponent: properties: data: additionalProperties: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemTalentGridComponent' x-destiny-component-type-dependency: ItemTalentGrids type: object privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object DictionaryComponentResponseOfint64AndDestinyKiosksComponent: properties: data: additionalProperties: $ref: '#/definitions/Destiny.Components.Kiosks.DestinyKiosksComponent' x-destiny-component-type-dependency: Kiosks type: object privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object DictionaryComponentResponseOfuint32AndDestinyItemPlugComponent: properties: data: additionalProperties: $ref: '#/definitions/Destiny.Components.Items.DestinyItemPlugComponent' x-destiny-component-type-dependency: ItemPlugStates type: object privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object Entities.EntityActionResult: properties: entityId: format: int64 type: integer result: $ref: '#/definitions/Exceptions.PlatformErrorCodes' type: object Exceptions.PlatformErrorCodes: enum: - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' - '8' - '9' - '10' - '11' - '12' - '13' - '14' - '15' - '16' - '17' - '18' - '19' - '20' - '21' - '22' - '23' - '24' - '25' - '26' - '27' - '28' - '29' - '30' - '31' - '32' - '33' - '34' - '35' - '36' - '37' - '38' - '39' - '40' - '41' - '42' - '43' - '44' - '45' - '46' - '47' - '48' - '49' - '50' - '51' - '52' - '89' - '90' - '91' - '92' - '93' - '94' - '95' - '96' - '97' - '98' - '99' - '100' - '101' - '102' - '103' - '104' - '105' - '106' - '107' - '108' - '109' - '110' - '111' - '112' - '113' - '115' - '116' - '117' - '118' - '119' - '120' - '121' - '122' - '123' - '124' - '125' - '126' - '127' - '128' - '129' - '130' - '131' - '132' - '133' - '134' - '135' - '136' - '137' - '138' - '139' - '140' - '141' - '142' - '143' - '144' - '145' - '146' - '147' - '148' - '149' - '150' - '151' - '152' - '153' - '154' - '155' - '156' - '157' - '158' - '159' - '160' - '161' - '162' - '163' - '164' - '165' - '166' - '167' - '168' - '169' - '170' - '171' - '172' - '173' - '174' - '175' - '200' - '201' - '202' - '203' - '204' - '205' - '206' - '207' - '208' - '209' - '210' - '211' - '212' - '213' - '214' - '215' - '216' - '217' - '218' - '219' - '220' - '221' - '222' - '223' - '224' - '225' - '226' - '227' - '300' - '301' - '302' - '303' - '304' - '305' - '306' - '307' - '308' - '309' - '310' - '311' - '312' - '400' - '500' - '501' - '502' - '503' - '504' - '505' - '506' - '507' - '508' - '509' - '510' - '511' - '512' - '513' - '514' - '515' - '516' - '517' - '518' - '519' - '520' - '521' - '522' - '523' - '524' - '525' - '526' - '527' - '528' - '529' - '530' - '531' - '532' - '533' - '534' - '535' - '536' - '537' - '538' - '539' - '540' - '541' - '542' - '543' - '544' - '555' - '556' - '557' - '558' - '559' - '560' - '561' - '562' - '563' - '564' - '565' - '566' - '567' - '568' - '569' - '570' - '571' - '572' - '573' - '574' - '575' - '576' - '577' - '578' - '579' - '580' - '581' - '582' - '583' - '584' - '585' - '586' - '587' - '588' - '589' - '590' - '591' - '592' - '593' - '594' - '601' - '602' - '603' - '604' - '605' - '606' - '607' - '608' - '609' - '610' - '611' - '612' - '613' - '614' - '615' - '616' - '617' - '618' - '619' - '620' - '621' - '622' - '623' - '624' - '625' - '626' - '627' - '628' - '629' - '630' - '631' - '632' - '633' - '634' - '635' - '636' - '637' - '638' - '639' - '641' - '642' - '643' - '644' - '646' - '647' - '648' - '649' - '650' - '651' - '652' - '653' - '654' - '655' - '656' - '657' - '658' - '659' - '660' - '661' - '662' - '663' - '664' - '665' - '666' - '667' - '668' - '669' - '670' - '671' - '672' - '673' - '674' - '675' - '676' - '677' - '678' - '679' - '680' - '681' - '682' - '683' - '684' - '685' - '686' - '687' - '688' - '689' - '690' - '691' - '692' - '693' - '694' - '695' - '696' - '697' - '698' - '699' - '701' - '702' - '703' - '704' - '705' - '706' - '707' - '801' - '802' - '803' - '804' - '805' - '806' - '807' - '900' - '901' - '902' - '903' - '904' - '905' - '906' - '907' - '908' - '909' - '1000' - '1001' - '1002' - '1003' - '1004' - '1005' - '1006' - '1007' - '1008' - '1009' - '1100' - '1204' - '1205' - '1218' - '1223' - '1224' - '1225' - '1226' - '1227' - '1229' - '1230' - '1231' - '1232' - '1233' - '1234' - '1235' - '1236' - '1237' - '1300' - '1301' - '1302' - '1303' - '1304' - '1305' - '1306' - '1307' - '1308' - '1309' - '1310' - '1311' - '1312' - '1313' - '1314' - '1315' - '1316' - '1317' - '1318' - '1400' - '1401' - '1402' - '1403' - '1404' - '1405' - '1500' - '1501' - '1502' - '1600' - '1601' - '1602' - '1603' - '1604' - '1605' - '1606' - '1607' - '1608' - '1609' - '1610' - '1611' - '1612' - '1613' - '1614' - '1615' - '1616' - '1617' - '1618' - '1619' - '1620' - '1621' - '1622' - '1623' - '1624' - '1625' - '1626' - '1627' - '1628' - '1629' - '1630' - '1631' - '1632' - '1633' - '1634' - '1635' - '1636' - '1637' - '1638' - '1639' - '1640' - '1641' - '1642' - '1643' - '1644' - '1645' - '1646' - '1647' - '1648' - '1649' - '1650' - '1651' - '1652' - '1653' - '1654' - '1655' - '1656' - '1657' - '1658' - '1659' - '1660' - '1661' - '1662' - '1663' - '1664' - '1665' - '1666' - '1667' - '1668' - '1669' - '1670' - '1671' - '1672' - '1800' - '1801' - '1802' - '1803' - '1804' - '1805' - '1806' - '1900' - '1901' - '1902' - '1903' - '1904' - '1905' - '1906' - '1907' - '1908' - '1910' - '1911' - '1912' - '1913' - '1914' - '2000' - '2001' - '2002' - '2003' - '2004' - '2005' - '2006' - '2007' - '2008' - '2009' - '2010' - '2011' - '2012' - '2013' - '2014' - '2015' - '2016' - '2017' - '2018' - '2019' - '2020' - '2021' - '2022' - '2023' - '2024' - '2025' - '2026' - '2027' - '2028' - '2029' - '2030' - '2031' - '2032' - '2033' - '2034' - '2035' - '2036' - '2037' - '2038' - '2039' - '2040' - '2041' - '2042' - '2043' - '2044' - '2045' - '2046' - '2100' - '2101' - '2102' - '2103' - '2104' - '2105' - '2106' - '2107' - '2108' - '2109' - '2110' - '2111' - '2112' - '2113' - '2114' - '2115' - '2200' - '2201' - '2202' - '2203' - '2204' - '2205' - '2206' - '2207' - '2300' - '2500' - '2501' - '2502' - '2600' - '2601' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Success numericValue: '1' - identifier: TransportException numericValue: '2' - identifier: UnhandledException numericValue: '3' - identifier: NotImplemented numericValue: '4' - identifier: SystemDisabled numericValue: '5' - identifier: FailedToLoadAvailableLocalesConfiguration numericValue: '6' - identifier: ParameterParseFailure numericValue: '7' - identifier: ParameterInvalidRange numericValue: '8' - identifier: BadRequest numericValue: '9' - identifier: AuthenticationInvalid numericValue: '10' - identifier: DataNotFound numericValue: '11' - identifier: InsufficientPrivileges numericValue: '12' - identifier: Duplicate numericValue: '13' - description: 'Deprecated, please do not check for this value anywhere.' identifier: UnknownSqlResult numericValue: '14' - identifier: ValidationError numericValue: '15' - identifier: ValidationMissingFieldError numericValue: '16' - identifier: ValidationInvalidInputError numericValue: '17' - identifier: InvalidParameters numericValue: '18' - identifier: ParameterNotFound numericValue: '19' - identifier: UnhandledHttpException numericValue: '20' - identifier: NotFound numericValue: '21' - identifier: WebAuthModuleAsyncFailed numericValue: '22' - identifier: InvalidReturnValue numericValue: '23' - identifier: UserBanned numericValue: '24' - identifier: InvalidPostBody numericValue: '25' - identifier: MissingPostBody numericValue: '26' - identifier: ExternalServiceTimeout numericValue: '27' - identifier: ValidationLengthError numericValue: '28' - identifier: ValidationRangeError numericValue: '29' - identifier: JsonDeserializationError numericValue: '30' - identifier: ThrottleLimitExceeded numericValue: '31' - identifier: ValidationTagError numericValue: '32' - identifier: ValidationProfanityError numericValue: '33' - identifier: ValidationUrlFormatError numericValue: '34' - identifier: ThrottleLimitExceededMinutes numericValue: '35' - identifier: ThrottleLimitExceededMomentarily numericValue: '36' - identifier: ThrottleLimitExceededSeconds numericValue: '37' - identifier: ExternalServiceUnknown numericValue: '38' - identifier: ValidationWordLengthError numericValue: '39' - identifier: ValidationInvisibleUnicode numericValue: '40' - identifier: ValidationBadNames numericValue: '41' - identifier: ExternalServiceFailed numericValue: '42' - identifier: ServiceRetired numericValue: '43' - identifier: UnknownSqlException numericValue: '44' - identifier: UnsupportedLocale numericValue: '45' - identifier: InvalidPageNumber numericValue: '46' - identifier: MaximumPageSizeExceeded numericValue: '47' - identifier: ServiceUnsupported numericValue: '48' - identifier: ValidationMaximumUnicodeCombiningCharacters numericValue: '49' - identifier: ValidationMaximumSequentialCarriageReturns numericValue: '50' - identifier: PerEndpointRequestThrottleExceeded numericValue: '51' - identifier: AuthContextCacheAssertion numericValue: '52' - identifier: ObsoleteCredentialType numericValue: '89' - identifier: UnableToUnPairMobileApp numericValue: '90' - identifier: UnableToPairMobileApp numericValue: '91' - identifier: CannotUseMobileAuthWithNonMobileProvider numericValue: '92' - identifier: MissingDeviceCookie numericValue: '93' - identifier: FacebookTokenExpired numericValue: '94' - identifier: AuthTicketRequired numericValue: '95' - identifier: CookieContextRequired numericValue: '96' - identifier: UnknownAuthenticationError numericValue: '97' - identifier: BungieNetAccountCreationRequired numericValue: '98' - identifier: WebAuthRequired numericValue: '99' - identifier: ContentUnknownSqlResult numericValue: '100' - identifier: ContentNeedUniquePath numericValue: '101' - identifier: ContentSqlException numericValue: '102' - identifier: ContentNotFound numericValue: '103' - identifier: ContentSuccessWithTagAddFail numericValue: '104' - identifier: ContentSearchMissingParameters numericValue: '105' - identifier: ContentInvalidId numericValue: '106' - identifier: ContentPhysicalFileDeletionError numericValue: '107' - identifier: ContentPhysicalFileCreationError numericValue: '108' - identifier: ContentPerforceSubmissionError numericValue: '109' - identifier: ContentPerforceInitializationError numericValue: '110' - identifier: ContentDeploymentPackageNotReadyError numericValue: '111' - identifier: ContentUploadFailed numericValue: '112' - identifier: ContentTooManyResults numericValue: '113' - identifier: ContentInvalidState numericValue: '115' - identifier: ContentNavigationParentNotFound numericValue: '116' - identifier: ContentNavigationParentUpdateError numericValue: '117' - identifier: DeploymentPackageNotEditable numericValue: '118' - identifier: ContentValidationError numericValue: '119' - identifier: ContentPropertiesValidationError numericValue: '120' - identifier: ContentTypeNotFound numericValue: '121' - identifier: DeploymentPackageNotFound numericValue: '122' - identifier: ContentSearchInvalidParameters numericValue: '123' - identifier: ContentItemPropertyAggregationError numericValue: '124' - identifier: DeploymentPackageFileNotFound numericValue: '125' - identifier: ContentPerforceFileHistoryNotFound numericValue: '126' - identifier: ContentAssetZipCreationFailure numericValue: '127' - identifier: ContentAssetZipCreationBusy numericValue: '128' - identifier: ContentProjectNotFound numericValue: '129' - identifier: ContentFolderNotFound numericValue: '130' - identifier: ContentPackagesInconsistent numericValue: '131' - identifier: ContentPackagesInvalidState numericValue: '132' - identifier: ContentPackagesInconsistentType numericValue: '133' - identifier: ContentCannotDeletePackage numericValue: '134' - identifier: ContentLockedForChanges numericValue: '135' - identifier: ContentFileUploadFailed numericValue: '136' - identifier: ContentNotReviewed numericValue: '137' - identifier: ContentPermissionDenied numericValue: '138' - identifier: ContentInvalidExternalUrl numericValue: '139' - identifier: ContentExternalFileCannotBeImportedLocally numericValue: '140' - identifier: ContentTagSaveFailure numericValue: '141' - identifier: ContentPerforceUnmatchedFileError numericValue: '142' - identifier: ContentPerforceChangelistResultNotFound numericValue: '143' - identifier: ContentPerforceChangelistFileItemsNotFound numericValue: '144' - identifier: ContentPerforceInvalidRevisionError numericValue: '145' - identifier: ContentUnloadedSaveResult numericValue: '146' - identifier: ContentPropertyInvalidNumber numericValue: '147' - identifier: ContentPropertyInvalidUrl numericValue: '148' - identifier: ContentPropertyInvalidDate numericValue: '149' - identifier: ContentPropertyInvalidSet numericValue: '150' - identifier: ContentPropertyCannotDeserialize numericValue: '151' - identifier: ContentRegexValidationFailOnProperty numericValue: '152' - identifier: ContentMaxLengthFailOnProperty numericValue: '153' - identifier: ContentPropertyUnexpectedDeserializationError numericValue: '154' - identifier: ContentPropertyRequired numericValue: '155' - identifier: ContentCannotCreateFile numericValue: '156' - identifier: ContentInvalidMigrationFile numericValue: '157' - identifier: ContentMigrationAlteringProcessedItem numericValue: '158' - identifier: ContentPropertyDefinitionNotFound numericValue: '159' - identifier: ContentReviewDataChanged numericValue: '160' - identifier: ContentRollbackRevisionNotInPackage numericValue: '161' - identifier: ContentItemNotBasedOnLatestRevision numericValue: '162' - identifier: ContentUnauthorized numericValue: '163' - identifier: ContentCannotCreateDeploymentPackage numericValue: '164' - identifier: ContentUserNotFound numericValue: '165' - identifier: ContentLocalePermissionDenied numericValue: '166' - identifier: ContentInvalidLinkToInternalEnvironment numericValue: '167' - identifier: ContentInvalidBlacklistedContent numericValue: '168' - identifier: ContentMacroMalformedNoContentId numericValue: '169' - identifier: ContentMacroMalformedNoTemplateType numericValue: '170' - identifier: ContentIllegalBNetMembershipId numericValue: '171' - identifier: ContentLocaleDidNotMatchExpected numericValue: '172' - identifier: ContentBabelCallFailed numericValue: '173' - identifier: ContentEnglishPostLiveForbidden numericValue: '174' - identifier: ContentLocaleEditPermissionDenied numericValue: '175' - identifier: UserNonUniqueName numericValue: '200' - identifier: UserManualLinkingStepRequired numericValue: '201' - identifier: UserCreateUnknownSqlResult numericValue: '202' - identifier: UserCreateUnknownSqlException numericValue: '203' - identifier: UserMalformedMembershipId numericValue: '204' - identifier: UserCannotFindRequestedUser numericValue: '205' - identifier: UserCannotLoadAccountCredentialLinkInfo numericValue: '206' - identifier: UserInvalidMobileAppType numericValue: '207' - identifier: UserMissingMobilePairingInfo numericValue: '208' - identifier: UserCannotGenerateMobileKeyWhileUsingMobileCredential numericValue: '209' - identifier: UserGenerateMobileKeyExistingSlotCollision numericValue: '210' - identifier: UserDisplayNameMissingOrInvalid numericValue: '211' - identifier: UserCannotLoadAccountProfileData numericValue: '212' - identifier: UserCannotSaveUserProfileData numericValue: '213' - identifier: UserEmailMissingOrInvalid numericValue: '214' - identifier: UserTermsOfUseRequired numericValue: '215' - identifier: UserCannotCreateNewAccountWhileLoggedIn numericValue: '216' - identifier: UserCannotResolveCentralAccount numericValue: '217' - identifier: UserInvalidAvatar numericValue: '218' - identifier: UserMissingCreatedUserResult numericValue: '219' - identifier: UserCannotChangeUniqueNameYet numericValue: '220' - identifier: UserCannotChangeDisplayNameYet numericValue: '221' - identifier: UserCannotChangeEmail numericValue: '222' - identifier: UserUniqueNameMustStartWithLetter numericValue: '223' - identifier: UserNoLinkedAccountsSupportFriendListings numericValue: '224' - identifier: UserAcknowledgmentTableFull numericValue: '225' - identifier: UserCreationDestinyMembershipRequired numericValue: '226' - identifier: UserFriendsTokenNeedsRefresh numericValue: '227' - identifier: MessagingUnknownError numericValue: '300' - identifier: MessagingSelfError numericValue: '301' - identifier: MessagingSendThrottle numericValue: '302' - identifier: MessagingNoBody numericValue: '303' - identifier: MessagingTooManyUsers numericValue: '304' - identifier: MessagingCanNotLeaveConversation numericValue: '305' - identifier: MessagingUnableToSend numericValue: '306' - identifier: MessagingDeletedUserForbidden numericValue: '307' - identifier: MessagingCannotDeleteExternalConversation numericValue: '308' - identifier: MessagingGroupChatDisabled numericValue: '309' - identifier: MessagingMustIncludeSelfInPrivateMessage numericValue: '310' - identifier: MessagingSenderIsBanned numericValue: '311' - identifier: MessagingGroupOptionalChatExceededMaximum numericValue: '312' - identifier: AddSurveyAnswersUnknownSqlException numericValue: '400' - identifier: ForumBodyCannotBeEmpty numericValue: '500' - identifier: ForumSubjectCannotBeEmptyOnTopicPost numericValue: '501' - identifier: ForumCannotLocateParentPost numericValue: '502' - identifier: ForumThreadLockedForReplies numericValue: '503' - identifier: ForumUnknownSqlResultDuringCreatePost numericValue: '504' - identifier: ForumUnknownTagCreationError numericValue: '505' - identifier: ForumUnknownSqlResultDuringTagItem numericValue: '506' - identifier: ForumUnknownExceptionCreatePost numericValue: '507' - identifier: ForumQuestionMustBeTopicPost numericValue: '508' - identifier: ForumExceptionDuringTagSearch numericValue: '509' - identifier: ForumExceptionDuringTopicRetrieval numericValue: '510' - identifier: ForumAliasedTagError numericValue: '511' - identifier: ForumCannotLocateThread numericValue: '512' - identifier: ForumUnknownExceptionEditPost numericValue: '513' - identifier: ForumCannotLocatePost numericValue: '514' - identifier: ForumUnknownExceptionGetOrCreateTags numericValue: '515' - identifier: ForumEditPermissionDenied numericValue: '516' - identifier: ForumUnknownSqlResultDuringTagIdRetrieval numericValue: '517' - identifier: ForumCannotGetRating numericValue: '518' - identifier: ForumUnknownExceptionGetRating numericValue: '519' - identifier: ForumRatingsAccessError numericValue: '520' - identifier: ForumRelatedPostAccessError numericValue: '521' - identifier: ForumLatestReplyAccessError numericValue: '522' - identifier: ForumUserStatusAccessError numericValue: '523' - identifier: ForumAuthorAccessError numericValue: '524' - identifier: ForumGroupAccessError numericValue: '525' - identifier: ForumUrlExpectedButMissing numericValue: '526' - identifier: ForumRepliesCannotBeEmpty numericValue: '527' - identifier: ForumRepliesCannotBeInDifferentGroups numericValue: '528' - identifier: ForumSubTopicCannotBeCreatedAtThisThreadLevel numericValue: '529' - identifier: ForumCannotCreateContentTopic numericValue: '530' - identifier: ForumTopicDoesNotExist numericValue: '531' - identifier: ForumContentCommentsNotAllowed numericValue: '532' - identifier: ForumUnknownSqlResultDuringEditPost numericValue: '533' - identifier: ForumUnknownSqlResultDuringGetPost numericValue: '534' - identifier: ForumPostValidationBadUrl numericValue: '535' - identifier: ForumBodyTooLong numericValue: '536' - identifier: ForumSubjectTooLong numericValue: '537' - identifier: ForumAnnouncementNotAllowed numericValue: '538' - identifier: ForumCannotShareOwnPost numericValue: '539' - identifier: ForumEditNoOp numericValue: '540' - identifier: ForumUnknownDatabaseErrorDuringGetPost numericValue: '541' - identifier: ForumExceeedMaximumRowLimit numericValue: '542' - identifier: ForumCannotSharePrivatePost numericValue: '543' - identifier: ForumCannotCrossPostBetweenGroups numericValue: '544' - identifier: ForumIncompatibleCategories numericValue: '555' - identifier: ForumCannotUseTheseCategoriesOnNonTopicPost numericValue: '556' - identifier: ForumCanOnlyDeleteTopics numericValue: '557' - identifier: ForumDeleteSqlException numericValue: '558' - identifier: ForumDeleteSqlUnknownResult numericValue: '559' - identifier: ForumTooManyTags numericValue: '560' - identifier: ForumCanOnlyRateTopics numericValue: '561' - identifier: ForumBannedPostsCannotBeEdited numericValue: '562' - identifier: ForumThreadRootIsBanned numericValue: '563' - identifier: ForumCannotUseOfficialTagCategoryAsTag numericValue: '564' - identifier: ForumAnswerCannotBeMadeOnCreatePost numericValue: '565' - identifier: ForumAnswerCannotBeMadeOnEditPost numericValue: '566' - identifier: ForumAnswerPostIdIsNotADirectReplyOfQuestion numericValue: '567' - identifier: ForumAnswerTopicIdIsNotAQuestion numericValue: '568' - identifier: ForumUnknownExceptionDuringMarkAnswer numericValue: '569' - identifier: ForumUnknownSqlResultDuringMarkAnswer numericValue: '570' - identifier: ForumCannotRateYourOwnPosts numericValue: '571' - identifier: ForumPollsMustBeTheFirstPostInTopic numericValue: '572' - identifier: ForumInvalidPollInput numericValue: '573' - identifier: ForumGroupAdminEditNonMember numericValue: '574' - identifier: ForumCannotEditModeratorEditedPost numericValue: '575' - identifier: ForumRequiresDestinyMembership numericValue: '576' - identifier: ForumUnexpectedError numericValue: '577' - identifier: ForumAgeLock numericValue: '578' - identifier: ForumMaxPages numericValue: '579' - identifier: ForumMaxPagesOldestFirst numericValue: '580' - identifier: ForumCannotApplyForumIdWithoutTags numericValue: '581' - identifier: ForumCannotApplyForumIdToNonTopics numericValue: '582' - identifier: ForumCannotDownvoteCommunityCreations numericValue: '583' - identifier: ForumTopicsMustHaveOfficialCategory numericValue: '584' - identifier: ForumRecruitmentTopicMalformed numericValue: '585' - identifier: ForumRecruitmentTopicNotFound numericValue: '586' - identifier: ForumRecruitmentTopicNoSlotsRemaining numericValue: '587' - identifier: ForumRecruitmentTopicKickBan numericValue: '588' - identifier: ForumRecruitmentTopicRequirementsNotMet numericValue: '589' - identifier: ForumRecruitmentTopicNoPlayers numericValue: '590' - identifier: ForumRecruitmentApproveFailMessageBan numericValue: '591' - identifier: ForumRecruitmentGlobalBan numericValue: '592' - identifier: ForumUserBannedFromThisTopic numericValue: '593' - identifier: ForumRecruitmentFireteamMembersOnly numericValue: '594' - identifier: GroupMembershipApplicationAlreadyResolved numericValue: '601' - identifier: GroupMembershipAlreadyApplied numericValue: '602' - identifier: GroupMembershipInsufficientPrivileges numericValue: '603' - identifier: GroupIdNotReturnedFromCreation numericValue: '604' - identifier: GroupSearchInvalidParameters numericValue: '605' - identifier: GroupMembershipPendingApplicationNotFound numericValue: '606' - identifier: GroupInvalidId numericValue: '607' - identifier: GroupInvalidMembershipId numericValue: '608' - identifier: GroupInvalidMembershipType numericValue: '609' - identifier: GroupMissingTags numericValue: '610' - identifier: GroupMembershipNotFound numericValue: '611' - identifier: GroupInvalidRating numericValue: '612' - identifier: GroupUserFollowingAccessError numericValue: '613' - identifier: GroupUserMembershipAccessError numericValue: '614' - identifier: GroupCreatorAccessError numericValue: '615' - identifier: GroupAdminAccessError numericValue: '616' - identifier: GroupPrivatePostNotViewable numericValue: '617' - identifier: GroupMembershipNotLoggedIn numericValue: '618' - identifier: GroupNotDeleted numericValue: '619' - identifier: GroupUnknownErrorUndeletingGroup numericValue: '620' - identifier: GroupDeleted numericValue: '621' - identifier: GroupNotFound numericValue: '622' - identifier: GroupMemberBanned numericValue: '623' - identifier: GroupMembershipClosed numericValue: '624' - identifier: GroupPrivatePostOverrideError numericValue: '625' - identifier: GroupNameTaken numericValue: '626' - identifier: GroupDeletionGracePeriodExpired numericValue: '627' - identifier: GroupCannotCheckBanStatus numericValue: '628' - identifier: GroupMaximumMembershipCountReached numericValue: '629' - identifier: NoDestinyAccountForClanPlatform numericValue: '630' - identifier: AlreadyRequestingMembershipForClanPlatform numericValue: '631' - identifier: AlreadyClanMemberOnPlatform numericValue: '632' - identifier: GroupJoinedCannotSetClanName numericValue: '633' - identifier: GroupLeftCannotClearClanName numericValue: '634' - identifier: GroupRelationshipRequestPending numericValue: '635' - identifier: GroupRelationshipRequestBlocked numericValue: '636' - identifier: GroupRelationshipRequestNotFound numericValue: '637' - identifier: GroupRelationshipBlockNotFound numericValue: '638' - identifier: GroupRelationshipNotFound numericValue: '639' - identifier: GroupAlreadyAllied numericValue: '641' - identifier: GroupAlreadyMember numericValue: '642' - identifier: GroupRelationshipAlreadyExists numericValue: '643' - identifier: InvalidGroupTypesForRelationshipRequest numericValue: '644' - identifier: GroupAtMaximumAlliances numericValue: '646' - identifier: GroupCannotSetClanOnlySettings numericValue: '647' - identifier: ClanCannotSetTwoDefaultPostTypes numericValue: '648' - identifier: GroupMemberInvalidMemberType numericValue: '649' - identifier: GroupInvalidPlatformType numericValue: '650' - identifier: GroupMemberInvalidSort numericValue: '651' - identifier: GroupInvalidResolveState numericValue: '652' - identifier: ClanAlreadyEnabledForPlatform numericValue: '653' - identifier: ClanNotEnabledForPlatform numericValue: '654' - identifier: ClanEnabledButCouldNotJoinNoAccount numericValue: '655' - identifier: ClanEnabledButCouldNotJoinAlreadyMember numericValue: '656' - identifier: ClanCannotJoinNoCredential numericValue: '657' - identifier: NoClanMembershipForPlatform numericValue: '658' - identifier: GroupToGroupFollowLimitReached numericValue: '659' - identifier: ChildGroupAlreadyInAlliance numericValue: '660' - identifier: OwnerGroupAlreadyInAlliance numericValue: '661' - identifier: AllianceOwnerCannotJoinAlliance numericValue: '662' - identifier: GroupNotInAlliance numericValue: '663' - identifier: ChildGroupCannotInviteToAlliance numericValue: '664' - identifier: GroupToGroupAlreadyFollowed numericValue: '665' - identifier: GroupToGroupNotFollowing numericValue: '666' - identifier: ClanMaximumMembershipReached numericValue: '667' - identifier: ClanNameNotValid numericValue: '668' - identifier: ClanNameNotValidError numericValue: '669' - identifier: AllianceOwnerNotDefined numericValue: '670' - identifier: AllianceChildNotDefined numericValue: '671' - identifier: ClanCultureIllegalCharacters numericValue: '672' - identifier: ClanTagIllegalCharacters numericValue: '673' - identifier: ClanRequiresInvitation numericValue: '674' - identifier: ClanMembershipClosed numericValue: '675' - identifier: ClanInviteAlreadyMember numericValue: '676' - identifier: GroupInviteAlreadyMember numericValue: '677' - identifier: GroupJoinApprovalRequired numericValue: '678' - identifier: ClanTagRequired numericValue: '679' - identifier: GroupNameCannotStartOrEndWithWhiteSpace numericValue: '680' - identifier: ClanCallsignCannotStartOrEndWithWhiteSpace numericValue: '681' - identifier: ClanMigrationFailed numericValue: '682' - identifier: ClanNotEnabledAlreadyMemberOfAnotherClan numericValue: '683' - identifier: GroupModerationNotPermittedOnNonMembers numericValue: '684' - identifier: ClanCreationInWorldServerFailed numericValue: '685' - identifier: ClanNotFound numericValue: '686' - identifier: ClanMembershipLevelDoesNotPermitThatAction numericValue: '687' - identifier: ClanMemberNotFound numericValue: '688' - identifier: ClanMissingMembershipApprovers numericValue: '689' - identifier: ClanInWrongStateForRequestedAction numericValue: '690' - identifier: ClanNameAlreadyUsed numericValue: '691' - identifier: ClanTooFewMembers numericValue: '692' - identifier: ClanInfoCannotBeWhitespace numericValue: '693' - identifier: GroupCultureThrottle numericValue: '694' - identifier: ClanTargetDisallowsInvites numericValue: '695' - identifier: ClanInvalidOperation numericValue: '696' - identifier: ClanFounderCannotLeaveWithoutAbdication numericValue: '697' - identifier: ClanNameReserved numericValue: '698' - identifier: ClanApplicantInClanSoNowInvited numericValue: '699' - identifier: ActivitiesUnknownException numericValue: '701' - identifier: ActivitiesParameterNull numericValue: '702' - identifier: ActivityCountsDiabled numericValue: '703' - identifier: ActivitySearchInvalidParameters numericValue: '704' - identifier: ActivityPermissionDenied numericValue: '705' - identifier: ShareAlreadyShared numericValue: '706' - identifier: ActivityLoggingDisabled numericValue: '707' - identifier: ItemAlreadyFollowed numericValue: '801' - identifier: ItemNotFollowed numericValue: '802' - identifier: CannotFollowSelf numericValue: '803' - identifier: GroupFollowLimitExceeded numericValue: '804' - identifier: TagFollowLimitExceeded numericValue: '805' - identifier: UserFollowLimitExceeded numericValue: '806' - identifier: FollowUnsupportedEntityType numericValue: '807' - identifier: NoValidTagsInList numericValue: '900' - identifier: BelowMinimumSuggestionLength numericValue: '901' - identifier: CannotGetSuggestionsOnMultipleTagsSimultaneously numericValue: '902' - identifier: NotAValidPartialTag numericValue: '903' - identifier: TagSuggestionsUnknownSqlResult numericValue: '904' - identifier: TagsUnableToLoadPopularTagsFromDatabase numericValue: '905' - identifier: TagInvalid numericValue: '906' - identifier: TagNotFound numericValue: '907' - identifier: SingleTagExpected numericValue: '908' - identifier: TagsExceededMaximumPerItem numericValue: '909' - identifier: IgnoreInvalidParameters numericValue: '1000' - identifier: IgnoreSqlException numericValue: '1001' - identifier: IgnoreErrorRetrievingGroupPermissions numericValue: '1002' - identifier: IgnoreErrorInsufficientPermission numericValue: '1003' - identifier: IgnoreErrorRetrievingItem numericValue: '1004' - identifier: IgnoreCannotIgnoreSelf numericValue: '1005' - identifier: IgnoreIllegalType numericValue: '1006' - identifier: IgnoreNotFound numericValue: '1007' - identifier: IgnoreUserGloballyIgnored numericValue: '1008' - identifier: IgnoreUserIgnored numericValue: '1009' - identifier: NotificationSettingInvalid numericValue: '1100' - identifier: PsnApiExpiredAccessToken numericValue: '1204' - identifier: PSNExForbidden numericValue: '1205' - identifier: PSNExSystemDisabled numericValue: '1218' - identifier: PsnApiErrorCodeUnknown numericValue: '1223' - identifier: PsnApiErrorWebException numericValue: '1224' - identifier: PsnApiBadRequest numericValue: '1225' - identifier: PsnApiAccessTokenRequired numericValue: '1226' - identifier: PsnApiInvalidAccessToken numericValue: '1227' - identifier: PsnApiBannedUser numericValue: '1229' - identifier: PsnApiAccountUpgradeRequired numericValue: '1230' - identifier: PsnApiServiceTemporarilyUnavailable numericValue: '1231' - identifier: PsnApiServerBusy numericValue: '1232' - identifier: PsnApiUnderMaintenance numericValue: '1233' - identifier: PsnApiProfileUserNotFound numericValue: '1234' - identifier: PsnApiProfilePrivacyRestriction numericValue: '1235' - identifier: PsnApiProfileUnderMaintenance numericValue: '1236' - identifier: PsnApiAccountAttributeMissing numericValue: '1237' - identifier: XblExSystemDisabled numericValue: '1300' - identifier: XblExUnknownError numericValue: '1301' - identifier: XblApiErrorWebException numericValue: '1302' - identifier: XblStsTokenInvalid numericValue: '1303' - identifier: XblStsMissingToken numericValue: '1304' - identifier: XblStsExpiredToken numericValue: '1305' - identifier: XblAccessToTheSandboxDenied numericValue: '1306' - identifier: XblMsaResponseMissing numericValue: '1307' - identifier: XblMsaAccessTokenExpired numericValue: '1308' - identifier: XblMsaInvalidRequest numericValue: '1309' - identifier: XblMsaFriendsRequireSignIn numericValue: '1310' - identifier: XblUserActionRequired numericValue: '1311' - identifier: XblParentalControls numericValue: '1312' - identifier: XblDeveloperAccount numericValue: '1313' - identifier: XblUserTokenExpired numericValue: '1314' - identifier: XblUserTokenInvalid numericValue: '1315' - identifier: XblOffline numericValue: '1316' - identifier: XblUnknownErrorCode numericValue: '1317' - identifier: XblMsaInvalidGrant numericValue: '1318' - identifier: ReportNotYetResolved numericValue: '1400' - identifier: ReportOverturnDoesNotChangeDecision numericValue: '1401' - identifier: ReportNotFound numericValue: '1402' - identifier: ReportAlreadyReported numericValue: '1403' - identifier: ReportInvalidResolution numericValue: '1404' - identifier: ReportNotAssignedToYou numericValue: '1405' - identifier: LegacyGameStatsSystemDisabled numericValue: '1500' - identifier: LegacyGameStatsUnknownError numericValue: '1501' - identifier: LegacyGameStatsMalformedSneakerNetCode numericValue: '1502' - identifier: DestinyAccountAcquisitionFailure numericValue: '1600' - identifier: DestinyAccountNotFound numericValue: '1601' - identifier: DestinyBuildStatsDatabaseError numericValue: '1602' - identifier: DestinyCharacterStatsDatabaseError numericValue: '1603' - identifier: DestinyPvPStatsDatabaseError numericValue: '1604' - identifier: DestinyPvEStatsDatabaseError numericValue: '1605' - identifier: DestinyGrimoireStatsDatabaseError numericValue: '1606' - identifier: DestinyStatsParameterMembershipTypeParseError numericValue: '1607' - identifier: DestinyStatsParameterMembershipIdParseError numericValue: '1608' - identifier: DestinyStatsParameterRangeParseError numericValue: '1609' - identifier: DestinyStringItemHashNotFound numericValue: '1610' - identifier: DestinyStringSetNotFound numericValue: '1611' - identifier: DestinyContentLookupNotFoundForKey numericValue: '1612' - identifier: DestinyContentItemNotFound numericValue: '1613' - identifier: DestinyContentSectionNotFound numericValue: '1614' - identifier: DestinyContentPropertyNotFound numericValue: '1615' - identifier: DestinyContentConfigNotFound numericValue: '1616' - identifier: DestinyContentPropertyBucketValueNotFound numericValue: '1617' - identifier: DestinyUnexpectedError numericValue: '1618' - identifier: DestinyInvalidAction numericValue: '1619' - identifier: DestinyCharacterNotFound numericValue: '1620' - identifier: DestinyInvalidFlag numericValue: '1621' - identifier: DestinyInvalidRequest numericValue: '1622' - identifier: DestinyItemNotFound numericValue: '1623' - identifier: DestinyInvalidCustomizationChoices numericValue: '1624' - identifier: DestinyVendorItemNotFound numericValue: '1625' - identifier: DestinyInternalError numericValue: '1626' - identifier: DestinyVendorNotFound numericValue: '1627' - identifier: DestinyRecentActivitiesDatabaseError numericValue: '1628' - identifier: DestinyItemBucketNotFound numericValue: '1629' - identifier: DestinyInvalidMembershipType numericValue: '1630' - identifier: DestinyVersionIncompatibility numericValue: '1631' - identifier: DestinyItemAlreadyInInventory numericValue: '1632' - identifier: DestinyBucketNotFound numericValue: '1633' - description: 'Note: This is one of those holdovers from Destiny 1. We didn''t change the enum because I am lazy, but in Destiny 2 this would read "DestinyCharacterNotInSocialSpace"' identifier: DestinyCharacterNotInTower numericValue: '1634' - identifier: DestinyCharacterNotLoggedIn numericValue: '1635' - identifier: DestinyDefinitionsNotLoaded numericValue: '1636' - identifier: DestinyInventoryFull numericValue: '1637' - identifier: DestinyItemFailedLevelCheck numericValue: '1638' - identifier: DestinyItemFailedUnlockCheck numericValue: '1639' - identifier: DestinyItemUnequippable numericValue: '1640' - identifier: DestinyItemUniqueEquipRestricted numericValue: '1641' - identifier: DestinyNoRoomInDestination numericValue: '1642' - identifier: DestinyServiceFailure numericValue: '1643' - identifier: DestinyServiceRetired numericValue: '1644' - identifier: DestinyTransferFailed numericValue: '1645' - identifier: DestinyTransferNotFoundForSourceBucket numericValue: '1646' - identifier: DestinyUnexpectedResultInVendorTransferCheck numericValue: '1647' - identifier: DestinyUniquenessViolation numericValue: '1648' - identifier: DestinyErrorDeserializationFailure numericValue: '1649' - identifier: DestinyValidAccountTicketRequired numericValue: '1650' - identifier: DestinyShardRelayClientTimeout numericValue: '1651' - identifier: DestinyShardRelayProxyTimeout numericValue: '1652' - identifier: DestinyPGCRNotFound numericValue: '1653' - identifier: DestinyAccountMustBeOffline numericValue: '1654' - identifier: DestinyCanOnlyEquipInGame numericValue: '1655' - identifier: DestinyCannotPerformActionOnEquippedItem numericValue: '1656' - identifier: DestinyQuestAlreadyCompleted numericValue: '1657' - identifier: DestinyQuestAlreadyTracked numericValue: '1658' - identifier: DestinyTrackableQuestsFull numericValue: '1659' - identifier: DestinyItemNotTransferrable numericValue: '1660' - identifier: DestinyVendorPurchaseNotAllowed numericValue: '1661' - identifier: DestinyContentVersionMismatch numericValue: '1662' - identifier: DestinyItemActionForbidden numericValue: '1663' - identifier: DestinyRefundInvalid numericValue: '1664' - identifier: DestinyPrivacyRestriction numericValue: '1665' - identifier: DestinyActionInsufficientPrivileges numericValue: '1666' - identifier: DestinyInvalidClaimException numericValue: '1667' - identifier: DestinyLegacyPlatformRestricted numericValue: '1668' - identifier: DestinyLegacyPlatformInUse numericValue: '1669' - identifier: DestinyLegacyPlatformInaccessible numericValue: '1670' - identifier: DestinyCannotPerformActionAtThisLocation numericValue: '1671' - identifier: DestinyThrottledByGameServer numericValue: '1672' - identifier: FbInvalidRequest numericValue: '1800' - identifier: FbRedirectMismatch numericValue: '1801' - identifier: FbAccessDenied numericValue: '1802' - identifier: FbUnsupportedResponseType numericValue: '1803' - identifier: FbInvalidScope numericValue: '1804' - identifier: FbUnsupportedGrantType numericValue: '1805' - identifier: FbInvalidGrant numericValue: '1806' - identifier: InvitationExpired numericValue: '1900' - identifier: InvitationUnknownType numericValue: '1901' - identifier: InvitationInvalidResponseStatus numericValue: '1902' - identifier: InvitationInvalidType numericValue: '1903' - identifier: InvitationAlreadyPending numericValue: '1904' - identifier: InvitationInsufficientPermission numericValue: '1905' - identifier: InvitationInvalidCode numericValue: '1906' - identifier: InvitationInvalidTargetState numericValue: '1907' - identifier: InvitationCannotBeReactivated numericValue: '1908' - identifier: InvitationNoRecipients numericValue: '1910' - identifier: InvitationGroupCannotSendToSelf numericValue: '1911' - identifier: InvitationTooManyRecipients numericValue: '1912' - identifier: InvitationInvalid numericValue: '1913' - identifier: InvitationNotFound numericValue: '1914' - identifier: TokenInvalid numericValue: '2000' - identifier: TokenBadFormat numericValue: '2001' - identifier: TokenAlreadyClaimed numericValue: '2002' - identifier: TokenAlreadyClaimedSelf numericValue: '2003' - identifier: TokenThrottling numericValue: '2004' - identifier: TokenUnknownRedemptionFailure numericValue: '2005' - identifier: TokenPurchaseClaimFailedAfterTokenClaimed numericValue: '2006' - identifier: TokenUserAlreadyOwnsOffer numericValue: '2007' - identifier: TokenInvalidOfferKey numericValue: '2008' - identifier: TokenEmailNotValidated numericValue: '2009' - identifier: TokenProvisioningBadVendorOrOffer numericValue: '2010' - identifier: TokenPurchaseHistoryUnknownError numericValue: '2011' - identifier: TokenThrottleStateUnknownError numericValue: '2012' - identifier: TokenUserAgeNotVerified numericValue: '2013' - identifier: TokenExceededOfferMaximum numericValue: '2014' - identifier: TokenNoAvailableUnlocks numericValue: '2015' - identifier: TokenMarketplaceInvalidPlatform numericValue: '2016' - identifier: TokenNoMarketplaceCodesFound numericValue: '2017' - identifier: TokenOfferNotAvailableForRedemption numericValue: '2018' - identifier: TokenUnlockPartialFailure numericValue: '2019' - identifier: TokenMarketplaceInvalidRegion numericValue: '2020' - identifier: TokenOfferExpired numericValue: '2021' - identifier: RAFExceededMaximumReferrals numericValue: '2022' - identifier: RAFDuplicateBond numericValue: '2023' - identifier: RAFNoValidVeteranDestinyMembershipsFound numericValue: '2024' - identifier: RAFNotAValidVeteranUser numericValue: '2025' - identifier: RAFCodeAlreadyClaimedOrNotFound numericValue: '2026' - identifier: RAFMismatchedDestinyMembershipType numericValue: '2027' - identifier: RAFUnableToAccessPurchaseHistory numericValue: '2028' - identifier: RAFUnableToCreateBond numericValue: '2029' - identifier: RAFUnableToFindBond numericValue: '2030' - identifier: RAFUnableToRemoveBond numericValue: '2031' - identifier: RAFCannotBondToSelf numericValue: '2032' - identifier: RAFInvalidPlatform numericValue: '2033' - identifier: RAFGenerateThrottled numericValue: '2034' - identifier: RAFUnableToCreateBondVersionMismatch numericValue: '2035' - identifier: RAFUnableToRemoveBondVersionMismatch numericValue: '2036' - identifier: RAFRedeemThrottled numericValue: '2037' - identifier: NoAvailableDiscountCode numericValue: '2038' - identifier: DiscountAlreadyClaimed numericValue: '2039' - identifier: DiscountClaimFailure numericValue: '2040' - identifier: DiscountConfigurationFailure numericValue: '2041' - identifier: DiscountGenerationFailure numericValue: '2042' - identifier: DiscountAlreadyExists numericValue: '2043' - identifier: TokenRequiresCredentialXuid numericValue: '2044' - identifier: TokenRequiresCredentialPsnid numericValue: '2045' - identifier: OfferRequired numericValue: '2046' - identifier: ApiExceededMaxKeys numericValue: '2100' - identifier: ApiInvalidOrExpiredKey numericValue: '2101' - identifier: ApiKeyMissingFromRequest numericValue: '2102' - identifier: ApplicationDisabled numericValue: '2103' - identifier: ApplicationExceededMax numericValue: '2104' - identifier: ApplicationDisallowedByScope numericValue: '2105' - identifier: AuthorizationCodeInvalid numericValue: '2106' - identifier: OriginHeaderDoesNotMatchKey numericValue: '2107' - identifier: AccessNotPermittedByApplicationScope numericValue: '2108' - identifier: ApplicationNameIsTaken numericValue: '2109' - identifier: RefreshTokenNotYetValid numericValue: '2110' - identifier: AccessTokenHasExpired numericValue: '2111' - identifier: ApplicationTokenFormatNotValid numericValue: '2112' - identifier: ApplicationNotConfiguredForBungieAuth numericValue: '2113' - identifier: ApplicationNotConfiguredForOAuth numericValue: '2114' - identifier: OAuthAccessTokenExpired numericValue: '2115' - identifier: PartnershipInvalidType numericValue: '2200' - identifier: PartnershipValidationError numericValue: '2201' - identifier: PartnershipValidationTimeout numericValue: '2202' - identifier: PartnershipAccessFailure numericValue: '2203' - identifier: PartnershipAccountInvalid numericValue: '2204' - identifier: PartnershipGetAccountInfoFailure numericValue: '2205' - identifier: PartnershipDisabled numericValue: '2206' - identifier: PartnershipAlreadyExists numericValue: '2207' - identifier: CommunityStreamingUnavailable numericValue: '2300' - identifier: TwitchNotLinked numericValue: '2500' - identifier: TwitchAccountNotFound numericValue: '2501' - identifier: TwitchCouldNotLoadDestinyInfo numericValue: '2502' - identifier: TrendingCategoryNotFound numericValue: '2600' - identifier: TrendingEntryTypeNotSupported numericValue: '2601' Forum.CommunityContentSortMode: enum: - '0' - '1' - '2' format: byte type: integer x-enum-values: - identifier: Trending numericValue: '0' - identifier: Latest numericValue: '1' - identifier: HighestRated numericValue: '2' Forum.ForumFlagsEnum: enum: - '0' - '1' - '2' - '4' - '8' - '16' - '32' - '64' - '128' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: BungieStaffPost numericValue: '1' - identifier: ForumNinjaPost numericValue: '2' - identifier: ForumMentorPost numericValue: '4' - identifier: TopicBungieStaffPosted numericValue: '8' - identifier: TopicBungieVolunteerPosted numericValue: '16' - identifier: QuestionAnsweredByBungie numericValue: '32' - identifier: QuestionAnsweredByNinja numericValue: '64' - identifier: CommunityContent numericValue: '128' Forum.ForumMediaType: enum: - '0' - '1' - '2' - '3' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Image numericValue: '1' - identifier: Video numericValue: '2' - identifier: Youtube numericValue: '3' Forum.ForumPostCategoryEnums: enum: - '0' - '1' - '2' - '4' - '8' - '16' - '32' - '64' - '128' - '256' - '512' - '1024' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: TextOnly numericValue: '1' - identifier: Media numericValue: '2' - identifier: Link numericValue: '4' - identifier: Poll numericValue: '8' - identifier: Question numericValue: '16' - identifier: Answered numericValue: '32' - identifier: Announcement numericValue: '64' - identifier: ContentComment numericValue: '128' - identifier: BungieOfficial numericValue: '256' - identifier: NinjaOfficial numericValue: '512' - identifier: Recruitment numericValue: '1024' Forum.ForumPostPopularity: enum: - '0' - '1' - '2' - '3' - '4' - '5' format: int32 type: integer x-enum-values: - identifier: Empty numericValue: '0' - identifier: Default numericValue: '1' - identifier: Discussed numericValue: '2' - identifier: CoolStory numericValue: '3' - identifier: HeatingUp numericValue: '4' - identifier: Hot numericValue: '5' Forum.ForumPostSortEnum: enum: - '0' - '1' format: int32 type: integer x-enum-values: - identifier: Default numericValue: '0' - identifier: OldestFirst numericValue: '1' Forum.ForumRecruitmentDetail: properties: Fireteam: items: $ref: '#/definitions/User.GeneralUser' type: array approved: type: boolean conversationId: format: int64 type: integer intensity: $ref: '#/definitions/Forum.ForumRecruitmentIntensityLabel' kickedPlayerIds: items: format: int64 type: integer type: array microphoneRequired: type: boolean playerSlotsRemaining: format: int32 type: integer playerSlotsTotal: format: int32 type: integer tone: $ref: '#/definitions/Forum.ForumRecruitmentToneLabel' topicId: format: int64 type: integer type: object Forum.ForumRecruitmentIntensityLabel: enum: - '0' - '1' - '2' format: byte type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Casual numericValue: '1' - identifier: Professional numericValue: '2' Forum.ForumRecruitmentToneLabel: enum: - '0' - '1' - '2' format: byte type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: FamilyFriendly numericValue: '1' - identifier: Rowdy numericValue: '2' Forum.ForumTopicsCategoryFiltersEnum: enum: - '0' - '1' - '2' - '4' - '8' - '16' - '32' - '64' - '128' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Links numericValue: '1' - identifier: Questions numericValue: '2' - identifier: AnsweredQuestions numericValue: '4' - identifier: Media numericValue: '8' - identifier: TextOnly numericValue: '16' - identifier: Announcement numericValue: '32' - identifier: BungieOfficial numericValue: '64' - identifier: Polls numericValue: '128' Forum.ForumTopicsQuickDateEnum: enum: - '0' - '1' - '2' - '3' - '4' format: int32 type: integer x-enum-values: - identifier: All numericValue: '0' - identifier: LastYear numericValue: '1' - identifier: LastMonth numericValue: '2' - identifier: LastWeek numericValue: '3' - identifier: LastDay numericValue: '4' Forum.ForumTopicsSortEnum: enum: - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' format: byte type: integer x-enum-values: - identifier: Default numericValue: '0' - identifier: LastReplied numericValue: '1' - identifier: MostReplied numericValue: '2' - identifier: Popularity numericValue: '3' - identifier: Controversiality numericValue: '4' - identifier: Liked numericValue: '5' - identifier: HighestRated numericValue: '6' - identifier: MostUpvoted numericValue: '7' Forum.PollResponse: properties: results: items: $ref: '#/definitions/Forum.PollResult' type: array topicId: format: int64 type: integer totalVotes: format: int32 type: integer type: object Forum.PollResult: properties: answerSlot: format: int32 type: integer answerText: type: string lastVoteDate: format: date-time type: string requestingUserVoted: type: boolean votes: format: int32 type: integer type: object Forum.PostResponse: properties: IsPinned: type: boolean ignoreStatus: $ref: '#/definitions/Ignores.IgnoreResponse' isActive: type: boolean isAnnouncement: type: boolean lastReplyTimestamp: format: date-time type: string latestReplyAuthorId: format: int64 type: integer latestReplyPostId: format: int64 type: integer locale: type: string popularity: $ref: '#/definitions/Forum.ForumPostPopularity' thumbnail: type: string urlMediaType: $ref: '#/definitions/Forum.ForumMediaType' userHasMutedPost: type: boolean userHasRated: type: boolean userRating: format: int32 type: integer type: object Forum.PostSearchResponse: properties: authors: items: $ref: '#/definitions/User.GeneralUser' type: array availablePages: format: int32 type: integer groups: items: $ref: '#/definitions/GroupsV2.GroupResponse' type: array hasMore: type: boolean polls: items: $ref: '#/definitions/Forum.PollResponse' type: array query: $ref: '#/definitions/Queries.PagedQuery' recruitmentDetails: items: $ref: '#/definitions/Forum.ForumRecruitmentDetail' type: array relatedPosts: items: $ref: '#/definitions/Forum.PostResponse' type: array replacementContinuationToken: type: string results: items: $ref: '#/definitions/Forum.PostResponse' type: array searchedTags: items: $ref: '#/definitions/Tags.Models.Contracts.TagResponse' type: array totalResults: format: int32 type: integer useTotalResults: description: "If useTotalResults is true, then totalResults represents an accurate count.\r\nIf False, it does not, and may be estimated/only the size of the current page.\r\nEither way, you should probably always only trust hasMore.\r\nThis 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." type: boolean type: object GroupsV2.Capabilities: enum: - '0' - '1' - '2' - '4' - '8' - '16' - '32' - '64' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Leaderboards numericValue: '1' - identifier: Callsign numericValue: '2' - identifier: OptionalConversations numericValue: '4' - identifier: ClanBanner numericValue: '8' - identifier: D2InvestmentData numericValue: '16' - identifier: Tags numericValue: '32' - identifier: Alliances numericValue: '64' GroupsV2.ChatSecuritySetting: enum: - '0' - '1' format: int32 type: integer x-enum-values: - identifier: Group numericValue: '0' - identifier: Admins numericValue: '1' GroupsV2.ClanBanner: properties: decalBackgroundColorId: format: uint32 type: integer decalColorId: format: uint32 type: integer decalId: format: uint32 type: integer gonfalonColorId: format: uint32 type: integer gonfalonDetailColorId: format: uint32 type: integer gonfalonDetailId: format: uint32 type: integer gonfalonId: format: uint32 type: integer type: object GroupsV2.GroupAction: properties: about: type: string allowChat: type: boolean avatarImageIndex: format: int32 type: integer callsign: type: string chatSecurity: $ref: '#/definitions/GroupsV2.ChatSecuritySetting' groupType: allOf: - $ref: '#/definitions/GroupsV2.GroupType' description: 'Type of group, either Bungie.net hosted group, or a game services hosted clan.' type: object homepage: $ref: '#/definitions/GroupsV2.GroupHomepage' isDefaultPostAlliance: type: boolean isDefaultPostPublic: type: boolean isPublic: type: boolean isPublicTopicAdminOnly: type: boolean locale: type: string membershipOption: $ref: '#/definitions/GroupsV2.MembershipOption' motto: type: string name: type: string platformMembershipType: allOf: - $ref: '#/definitions/BungieMembershipType' description: 'When operation needs a platform specific account ID for the present user, use this property. In particular, groupType of Clan requires this value to be set.' type: object tags: type: string theme: type: string type: object GroupsV2.GroupAllianceStatus: enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - identifier: Unallied numericValue: '0' - identifier: Parent numericValue: '1' - identifier: Child numericValue: '2' GroupsV2.GroupApplicationListRequest: properties: memberships: items: $ref: '#/definitions/User.UserMembership' type: array message: type: string type: object GroupsV2.GroupApplicationRequest: properties: message: type: string type: object GroupsV2.GroupApplicationResolveState: enum: - '0' - '1' - '2' - '3' format: int32 type: integer x-enum-values: - identifier: Unresolved numericValue: '0' - identifier: Accepted numericValue: '1' - identifier: Denied numericValue: '2' - identifier: Rescinded numericValue: '3' GroupsV2.GroupApplicationResponse: properties: resolution: $ref: '#/definitions/GroupsV2.GroupApplicationResolveState' type: object GroupsV2.GroupBan: properties: bungieNetUserInfo: $ref: '#/definitions/User.UserInfoCard' comment: type: string createdBy: $ref: '#/definitions/User.UserInfoCard' dateBanned: format: date-time type: string dateExpires: format: date-time type: string destinyUserInfo: $ref: '#/definitions/User.UserInfoCard' groupId: format: int64 type: integer lastModifiedBy: $ref: '#/definitions/User.UserInfoCard' type: object GroupsV2.GroupBanRequest: properties: comment: type: string length: $ref: '#/definitions/Ignores.IgnoreLength' type: object GroupsV2.GroupCreationResponse: properties: groupId: format: int64 type: integer type: object GroupsV2.GroupDateRange: enum: - '0' - '1' - '2' - '3' - '4' format: int32 type: integer x-enum-values: - identifier: All numericValue: '0' - identifier: PastDay numericValue: '1' - identifier: PastWeek numericValue: '2' - identifier: PastMonth numericValue: '3' - identifier: PastYear numericValue: '4' GroupsV2.GroupEditAction: properties: about: type: string allowChat: type: boolean avatarImageIndex: format: int32 type: integer callsign: type: string chatSecurity: enum: - '0' - '1' format: int32 type: integer x-enum-values: - identifier: Group numericValue: '0' - identifier: Admins numericValue: '1' defaultPublicity: enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - identifier: Public numericValue: '0' - identifier: Alliance numericValue: '1' - identifier: Private numericValue: '2' enableInvitationMessagingForAdmins: type: boolean homepage: enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - identifier: Wall numericValue: '0' - identifier: Forum numericValue: '1' - identifier: AllianceForum numericValue: '2' isPublic: type: boolean isPublicTopicAdminOnly: type: boolean locale: type: string membershipOption: enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - identifier: Reviewed numericValue: '0' - identifier: Open numericValue: '1' - identifier: Closed numericValue: '2' motto: type: string name: type: string tags: type: string theme: type: string type: object GroupsV2.GroupFeatures: properties: capabilities: $ref: '#/definitions/GroupsV2.Capabilities' hostGuidedGamePermissionOverride: allOf: - $ref: '#/definitions/GroupsV2.HostGuidedGamesPermissionLevel' description: "Minimum Member Level allowed to host guided games\r\nAlways Allowed: Founder, Acting Founder, Admin\r\nAllowed Overrides: None, Member, Beginner\r\nDefault is Member for clans, None for groups, although this means nothing for groups." type: object invitePermissionOverride: description: "Minimum Member Level allowed to invite new members to group\r\nAlways Allowed: Founder, Acting Founder\r\nTrue means admins have this power, false means they don't\r\nDefault is false for clans, true for groups." type: boolean joinLevel: allOf: - $ref: '#/definitions/GroupsV2.RuntimeGroupMemberType' description: "Level to join a member at when accepting an invite, application, or joining an open clan\r\nDefault is Beginner." type: object maximumMembers: format: int32 type: integer maximumMembershipsOfGroupType: description: '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.' format: int32 type: integer membershipTypes: items: $ref: '#/definitions/BungieMembershipType' type: array updateBannerPermissionOverride: description: "Minimum Member Level allowed to update banner\r\nAlways Allowed: Founder, Acting Founder\r\nTrue means admins have this power, false means they don't\r\nDefault is false for clans, true for groups." type: boolean updateCulturePermissionOverride: description: "Minimum Member Level allowed to update group culture\r\nAlways Allowed: Founder, Acting Founder\r\nTrue means admins have this power, false means they don't\r\nDefault is false for clans, true for groups." type: boolean type: object GroupsV2.GroupHomepage: enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - identifier: Wall numericValue: '0' - identifier: Forum numericValue: '1' - identifier: AllianceForum numericValue: '2' GroupsV2.GroupMember: properties: bungieNetUserInfo: $ref: '#/definitions/User.UserInfoCard' destinyUserInfo: $ref: '#/definitions/User.UserInfoCard' groupId: format: int64 type: integer isOnline: type: boolean joinDate: format: date-time type: string memberType: $ref: '#/definitions/GroupsV2.RuntimeGroupMemberType' type: object GroupsV2.GroupMemberApplication: properties: bungieNetUserInfo: $ref: '#/definitions/User.UserInfoCard' creationDate: format: date-time type: string destinyUserInfo: $ref: '#/definitions/User.UserInfoCard' groupId: format: int64 type: integer requestMessage: type: string resolveDate: format: date-time type: string resolveMessage: type: string resolveState: $ref: '#/definitions/GroupsV2.GroupApplicationResolveState' resolvedByMembershipId: format: int64 type: integer type: object GroupsV2.GroupMemberCountFilter: enum: - '0' - '1' - '2' - '3' format: int32 type: integer x-enum-values: - identifier: All numericValue: '0' - identifier: OneToTen numericValue: '1' - identifier: ElevenToOneHundred numericValue: '2' - identifier: GreaterThanOneHundred numericValue: '3' GroupsV2.GroupMemberLeaveResult: properties: group: $ref: '#/definitions/GroupsV2.GroupV2' groupDeleted: type: boolean type: object GroupsV2.GroupMembership: properties: group: $ref: '#/definitions/GroupsV2.GroupV2' member: $ref: '#/definitions/GroupsV2.GroupMember' type: object GroupsV2.GroupMembershipBase: properties: group: $ref: '#/definitions/GroupsV2.GroupV2' type: object GroupsV2.GroupMembershipSearchResponse: properties: hasMore: type: boolean query: $ref: '#/definitions/Queries.PagedQuery' replacementContinuationToken: type: string results: items: $ref: '#/definitions/GroupsV2.GroupMembership' type: array totalResults: format: int32 type: integer useTotalResults: description: "If useTotalResults is true, then totalResults represents an accurate count.\r\nIf False, it does not, and may be estimated/only the size of the current page.\r\nEither way, you should probably always only trust hasMore.\r\nThis 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." type: boolean type: object GroupsV2.GroupOptionalConversation: properties: chatEnabled: type: boolean chatName: type: string chatSecurity: $ref: '#/definitions/GroupsV2.ChatSecuritySetting' conversationId: format: int64 type: integer groupId: format: int64 type: integer type: object GroupsV2.GroupOptionalConversationAddRequest: properties: chatName: type: string chatSecurity: $ref: '#/definitions/GroupsV2.ChatSecuritySetting' type: object GroupsV2.GroupOptionalConversationEditRequest: properties: chatEnabled: type: boolean chatName: type: string chatSecurity: enum: - '0' - '1' format: int32 type: integer x-enum-values: - identifier: Group numericValue: '0' - identifier: Admins numericValue: '1' type: object GroupsV2.GroupOptionsEditAction: properties: HostGuidedGamePermissionOverride: description: "Minimum Member Level allowed to host guided games\r\nAlways Allowed: Founder, Acting Founder, Admin\r\nAllowed Overrides: None, Member, Beginner\r\nDefault is Member for clans, None for groups, although this means nothing for groups." enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Beginner numericValue: '1' - identifier: Member numericValue: '2' InvitePermissionOverride: description: "Minimum Member Level allowed to invite new members to group\r\nAlways Allowed: Founder, Acting Founder\r\nTrue means admins have this power, false means they don't\r\nDefault is false for clans, true for groups." type: boolean JoinLevel: description: "Level to join a member at when accepting an invite, application, or joining an open clan\r\nDefault is Beginner." enum: - '0' - '1' - '2' - '3' - '4' - '5' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Beginner numericValue: '1' - identifier: Member numericValue: '2' - identifier: Admin numericValue: '3' - identifier: ActingFounder numericValue: '4' - identifier: Founder numericValue: '5' UpdateBannerPermissionOverride: description: "Minimum Member Level allowed to update banner\r\nAlways Allowed: Founder, Acting Founder\r\nTrue means admins have this power, false means they don't\r\nDefault is false for clans, true for groups." type: boolean UpdateCulturePermissionOverride: description: "Minimum Member Level allowed to update group culture\r\nAlways Allowed: Founder, Acting Founder\r\nTrue means admins have this power, false means they don't\r\nDefault is false for clans, true for groups." type: boolean type: object GroupsV2.GroupPostPublicity: enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - identifier: Public numericValue: '0' - identifier: Alliance numericValue: '1' - identifier: Private numericValue: '2' GroupsV2.GroupPotentialMember: properties: bungieNetUserInfo: $ref: '#/definitions/User.UserInfoCard' destinyUserInfo: $ref: '#/definitions/User.UserInfoCard' groupId: format: int64 type: integer joinDate: format: date-time type: string potentialStatus: $ref: '#/definitions/GroupsV2.GroupPotentialMemberStatus' type: object GroupsV2.GroupPotentialMemberStatus: enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Applicant numericValue: '1' - identifier: Invitee numericValue: '2' GroupsV2.GroupPotentialMembership: properties: group: $ref: '#/definitions/GroupsV2.GroupV2' member: $ref: '#/definitions/GroupsV2.GroupPotentialMember' type: object GroupsV2.GroupPotentialMembershipSearchResponse: properties: hasMore: type: boolean query: $ref: '#/definitions/Queries.PagedQuery' replacementContinuationToken: type: string results: items: $ref: '#/definitions/GroupsV2.GroupPotentialMembership' type: array totalResults: format: int32 type: integer useTotalResults: description: "If useTotalResults is true, then totalResults represents an accurate count.\r\nIf False, it does not, and may be estimated/only the size of the current page.\r\nEither way, you should probably always only trust hasMore.\r\nThis 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." type: boolean type: object GroupsV2.GroupQuery: properties: creationDate: $ref: '#/definitions/GroupsV2.GroupDateRange' currentPage: format: int32 type: integer groupMemberCountFilter: enum: - '0' - '1' - '2' - '3' format: int32 type: integer x-enum-values: - identifier: All numericValue: '0' - identifier: OneToTen numericValue: '1' - identifier: ElevenToOneHundred numericValue: '2' - identifier: GreaterThanOneHundred numericValue: '3' groupType: $ref: '#/definitions/GroupsV2.GroupType' itemsPerPage: format: int32 type: integer localeFilter: type: string name: type: string requestContinuationToken: type: string sortBy: $ref: '#/definitions/GroupsV2.GroupSortBy' tagText: type: string type: object GroupsV2.GroupResponse: properties: allianceStatus: $ref: '#/definitions/GroupsV2.GroupAllianceStatus' alliedIds: items: format: int64 type: integer type: array currentUserMemberMap: additionalProperties: $ref: '#/definitions/GroupsV2.GroupMember' description: '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.' type: object currentUserPotentialMemberMap: additionalProperties: $ref: '#/definitions/GroupsV2.GroupPotentialMember' description: '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.' type: object detail: $ref: '#/definitions/GroupsV2.GroupV2' founder: $ref: '#/definitions/GroupsV2.GroupMember' groupJoinInviteCount: format: int32 type: integer parentGroup: $ref: '#/definitions/GroupsV2.GroupV2' type: object GroupsV2.GroupSearchResponse: properties: hasMore: type: boolean query: $ref: '#/definitions/Queries.PagedQuery' replacementContinuationToken: type: string results: items: $ref: '#/definitions/GroupsV2.GroupV2Card' type: array totalResults: format: int32 type: integer useTotalResults: description: "If useTotalResults is true, then totalResults represents an accurate count.\r\nIf False, it does not, and may be estimated/only the size of the current page.\r\nEither way, you should probably always only trust hasMore.\r\nThis 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." type: boolean type: object GroupsV2.GroupSortBy: enum: - '0' - '1' - '2' - '3' format: int32 type: integer x-enum-values: - identifier: Name numericValue: '0' - identifier: Date numericValue: '1' - identifier: Popularity numericValue: '2' - identifier: Id numericValue: '3' GroupsV2.GroupType: enum: - '0' - '1' format: int32 type: integer x-enum-values: - identifier: General numericValue: '0' - identifier: Clan numericValue: '1' GroupsV2.GroupUserBase: properties: bungieNetUserInfo: $ref: '#/definitions/User.UserInfoCard' destinyUserInfo: $ref: '#/definitions/User.UserInfoCard' groupId: format: int64 type: integer joinDate: format: date-time type: string type: object GroupsV2.GroupV2: properties: about: type: string allowChat: type: boolean avatarImageIndex: format: int32 type: integer avatarPath: type: string banExpireDate: format: date-time type: string bannerPath: type: string chatSecurity: $ref: '#/definitions/GroupsV2.ChatSecuritySetting' clanInfo: $ref: '#/definitions/GroupsV2.GroupV2ClanInfoAndInvestment' conversationId: format: int64 type: integer creationDate: format: date-time type: string defaultPublicity: $ref: '#/definitions/GroupsV2.GroupPostPublicity' enableInvitationMessagingForAdmins: type: boolean features: $ref: '#/definitions/GroupsV2.GroupFeatures' groupId: format: int64 type: integer groupType: $ref: '#/definitions/GroupsV2.GroupType' homepage: $ref: '#/definitions/GroupsV2.GroupHomepage' isAllianceOwner: type: boolean isDefaultPostPublic: type: boolean isPublic: type: boolean isPublicTopicAdminOnly: type: boolean locale: type: string memberCount: format: int32 type: integer membershipIdCreated: format: int64 type: integer membershipOption: $ref: '#/definitions/GroupsV2.MembershipOption' modificationDate: format: date-time type: string motto: type: string name: type: string primaryAlliedGroupId: format: int64 type: integer tags: items: type: string type: array theme: type: string type: object GroupsV2.GroupV2Card: description: 'A small infocard of group information, usually used for when a list of groups are returned' properties: about: type: string avatarPath: type: string capabilities: $ref: '#/definitions/GroupsV2.Capabilities' clanInfo: $ref: '#/definitions/GroupsV2.GroupV2ClanInfo' creationDate: format: date-time type: string groupId: format: int64 type: integer groupType: $ref: '#/definitions/GroupsV2.GroupType' locale: type: string memberCount: format: int32 type: integer membershipOption: $ref: '#/definitions/GroupsV2.MembershipOption' motto: type: string name: type: string theme: type: string type: object GroupsV2.GroupV2ClanInfo: description: This contract contains clan-specific group information. It does not include any investment data. properties: clanBannerData: $ref: '#/definitions/GroupsV2.ClanBanner' clanCallsign: type: string type: object GroupsV2.GroupV2ClanInfoAndInvestment: description: 'The same as GroupV2ClanInfo, but includes any investment data.' properties: clanBannerData: $ref: '#/definitions/GroupsV2.ClanBanner' clanCallsign: type: string d2ClanProgressions: additionalProperties: $ref: '#/definitions/Destiny.DestinyProgression' type: object type: object GroupsV2.GroupsForMemberFilter: enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - identifier: All numericValue: '0' - identifier: Founded numericValue: '1' - identifier: NonFounded numericValue: '2' GroupsV2.HostGuidedGamesPermissionLevel: description: Used for setting the guided game permission level override (admins and founders can always host guided games). enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Beginner numericValue: '1' - identifier: Member numericValue: '2' GroupsV2.MembershipOption: enum: - '0' - '1' - '2' format: int32 type: integer x-enum-values: - identifier: Reviewed numericValue: '0' - identifier: Open numericValue: '1' - identifier: Closed numericValue: '2' GroupsV2.RuntimeGroupMemberType: description: '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.' enum: - '0' - '1' - '2' - '3' - '4' - '5' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Beginner numericValue: '1' - identifier: Member numericValue: '2' - identifier: Admin numericValue: '3' - identifier: ActingFounder numericValue: '4' - identifier: Founder numericValue: '5' Ignores.IgnoreLength: enum: - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' - '8' - '9' - '10' - '11' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Week numericValue: '1' - identifier: TwoWeeks numericValue: '2' - identifier: ThreeWeeks numericValue: '3' - identifier: Month numericValue: '4' - identifier: ThreeMonths numericValue: '5' - identifier: SixMonths numericValue: '6' - identifier: Year numericValue: '7' - identifier: Forever numericValue: '8' - identifier: ThreeMinutes numericValue: '9' - identifier: Hour numericValue: '10' - identifier: ThirtyDays numericValue: '11' Ignores.IgnoreResponse: properties: ignoreFlags: $ref: '#/definitions/Ignores.IgnoreStatus' isIgnored: type: boolean type: object Ignores.IgnoreStatus: enum: - '0' - '1' - '2' - '4' - '8' - '16' - '32' format: int32 type: integer x-enum-values: - identifier: NotIgnored numericValue: '0' - identifier: IgnoredUser numericValue: '1' - identifier: IgnoredGroup numericValue: '2' - identifier: IgnoredByGroup numericValue: '4' - identifier: IgnoredPost numericValue: '8' - identifier: IgnoredTag numericValue: '16' - identifier: IgnoredGlobal numericValue: '32' Interpolation.InterpolationPoint: properties: value: format: int32 type: integer weight: format: int32 type: integer type: object Interpolation.InterpolationPointFloat: properties: value: format: float type: number weight: format: float type: number type: object Links.HyperlinkReference: properties: title: type: string url: type: string type: object Messages.Responses.SaveMessageResult: properties: conversationId: format: int64 type: integer messageId: format: int64 type: integer type: object Partnerships.PartnershipType: description: 'Representing external partners to which BNet users can link accounts, but that are not Account System credentials: partnerships that BNet uses exclusively for data.' enum: - '0' - '1' format: int32 type: integer x-enum-values: - identifier: None numericValue: '0' - identifier: Twitch numericValue: '1' Partnerships.PublicPartnershipDetail: description: 'All the partnership info that''s fit to expose externally, if we care to do so.' properties: icon: type: string identifier: type: string name: type: string partnerType: $ref: '#/definitions/Partnerships.PartnershipType' type: object Queries.PagedQuery: properties: currentPage: format: int32 type: integer itemsPerPage: format: int32 type: integer requestContinuationToken: type: string type: object Queries.SearchResult: properties: hasMore: type: boolean query: $ref: '#/definitions/Queries.PagedQuery' replacementContinuationToken: type: string totalResults: format: int32 type: integer useTotalResults: description: "If useTotalResults is true, then totalResults represents an accurate count.\r\nIf False, it does not, and may be estimated/only the size of the current page.\r\nEither way, you should probably always only trust hasMore.\r\nThis 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." type: boolean type: object SearchResultOfCommunityLiveStatus: properties: hasMore: type: boolean query: $ref: '#/definitions/Queries.PagedQuery' replacementContinuationToken: type: string results: items: $ref: '#/definitions/Community.CommunityLiveStatus' type: array totalResults: format: int32 type: integer useTotalResults: description: "If useTotalResults is true, then totalResults represents an accurate count.\r\nIf False, it does not, and may be estimated/only the size of the current page.\r\nEither way, you should probably always only trust hasMore.\r\nThis 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." type: boolean type: object SearchResultOfDestinyEntitySearchResultItem: properties: hasMore: type: boolean query: $ref: '#/definitions/Queries.PagedQuery' replacementContinuationToken: type: string results: items: $ref: '#/definitions/Destiny.Definitions.DestinyEntitySearchResultItem' type: array totalResults: format: int32 type: integer useTotalResults: description: "If useTotalResults is true, then totalResults represents an accurate count.\r\nIf False, it does not, and may be estimated/only the size of the current page.\r\nEither way, you should probably always only trust hasMore.\r\nThis 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." type: boolean type: object SearchResultOfGroupBan: properties: hasMore: type: boolean query: $ref: '#/definitions/Queries.PagedQuery' replacementContinuationToken: type: string results: items: $ref: '#/definitions/GroupsV2.GroupBan' type: array totalResults: format: int32 type: integer useTotalResults: description: "If useTotalResults is true, then totalResults represents an accurate count.\r\nIf False, it does not, and may be estimated/only the size of the current page.\r\nEither way, you should probably always only trust hasMore.\r\nThis 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." type: boolean type: object SearchResultOfGroupMember: properties: hasMore: type: boolean query: $ref: '#/definitions/Queries.PagedQuery' replacementContinuationToken: type: string results: items: $ref: '#/definitions/GroupsV2.GroupMember' type: array totalResults: format: int32 type: integer useTotalResults: description: "If useTotalResults is true, then totalResults represents an accurate count.\r\nIf False, it does not, and may be estimated/only the size of the current page.\r\nEither way, you should probably always only trust hasMore.\r\nThis 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." type: boolean type: object SearchResultOfGroupMemberApplication: properties: hasMore: type: boolean query: $ref: '#/definitions/Queries.PagedQuery' replacementContinuationToken: type: string results: items: $ref: '#/definitions/GroupsV2.GroupMemberApplication' type: array totalResults: format: int32 type: integer useTotalResults: description: "If useTotalResults is true, then totalResults represents an accurate count.\r\nIf False, it does not, and may be estimated/only the size of the current page.\r\nEither way, you should probably always only trust hasMore.\r\nThis 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." type: boolean type: object SearchResultOfGroupMembership: properties: hasMore: type: boolean query: $ref: '#/definitions/Queries.PagedQuery' replacementContinuationToken: type: string results: items: $ref: '#/definitions/GroupsV2.GroupMembership' type: array totalResults: format: int32 type: integer useTotalResults: description: "If useTotalResults is true, then totalResults represents an accurate count.\r\nIf False, it does not, and may be estimated/only the size of the current page.\r\nEither way, you should probably always only trust hasMore.\r\nThis 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." type: boolean type: object SearchResultOfGroupPotentialMembership: properties: hasMore: type: boolean query: $ref: '#/definitions/Queries.PagedQuery' replacementContinuationToken: type: string results: items: $ref: '#/definitions/GroupsV2.GroupPotentialMembership' type: array totalResults: format: int32 type: integer useTotalResults: description: "If useTotalResults is true, then totalResults represents an accurate count.\r\nIf False, it does not, and may be estimated/only the size of the current page.\r\nEither way, you should probably always only trust hasMore.\r\nThis 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." type: boolean type: object SearchResultOfGroupV2Card: properties: hasMore: type: boolean query: $ref: '#/definitions/Queries.PagedQuery' replacementContinuationToken: type: string results: items: $ref: '#/definitions/GroupsV2.GroupV2Card' type: array totalResults: format: int32 type: integer useTotalResults: description: "If useTotalResults is true, then totalResults represents an accurate count.\r\nIf False, it does not, and may be estimated/only the size of the current page.\r\nEither way, you should probably always only trust hasMore.\r\nThis 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." type: boolean type: object SearchResultOfPostResponse: properties: hasMore: type: boolean query: $ref: '#/definitions/Queries.PagedQuery' replacementContinuationToken: type: string results: items: $ref: '#/definitions/Forum.PostResponse' type: array totalResults: format: int32 type: integer useTotalResults: description: "If useTotalResults is true, then totalResults represents an accurate count.\r\nIf False, it does not, and may be estimated/only the size of the current page.\r\nEither way, you should probably always only trust hasMore.\r\nThis 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." type: boolean type: object SearchResultOfTrendingEntry: properties: hasMore: type: boolean query: $ref: '#/definitions/Queries.PagedQuery' replacementContinuationToken: type: string results: items: $ref: '#/definitions/Trending.TrendingEntry' type: array totalResults: format: int32 type: integer useTotalResults: description: "If useTotalResults is true, then totalResults represents an accurate count.\r\nIf False, it does not, and may be estimated/only the size of the current page.\r\nEither way, you should probably always only trust hasMore.\r\nThis 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." type: boolean type: object SingleComponentResponseOfDestinyCharacterActivitiesComponent: properties: data: $ref: '#/definitions/Destiny.Entities.Characters.DestinyCharacterActivitiesComponent' privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object SingleComponentResponseOfDestinyCharacterComponent: properties: data: $ref: '#/definitions/Destiny.Entities.Characters.DestinyCharacterComponent' privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object SingleComponentResponseOfDestinyCharacterProgressionComponent: properties: data: $ref: '#/definitions/Destiny.Entities.Characters.DestinyCharacterProgressionComponent' privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object SingleComponentResponseOfDestinyCharacterRenderComponent: properties: data: $ref: '#/definitions/Destiny.Entities.Characters.DestinyCharacterRenderComponent' privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object SingleComponentResponseOfDestinyInventoryComponent: properties: data: $ref: '#/definitions/Destiny.Entities.Inventory.DestinyInventoryComponent' privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object SingleComponentResponseOfDestinyItemComponent: properties: data: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemComponent' privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object SingleComponentResponseOfDestinyItemInstanceComponent: properties: data: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemInstanceComponent' privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object SingleComponentResponseOfDestinyItemObjectivesComponent: properties: data: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemObjectivesComponent' privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object SingleComponentResponseOfDestinyItemPerksComponent: properties: data: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemPerksComponent' privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object SingleComponentResponseOfDestinyItemRenderComponent: properties: data: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemRenderComponent' privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object SingleComponentResponseOfDestinyItemSocketsComponent: properties: data: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemSocketsComponent' privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object SingleComponentResponseOfDestinyItemStatsComponent: properties: data: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemStatsComponent' privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object SingleComponentResponseOfDestinyItemTalentGridComponent: properties: data: $ref: '#/definitions/Destiny.Entities.Items.DestinyItemTalentGridComponent' privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object SingleComponentResponseOfDestinyKiosksComponent: properties: data: $ref: '#/definitions/Destiny.Components.Kiosks.DestinyKiosksComponent' privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object SingleComponentResponseOfDestinyProfileComponent: properties: data: $ref: '#/definitions/Destiny.Entities.Profiles.DestinyProfileComponent' privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object SingleComponentResponseOfDestinyVendorCategoriesComponent: properties: data: $ref: '#/definitions/Destiny.Entities.Vendors.DestinyVendorCategoriesComponent' privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object SingleComponentResponseOfDestinyVendorComponent: properties: data: $ref: '#/definitions/Destiny.Entities.Vendors.DestinyVendorComponent' privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object SingleComponentResponseOfDestinyVendorReceiptsComponent: properties: data: $ref: '#/definitions/Destiny.Entities.Profiles.DestinyVendorReceiptsComponent' privacy: $ref: '#/definitions/Components.ComponentPrivacySetting' type: object Tags.Models.Contracts.TagResponse: properties: ignoreStatus: $ref: '#/definitions/Ignores.IgnoreResponse' tagText: type: string type: object Trending.TrendingCategories: properties: categories: items: $ref: '#/definitions/Trending.TrendingCategory' type: array type: object Trending.TrendingCategory: properties: categoryId: type: string categoryName: type: string entries: $ref: '#/definitions/SearchResultOfTrendingEntry' type: object Trending.TrendingDetail: properties: creation: $ref: '#/definitions/Trending.TrendingEntryCommunityCreation' destinyActivity: $ref: '#/definitions/Trending.TrendingEntryDestinyActivity' destinyItem: $ref: '#/definitions/Trending.TrendingEntryDestinyItem' destinyRitual: $ref: '#/definitions/Trending.TrendingEntryDestinyRitual' entityType: $ref: '#/definitions/Trending.TrendingEntryType' identifier: type: string news: $ref: '#/definitions/Trending.TrendingEntryNews' stream: $ref: '#/definitions/Trending.TrendingEntryCommunityStream' support: $ref: '#/definitions/Trending.TrendingEntrySupportArticle' type: object Trending.TrendingEntry: description: The list entry view for trending items. Returns just enough to show the item on the trending page. properties: displayName: description: The localized "display name/article title/'primary localized identifier'" of the entity. type: string endDate: format: date-time type: string entityType: allOf: - $ref: '#/definitions/Trending.TrendingEntryType' description: 'An enum - unfortunately - dictating all of the possible kinds of trending items that you might get in your result set, in case you want to do custom rendering or call to get the details of the item.' type: object featureImage: description: 'If isFeatured, this image will be populated with whatever the featured image is. Note that this will likely be a very large image, so don''t use it all the time.' type: string identifier: description: 'We don''t know whether the identifier will be a string, a uint, or a long... so we''re going to cast it all to a string. But either way, we need any trending item created to have a single unique identifier for its type.' type: string image: type: string isFeatured: type: boolean link: type: string mp4Video: description: 'If this is populated, the entry has a related MP4 video to show. I am 100% certain I am going to regret putting this directly on TrendingEntry, but it will work so yolo' type: string startDate: format: date-time type: string tagline: description: 'If the entity has a localized tagline/subtitle/motto/whatever, that is found here.' type: string webmVideo: description: 'If this is populated, the entry has a related WebM video to show. I am 100% certain I am going to regret putting this directly on TrendingEntry, but it will work so yolo' type: string weight: description: The weighted score of this trending item. format: double type: number type: object Trending.TrendingEntryCommunityCreation: properties: author: type: string authorMembershipId: format: int64 type: integer body: type: string media: type: string postId: format: uint64 type: integer title: type: string upvotes: format: int32 type: integer type: object Trending.TrendingEntryCommunityStream: properties: image: type: string partnershipIdentifier: type: string partnershipType: $ref: '#/definitions/Partnerships.PartnershipType' title: type: string type: object Trending.TrendingEntryDestinyActivity: properties: activityHash: format: uint32 type: integer status: $ref: '#/definitions/Destiny.Activities.DestinyPublicActivityStatus' type: object Trending.TrendingEntryDestinyItem: properties: itemHash: format: uint32 type: integer type: object Trending.TrendingEntryDestinyRitual: properties: dateEnd: format: date-time type: string dateStart: format: date-time type: string eventContent: allOf: - $ref: '#/definitions/Destiny.Milestones.DestinyMilestoneContent' description: 'A destiny event will not necessarily have milestone "custom content", but if it does the details will be here.' type: object icon: type: string image: type: string milestoneDetails: allOf: - $ref: '#/definitions/Destiny.Milestones.DestinyPublicMilestone' description: 'A destiny event does not necessarily have a related Milestone, but if it does the details will be returned here.' type: object subtitle: type: string title: type: string type: object Trending.TrendingEntryNews: properties: article: $ref: '#/definitions/Content.ContentItemPublicContract' type: object Trending.TrendingEntrySupportArticle: properties: article: $ref: '#/definitions/Content.ContentItemPublicContract' type: object Trending.TrendingEntryType: description: The known entity types that you can have returned from Trending. enum: - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' - '8' - '9' format: int32 type: integer x-enum-values: - identifier: News numericValue: '0' - identifier: DestinyItem numericValue: '1' - identifier: DestinyActivity numericValue: '2' - identifier: DestinyRitual numericValue: '3' - identifier: SupportArticle numericValue: '4' - identifier: Creation numericValue: '5' - identifier: Stream numericValue: '6' - identifier: Update numericValue: '7' - identifier: Link numericValue: '8' - identifier: ForumTag numericValue: '9' User.AckState: properties: ackId: description: 'Identifier to use when acknowledging the related item. [category]:[entityId]:[targetId]' type: string needsAck: description: Indicates the related item has not been acknowledged. type: boolean type: object User.GeneralUser: properties: about: type: string blizzardDisplayName: type: string context: $ref: '#/definitions/User.UserToUserContext' displayName: type: string fbDisplayName: type: string firstAccess: format: date-time type: string isDeleted: type: boolean lastBanReportId: format: int64 type: integer lastUpdate: format: date-time type: string legacyPortalUID: format: int64 type: integer locale: type: string localeInheritDefault: type: boolean membershipId: format: int64 type: integer normalizedName: type: string profileBanExpire: format: date-time type: string profilePicture: format: int32 type: integer profilePicturePath: type: string profilePictureWidePath: type: string profileTheme: format: int32 type: integer profileThemeName: type: string psnDisplayName: type: string showActivity: type: boolean showGroupMessaging: type: boolean statusDate: format: date-time type: string statusText: type: string successMessageFlags: format: int64 type: integer uniqueName: type: string userTitle: format: int32 type: integer userTitleDisplay: type: string xboxDisplayName: type: string type: object User.Models.UserAlias: properties: cachePrefix: type: string type: object User.UserInfoCard: description: '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.' properties: displayName: description: 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. type: string iconPath: description: URL the Icon if available. type: string membershipId: description: Membership ID as they user is known in the Accounts service format: int64 type: integer membershipType: allOf: - $ref: '#/definitions/BungieMembershipType' description: Type of the membership. type: object supplementalDisplayName: description: 'A platform specific additional display name - ex: psn Real Name, bnet Unique Name, etc.' type: string type: object User.UserMembership: description: Very basic info about a user as returned by the Account server. properties: displayName: description: 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. type: string membershipId: description: Membership ID as they user is known in the Accounts service format: int64 type: integer membershipType: allOf: - $ref: '#/definitions/BungieMembershipType' description: Type of the membership. type: object type: object User.UserMembershipData: properties: bungieNetUser: $ref: '#/definitions/User.GeneralUser' destinyMemberships: description: this allows you to see destiny memberships that are visible and linked to this account (regardless of whether or not they have characters on the world server) items: $ref: '#/definitions/User.UserInfoCard' type: array type: object User.UserToUserContext: properties: globalIgnoreEndDate: format: date-time type: string ignoreStatus: $ref: '#/definitions/Ignores.IgnoreResponse' isFollowing: type: boolean type: object