Bungie.Net API

About the API

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.

Connecting to the API

Server Endpoint

The endpoint for accessing the Bungie.net API. You probably guessed that already.

Common Headers

  • X-API-Key
    Required
    When you have registered an Application at https://www.bungie.net/en/Application, you will receive an API key. You should pass it in via this header with every request.

Security

apiKey

Identifier: X-API-Key
header
Every request requires an API key. To get an API key, register a new application at https://www.bungie.net/en/Application.

oauth2

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.

Authorization URL: https://www.bungie.net/en/OAuth/Authorize
Token URL: https://www.bungie.net/Platform/App/OAuth/token/
Refresh URL: https://www.bungie.net/Platform/App/OAuth/token/

Scopes

  • ReadBasicUserProfile
    Read basic user profile information such as the user's handle, avatar icon, etc.
  • ReadGroups
    Read Group/Clan Forums, Wall, and Members for groups and clans that the

    user has joined.
  • WriteGroups
    Write Group/Clan Forums, Wall, and Members for groups and clans that the

    user has joined.
  • AdminGroups
    Administer Group/Clan Forums, Wall, and Members for groups and clans that the

    user is a founder or an administrator.
  • BnetWrite
    Create new groups, clans, and forum posts, along with other actions that are reserved for Bungie.net

    elevated scope: not meant to be used by third party applications.
  • MoveEquipDestinyItems
    Move or equip Destiny items
  • ReadDestinyInventoryAndVault
    Read Destiny 1 Inventory and Vault contents.

    For Destiny 2, this scope is needed to read anything regarded as private. This is the only scope a

    Destiny 2 app needs for read operations against Destiny 2 data such as inventory, vault, currency,

    vendors, milestones, progression, etc.
  • ReadUserData
    Read user data such as who they are web notifications,

    clan/group memberships, recent activity, muted users.
  • EditUserData
    Edit user data such as preferred language, status, motto, avatar selection and theme.
  • ReadDestinyVendorsAndAdvisors
    Access vendor and advisor data specific to a user. OBSOLETE. This scope is only used on the Destiny 1 API.
  • ReadAndApplyTokens
    Read offer history and claim and apply tokens for the user.
  • AdvancedWriteActions
    Can perform actions that will result in a prompt to the user via the Destiny app.
  • PartnerOfferGrant
    Can use the partner offer api to claim rewards defined for a partner
  • DestinyUnlockValueQuery
    Allows an app to query sensitive information like unlock flags and values not available through normal methods.
  • UserPiiRead
    Allows an app to query sensitive user PII, most notably email information.

Contents - Endpoints (Grouped by Tag)

GroupV2

Destiny2

FireteamFinder

Contents - Entities

Endpoints

App.GetApplicationApiUsage

App

Verb: GET

Path: /App/ApiUsage/{applicationId}/

Get API usage by application for time frame specified. You can go as far back as 30 days ago, and can ask for up to a 48 hour window of time in a single request. You must be authenticated with at least the ReadUserData permission to access this endpoint.

Required Scope(s)

  • oauth2: ReadUserData

Path Parameters

  • applicationId
    ID of the application to get usage statistics.
    Type: int32

Querystring Parameters

  • end
    End time for query. Goes to now if not specified.
    Type: date-time
  • start
    Start time for query. Goes to 24 hours ago if not specified.
    Type: date-time

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

App.GetBungieApplications

App

Verb: GET

Path: /App/FirstParty/

Get list of applications created by Bungie.

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: array
Array Contents: Applications.Application
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

User.GetBungieNetUserById

User

Verb: GET

Path: /User/GetBungieNetUserById/{id}/

Loads a bungienet user by membership id.

Path Parameters

  • id
    The requested Bungie.net membership id.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

User.GetSanitizedPlatformDisplayNames

User

Verb: GET

Path: /User/GetSanitizedPlatformDisplayNames/{membershipId}/

Gets a list of all display names linked to this membership id but sanitized (profanity filtered). Obeys all visibility rules of calling user and is heavily cached.

Path Parameters

  • membershipId
    The requested membership id to load.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: object
Dictionary Contents: string
Dictionary Key Type: byte
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

User.GetCredentialTypesForTargetAccount

User

Verb: GET

Path: /User/GetCredentialTypesForTargetAccount/{membershipId}/

Returns a list of credential types attached to the requested account

Path Parameters

  • membershipId
    The user's membership id
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

User.GetAvailableThemes

User

Verb: GET

Path: /User/GetAvailableThemes/

Returns a list of all available user themes.

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: array
Array Contents: Config.UserTheme
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

User.GetMembershipDataById

User

Verb: GET

Path: /User/GetMembershipsById/{membershipId}/{membershipType}/

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.

Path Parameters

  • membershipId
    The membership ID of the target user.
    Type: int64
  • membershipType
    Type of the supplied membership ID.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

User.GetMembershipDataForCurrentUser

User

Verb: GET

Path: /User/GetMembershipsForCurrentUser/

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.

Required Scope(s)

  • oauth2: ReadBasicUserProfile

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

User.GetMembershipFromHardLinkedCredential

User

Verb: GET

Path: /User/GetMembershipFromHardLinkedCredential/{crType}/{credential}/

Gets any hard linked membership given a credential. Only works for credentials that are public (just SteamID64 right now). Cross Save aware.

Path Parameters

  • credential
    The credential to look up. Must be a valid SteamID64.
    Type: string
  • crType
    The credential type. 'SteamId' is the only valid value at present.
    The types of credentials the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.CredentialType.
    Type: byte

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

User.SearchByGlobalNamePrefix

User

Verb: GET

Path: /User/Search/Prefix/{displayNamePrefix}/{page}/

[OBSOLETE] Do not use this to search users, use SearchByGlobalNamePost instead.

Path Parameters

  • displayNamePrefix
    The display name prefix you're looking for.
    Type: string
  • page
    The zero-based page of results you desire.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

User.SearchByGlobalNamePost

User

Verb: POST

Path: /User/Search/GlobalName/{page}/

Given the prefix of a global display name, returns all users who share that name.

Path Parameters

  • page
    The zero-based page of results you desire.
    Type: int32

Request Body

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Content.GetContentType

Content

Verb: GET

Path: /Content/GetContentType/{type}/

Gets an object describing a particular variant of content.

Path Parameters

  • type
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Content.GetContentById

Content

Verb: GET

Path: /Content/GetContentById/{id}/{locale}/

Returns a content item referenced by id

Path Parameters

  • id
    Type: int64
  • locale
    Type: string

Querystring Parameters

  • head
    false
    Type: boolean

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Content.GetContentByTagAndType

Content

Verb: GET

Path: /Content/GetContentByTagAndType/{tag}/{type}/{locale}/

Returns the newest item that matches a given tag and Content Type.

Path Parameters

  • locale
    Type: string
  • tag
    Type: string
  • type
    Type: string

Querystring Parameters

  • head
    Not used.
    Type: boolean

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Content.SearchContentWithText

Content

Verb: GET

Path: /Content/Search/{locale}/

Gets content based on querystring information passed in. Provides basic search and text search capabilities.

Path Parameters

  • locale
    Type: string

Querystring Parameters

  • ctype
    Content type tag: Help, News, etc. Supply multiple ctypes separated by space.
    Type: string
  • currentpage
    Page number for the search results, starting with page 1.
    Type: int32
  • head
    Not used.
    Type: boolean
  • searchtext
    Word or phrase for the search.
    Type: string
  • source
    For analytics, hint at the part of the app that triggered the search. Optional.
    Type: string
  • tag
    Tag used on the content to be searched.
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Content.SearchContentByTagAndType

Content

Verb: GET

Path: /Content/SearchContentByTagAndType/{tag}/{type}/{locale}/

Searches for Content Items that match the given Tag and Content Type.

Path Parameters

  • locale
    Type: string
  • tag
    Type: string
  • type
    Type: string

Querystring Parameters

  • currentpage
    Page number for the search results starting with page 1.
    Type: int32
  • head
    Not used.
    Type: boolean
  • itemsperpage
    Not used.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Content.SearchHelpArticles

Content

Verb: GET

Path: /Content/SearchHelpArticles/{searchtext}/{size}/

Search for Help Articles.

Path Parameters

  • searchtext
    Type: string
  • size
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: object
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Content.RssNewsArticles

Content

Verb: GET

Path: /Content/Rss/NewsArticles/{pageToken}/

Returns a JSON string response that is the RSS feed for news articles.

Path Parameters

  • pageToken
    Zero-based pagination token for paging through result sets.
    Type: string

Querystring Parameters

  • categoryfilter
    Optionally filter response to only include news items in a certain category.
    Type: string
  • includebody
    Optionally include full content body for each news item.
    Type: boolean

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Forum.GetTopicsPaged

Forum

Verb: GET

Path: /Forum/GetTopicsPaged/{page}/{pageSize}/{group}/{sort}/{quickDate}/{categoryFilter}/

Get topics from any forum.

Path Parameters

  • categoryFilter
    A category filter
    Type: int32
  • group
    The group, if any.
    Type: int64
  • page
    Zero paged page number
    Type: int32
  • pageSize
    Unused
    Type: int32
  • quickDate
    A date filter.
    Type: int32
  • sort
    The sort mode.
    Type: byte

Querystring Parameters

  • locales
    Comma seperated list of locales posts must match to return in the result list. Default 'en'
    Type: string
  • tagstring
    The tags to search, if any.
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Forum.GetCoreTopicsPaged

Forum

Verb: GET

Path: /Forum/GetCoreTopicsPaged/{page}/{sort}/{quickDate}/{categoryFilter}/

Gets a listing of all topics marked as part of the core group.

Path Parameters

  • categoryFilter
    The category filter.
    Type: int32
  • page
    Zero base page
    Type: int32
  • quickDate
    The date filter.
    Type: int32
  • sort
    The sort mode.
    Type: byte

Querystring Parameters

  • locales
    Comma seperated list of locales posts must match to return in the result list. Default 'en'
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Forum.GetPostsThreadedPaged

Forum

Verb: GET

Path: /Forum/GetPostsThreadedPaged/{parentPostId}/{page}/{pageSize}/{replySize}/{getParentPost}/{rootThreadMode}/{sortMode}/

Returns a thread of posts at the given parent, optionally returning replies to those posts as well as the original parent.

Path Parameters

  • getParentPost
    Type: boolean
  • page
    Type: int32
  • pageSize
    Type: int32
  • parentPostId
    Type: int64
  • replySize
    Type: int32
  • rootThreadMode
    Type: boolean
  • sortMode
    Type: int32

Querystring Parameters

  • showbanned
    If this value is not null or empty, banned posts are requested to be returned
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Forum.GetPostsThreadedPagedFromChild

Forum

Verb: GET

Path: /Forum/GetPostsThreadedPagedFromChild/{childPostId}/{page}/{pageSize}/{replySize}/{rootThreadMode}/{sortMode}/

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.

Path Parameters

  • childPostId
    Type: int64
  • page
    Type: int32
  • pageSize
    Type: int32
  • replySize
    Type: int32
  • rootThreadMode
    Type: boolean
  • sortMode
    Type: int32

Querystring Parameters

  • showbanned
    If this value is not null or empty, banned posts are requested to be returned
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Forum.GetPostAndParent

Forum

Verb: GET

Path: /Forum/GetPostAndParent/{childPostId}/

Returns the post specified and its immediate parent.

Path Parameters

  • childPostId
    Type: int64

Querystring Parameters

  • showbanned
    If this value is not null or empty, banned posts are requested to be returned
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Forum.GetPostAndParentAwaitingApproval

Forum

Verb: GET

Path: /Forum/GetPostAndParentAwaitingApproval/{childPostId}/

Returns the post specified and its immediate parent of posts that are awaiting approval.

Path Parameters

  • childPostId
    Type: int64

Querystring Parameters

  • showbanned
    If this value is not null or empty, banned posts are requested to be returned
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Forum.GetTopicForContent

Forum

Verb: GET

Path: /Forum/GetTopicForContent/{contentId}/

Gets the post Id for the given content item's comments, if it exists.

Path Parameters

  • contentId
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int64
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Forum.GetForumTagSuggestions

Forum

Verb: GET

Path: /Forum/GetForumTagSuggestions/

Gets tag suggestions based on partial text entry, matching them with other tags previously used in the forums.

Querystring Parameters

  • partialtag
    The partial tag input to generate suggestions from.
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: array
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Forum.GetPoll

Forum

Verb: GET

Path: /Forum/Poll/{topicId}/

Gets the specified forum poll.

Path Parameters

  • topicId
    The post id of the topic that has the poll.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Forum.GetRecruitmentThreadSummaries

Forum

Verb: POST

Path: /Forum/Recruit/Summaries/

Allows the caller to get a list of to 25 recruitment thread summary information objects.

Request Body

Type: array
Array Contents: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: array
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.GetAvailableAvatars

GroupV2

Verb: GET

Path: /GroupV2/GetAvailableAvatars/

Returns a list of all available group avatars for the signed-in user.

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: object
Dictionary Contents: string
Dictionary Key Type: int32
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.GetAvailableThemes

GroupV2

Verb: GET

Path: /GroupV2/GetAvailableThemes/

Returns a list of all available group themes.

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: array
Array Contents: Config.GroupTheme
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.GetUserClanInviteSetting

GroupV2

Verb: GET

Path: /GroupV2/GetUserClanInviteSetting/{mType}/

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.

Required Scope(s)

  • oauth2: ReadUserData

Path Parameters

  • mType
    The Destiny membership type of the account we wish to access settings.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: boolean
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.GetRecommendedGroups

GroupV2

Verb: POST

Path: /GroupV2/Recommended/{groupType}/{createDateRange}/

Gets groups recommended for you based on the groups to whom those you follow belong.

Required Scope(s)

  • oauth2: ReadGroups

Path Parameters

  • createDateRange
    Requested range in which to pull recommended groups
    Type: int32
  • groupType
    Type of groups requested
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: array
Array Contents: GroupsV2.GroupV2Card
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.GroupSearch

GroupV2

Verb: POST

Path: /GroupV2/Search/

Search for Groups.

Request Body

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.GetGroup

GroupV2

Verb: GET

Path: /GroupV2/{groupId}/

Get information about a specific group of the given ID.

Path Parameters

  • groupId
    Requested group's id.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.GetGroupByName

GroupV2

Verb: GET

Path: /GroupV2/Name/{groupName}/{groupType}/

Get information about a specific group with the given name and type.

Path Parameters

  • groupName
    Exact name of the group to find.
    Type: string
  • groupType
    Type of group to find.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.GetGroupByNameV2

GroupV2

Verb: POST

Path: /GroupV2/NameV2/

Get information about a specific group with the given name and type. The POST version.

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.GetGroupOptionalConversations

GroupV2

Verb: GET

Path: /GroupV2/{groupId}/OptionalConversations/

Gets a list of available optional conversation channels and their settings.

Path Parameters

  • groupId
    Requested group's id.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: array
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.EditGroup

GroupV2

Verb: POST

Path: /GroupV2/{groupId}/Edit/

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.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    Group ID of the group to edit.
    Type: int64

Request Body

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int32
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.EditClanBanner

GroupV2

Verb: POST

Path: /GroupV2/{groupId}/EditClanBanner/

Edit an existing group's clan banner. You must have suitable permissions in the group to perform this operation. All fields are required.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    Group ID of the group to edit.
    Type: int64

Request Body

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int32
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.EditFounderOptions

GroupV2

Verb: POST

Path: /GroupV2/{groupId}/EditFounderOptions/

Edit group options only available to a founder. You must have suitable permissions in the group to perform this operation.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    Group ID of the group to edit.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int32
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.AddOptionalConversation

GroupV2

Verb: POST

Path: /GroupV2/{groupId}/OptionalConversations/Add/

Add a new optional conversation/chat channel. Requires admin permissions to the group.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    Group ID of the group to edit.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int64
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.EditOptionalConversation

GroupV2

Verb: POST

Path: /GroupV2/{groupId}/OptionalConversations/Edit/{conversationId}/

Edit the settings of an optional conversation/chat channel. Requires admin permissions to the group.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • conversationId
    Conversation Id of the channel being edited.
    Type: int64
  • groupId
    Group ID of the group to edit.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int64
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.GetMembersOfGroup

GroupV2

Verb: GET

Path: /GroupV2/{groupId}/Members/

Get the list of members in a given group.

Path Parameters

  • currentpage
    Page number (starting with 1). Each page has a fixed size of 50 items per page.
    Type: int32
  • groupId
    The ID of the group.
    Type: int64

Querystring Parameters

  • memberType
    Filter out other member types. Use None for all members.
    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.
    Type: int32
  • nameSearch
    The name fragment upon which a search should be executed for members with matching display or unique names.
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.GetAdminsAndFounderOfGroup

GroupV2

Verb: GET

Path: /GroupV2/{groupId}/AdminsAndFounder/

Get the list of members in a given group who are of admin level or higher.

Path Parameters

  • currentpage
    Page number (starting with 1). Each page has a fixed size of 50 items per page.
    Type: int32
  • groupId
    The ID of the group.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.EditGroupMembership

GroupV2

Verb: POST

Path: /GroupV2/{groupId}/Members/{membershipType}/{membershipId}/SetMembershipType/{memberType}/

Edit the membership type of a given member. You must have suitable permissions in the group to perform this operation.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    ID of the group to which the member belongs.
    Type: int64
  • membershipId
    Membership ID to modify.
    Type: int64
  • membershipType
    Membership type of the provide membership ID.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32
  • memberType
    New membertype for the specified member.
    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.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int32
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.KickMember

GroupV2

Verb: POST

Path: /GroupV2/{groupId}/Members/{membershipType}/{membershipId}/Kick/

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.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    Group ID to kick the user from.
    Type: int64
  • membershipId
    Membership ID to kick.
    Type: int64
  • membershipType
    Membership type of the provided membership ID.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.BanMember

GroupV2

Verb: POST

Path: /GroupV2/{groupId}/Members/{membershipType}/{membershipId}/Ban/

Bans the requested member from the requested group for the specified period of time.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    Group ID that has the member to ban.
    Type: int64
  • membershipId
    Membership ID of the member to ban from the group.
    Type: int64
  • membershipType
    Membership type of the provided membership ID.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Request Body

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int32
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.UnbanMember

GroupV2

Verb: POST

Path: /GroupV2/{groupId}/Members/{membershipType}/{membershipId}/Unban/

Unbans the requested member, allowing them to re-apply for membership.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    Type: int64
  • membershipId
    Membership ID of the member to unban from the group
    Type: int64
  • membershipType
    Membership type of the provided membership ID.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int32
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.GetBannedMembersOfGroup

GroupV2

Verb: GET

Path: /GroupV2/{groupId}/Banned/

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.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • currentpage
    Page number (starting with 1). Each page has a fixed size of 50 entries.
    Type: int32
  • groupId
    Group ID whose banned members you are fetching
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.GetGroupEditHistory

GroupV2

Verb: GET

Path: /GroupV2/{groupId}/EditHistory/

Get the list of edits made to a given group. Only accessible to group Admins and above.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • currentpage
    Page number (starting with 1). Each page has a fixed size of 50 entries.
    Type: int32
  • groupId
    Group ID whose edit history you are fetching
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.AbdicateFoundership

GroupV2

Verb: POST

Path: /GroupV2/{groupId}/Admin/AbdicateFoundership/{membershipType}/{founderIdNew}/

An administrative method to allow the founder of a group or clan to give up their position to another admin permanently.

Path Parameters

  • founderIdNew
    The new founder for this group. Must already be a group admin.
    Type: int64
  • groupId
    The target group id.
    Type: int64
  • membershipType
    Membership type of the provided founderIdNew.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: boolean
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.GetPendingMemberships

GroupV2

Verb: GET

Path: /GroupV2/{groupId}/Members/Pending/

Get the list of users who are awaiting a decision on their application to join a given group. Modified to include application info.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • currentpage
    Page number (starting with 1). Each page has a fixed size of 50 items per page.
    Type: int32
  • groupId
    ID of the group.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.GetInvitedIndividuals

GroupV2

Verb: GET

Path: /GroupV2/{groupId}/Members/InvitedIndividuals/

Get the list of users who have been invited into the group.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • currentpage
    Page number (starting with 1). Each page has a fixed size of 50 items per page.
    Type: int32
  • groupId
    ID of the group.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.ApproveAllPending

GroupV2

Verb: POST

Path: /GroupV2/{groupId}/Members/ApproveAll/

Approve all of the pending users for the given group.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    ID of the group.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: array
Array Contents: Entities.EntityActionResult
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.DenyAllPending

GroupV2

Verb: POST

Path: /GroupV2/{groupId}/Members/DenyAll/

Deny all of the pending users for the given group.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    ID of the group.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: array
Array Contents: Entities.EntityActionResult
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.ApprovePendingForList

GroupV2

Verb: POST

Path: /GroupV2/{groupId}/Members/ApproveList/

Approve all of the pending users for the given group.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    ID of the group.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: array
Array Contents: Entities.EntityActionResult
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.ApprovePending

GroupV2

Verb: POST

Path: /GroupV2/{groupId}/Members/Approve/{membershipType}/{membershipId}/

Approve the given membershipId to join the group/clan as long as they have applied.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    ID of the group.
    Type: int64
  • membershipId
    The membership id being approved.
    Type: int64
  • membershipType
    Membership type of the supplied membership ID.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: boolean
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.DenyPendingForList

GroupV2

Verb: POST

Path: /GroupV2/{groupId}/Members/DenyList/

Deny all of the pending users for the given group that match the passed-in .

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    ID of the group.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: array
Array Contents: Entities.EntityActionResult
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.GetGroupsForMember

GroupV2

Verb: GET

Path: /GroupV2/User/{membershipType}/{membershipId}/{filter}/{groupType}/

Get information about the groups that a given member has joined.

Path Parameters

  • filter
    Filter apply to list of joined groups.
    Type: int32
  • groupType
    Type of group the supplied member founded.
    Type: int32
  • membershipId
    Membership ID to for which to find founded groups.
    Type: int64
  • membershipType
    Membership type of the supplied membership ID.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.RecoverGroupForFounder

GroupV2

Verb: GET

Path: /GroupV2/Recover/{membershipType}/{membershipId}/{groupType}/

Allows a founder to manually recover a group they can see in game but not on bungie.net

Path Parameters

  • groupType
    Type of group the supplied member founded.
    Type: int32
  • membershipId
    Membership ID to for which to find founded groups.
    Type: int64
  • membershipType
    Membership type of the supplied membership ID.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.GetPotentialGroupsForMember

GroupV2

Verb: GET

Path: /GroupV2/User/Potential/{membershipType}/{membershipId}/{filter}/{groupType}/

Get information about the groups that a given member has applied to or been invited to.

Path Parameters

  • filter
    Filter apply to list of potential joined groups.
    Type: int32
  • groupType
    Type of group the supplied member applied.
    Type: int32
  • membershipId
    Membership ID to for which to find applied groups.
    Type: int64
  • membershipType
    Membership type of the supplied membership ID.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.IndividualGroupInvite

GroupV2

Verb: POST

Path: /GroupV2/{groupId}/Members/IndividualInvite/{membershipType}/{membershipId}/

Invite a user to join this group.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    ID of the group you would like to join.
    Type: int64
  • membershipId
    Membership id of the account being invited.
    Type: int64
  • membershipType
    MembershipType of the account being invited.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

GroupV2.IndividualGroupInviteCancel

GroupV2

Verb: POST

Path: /GroupV2/{groupId}/Members/IndividualInviteCancel/{membershipType}/{membershipId}/

Cancels a pending invitation to join a group.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    ID of the group you would like to join.
    Type: int64
  • membershipId
    Membership id of the account being cancelled.
    Type: int64
  • membershipType
    MembershipType of the account being cancelled.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Tokens.ForceDropsRepair

Tokens

Verb: POST

Path: /Tokens/Partner/ForceDropsRepair/

Twitch Drops self-repair function - scans twitch for drops not marked as fulfilled and resyncs them.

Required Scope(s)

  • oauth2: PartnerOfferGrant

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: boolean
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Tokens.ClaimPartnerOffer

Tokens

Verb: POST

Path: /Tokens/Partner/ClaimOffer/

Claim a partner offer as the authenticated user.

Required Scope(s)

  • oauth2: PartnerOfferGrant

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: boolean
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Tokens.ApplyMissingPartnerOffersWithoutClaim

Tokens

Verb: POST

Path: /Tokens/Partner/ApplyMissingOffers/{partnerApplicationId}/{targetBnetMembershipId}/

Apply a partner offer to the targeted user. This endpoint does not claim a new offer, but any already claimed offers will be applied to the game if not already.

Required Scope(s)

  • oauth2: PartnerOfferGrant

Path Parameters

  • partnerApplicationId
    The partner application identifier.
    Type: int32
  • targetBnetMembershipId
    The bungie.net user to apply missing offers to. If not self, elevated permissions are required.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: boolean
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Tokens.GetPartnerOfferSkuHistory

Tokens

Verb: GET

Path: /Tokens/Partner/History/{partnerApplicationId}/{targetBnetMembershipId}/

Returns the partner sku and offer history of the targeted user. Elevated permissions are required to see users that are not yourself.

Required Scope(s)

  • oauth2: PartnerOfferGrant

Path Parameters

  • partnerApplicationId
    The partner application identifier.
    Type: int32
  • targetBnetMembershipId
    The bungie.net user to apply missing offers to. If not self, elevated permissions are required.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: array
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Tokens.GetPartnerRewardHistory

Tokens

Verb: GET

Path: /Tokens/Partner/History/{targetBnetMembershipId}/Application/{partnerApplicationId}/

Returns the partner rewards history of the targeted user, both partner offers and Twitch drops.

Required Scope(s)

  • oauth2: PartnerOfferGrant

Path Parameters

  • partnerApplicationId
    The partner application identifier.
    Type: int32
  • targetBnetMembershipId
    The bungie.net user to return reward history for.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Tokens.GetBungieRewardsForUser

Tokens

Verb: GET

Path: /Tokens/Rewards/GetRewardsForUser/{membershipId}/

Returns the bungie rewards for the targeted user.

Required Scope(s)

  • oauth2: ReadAndApplyTokens

Path Parameters

  • membershipId
    bungie.net user membershipId for requested user rewards. If not self, elevated permissions are required.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: object
Dictionary Contents: Tokens.BungieRewardDisplay
Dictionary Key Type: string
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Tokens.GetBungieRewardsForPlatformUser

Tokens

Verb: GET

Path: /Tokens/Rewards/GetRewardsForPlatformUser/{membershipId}/{membershipType}/

Returns the bungie rewards for the targeted user when a platform membership Id and Type are used.

Required Scope(s)

  • oauth2: ReadAndApplyTokens

Path Parameters

  • membershipId
    users platform membershipId for requested user rewards. If not self, elevated permissions are required.
    Type: int64
  • membershipType
    The target Destiny 2 membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: object
Dictionary Contents: Tokens.BungieRewardDisplay
Dictionary Key Type: string
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Tokens.GetBungieRewardsList

Tokens

Verb: GET

Path: /Tokens/Rewards/BungieRewards/

Returns a list of the current bungie rewards

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: object
Dictionary Contents: Tokens.BungieRewardDisplay
Dictionary Key Type: string
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetDestinyManifest

Destiny2

Verb: GET

Path: /Destiny2/Manifest/

Returns the current version of the manifest as a json object.

Response

DestinyManifest is the external-facing contract for just the properties needed by those calling the Destiny Platform.
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetDestinyEntityDefinition

Destiny2

Verb: GET

Path: /Destiny2/Manifest/{entityType}/{hashIdentifier}/

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.

Path Parameters

  • entityType
    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.
    Type: string
  • hashIdentifier
    The hash identifier for the specific Entity you want returned.
    Type: uint32

Response

Provides common properties for destiny definitions.
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.SearchDestinyPlayerByBungieName

Destiny2

Verb: POST

Path: /Destiny2/SearchDestinyPlayerByBungieName/{membershipType}/

Returns a list of Destiny memberships given a global Bungie Display Name. This method will hide overridden memberships due to cross save.

Path Parameters

  • membershipType
    A valid non-BungieNet membership type, or All. Indicates which memberships to return. You probably want this set to All.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Request Body

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: array
Array Contents: User.UserInfoCard
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetLinkedProfiles

Destiny2

Verb: GET

Path: /Destiny2/{membershipType}/Profile/{membershipId}/LinkedProfiles/

Returns a summary information about all profiles linked to the requesting membership type/membership ID that have valid Destiny information. The passed-in Membership Type/Membership ID may be a Bungie.Net membership or a Destiny membership. It only returns the minimal amount of data to begin making more substantive requests, but will hopefully serve as a useful alternative to UserServices for people who just care about Destiny data. Note that it will only return linked accounts whose linkages you are allowed to view.

Path Parameters

  • membershipId
    The ID of the membership whose linked Destiny accounts you want returned. Make sure your membership ID matches its Membership Type: don't pass us a PSN membership ID and the XBox membership type, it's not going to work!
    Type: int64
  • membershipType
    The type for the membership whose linked Destiny accounts you want returned.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Querystring Parameters

  • getAllMemberships
    (optional) if set to 'true', all memberships regardless of whether they're obscured by overrides will be returned. Normal privacy restrictions on account linking will still apply no matter what.
    Type: boolean

Response

I know what you seek. You seek linked accounts. Found them, you have.<br /><br />This contract returns a minimal amount of data about Destiny Accounts that are linked through your Bungie.Net account. We will not return accounts in this response whose
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetProfile

Destiny2

Verb: GET

Path: /Destiny2/{membershipType}/Profile/{destinyMembershipId}/

Returns Destiny Profile information for the supplied membership.

Path Parameters

  • destinyMembershipId
    Destiny membership ID.
    Type: int64
  • membershipType
    A valid non-BungieNet membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Querystring Parameters

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

Response

The response for GetDestinyProfile, with components for character and item-level data.
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetCharacter

Destiny2

Verb: GET

Path: /Destiny2/{membershipType}/Profile/{destinyMembershipId}/Character/{characterId}/

Returns character information for the supplied character.

Path Parameters

  • characterId
    ID of the character.
    Type: int64
  • destinyMembershipId
    Destiny membership ID.
    Type: int64
  • membershipType
    A valid non-BungieNet membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Querystring Parameters

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

Response

The response contract for GetDestinyCharacter, with components that can be returned for character and item-level data.
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetClanWeeklyRewardState

Destiny2

Verb: GET

Path: /Destiny2/Clan/{groupId}/WeeklyRewardState/

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.

Path Parameters

  • groupId
    A valid group id of clan.
    Type: int64

Response

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.
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetClanBannerSource

Destiny2

Verb: GET

Path: /Destiny2/Clan/ClanBannerDictionary/

Returns the dictionary of values for the Clan Banner

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetItem

Destiny2

Verb: GET

Path: /Destiny2/{membershipType}/Profile/{destinyMembershipId}/Item/{itemInstanceId}/

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.

Path Parameters

  • destinyMembershipId
    The membership ID of the destiny profile.
    Type: int64
  • itemInstanceId
    The Instance ID of the destiny item.
    Type: int64
  • membershipType
    A valid non-BungieNet membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Querystring Parameters

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

Response

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.
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetVendors

Destiny2

Verb: GET

Path: /Destiny2/{membershipType}/Profile/{destinyMembershipId}/Character/{characterId}/Vendors/

Get currently available vendors from the list of vendors that can possibly have rotating inventory. Note that this does not include things like preview vendors and vendors-as-kiosks, neither of whom have rotating/dynamic inventories. Use their definitions as-is for those.

Path Parameters

  • characterId
    The Destiny Character ID of the character for whom we're getting vendor info.
    Type: int64
  • destinyMembershipId
    Destiny membership ID of another user. You may be denied.
    Type: int64
  • membershipType
    A valid non-BungieNet membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Querystring Parameters

  • components
    A comma separated list of components to return (as strings or numeric values). See the DestinyComponentType enum for valid components to request. You must request at least one component to receive results.
    Type: array
    Array Contents: int32
  • filter
    The filter of what vendors and items to return, if any.
    Indicates the type of filter to apply to Vendor results.
    Type: int32

Response

A response containing all of the components for all requested vendors.
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetVendor

Destiny2

Verb: GET

Path: /Destiny2/{membershipType}/Profile/{destinyMembershipId}/Character/{characterId}/Vendors/{vendorHash}/

Get the details of a specific Vendor.

Path Parameters

  • characterId
    The Destiny Character ID of the character for whom we're getting vendor info.
    Type: int64
  • destinyMembershipId
    Destiny membership ID of another user. You may be denied.
    Type: int64
  • membershipType
    A valid non-BungieNet membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32
  • vendorHash
    The Hash identifier of the Vendor to be returned.
    Type: uint32

Querystring Parameters

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

Response

A response containing all of the components for a vendor.
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetPublicVendors

Preview - Not Ready for Release Destiny2 Preview

Verb: GET

Path: /Destiny2/Vendors/

Get items available from vendors where the vendors have items for sale that are common for everyone. If any portion of the Vendor's available inventory is character or account specific, we will be unable to return their data from this endpoint due to the way that available inventory is computed. As I am often guilty of saying: 'It's a long story...'

Querystring Parameters

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

Response

A response containing all valid components for the public Vendors endpoint.<br /><br /> It is a decisively smaller subset of data compared to what we can get when we know the specific user making the request.<br /><br /> If you want any of the other data - item details, whether or not you can buy it, etc... you'll have to call in the context of a character. I know, sad but true.
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetCollectibleNodeDetails

Destiny2

Verb: GET

Path: /Destiny2/{membershipType}/Profile/{destinyMembershipId}/Character/{characterId}/Collectibles/{collectiblePresentationNodeHash}/

Given a Presentation Node that has Collectibles as direct descendants, this will return item details about those descendants in the context of the requesting character.

Path Parameters

  • characterId
    The Destiny Character ID of the character for whom we're getting collectible detail info.
    Type: int64
  • collectiblePresentationNodeHash
    The hash identifier of the Presentation Node for whom we should return collectible details. Details will only be returned for collectibles that are direct descendants of this node.
    Type: uint32
  • destinyMembershipId
    Destiny membership ID of another user. You may be denied.
    Type: int64
  • membershipType
    A valid non-BungieNet membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Querystring Parameters

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

Response

Returns the detailed information about a Collectible Presentation Node and any Collectibles that are direct descendants.
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.TransferItem

Destiny2

Notes:
ThrottleSecondsBetweenActionPerUser: 0.1

Verb: POST

Path: /Destiny2/Actions/Items/TransferItem/

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

Required Scope(s)

  • oauth2: MoveEquipDestinyItems

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int32
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.PullFromPostmaster

Destiny2

Notes:
ThrottleSecondsBetweenActionPerUser: 0.1

Verb: POST

Path: /Destiny2/Actions/Items/PullFromPostmaster/

Extract an item from the Postmaster, with whatever implications that may entail. You must have a valid Destiny account. You must also pass BOTH a reference AND an instance ID if it's an instanced item.

Required Scope(s)

  • oauth2: MoveEquipDestinyItems

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int32
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.EquipItem

Destiny2

Notes:
ThrottleSecondsBetweenActionPerUser: 0.1

Verb: POST

Path: /Destiny2/Actions/Items/EquipItem/

Equip an item. You must have a valid Destiny Account, and either be in a social space, in orbit, or offline.

Required Scope(s)

  • oauth2: MoveEquipDestinyItems

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int32
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.EquipItems

Destiny2

Notes:
ThrottleSecondsBetweenActionPerUser: 0.1

Verb: POST

Path: /Destiny2/Actions/Items/EquipItems/

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.

Required Scope(s)

  • oauth2: MoveEquipDestinyItems

Response

The results of a bulk Equipping operation performed through the Destiny API.
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.EquipLoadout

Destiny2

Notes:
ThrottleSecondsBetweenActionPerUser: 1

Verb: POST

Path: /Destiny2/Actions/Loadouts/EquipLoadout/

Equip a loadout. You must have a valid Destiny Account, and either be in a social space, in orbit, or offline.

Required Scope(s)

  • oauth2: MoveEquipDestinyItems

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int32
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.SnapshotLoadout

Destiny2

Notes:
ThrottleSecondsBetweenActionPerUser: 1

Verb: POST

Path: /Destiny2/Actions/Loadouts/SnapshotLoadout/

Snapshot a loadout with the currently equipped items.

Required Scope(s)

  • oauth2: MoveEquipDestinyItems

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int32
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.UpdateLoadoutIdentifiers

Destiny2

Notes:
ThrottleSecondsBetweenActionPerUser: 1

Verb: POST

Path: /Destiny2/Actions/Loadouts/UpdateLoadoutIdentifiers/

Update the color, icon, and name of a loadout.

Required Scope(s)

  • oauth2: MoveEquipDestinyItems

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int32
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.ClearLoadout

Destiny2

Notes:
ThrottleSecondsBetweenActionPerUser: 1

Verb: POST

Path: /Destiny2/Actions/Loadouts/ClearLoadout/

Clear the identifiers and items of a loadout.

Required Scope(s)

  • oauth2: MoveEquipDestinyItems

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int32
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.SetItemLockState

Destiny2

Notes:
ThrottleSecondsBetweenActionPerUser: 0.1

Verb: POST

Path: /Destiny2/Actions/Items/SetLockState/

Set the Lock State for an instanced item. You must have a valid Destiny Account.

Required Scope(s)

  • oauth2: MoveEquipDestinyItems

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int32
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.SetQuestTrackedState

Destiny2

Notes:
ThrottleSecondsBetweenActionPerUser: 1

Verb: POST

Path: /Destiny2/Actions/Items/SetTrackedState/

Set the Tracking State for an instanced item, if that item is a Quest or Bounty. You must have a valid Destiny Account. Yeah, it's an item.

Required Scope(s)

  • oauth2: MoveEquipDestinyItems

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int32
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.InsertSocketPlug

Preview - Not Ready for Release Destiny2 Preview

Notes:
ThrottleSecondsBetweenActionPerUser: 0.5

Verb: POST

Path: /Destiny2/Actions/Items/InsertSocketPlug/

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. Request must include proof of permission for 'InsertPlugs' from the account owner.

Required Scope(s)

  • oauth2: AdvancedWriteActions

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.InsertSocketPlugFree

Preview - Not Ready for Release Destiny2 Preview

Notes:
ThrottleSecondsBetweenActionPerUser: 0.5

Verb: POST

Path: /Destiny2/Actions/Items/InsertSocketPlugFree/

Insert a 'free' plug into an item's socket. This does not require 'Advanced Write Action' authorization and is available to 3rd-party apps, but will only work on 'free and reversible' socket actions (Perks, Armor Mods, Shaders, Ornaments, etc.). You must have a valid Destiny Account, and the character must either be in a social space, in orbit, or offline.

Required Scope(s)

  • oauth2: MoveEquipDestinyItems

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetPostGameCarnageReport

Destiny2

Verb: GET

Path: /Destiny2/Stats/PostGameCarnageReport/{activityId}/

Gets the available post game carnage report for the activity ID.

Path Parameters

  • activityId
    The ID of the activity whose PGCR is requested.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.ReportOffensivePostGameCarnageReportPlayer

Destiny2

Verb: POST

Path: /Destiny2/Stats/PostGameCarnageReport/{activityId}/Report/

Report a player that you met in an activity that was engaging in ToS-violating activities. Both you and the offending player must have played in the activityId passed in. Please use this judiciously and only when you have strong suspicions of violation, pretty please.

Required Scope(s)

  • oauth2: BnetWrite

Path Parameters

  • activityId
    The ID of the activity where you ran into the brigand that you're reporting.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int32
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetHistoricalStatsDefinition

Destiny2

Verb: GET

Path: /Destiny2/Stats/Definition/

Gets historical stats definitions.

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: object
Dictionary Key Type: string
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetClanLeaderboards

Preview - Not Ready for Release Destiny2 Preview

Verb: GET

Path: /Destiny2/Stats/Leaderboards/Clans/{groupId}/

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.

Path Parameters

  • groupId
    Group ID of the clan whose leaderboards you wish to fetch.
    Type: int64

Querystring Parameters

  • maxtop
    Maximum number of top players to return. Use a large number to get entire leaderboard.
    Type: int32
  • modes
    List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.
    Type: string
  • statid
    ID of stat to return rather than returning all Leaderboard stats.
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: object
Dictionary Contents: object
Dictionary Key Type: string
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetClanAggregateStats

Preview - Not Ready for Release Destiny2 Preview

Verb: GET

Path: /Destiny2/Stats/AggregateClanStats/{groupId}/

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.

Path Parameters

  • groupId
    Group ID of the clan whose leaderboards you wish to fetch.
    Type: int64

Querystring Parameters

  • modes
    List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetLeaderboards

Preview - Not Ready for Release Destiny2 Preview

Verb: GET

Path: /Destiny2/{membershipType}/Account/{destinyMembershipId}/Stats/Leaderboards/

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.

Path Parameters

  • destinyMembershipId
    The Destiny membershipId of the user to retrieve.
    Type: int64
  • membershipType
    A valid non-BungieNet membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Querystring Parameters

  • maxtop
    Maximum number of top players to return. Use a large number to get entire leaderboard.
    Type: int32
  • modes
    List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.
    Type: string
  • statid
    ID of stat to return rather than returning all Leaderboard stats.
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: object
Dictionary Contents: object
Dictionary Key Type: string
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetLeaderboardsForCharacter

Preview - Not Ready for Release Destiny2 Preview

Verb: GET

Path: /Destiny2/Stats/Leaderboards/{membershipType}/{destinyMembershipId}/{characterId}/

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.

Path Parameters

  • characterId
    The specific character to build the leaderboard around for the provided Destiny Membership.
    Type: int64
  • destinyMembershipId
    The Destiny membershipId of the user to retrieve.
    Type: int64
  • membershipType
    A valid non-BungieNet membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Querystring Parameters

  • maxtop
    Maximum number of top players to return. Use a large number to get entire leaderboard.
    Type: int32
  • modes
    List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.
    Type: string
  • statid
    ID of stat to return rather than returning all Leaderboard stats.
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: object
Dictionary Contents: object
Dictionary Key Type: string
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.SearchDestinyEntities

Destiny2

Verb: GET

Path: /Destiny2/Armory/Search/{type}/{searchTerm}/

Gets a page list of Destiny items.

Path Parameters

  • searchTerm
    The string to use when searching for Destiny entities.
    Type: string
  • type
    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'.
    Type: string

Querystring Parameters

  • page
    Page number to return, starting with 0.
    Type: int32

Response

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.
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetHistoricalStats

Destiny2

Verb: GET

Path: /Destiny2/{membershipType}/Account/{destinyMembershipId}/Character/{characterId}/Stats/

Gets historical stats for indicated character.

Path Parameters

  • characterId
    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.
    Type: int64
  • destinyMembershipId
    The Destiny membershipId of the user to retrieve.
    Type: int64
  • membershipType
    A valid non-BungieNet membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Querystring Parameters

  • dayend
    Last day to return when daily stats are requested. Use the format YYYY-MM-DD. Currently, we cannot allow more than 31 days of daily data to be requested in a single request.
    Type: date-time
  • daystart
    First day to return when daily stats are requested. Use the format YYYY-MM-DD. Currently, we cannot allow more than 31 days of daily data to be requested in a single request.
    Type: date-time
  • groups
    Group of stats to include, otherwise only general stats are returned. Comma separated list is allowed. Values: General, Weapons, Medals
    Type: array
    Array Contents: int32
  • modes
    Game modes to return. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.
    Type: array
    Array Contents: int32
  • periodType
    Indicates a specific period type to return. Optional. May be: Daily, AllTime, or Activity
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: object
Dictionary Key Type: string
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetHistoricalStatsForAccount

Destiny2

Verb: GET

Path: /Destiny2/{membershipType}/Account/{destinyMembershipId}/Stats/

Gets aggregate historical stats organized around each character for a given account.

Path Parameters

  • destinyMembershipId
    The Destiny membershipId of the user to retrieve.
    Type: int64
  • membershipType
    A valid non-BungieNet membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Querystring Parameters

  • groups
    Groups of stats to include, otherwise only general stats are returned. Comma separated list is allowed. Values: General, Weapons, Medals.
    Type: array
    Array Contents: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetActivityHistory

Destiny2

Verb: GET

Path: /Destiny2/{membershipType}/Account/{destinyMembershipId}/Character/{characterId}/Stats/Activities/

Gets activity history stats for indicated character.

Path Parameters

  • characterId
    The id of the character to retrieve.
    Type: int64
  • destinyMembershipId
    The Destiny membershipId of the user to retrieve.
    Type: int64
  • membershipType
    A valid non-BungieNet membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Querystring Parameters

  • count
    Number of rows to return
    Type: int32
  • mode
    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.
    For historical reasons, this list will have both D1 and D2-relevant Activity Modes in it. Please don't take this to mean that some D1-only feature is coming back!
    Type: int32
  • page
    Page number to return, starting with 0.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetUniqueWeaponHistory

Destiny2

Verb: GET

Path: /Destiny2/{membershipType}/Account/{destinyMembershipId}/Character/{characterId}/Stats/UniqueWeapons/

Gets details about unique weapon usage, including all exotic weapons.

Path Parameters

  • characterId
    The id of the character to retrieve.
    Type: int64
  • destinyMembershipId
    The Destiny membershipId of the user to retrieve.
    Type: int64
  • membershipType
    A valid non-BungieNet membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetDestinyAggregateActivityStats

Destiny2

Verb: GET

Path: /Destiny2/{membershipType}/Account/{destinyMembershipId}/Character/{characterId}/Stats/AggregateActivityStats/

Gets all activities the character has participated in together with aggregate statistics for those activities.

Path Parameters

  • characterId
    The specific character whose activities should be returned.
    Type: int64
  • destinyMembershipId
    The Destiny membershipId of the user to retrieve.
    Type: int64
  • membershipType
    A valid non-BungieNet membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetPublicMilestoneContent

Destiny2

Verb: GET

Path: /Destiny2/Milestones/{milestoneHash}/Content/

Gets custom localized content for the milestone of the given hash, if it exists.

Path Parameters

  • milestoneHash
    The identifier for the milestone to be returned.
    Type: uint32

Response

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.
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetPublicMilestones

Destiny2

Verb: GET

Path: /Destiny2/Milestones/

Gets public information about currently available Milestones.

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: object
Dictionary Key Type: uint32
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.AwaInitializeRequest

Destiny2

Verb: POST

Path: /Destiny2/Awa/Initialize/

Initialize a request to perform an advanced write action.

Required Scope(s)

  • oauth2: AdvancedWriteActions

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.AwaProvideAuthorizationResult

Destiny2

Verb: POST

Path: /Destiny2/Awa/AwaProvideAuthorizationResult/

Provide the result of the user interaction. Called by the Bungie Destiny App to approve or reject a request.

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int32
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.AwaGetActionToken

Destiny2

Verb: GET

Path: /Destiny2/Awa/GetActionToken/{correlationId}/

Returns the action token if user approves the request.

Required Scope(s)

  • oauth2: AdvancedWriteActions

Path Parameters

  • correlationId
    The identifier for the advanced write action request.
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

CommunityContent.GetCommunityContent

CommunityContent

Verb: GET

Path: /CommunityContent/Get/{sort}/{mediaFilter}/{page}/

Returns community content.

Path Parameters

  • mediaFilter
    The type of media to get
    Type: int32
  • page
    Zero based page
    Type: int32
  • sort
    The sort mode.
    Type: byte

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Trending.GetTrendingCategories

Trending

Verb: GET

Path: /Trending/Categories/

Returns trending items for Bungie.net, collapsed into the first page of items per category. For pagination within a category, call GetTrendingCategory.

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Trending.GetTrendingCategory

Trending

Verb: GET

Path: /Trending/Categories/{categoryId}/{pageNumber}/

Returns paginated lists of trending items for a category.

Path Parameters

  • categoryId
    The ID of the category for whom you want additional results.
    Type: string
  • pageNumber
    The page # of results to return.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Trending.GetTrendingEntryDetail

Trending

Verb: GET

Path: /Trending/Details/{trendingEntryType}/{identifier}/

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.

Path Parameters

  • identifier
    The identifier for the entity to be returned.
    Type: string
  • trendingEntryType
    The type of entity to be returned.
    The known entity types that you can have returned from Trending.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Fireteam.GetActivePrivateClanFireteamCount

Fireteam

Verb: GET

Path: /Fireteam/Clan/{groupId}/ActiveCount/

Gets a count of all active non-public fireteams for the specified clan. Maximum value returned is 25.

Required Scope(s)

  • oauth2: ReadGroups

Path Parameters

  • groupId
    The group id of the clan.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int32
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Fireteam.GetAvailableClanFireteams

Fireteam

Verb: GET

Path: /Fireteam/Clan/{groupId}/Available/{platform}/{activityType}/{dateRange}/{slotFilter}/{publicOnly}/{page}/

Gets a listing of all of this clan's fireteams that are have available slots. Caller is not checked for join criteria so caching is maximized.

Required Scope(s)

  • oauth2: ReadGroups

Path Parameters

  • activityType
    The activity type to filter by.
    Type: int32
  • dateRange
    The date range to grab available fireteams.
    Type: byte
  • groupId
    The group id of the clan.
    Type: int64
  • page
    Zero based page
    Type: int32
  • platform
    The platform filter.
    Type: byte
  • publicOnly
    Determines public/private filtering.
    Type: byte
  • slotFilter
    Filters based on available slots
    Type: byte

Querystring Parameters

  • excludeImmediate
    If you wish the result to exclude immediate fireteams, set this to true. Immediate-only can be forced using the dateRange enum.
    Type: boolean
  • langFilter
    An optional language filter.
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Fireteam.SearchPublicAvailableClanFireteams

Fireteam

Verb: GET

Path: /Fireteam/Search/Available/{platform}/{activityType}/{dateRange}/{slotFilter}/{page}/

Gets a listing of all public fireteams starting now with open slots. Caller is not checked for join criteria so caching is maximized.

Required Scope(s)

  • oauth2: ReadGroups

Path Parameters

  • activityType
    The activity type to filter by.
    Type: int32
  • dateRange
    The date range to grab available fireteams.
    Type: byte
  • page
    Zero based page
    Type: int32
  • platform
    The platform filter.
    Type: byte
  • slotFilter
    Filters based on available slots
    Type: byte

Querystring Parameters

  • excludeImmediate
    If you wish the result to exclude immediate fireteams, set this to true. Immediate-only can be forced using the dateRange enum.
    Type: boolean
  • langFilter
    An optional language filter.
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Fireteam.GetMyClanFireteams

Fireteam

Verb: GET

Path: /Fireteam/Clan/{groupId}/My/{platform}/{includeClosed}/{page}/

Gets a listing of all fireteams that caller is an applicant, a member, or an alternate of.

Required Scope(s)

  • oauth2: ReadGroups

Path Parameters

  • groupId
    The group id of the clan. (This parameter is ignored unless the optional query parameter groupFilter is true).
    Type: int64
  • includeClosed
    If true, return fireteams that have been closed.
    Type: boolean
  • page
    Deprecated parameter, ignored.
    Type: int32
  • platform
    The platform filter.
    Type: byte

Querystring Parameters

  • groupFilter
    If true, filter by clan. Otherwise, ignore the clan and show all of the user's fireteams.
    Type: boolean
  • langFilter
    An optional language filter.
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Fireteam.GetClanFireteam

Fireteam

Verb: GET

Path: /Fireteam/Clan/{groupId}/Summary/{fireteamId}/

Gets a specific fireteam.

Required Scope(s)

  • oauth2: ReadGroups

Path Parameters

  • fireteamId
    The unique id of the fireteam.
    Type: int64
  • groupId
    The group id of the clan.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.ActivateLobby

FireteamFinder

Verb: POST

Path: /FireteamFinder/Lobby/Activate/{lobbyId}/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Activates a lobby and initializes it as an active Fireteam.

Path Parameters

  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32
  • lobbyId
    The ID of the lobby to activate.
    Type: int64

Querystring Parameters

  • forceActivation
    Optional boolean to forcibly activate the lobby, kicking pending applicants.
    Type: boolean

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: boolean
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.ActivateLobbyForNewListingId

FireteamFinder

Verb: POST

Path: /FireteamFinder/Lobby/ActivateForNewListingId/{lobbyId}/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Activates a lobby and initializes it as an active Fireteam, returning the updated Listing ID.

Path Parameters

  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32
  • lobbyId
    The ID of the lobby to activate.
    Type: int64

Querystring Parameters

  • forceActivation
    Optional boolean to forcibly activate the lobby, kicking pending applicants.
    Type: boolean

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: boolean
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.ApplyToListing

FireteamFinder

Verb: POST

Path: /FireteamFinder/Listing/{listingId}/Apply/{applicationType}/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Applies to have a character join a fireteam.

Path Parameters

  • applicationType
    The type of application to apply
    Type: int32
  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32
  • listingId
    The id of the listing to apply to
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.BulkGetListingStatus

FireteamFinder

Verb: POST

Path: /FireteamFinder/Listing/BulkStatus/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Retrieves Fireteam listing statuses in bulk.

Path Parameters

  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.GetApplication

FireteamFinder

Verb: GET

Path: /FireteamFinder/Application/{applicationId}/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Retrieves a Fireteam application.

Path Parameters

  • applicationId
    Type: int64
  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.GetListing

FireteamFinder

Verb: GET

Path: /FireteamFinder/Listing/{listingId}/

Retrieves a Fireteam listing.

Path Parameters

  • listingId
    The ID of the listing to retrieve.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.GetListingApplications

FireteamFinder

Verb: GET

Path: /FireteamFinder/Listing/{listingId}/Applications/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Retrieves all applications to a Fireteam Finder listing.

Path Parameters

  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32
  • listingId
    The ID of the listing whose applications to retrieve.
    Type: int64

Querystring Parameters

  • flags
    Optional flag representing a filter on the state of the application.
    Type: int64
  • nextPageToken
    An optional token from a previous response to fetch the next page of results.
    Type: string
  • pageSize
    The maximum number of results to be returned with this page.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.GetLobby

FireteamFinder

Verb: GET

Path: /FireteamFinder/Lobby/{lobbyId}/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Retrieves the information for a Fireteam lobby.

Path Parameters

  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32
  • lobbyId
    The ID of the lobby to retrieve.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.GetPlayerLobbies

FireteamFinder

Verb: GET

Path: /FireteamFinder/PlayerLobbies/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Retrieves the information for a Fireteam lobby.

Path Parameters

  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Querystring Parameters

  • nextPageToken
    An optional token from a previous response to fetch the next page of results.
    Type: string
  • pageSize
    The maximum number of results to be returned with this page.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.GetPlayerApplications

FireteamFinder

Verb: GET

Path: /FireteamFinder/PlayerApplications/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Retrieves Fireteam applications that this player has sent or recieved.

Path Parameters

  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Querystring Parameters

  • nextPageToken
    An optional token from a previous response to fetch the next page of results.
    Type: string
  • pageSize
    The maximum number of results to be returned with this page.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.GetPlayerOffers

FireteamFinder

Verb: GET

Path: /FireteamFinder/PlayerOffers/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Retrieves Fireteam offers that this player has recieved.

Path Parameters

  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Querystring Parameters

  • nextPageToken
    An optional token from a previous response to fetch the next page of results.
    Type: string
  • pageSize
    The maximum number of results to be returned with this page.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.GetCharacterActivityAccess

FireteamFinder

Verb: GET

Path: /FireteamFinder/CharacterActivityAccess/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Retrieves the information for a Fireteam lobby.

Path Parameters

  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.GetOffer

FireteamFinder

Verb: GET

Path: /FireteamFinder/Offer/{offerId}/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Retrieves an offer to a Fireteam lobby.

Path Parameters

  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32
  • offerId
    The unique ID of the offer.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.GetLobbyOffers

FireteamFinder

Verb: GET

Path: /FireteamFinder/Lobby/{lobbyId}/Offers/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Retrieves all offers relevant to a Fireteam lobby.

Path Parameters

  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32
  • lobbyId
    The unique ID of the lobby.
    Type: int64

Querystring Parameters

  • nextPageToken
    An optional token from a previous response to fetch the next page of results.
    Type: string
  • pageSize
    The maximum number of results to be returned with this page.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.HostLobby

FireteamFinder

Verb: POST

Path: /FireteamFinder/Lobby/Host/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Creates a new Fireteam lobby and Fireteam Finder listing.

Path Parameters

  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.JoinLobby

FireteamFinder

Verb: POST

Path: /FireteamFinder/Lobby/Join/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Sends a request to join an available Fireteam lobby.

Path Parameters

  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.KickPlayer

FireteamFinder

Verb: POST

Path: /FireteamFinder/Lobby/{lobbyId}/KickPlayer/{targetMembershipId}/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Kicks a player from a Fireteam Finder lobby.

Path Parameters

  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32
  • lobbyId
    The ID of the lobby to kick the player from.
    Type: int64
  • targetMembershipId
    A valid Destiny membership ID of the player to kick.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: boolean
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.LeaveApplication

FireteamFinder

Verb: POST

Path: /FireteamFinder/Application/Leave/{applicationId}/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Sends a request to leave a Fireteam listing application.

Path Parameters

  • applicationId
    The ID of the application to leave.
    Type: int64
  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: boolean
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.LeaveLobby

FireteamFinder

Verb: POST

Path: /FireteamFinder/Lobby/Leave/{lobbyId}/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Sends a request to leave a Fireteam lobby.

Path Parameters

  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32
  • lobbyId
    The ID of the lobby to leave.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: boolean
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.RespondToApplication

FireteamFinder

Verb: POST

Path: /FireteamFinder/Application/Respond/{applicationId}/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Responds to an application sent to a Fireteam lobby.

Path Parameters

  • applicationId
    The application ID to respond to.
    Type: int64
  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.RespondToAuthentication

FireteamFinder

Verb: POST

Path: /FireteamFinder/Authentication/Respond/{applicationId}/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Responds to an authentication request for a Fireteam.

Path Parameters

  • applicationId
    The ID of the application whose authentication to confirm.
    Type: int64
  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.RespondToOffer

FireteamFinder

Verb: POST

Path: /FireteamFinder/Offer/Respond/{offerId}/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Responds to a Fireteam lobby offer.

Path Parameters

  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32
  • offerId
    The unique ID of the offer.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.SearchListingsByClan

FireteamFinder

Verb: POST

Path: /FireteamFinder/Search/Clan/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Returns search results for available Fireteams provided a clan.

Path Parameters

  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.SearchListingsByFilters

FireteamFinder

Verb: POST

Path: /FireteamFinder/Search/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Returns search results for available Fireteams provided search filters.

Path Parameters

  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

FireteamFinder.UpdateLobbySettings

FireteamFinder

Verb: POST

Path: /FireteamFinder/Lobby/UpdateSettings/{lobbyId}/{destinyMembershipType}/{destinyMembershipId}/{destinyCharacterId}/

Updates the settings for a Fireteam lobby.

Path Parameters

  • destinyCharacterId
    A valid Destiny character ID.
    Type: int64
  • destinyMembershipId
    A valid Destiny membership ID.
    Type: int64
  • destinyMembershipType
    A valid Destiny membership type.
    The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
    Type: int32
  • lobbyId
    The ID of the lobby to update.
    Type: int64

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Social.GetFriendList


Verb: GET

Path: /Social/Friends/

Returns your Bungie Friend list

Required Scope(s)

  • oauth2: ReadUserData

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Social.GetFriendRequestList


Verb: GET

Path: /Social/Friends/Requests/

Returns your friend request queue.

Required Scope(s)

  • oauth2: ReadUserData

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Social.IssueFriendRequest


Verb: POST

Path: /Social/Friends/Add/{membershipId}/

Requests a friend relationship with the target user. Any of the target user's linked membership ids are valid inputs.

Required Scope(s)

  • oauth2: BnetWrite

Path Parameters

  • membershipId
    The membership id of the user you wish to add.
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: boolean
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Social.AcceptFriendRequest


Verb: POST

Path: /Social/Friends/Requests/Accept/{membershipId}/

Accepts a friend relationship with the target user. The user must be on your incoming friend request list, though no error will occur if they are not.

Required Scope(s)

  • oauth2: BnetWrite

Path Parameters

  • membershipId
    The membership id of the user you wish to accept.
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: boolean
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Social.DeclineFriendRequest


Verb: POST

Path: /Social/Friends/Requests/Decline/{membershipId}/

Declines a friend relationship with the target user. The user must be on your incoming friend request list, though no error will occur if they are not.

Required Scope(s)

  • oauth2: BnetWrite

Path Parameters

  • membershipId
    The membership id of the user you wish to decline.
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: boolean
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Social.RemoveFriend


Verb: POST

Path: /Social/Friends/Remove/{membershipId}/

Remove a friend relationship with the target user. The user must be on your friend list, though no error will occur if they are not.

Required Scope(s)

  • oauth2: BnetWrite

Path Parameters

  • membershipId
    The membership id of the user you wish to remove.
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: boolean
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Social.RemoveFriendRequest


Verb: POST

Path: /Social/Friends/Requests/Remove/{membershipId}/

Remove a friend relationship with the target user. The user must be on your outgoing request friend list, though no error will occur if they are not.

Required Scope(s)

  • oauth2: BnetWrite

Path Parameters

  • membershipId
    The membership id of the user you wish to remove.
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: boolean
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Social.GetPlatformFriendList


Verb: GET

Path: /Social/PlatformFriends/{friendPlatform}/{page}/

Gets the platform friend of the requested type, with additional information if they have Bungie accounts. Must have a recent login session with said platform.

Path Parameters

  • friendPlatform
    The platform friend type.
    Type: int32
  • page
    The zero based page to return. Page size is 100.
    Type: string

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

.GetAvailableLocales


Verb: GET

Path: /GetAvailableLocales/

List of available localization cultures

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: object
Dictionary Contents: string
Dictionary Key Type: string
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

.GetCommonSettings


Verb: GET

Path: /Settings/

Get the common settings used by the Bungie.Net environment.

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

.GetUserSystemOverrides


Verb: GET

Path: /UserSystemOverrides/

Get the user-specific system overrides that should be respected alongside common systems.

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: object
Dictionary Contents: Common.Models.CoreSystem
Dictionary Key Type: string
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

.GetGlobalAlerts


Verb: GET

Path: /GlobalAlerts/

Gets any active global alert for display in the forum banners, help pages, etc. Usually used for DOC alerts.

Querystring Parameters

  • includestreaming
    Determines whether Streaming Alerts are included in results
    Type: boolean

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: array
Array Contents: GlobalAlert
ErrorCode
Type: int32
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Entities

Applications.ApplicationScopes

Enumeration
Type: int64
Valid Enum Values
  • ReadBasicUserProfile: 1
    Read basic user profile information such as the user's handle, avatar icon, etc.
  • ReadGroups: 2
    Read Group/Clan Forums, Wall, and Members for groups and clans that the user has joined.
  • WriteGroups: 4
    Write Group/Clan Forums, Wall, and Members for groups and clans that the user has joined.
  • AdminGroups: 8
    Administer Group/Clan Forums, Wall, and Members for groups and clans that the user is a founder or an administrator.
  • BnetWrite: 16
    Create new groups, clans, and forum posts, along with other actions that are reserved for Bungie.net elevated scope: not meant to be used by third party applications.
  • MoveEquipDestinyItems: 32
    Move or equip Destiny items
  • ReadDestinyInventoryAndVault: 64
    Read Destiny 1 Inventory and Vault contents. For Destiny 2, this scope is needed to read anything regarded as private. This is the only scope a Destiny 2 app needs for read operations against Destiny 2 data such as inventory, vault, currency, vendors, milestones, progression, etc.
  • ReadUserData: 128
    Read user data such as who they are web notifications, clan/group memberships, recent activity, muted users.
  • EditUserData: 256
    Edit user data such as preferred language, status, motto, avatar selection and theme.
  • ReadDestinyVendorsAndAdvisors: 512
    Access vendor and advisor data specific to a user. OBSOLETE. This scope is only used on the Destiny 1 API.
  • ReadAndApplyTokens: 1024
    Read offer history and claim and apply tokens for the user.
  • AdvancedWriteActions: 2048
    Can perform actions that will result in a prompt to the user via the Destiny app.
  • PartnerOfferGrant: 4096
    Can use the partner offer api to claim rewards defined for a partner
  • DestinyUnlockValueQuery: 8192
    Allows an app to query sensitive information like unlock flags and values not available through normal methods.
  • UserPiiRead: 16384
    Allows an app to query sensitive user PII, most notably email information.

Applications.ApiUsage

Type: object
Object Properties
apiCalls
Counts for on API calls made for the time range.
Type: array
Array Contents: Applications.Series
throttledRequests
Instances of blocked requests or requests that crossed the warn threshold during the time range.
Type: array
Array Contents: Applications.Series

Applications.Series

Type: object
Object Properties
datapoints
Collection of samples with time and value.
Type: array
Array Contents: Applications.Datapoint
target
Target to which to datapoints apply.
Type: string

Applications.Datapoint

Type: object
Object Properties
time
Timestamp for the related count.
Type: date-time
count
Nullable
Count associated with timestamp
Type: double

Applications.Application

Type: object
Object Properties
applicationType
Type: int32
applicationId
Unique ID assigned to the application
Type: int32
name
Name of the application
Type: string
redirectUrl
URL used to pass the user's authorization code to the application
Type: string
link
Link to website for the application where a user can learn more about the app.
Type: string
scope
Permissions the application needs to work
Type: int64
origin
Value of the Origin header sent in requests generated by this application.
Type: string
status
Current status of the application.
Type: int32
creationDate
Date the application was first added to our database.
Type: date-time
statusChanged
Date the application status last changed.
Type: date-time
firstPublished
Date the first time the application status entered the 'Public' status.
Type: date-time
team
List of team members who manage this application on Bungie.net. Will always consist of at least the application owner.
Type: array
overrideAuthorizeViewName
An optional override for the Authorize view name.
Type: string

Applications.OAuthApplicationType

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Confidential: 1
    Indicates the application is server based and can keep its secrets from end users and other potential snoops.
  • Public: 2
    Indicates the application runs in a public place, and it can't be trusted to keep a secret.

Applications.ApplicationStatus

Enumeration
Type: int32
Valid Enum Values
  • None: 0
    No value assigned
  • Private: 1
    Application exists and works but will not appear in any public catalog. New applications start in this state, test applications will remain in this state.
  • Public: 2
    Active applications that can appear in an catalog.
  • Disabled: 3
    Application disabled by the owner. All authorizations will be treated as terminated while in this state. Owner can move back to private or public state.
  • Blocked: 4
    Application has been blocked by Bungie. It cannot be transitioned out of this state by the owner. Authorizations are terminated when an application is in this state.

Applications.ApplicationDeveloper

Type: object
Object Properties
role
Type: int32
apiEulaVersion
Type: int32
user

Applications.DeveloperRole

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Owner: 1
  • TeamMember: 2

User.UserMembership

Very basic info about a user as returned by the Account server.
Type: object
Object Properties
membershipType
Type of the membership. Not necessarily the native type.
Type: int32
membershipId
Membership ID as they user is known in the Accounts service
Type: int64
displayName
Display Name the player has chosen for themselves. The display name is optional when the data type is used as input to a platform API.
Type: string
bungieGlobalDisplayName
The bungie global display name, if set.
Type: string
bungieGlobalDisplayNameCode
Nullable
The bungie global display name code, if set.
Type: int16

BungieMembershipType

Enumeration
The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
Type: int32
Valid Enum Values
  • None: 0
  • TigerXbox: 1
  • TigerPsn: 2
  • TigerSteam: 3
  • TigerBlizzard: 4
  • TigerStadia: 5
  • TigerEgs: 6
  • TigerDemon: 10
  • BungieNext: 254
  • All: -1
    "All" is only valid for searching capabilities: you need to pass the actual matching BungieMembershipType for any query where you pass a known membershipId.

User.CrossSaveUserMembership

Very basic info about a user as returned by the Account server, but including CrossSave information. Do NOT use as a request contract.
Type: object
Object Properties
crossSaveOverride
If there is a cross save override in effect, this value will tell you the type that is overridding this one.
Type: int32
applicableMembershipTypes
The list of Membership Types indicating the platforms on which this Membership can be used.

Not in Cross Save = its original membership type. Cross Save Primary = Any membership types it is overridding, and its original membership type Cross Save Overridden = Empty list
Type: array
Array Contents: int32
isPublic
If True, this is a public user membership.
Type: boolean
membershipType
Type of the membership. Not necessarily the native type.
Type: int32
membershipId
Membership ID as they user is known in the Accounts service
Type: int64
displayName
Display Name the player has chosen for themselves. The display name is optional when the data type is used as input to a platform API.
Type: string
bungieGlobalDisplayName
The bungie global display name, if set.
Type: string
bungieGlobalDisplayNameCode
Nullable
The bungie global display name code, if set.
Type: int16

User.UserInfoCard

This contract supplies basic information commonly used to display a minimal amount of information about a user. Take care to not add more properties here unless the property applies in all (or at least the majority) of the situations where UserInfoCard is used. Avoid adding game specific or platform specific details here. In cases where UserInfoCard is a subset of the data needed in a contract, use UserInfoCard as a property of other contracts.
Type: object
Object Properties
supplementalDisplayName
A platform specific additional display name - ex: psn Real Name, bnet Unique Name, etc.
Type: string
iconPath
URL the Icon if available.
Type: string
crossSaveOverride
If there is a cross save override in effect, this value will tell you the type that is overridding this one.
Type: int32
applicableMembershipTypes
The list of Membership Types indicating the platforms on which this Membership can be used.

Not in Cross Save = its original membership type. Cross Save Primary = Any membership types it is overridding, and its original membership type Cross Save Overridden = Empty list
Type: array
Array Contents: int32
isPublic
If True, this is a public user membership.
Type: boolean
membershipType
Type of the membership. Not necessarily the native type.
Type: int32
membershipId
Membership ID as they user is known in the Accounts service
Type: int64
displayName
Display Name the player has chosen for themselves. The display name is optional when the data type is used as input to a platform API.
Type: string
bungieGlobalDisplayName
The bungie global display name, if set.
Type: string
bungieGlobalDisplayNameCode
Nullable
The bungie global display name code, if set.
Type: int16

User.GeneralUser

Type: object
Object Properties
membershipId
Type: int64
uniqueName
Type: string
normalizedName
Type: string
displayName
Type: string
profilePicture
Type: int32
profileTheme
Type: int32
userTitle
Type: int32
successMessageFlags
Type: int64
isDeleted
Type: boolean
about
Type: string
firstAccess
Nullable
Type: date-time
lastUpdate
Nullable
Type: date-time
legacyPortalUID
Nullable
Type: int64
context
psnDisplayName
Type: string
xboxDisplayName
Type: string
fbDisplayName
Type: string
showActivity
Nullable
Type: boolean
locale
Type: string
localeInheritDefault
Type: boolean
lastBanReportId
Nullable
Type: int64
showGroupMessaging
Type: boolean
profilePicturePath
Type: string
profilePictureWidePath
Type: string
profileThemeName
Type: string
userTitleDisplay
Type: string
statusText
Type: string
statusDate
Type: date-time
profileBanExpire
Nullable
Type: date-time
blizzardDisplayName
Type: string
steamDisplayName
Type: string
stadiaDisplayName
Type: string
twitchDisplayName
Type: string
cachedBungieGlobalDisplayName
Type: string
cachedBungieGlobalDisplayNameCode
Nullable
Type: int16
egsDisplayName
Type: string

User.UserToUserContext

Type: object
Object Properties
isFollowing
Type: boolean
ignoreStatus
globalIgnoreEndDate
Nullable
Type: date-time

Ignores.IgnoreResponse

Type: object
Object Properties
isIgnored
Type: boolean
ignoreFlags
Type: int32

Ignores.IgnoreStatus

Enumeration
Type: int32
Valid Enum Values
  • NotIgnored: 0
  • IgnoredUser: 1
  • IgnoredGroup: 2
  • IgnoredByGroup: 4
  • IgnoredPost: 8
  • IgnoredTag: 16
  • IgnoredGlobal: 32

BungieCredentialType

Enumeration
The types of credentials the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.CredentialType.
Type: byte
Valid Enum Values
  • None: 0
  • Xuid: 1
  • Psnid: 2
  • Wlid: 3
  • Fake: 4
  • Facebook: 5
  • Google: 8
  • Windows: 9
  • DemonId: 10
  • SteamId: 12
  • BattleNetId: 14
  • StadiaId: 16
  • TwitchId: 18
  • EgsId: 20

User.Models.GetCredentialTypesForAccountResponse

Type: object
Object Properties
credentialType
Type: byte
credentialDisplayName
Type: string
isPublic
Type: boolean
credentialAsString
Type: string

Config.UserTheme

Type: object
Object Properties
userThemeId
Type: int32
userThemeName
Type: string
userThemeDescription
Type: string

User.UserMembershipData

Type: object
Object Properties
destinyMemberships
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)
Type: array
Array Contents: GroupsV2.GroupUserInfoCard
primaryMembershipId
Nullable
If this property is populated, it will have the membership ID of the account considered to be "primary" in this user's cross save relationship.

If null, this user has no cross save relationship, nor primary account.
Type: int64
bungieNetUser

GroupsV2.GroupUserInfoCard

Type: object
Object Properties
LastSeenDisplayName
This will be the display name the clan server last saw the user as. If the account is an active cross save override, this will be the display name to use. Otherwise, this will match the displayName property.
Type: string
LastSeenDisplayNameType
The platform of the LastSeenDisplayName
Type: int32
supplementalDisplayName
A platform specific additional display name - ex: psn Real Name, bnet Unique Name, etc.
Type: string
iconPath
URL the Icon if available.
Type: string
crossSaveOverride
If there is a cross save override in effect, this value will tell you the type that is overridding this one.
Type: int32
applicableMembershipTypes
The list of Membership Types indicating the platforms on which this Membership can be used.

Not in Cross Save = its original membership type. Cross Save Primary = Any membership types it is overridding, and its original membership type Cross Save Overridden = Empty list
Type: array
Array Contents: int32
isPublic
If True, this is a public user membership.
Type: boolean
membershipType
Type of the membership. Not necessarily the native type.
Type: int32
membershipId
Membership ID as they user is known in the Accounts service
Type: int64
displayName
Display Name the player has chosen for themselves. The display name is optional when the data type is used as input to a platform API.
Type: string
bungieGlobalDisplayName
The bungie global display name, if set.
Type: string
bungieGlobalDisplayNameCode
Nullable
The bungie global display name code, if set.
Type: int16

User.HardLinkedUserMembership

Type: object
Object Properties
membershipType
Type: int32
membershipId
Type: int64
CrossSaveOverriddenType
Type: int32
CrossSaveOverriddenMembershipId
Nullable
Type: int64

User.UserSearchResponse

Type: object
Object Properties
searchResults
Type: array
page
Type: int32
hasMore
Type: boolean

User.UserSearchResponseDetail

Type: object
Object Properties
bungieGlobalDisplayName
Type: string
bungieGlobalDisplayNameCode
Nullable
Type: int16
bungieNetMembershipId
Nullable
Type: int64
destinyMemberships
Type: array
Array Contents: User.UserInfoCard

User.UserSearchPrefixRequest

Type: object
Object Properties
displayNamePrefix
Type: string

Content.Models.ContentTypeDescription

Type: object
Object Properties
cType
Type: string
name
Type: string
contentDescription
Type: string
previewImage
Type: string
priority
Type: int32
reminder
Type: string
properties
Type: array
tagMetadata
Type: array
tagMetadataItems
Type: object
Dictionary Contents: Content.Models.TagMetadataItem
Dictionary Key Type: string
usageExamples
Type: array
Array Contents: string
showInContentEditor
Type: boolean
typeOf
Type: string
bindIdentifierToProperty
Type: string
boundRegex
Type: string
forceIdentifierBinding
Type: boolean
allowComments
Type: boolean
autoEnglishPropertyFallback
Type: boolean
bulkUploadable
Type: boolean
previews
Type: array
suppressCmsPath
Type: boolean
propertySections
Type: array

Content.Models.ContentTypeProperty

Type: object
Object Properties
name
Type: string
rootPropertyName
Type: string
readableName
Type: string
value
Type: string
propertyDescription
Type: string
localizable
Type: boolean
fallback
Type: boolean
enabled
Type: boolean
order
Type: int32
visible
Type: boolean
isTitle
Type: boolean
required
Type: boolean
maxLength
Type: int32
maxByteLength
Type: int32
maxFileSize
Type: int32
regexp
Type: string
validateAs
Type: string
rssAttribute
Type: string
visibleDependency
Type: string
visibleOn
Type: string
datatype
Type: int32
attributes
Type: object
Dictionary Contents: string
Dictionary Key Type: string
childProperties
Type: array
contentTypeAllowed
Type: string
bindToProperty
Type: string
boundRegex
Type: string
representationSelection
Type: object
Dictionary Contents: string
Dictionary Key Type: string
defaultValues
Type: array
isExternalAllowed
Type: boolean
propertySection
Type: string
weight
Type: int32
entitytype
Type: string
isCombo
Type: boolean
suppressProperty
Type: boolean
legalContentTypes
Type: array
Array Contents: string
representationValidationString
Type: string
minWidth
Type: int32
maxWidth
Type: int32
minHeight
Type: int32
maxHeight
Type: int32
isVideo
Type: boolean
isImage
Type: boolean

Content.Models.ContentPropertyDataTypeEnum

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Plaintext: 1
  • Html: 2
  • Dropdown: 3
  • List: 4
  • Json: 5
  • Content: 6
  • Representation: 7
  • Set: 8
  • File: 9
  • FolderSet: 10
  • Date: 11
  • MultilinePlaintext: 12
  • DestinyContent: 13
  • Color: 14

Content.Models.ContentTypeDefaultValue

Type: object
Object Properties
whenClause
Type: string
whenValue
Type: string
defaultValue
Type: string

Content.Models.TagMetadataDefinition

Type: object
Object Properties
description
Type: string
order
Type: int32
items
Type: array
datatype
Type: string
name
Type: string
isRequired
Type: boolean

Content.Models.TagMetadataItem

Type: object
Object Properties
description
Type: string
tagText
Type: string
groups
Type: array
Array Contents: string
isDefault
Type: boolean
name
Type: string

Content.Models.ContentPreview

Type: object
Object Properties
name
Type: string
path
Type: string
itemInSet
Type: boolean
setTag
Type: string
setNesting
Type: int32
useSetId
Type: int32

Content.Models.ContentTypePropertySection

Type: object
Object Properties
name
Type: string
readableName
Type: string
collapsed
Type: boolean

Content.ContentItemPublicContract

Type: object
Object Properties
contentId
Type: int64
cType
Type: string
cmsPath
Type: string
creationDate
Type: date-time
modifyDate
Type: date-time
allowComments
Type: boolean
hasAgeGate
Type: boolean
minimumAge
Type: int32
ratingImagePath
Type: string
author
autoEnglishPropertyFallback
Type: boolean
properties
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.

As 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
Dictionary Contents: object
Dictionary Key Type: string
representations
Type: array
tags
NOTE: Tags will always be lower case.
Type: array
Array Contents: string
commentSummary

Content.ContentRepresentation

Type: object
Object Properties
name
Type: string
path
Type: string
validationString
Type: string

Content.CommentSummary

Type: object
Object Properties
topicId
Type: int64
commentCount
Type: int32

Queries.SearchResult

Type: object
Object Properties
totalResults
Type: int32
hasMore
Type: boolean
query
replacementContinuationToken
Type: string
useTotalResults
If useTotalResults is true, then totalResults represents an accurate count.

If False, it does not, and may be estimated/only the size of the current page.

Either way, you should probably always only trust hasMore.

This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one.
Type: boolean

Queries.PagedQuery

Type: object
Object Properties
itemsPerPage
Type: int32
currentPage
Type: int32
requestContinuationToken
Type: string

SearchResultOfContentItemPublicContract

Type: object
Object Properties
results
Type: array
totalResults
Type: int32
hasMore
Type: boolean
query
replacementContinuationToken
Type: string
useTotalResults
If useTotalResults is true, then totalResults represents an accurate count.

If False, it does not, and may be estimated/only the size of the current page.

Either way, you should probably always only trust hasMore.

This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one.
Type: boolean

Content.NewsArticleRssResponse

Type: object
Object Properties
CurrentPaginationToken
Type: int32
NextPaginationToken
Nullable
Type: int32
ResultCountThisPage
Type: int32
NewsArticles
Type: array
Array Contents: Content.NewsArticleRssItem
CategoryFilter
Type: string
PagerAction
Type: string

Content.NewsArticleRssItem

Type: object
Object Properties
Title
Type: string
Link
Type: string
PubDate
Type: date-time
UniqueIdentifier
Type: string
Description
Type: string
HtmlContent
Type: string
ImagePath
Type: string
OptionalMobileImagePath
Type: string

Forum.ForumTopicsCategoryFiltersEnum

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Links: 1
  • Questions: 2
  • AnsweredQuestions: 4
  • Media: 8
  • TextOnly: 16
  • Announcement: 32
  • BungieOfficial: 64
  • Polls: 128

Forum.ForumTopicsQuickDateEnum

Enumeration
Type: int32
Valid Enum Values
  • All: 0
  • LastYear: 1
  • LastMonth: 2
  • LastWeek: 3
  • LastDay: 4

Forum.ForumTopicsSortEnum

Enumeration
Type: byte
Valid Enum Values
  • Default: 0
  • LastReplied: 1
  • MostReplied: 2
  • Popularity: 3
  • Controversiality: 4
  • Liked: 5
  • HighestRated: 6
  • MostUpvoted: 7

Forum.PostResponse

Type: object
Object Properties
lastReplyTimestamp
Type: date-time
IsPinned
Type: boolean
urlMediaType
Type: int32
thumbnail
Type: string
popularity
Type: int32
isActive
Type: boolean
isAnnouncement
Type: boolean
userRating
Type: int32
userHasRated
Type: boolean
userHasMutedPost
Type: boolean
latestReplyPostId
Type: int64
latestReplyAuthorId
Type: int64
ignoreStatus
locale
Type: string

Forum.ForumMediaType

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Image: 1
  • Video: 2
  • Youtube: 3

Forum.ForumPostPopularity

Enumeration
Type: int32
Valid Enum Values
  • Empty: 0
  • Default: 1
  • Discussed: 2
  • CoolStory: 3
  • HeatingUp: 4
  • Hot: 5

Forums.ForumPostCategoryEnums

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • TextOnly: 1
  • Media: 2
  • Link: 4
  • Poll: 8
  • Question: 16
  • Answered: 32
  • Announcement: 64
  • ContentComment: 128
  • BungieOfficial: 256
  • NinjaOfficial: 512
  • Recruitment: 1024

Forums.ForumFlagsEnum

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • BungieStaffPost: 1
  • ForumNinjaPost: 2
  • ForumMentorPost: 4
  • TopicBungieStaffPosted: 8
  • TopicBungieVolunteerPosted: 16
  • QuestionAnsweredByBungie: 32
  • QuestionAnsweredByNinja: 64
  • CommunityContent: 128

SearchResultOfPostResponse

Type: object
Object Properties
results
Type: array
Array Contents: Forum.PostResponse
totalResults
Type: int32
hasMore
Type: boolean
query
replacementContinuationToken
Type: string
useTotalResults
If useTotalResults is true, then totalResults represents an accurate count.

If False, it does not, and may be estimated/only the size of the current page.

Either way, you should probably always only trust hasMore.

This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one.
Type: boolean

Forum.PostSearchResponse

Type: object
Object Properties
relatedPosts
Type: array
Array Contents: Forum.PostResponse
authors
Type: array
Array Contents: User.GeneralUser
groups
Type: array
Array Contents: GroupsV2.GroupResponse
searchedTags
Type: array
polls
Type: array
Array Contents: Forum.PollResponse
recruitmentDetails
Type: array
availablePages
Nullable
Type: int32
results
Type: array
Array Contents: Forum.PostResponse
totalResults
Type: int32
hasMore
Type: boolean
query
replacementContinuationToken
Type: string
useTotalResults
If useTotalResults is true, then totalResults represents an accurate count.

If False, it does not, and may be estimated/only the size of the current page.

Either way, you should probably always only trust hasMore.

This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one.
Type: boolean

GroupsV2.GroupResponse

Type: object
Object Properties
detail
founder
alliedIds
Type: array
Array Contents: int64
parentGroup
allianceStatus
Type: int32
groupJoinInviteCount
Type: int32
currentUserMembershipsInactiveForDestiny
A convenience property that indicates if every membership you (the current user) have that is a part of this group are part of an account that is considered inactive - for example, overridden accounts in Cross Save.
Type: boolean
currentUserMemberMap
This property will be populated if the authenticated user is a member of the group. Note that because of account linking, a user can sometimes be part of a clan more than once. As such, this returns the highest member type available.
Type: object
Dictionary Contents: GroupsV2.GroupMember
Dictionary Key Type: int32
currentUserPotentialMemberMap
This property will be populated if the authenticated user is an applicant or has an outstanding invitation to join. Note that because of account linking, a user can sometimes be part of a clan more than once.
Type: object
Dictionary Contents: GroupsV2.GroupPotentialMember
Dictionary Key Type: int32

GroupsV2.GroupV2

Type: object
Object Properties
groupId
Type: int64
name
Type: string
groupType
Type: int32
membershipIdCreated
Type: int64
creationDate
Type: date-time
modificationDate
Type: date-time
about
Type: string
tags
Type: array
Array Contents: string
memberCount
Type: int32
isPublic
Type: boolean
isPublicTopicAdminOnly
Type: boolean
motto
Type: string
allowChat
Type: boolean
isDefaultPostPublic
Type: boolean
chatSecurity
Type: int32
locale
Type: string
avatarImageIndex
Type: int32
homepage
Type: int32
membershipOption
Type: int32
defaultPublicity
Type: int32
theme
Type: string
bannerPath
Type: string
avatarPath
Type: string
conversationId
Type: int64
enableInvitationMessagingForAdmins
Type: boolean
banExpireDate
Nullable
Type: date-time
features
remoteGroupId
Nullable
Type: int64

GroupsV2.GroupType

Enumeration
Type: int32
Valid Enum Values
  • General: 0
  • Clan: 1

GroupsV2.ChatSecuritySetting

Enumeration
Type: int32
Valid Enum Values
  • Group: 0
  • Admins: 1

GroupsV2.GroupHomepage

Enumeration
Type: int32
Valid Enum Values
  • Wall: 0
  • Forum: 1
  • AllianceForum: 2

GroupsV2.MembershipOption

Enumeration
Type: int32
Valid Enum Values
  • Reviewed: 0
  • Open: 1
  • Closed: 2

GroupsV2.GroupPostPublicity

Enumeration
Type: int32
Valid Enum Values
  • Public: 0
  • Alliance: 1
  • Private: 2

GroupsV2.GroupFeatures

Type: object
Object Properties
maximumMembers
Type: int32
maximumMembershipsOfGroupType
Maximum number of groups of this type a typical membership may join. For example, a user may join about 50 General groups with their Bungie.net account. They may join one clan per Destiny membership.
Type: int32
capabilities
Type: int32
membershipTypes
Type: array
Array Contents: int32
invitePermissionOverride
Minimum Member Level allowed to invite new members to group

Always Allowed: Founder, Acting Founder

True means admins have this power, false means they don't

Default is false for clans, true for groups.
Type: boolean
updateCulturePermissionOverride
Minimum Member Level allowed to update group culture

Always Allowed: Founder, Acting Founder

True means admins have this power, false means they don't

Default is false for clans, true for groups.
Type: boolean
hostGuidedGamePermissionOverride
Minimum Member Level allowed to host guided games

Always Allowed: Founder, Acting Founder, Admin

Allowed Overrides: None, Member, Beginner

Default is Member for clans, None for groups, although this means nothing for groups.
Type: int32
updateBannerPermissionOverride
Minimum Member Level allowed to update banner

Always Allowed: Founder, Acting Founder

True means admins have this power, false means they don't

Default is false for clans, true for groups.
Type: boolean
joinLevel
Level to join a member at when accepting an invite, application, or joining an open clan

Default is Beginner.
Type: int32

GroupsV2.Capabilities

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Leaderboards: 1
  • Callsign: 2
  • OptionalConversations: 4
  • ClanBanner: 8
  • D2InvestmentData: 16
  • Tags: 32
  • Alliances: 64

BungieMembershipType[]

Type: array
Array Contents: int32

GroupsV2.HostGuidedGamesPermissionLevel

Enumeration
Used for setting the guided game permission level override (admins and founders can always host guided games).
Type: int32
Valid Enum Values
  • None: 0
  • Beginner: 1
  • Member: 2

GroupsV2.RuntimeGroupMemberType

Enumeration
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.
Type: int32
Valid Enum Values
  • None: 0
  • Beginner: 1
  • Member: 2
  • Admin: 3
  • ActingFounder: 4
  • Founder: 5

GroupsV2.GroupV2ClanInfo

This contract contains clan-specific group information. It does not include any investment data.
Type: object
Object Properties
clanCallsign
Type: string
clanBannerData

GroupsV2.ClanBanner

Type: object
Object Properties
decalId
Type: uint32
decalColorId
Type: uint32
decalBackgroundColorId
Type: uint32
gonfalonId
Type: uint32
gonfalonColorId
Type: uint32
gonfalonDetailId
Type: uint32
gonfalonDetailColorId
Type: uint32

GroupsV2.GroupV2ClanInfoAndInvestment

The same as GroupV2ClanInfo, but includes any investment data.
Type: object
Object Properties
d2ClanProgressions
Type: object
Dictionary Contents: Destiny.DestinyProgression
Dictionary Key Type: uint32
clanCallsign
Type: string
clanBannerData

Destiny.DestinyProgression

Information about a current character's status with a Progression. A progression is a value that can increase with activity and has levels. Think Character Level and Reputation Levels. Combine this "live" data with the related DestinyProgressionDefinition for a full picture of the Progression.
Type: object
Object Properties
progressionHash
Mapped to Definition
The hash identifier of the Progression in question. Use it to look up the DestinyProgressionDefinition in static data.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyProgressionDefinition
dailyProgress
The amount of progress earned today for this progression.
Type: int32
dailyLimit
If this progression has a daily limit, this is that limit.
Type: int32
weeklyProgress
The amount of progress earned toward this progression in the current week.
Type: int32
weeklyLimit
If this progression has a weekly limit, this is that limit.
Type: int32
currentProgress
This is the total amount of progress obtained overall for this progression (for instance, the total amount of Character Level experience earned)
Type: int32
level
This is the level of the progression (for instance, the Character Level).
Type: int32
levelCap
This is the maximum possible level you can achieve for this progression (for example, the maximum character level obtainable)
Type: int32
stepIndex
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.)
Type: int32
progressToNextLevel
The amount of progression (i.e. "Experience") needed to reach the next level of this Progression. Jeez, progression is such an overloaded word.
Type: int32
nextLevelAt
The total amount of progression (i.e. "Experience") needed in order to reach the next level.
Type: int32
currentResetCount
Nullable
The number of resets of this progression you've executed this season, if applicable to this progression.
Type: int32
seasonResets
Information about historical resets of this progression, if there is any data for it.
Type: array
rewardItemStates
Information about historical rewards for this progression, if there is any data for it.
Type: array
Array Contents: int32

Destiny.DestinyProgressionResetEntry

Represents a season and the number of resets you had in that season.

We do not necessarily - even for progressions with resets - track it over all seasons. So be careful and check the season numbers being returned.
Type: object
Object Properties
season
Type: int32
resets
Type: int32

Destiny.DestinyProgressionRewardItemState

Enumeration
Represents the different states a progression reward item can be in.
Type: int32
Valid Enum Values
  • None: 0
  • Invisible: 1
    If this is set, the reward should be hidden.
  • Earned: 2
    If this is set, the reward has been earned.
  • Claimed: 4
    If this is set, the reward has been claimed.
  • ClaimAllowed: 8
    If this is set, the reward is allowed to be claimed by this Character. An item can be earned but still can't be claimed in certain circumstances, like if it's only allowed for certain subclasses. It also might not be able to be claimed if you already claimed it!

Destiny.Definitions.DestinyDefinition

Provides common properties for destiny definitions.
Type: object
Object Properties
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyProgressionDefinition

Mobile Manifest Entity
A "Progression" in Destiny is best explained by an example.

A Character's "Level" is a progression: it has Experience that can be earned, levels that can be gained, and is evaluated and displayed at various points in the game. A Character's "Faction Reputation" is also a progression for much the same reason.

Progression is used by a variety of systems, and the definition of a Progression will generally only be useful if combining with live data (such as a character's DestinyCharacterProgressionComponent.progressions property, which holds that character's live Progression states).

Fundamentally, a Progression measures your "Level" by evaluating the thresholds in its Steps (one step per level, except for the last step which can be repeated indefinitely for "Levels" that have no ceiling) against the total earned "progression points"/experience. (for simplicity purposes, we will henceforth refer to earned progression points as experience, though it need not be a mechanic that in any way resembles Experience in a traditional sense).

Earned experience is calculated in a variety of ways, determined by the Progression's scope. These go from looking up a stored value to performing exceedingly obtuse calculations. This is why we provide live data in DestinyCharacterProgressionComponent.progressions, so you don't have to worry about those.
Mapped to Mobile Manifest Table: Progressions
Type: object
Object Properties
scope
The "Scope" of the progression indicates the source of the progression's live data.

See 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: int32
repeatLastStep
If this is True, then the progression doesn't have a maximum level.
Type: boolean
source
If there's a description of how to earn this progression in the local config, this will be that localized description.
Type: string
steps
Progressions are divided into Steps, which roughly equate to "Levels" in the traditional sense of a Progression. Notably, the last step can be repeated indefinitely if repeatLastStep is true, meaning that the calculation for your level is not as simple as comparing your current progress to the max progress of the steps.

These and more calculations are done for you if you grab live character progression data, such as in the DestinyCharacterProgressionComponent.
Type: array
visible
If true, the Progression is something worth showing to users.

If false, BNet isn't going to show it. But that doesn't mean you can't. We're all friends here.
Type: boolean
factionHash
Nullable Mapped to Definition
If the value exists, this is the hash identifier for the Faction that owns this Progression.

This is purely for convenience, if you're looking at a progression and want to know if and who it's related to in terms of Faction Reputation.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyFactionDefinition
color
The #RGB string value for the color related to this progression, if there is one.
Type: object
rankIcon
For progressions that have it, this is the rank icon we use in the Companion, displayed above the progressions' rank value.
Type: string
rewardItems
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition

Many Destiny*Definition contracts - the "first order" entities of Destiny that have their own tables in the Manifest Database - also have displayable information. This is the base class for that display information.
Type: object
Object Properties
description
Type: string
name
Type: string
icon
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.

But usually, it will be a small square image that you can use as... well, an icon.

They are currently represented as 96px x 96px images.
Type: string
iconSequences
highResIcon
If this item has a high-res icon (at least for now, many things won't), then the path to that icon will be here.
Type: string
hasIcon
Type: boolean

Destiny.Definitions.Common.DestinyIconSequenceDefinition

Type: object
Object Properties
frames
Type: array
Array Contents: string

Destiny.Definitions.DestinyProgressionDisplayPropertiesDefinition

Type: object
Object Properties
displayUnitsName
When progressions show your "experience" gained, that bar has units (i.e. "Experience", "Bad Dudes Snuffed Out", whatever). This is the localized string for that unit of measurement.
Type: string
description
Type: string
name
Type: string
icon
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.

But usually, it will be a small square image that you can use as... well, an icon.

They are currently represented as 96px x 96px images.
Type: string
iconSequences
highResIcon
If this item has a high-res icon (at least for now, many things won't), then the path to that icon will be here.
Type: string
hasIcon
Type: boolean

Destiny.DestinyProgressionScope

Enumeration
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
Type: int32
Valid Enum Values
  • Account: 0
  • Character: 1
  • Clan: 2
  • Item: 3
  • ImplicitFromEquipment: 4
  • Mapped: 5
  • MappedAggregate: 6
  • MappedStat: 7
  • MappedUnlockValue: 8

Destiny.Definitions.DestinyProgressionStepDefinition

This defines a single Step in a progression (which roughly equates to a level. See DestinyProgressionDefinition for caveats).
Type: object
Object Properties
stepName
Very rarely, Progressions will have localized text describing the Level of the progression. This will be that localized text, if it exists. Otherwise, the standard appears to be to simply show the level numerically.
Type: string
displayEffectType
This appears to be, when you "level up", whether a visual effect will display and on what entity. See DestinyProgressionStepDisplayEffect for slightly more info.
Type: int32
progressTotal
The total amount of progression points/"experience" you will need to initially reach this step. If this is the last step and the progression is repeating indefinitely (DestinyProgressionDefinition.repeatLastStep), this will also be the progress needed to level it up further by repeating this step again.
Type: int32
rewardItems
A listing of items rewarded as a result of reaching this level.
Type: array
Array Contents: Destiny.DestinyItemQuantity
icon
If this progression step has a specific icon related to it, this is the icon to show.
Type: string

Destiny.DestinyProgressionStepDisplayEffect

Enumeration
If progression is earned, this determines whether the progression shows visual effects on the character or its item - or neither.
Type: int32
Valid Enum Values
  • None: 0
  • Character: 1
  • Item: 2

Destiny.DestinyItemQuantity

Used in a number of Destiny contracts to return data about an item stack and its quantity. Can optionally return an itemInstanceId if the item is instanced - in which case, the quantity returned will be 1. If it's not... uh, let me know okay? Thanks.
Type: object
Object Properties
itemHash
Mapped to Definition
The hash identifier for the item in question. Use it to look up the item's DestinyInventoryItemDefinition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
itemInstanceId
Nullable
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.
Type: int64
quantity
The amount of the item needed/available depending on the context of where DestinyItemQuantity is being used.
Type: int32
hasConditionalVisibility
Indicates that this item quantity may be conditionally shown or hidden, based on various sources of state. For example: server flags, account state, or character progress.
Type: boolean

Destiny.Definitions.DestinyInventoryItemDefinition

Mobile Manifest Entity
So much of what you see in Destiny is actually an Item used in a new and creative way. This is the definition for Items in Destiny, which started off as just entities that could exist in your Inventory but ended up being the backing data for so much more: quests, reward previews, slots, and subclasses.

In practice, you will want to associate this data with "live" item data from a Bungie.Net Platform call: these definitions describe the item in generic, non-instanced terms: but an actual instance of an item can vary widely from these generic definitions.
Mapped to Mobile Manifest Table: Items
Type: object
Object Properties
tooltipNotifications
Tooltips that only come up conditionally for the item. Check the live data DestinyItemComponent.tooltipNotificationIndexes property for which of these should be shown at runtime.
Type: array
collectibleHash
Nullable Mapped to Definition
If this item has a collectible related to it, this is the hash identifier of that collectible entry.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Collectibles.DestinyCollectibleDefinition
iconWatermark
If available, this is the original 'active' release watermark overlay for the icon. If the item has different versions, this can be overridden by the 'display version watermark icon' from the 'quality' block. Alternatively, if there is no watermark for the version, and the item version has a power cap below the current season power cap, this can be overridden by the iconWatermarkShelved property.
Type: string
iconWatermarkShelved
If available, this is the 'shelved' release watermark overlay for the icon. If the item version has a power cap below the current season power cap, it can be treated as 'shelved', and should be shown with this 'shelved' watermark overlay.
Type: string
secondaryIcon
A secondary icon associated with the item. Currently this is used in very context specific applications, such as Emblem Nameplates.
Type: string
secondaryOverlay
Pulled from the secondary icon, this is the "secondary background" of the secondary icon. Confusing? Sure, that's why I call it "overlay" here: because as far as it's been used thus far, it has been for an optional overlay image. We'll see if that holds up, but at least for now it explains what this image is a bit better.
Type: string
secondarySpecial
Pulled from the Secondary Icon, this is the "special" background for the item. For Emblems, this is the background image used on the Details view: but it need not be limited to that for other types of items.
Type: string
backgroundColor
Sometimes, an item will have a background color. Most notably this occurs with Emblems, who use the Background Color for small character nameplates such as the "friends" view you see in-game. There are almost certainly other items that have background color as well, though I have not bothered to investigate what items have it nor what purposes they serve: use it as you will.
Type: object
screenshot
If we were able to acquire an in-game screenshot for the item, the path to that screenshot will be returned here. Note that not all items have screenshots: particularly not any non-equippable items.
Type: string
itemTypeDisplayName
The localized title/name of the item's type. This can be whatever the designers want, and has no guarantee of consistency between items.
Type: string
flavorText
Type: string
uiItemDisplayStyle
A string identifier that the game's UI uses to determine how the item should be rendered in inventory screens and the like. This could really be anything - at the moment, we don't have the time to really breakdown and maintain all the possible strings this could be, partly because new ones could be added ad hoc. But if you want to use it to dictate your own UI, or look for items with a certain display style, go for it!
Type: string
itemTypeAndTierDisplayName
It became a common enough pattern in our UI to show Item Type and Tier combined into a single localized string that I'm just going to go ahead and start pre-creating these for items.
Type: string
displaySource
In theory, it is a localized string telling you about how you can find the item. I really wish this was more consistent. Many times, it has nothing. Sometimes, it's instead a more narrative-forward description of the item. Which is cool, and I wish all properties had that data, but it should really be its own property.
Type: string
tooltipStyle
An identifier that the game UI uses to determine what type of tooltip to show for the item. These have no corresponding definitions that BNet can link to: so it'll be up to you to interpret and display your UI differently according to these styles (or ignore it).
Type: string
action
If the item can be "used", this block will be non-null, and will have data related to the action performed when using the item. (Guess what? 99% of the time, this action is "dismantle". Shocker)
Type: object
crafting
Recipe items will have relevant crafting information available here.
Type: object
inventory
If this item can exist in an inventory, this block will be non-null. In practice, every item that currently exists has one of these blocks. But note that it is not necessarily guaranteed.
Type: object
setData
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
stats
If this item can have stats (such as a weapon, armor, or vehicle), this block will be non-null and populated with the stats found on the item.
Type: object
emblemObjectiveHash
Nullable
If the item is an emblem that has a special Objective attached to it - for instance, if the emblem tracks PVP Kills, or what-have-you. This is a bit different from, for example, the Vanguard Kill Tracker mod, which pipes data into the "art channel". When I get some time, I would like to standardize these so you can get at the values they expose without having to care about what they're being used for and how they are wired up, but for now here's the raw data.
Type: uint32
equippingBlock
If this item can be equipped, this block will be non-null and will be populated with the conditions under which it can be equipped.
Type: object
translationBlock
If this item can be rendered, this block will be non-null and will be populated with rendering information.
Type: object
preview
If this item can be Used or Acquired to gain other items (for instance, how Eververse Boxes can be consumed to get items from the box), this block will be non-null and will give summary information for the items that can be acquired.
Type: object
quality
If this item can have a level or stats, this block will be non-null and will be populated with default quality (item level, "quality", and infusion) data. See the block for more details, there's often less upfront information in D2 so you'll want to be aware of how you use quality and item level on the definition level now.
Type: object
value
The conceptual "Value" of an item, if any was defined. See the DestinyItemValueBlockDefinition for more details.
Type: object
sourceData
If this item has a known source, this block will be non-null and populated with source information. Unfortunately, at this time we are not generating sources: that is some aggressively manual work which we didn't have time for, and I'm hoping to get back to at some point in the future.
Type: object
objectives
If this item has Objectives (extra tasks that can be accomplished related to the item... most frequently when the item is a Quest Step and the Objectives need to be completed to move on to the next Quest Step), this block will be non-null and the objectives defined herein.
Type: object
metrics
If this item has available metrics to be shown, this block will be non-null have the appropriate hashes defined.
Type: object
plug
If this item *is* a Plug, this will be non-null and the info defined herein. See DestinyItemPlugDefinition for more information.
Type: object
gearset
If this item has related items in a "Gear Set", this will be non-null and the relationships defined herein.
Type: object
sack
If this item is a "reward sack" that can be opened to provide other items, this will be non-null and the properties of the sack contained herein.
Type: object
sockets
If this item has any Sockets, this will be non-null and the individual sockets on the item will be defined herein.
Type: object
summary
Summary data about the item.
Type: object
talentGrid
If the item has a Talent Grid, this will be non-null and the properties of the grid defined herein. Note that, while many items still have talent grids, the only ones with meaningful Nodes still on them will be Subclass/"Build" items.
Type: object
investmentStats
If the item has stats, this block will be defined. It has the "raw" investment stats for the item. These investment stats don't take into account the ways that the items can spawn, nor do they take into account any Stat Group transformations. I have retained them for debugging purposes, but I do not know how useful people will find them.
Type: array
perks
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.
Type: array
loreHash
Nullable Mapped to Definition
If the item has any related Lore (DestinyLoreDefinition), this will be the hash identifier you can use to look up the lore definition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Lore.DestinyLoreDefinition
summaryItemHash
Nullable Mapped to Definition
There are times when the game will show you a "summary/vague" version of an item - such as a description of its type represented as a DestinyInventoryItemDefinition - rather than display the item itself.

This happens sometimes when summarizing possible rewards in a tooltip. This is the item displayed instead, if it exists.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
animations
If any animations were extracted from game content for this item, these will be the definitions of those animations.
Type: array
allowActions
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
links
If we added any help or informational URLs about this item, these will be those links.
Type: array
Array Contents: Links.HyperlinkReference
doesPostmasterPullHaveSideEffects
The boolean will indicate to us (and you!) whether something *could* happen when you transfer this item from the Postmaster that might be considered a "destructive" action.

It is not feasible currently to tell you (or ourelves!) in a consistent way whether this *will* actually cause a destructive action, so we are playing it safe: if it has the potential to do so, we will not allow it to be transferred from the Postmaster by default. You will need to check for this flag before transferring an item from the Postmaster, or else you'll end up receiving an error.
Type: boolean
nonTransferrable
The intrinsic transferability of an item.

I hate that this boolean is negative - but there's a reason.

Just because an item is intrinsically transferrable doesn't mean that it can be transferred, and we don't want to imply that this is the only source of that transferability.
Type: boolean
itemCategoryHashes
Mapped to Definition
BNet attempts to make a more formal definition of item "Categories", as defined by DestinyItemCategoryDefinition. This is a list of all Categories that we were able to algorithmically determine that this item is a member of. (for instance, that it's a "Weapon", that it's an "Auto Rifle", etc...)

The algorithm for these is, unfortunately, volatile. If you believe you see a miscategorized item, please let us know on the Bungie API forums.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyItemCategoryDefinition
specialItemType
In Destiny 1, we identified some items as having particular categories that we'd like to know about for various internal logic purposes. These are defined in SpecialItemType, and while these days the itemCategoryHashes are the preferred way of identifying types, we have retained this enum for its convenience.
Type: int32
itemType
A value indicating the "base" the of the item. This enum is a useful but dramatic oversimplification of what it means for an item to have a "Type". Still, it's handy in many situations.

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

itemCategoryHashes are the preferred way of identifying types, we have retained this enum for its convenience.
Type: int32
classType
We run a similarly weak-sauce algorithm to try and determine whether an item is restricted to a specific class. If we find it to be restricted in such a way, we set this classType property to match the class' enumeration value so that users can easily identify class restricted items.

If you see a mis-classed item, please inform the developers in the Bungie API forum.
Type: int32
breakerType
Some weapons and plugs can have a "Breaker Type": a special ability that works sort of like damage type vulnerabilities. This is (almost?) always set on items by plugs.
Type: int32
breakerTypeHash
Nullable Mapped to Definition
Since we also have a breaker type definition, this is the hash for that breaker type for your convenience. Whether you use the enum or hash and look up the definition depends on what's cleanest for your code.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.BreakerTypes.DestinyBreakerTypeDefinition
equippable
If true, then you will be allowed to equip the item if you pass its other requirements.

This being false means that you cannot equip the item under any circumstances.
Type: boolean
damageTypeHashes
Mapped to Definition
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.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyDamageTypeDefinition
damageTypes
This is the list of all damage types that we know ahead of time the item can take on. Unfortunately, this does not preclude the possibility of something funky happening to give the item a damage type that cannot be predicted beforehand: for example, if some designer decides to create arbitrary non-reusable plugs that cause damage type to change.

This damage type prediction will only use the following to determine potential damage types:

- Intrinsic perks

- Talent Node perks

- Known, reusable plugs for sockets
Type: array
Array Contents: int32
defaultDamageType
If the item has a damage type that could be considered to be default, it will be populated here.

For various upsetting reasons, it's surprisingly cumbersome to figure this out. I hope you're happy.
Type: int32
defaultDamageTypeHash
Nullable Mapped to Definition
Similar to defaultDamageType, but represented as the hash identifier for a DestinyDamageTypeDefinition.

I will likely regret leaving in the enumeration versions of these properties, but for now they're very convenient.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyDamageTypeDefinition
seasonHash
Nullable Mapped to Definition
If this item is related directly to a Season of Destiny, this is the hash identifier for that season.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Seasons.DestinySeasonDefinition
isWrapper
If true, this is a dummy vendor-wrapped item template. Items purchased from Eververse will be "wrapped" by one of these items so that we can safely provide refund capabilities before the item is "unwrapped".
Type: boolean
traitIds
Traits are metadata tags applied to this item. For example: armor slot, weapon type, foundry, faction, etc. These IDs come from the game and don't map to any content, but should still be useful.
Type: array
Array Contents: string
traitHashes
These are the corresponding trait definition hashes for the entries in traitIds.
Type: array
Array Contents: uint32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyItemTooltipNotification

Type: object
Object Properties
displayString
Type: string
displayStyle
Type: string

Destiny.Misc.DestinyColor

Represents a color whose RGBA values are all represented as values between 0 and 255.
Type: object
Object Properties
red
Type: byte
green
Type: byte
blue
Type: byte
alpha
Type: byte

Destiny.Definitions.DestinyItemActionBlockDefinition

If an item can have an action performed on it (like "Dismantle"), it will be defined here if you care.
Type: object
Object Properties
verbName
Localized text for the verb of the action being performed.
Type: string
verbDescription
Localized text describing the action being performed.
Type: string
isPositive
The content has this property, however it's not entirely clear how it is used.
Type: boolean
overlayScreenName
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
overlayIcon
The icon associated with the overlay screen for the action, if any.
Type: string
requiredCooldownSeconds
The number of seconds to delay before allowing this action to be performed again.
Type: int32
requiredItems
If the action requires other items to exist or be destroyed, this is the list of those items and requirements.
Type: array
progressionRewards
If performing this action earns you Progression, this is the list of progressions and values granted for those progressions by performing this action.
Type: array
actionTypeLabel
The internal identifier for the action.
Type: string
requiredLocation
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
requiredCooldownHash
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.
Type: uint32
deleteOnAction
If true, the item is deleted when the action completes.
Type: boolean
consumeEntireStack
If true, the entire stack is deleted when the action completes.
Type: boolean
useOnAcquire
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

Destiny.Definitions.DestinyItemActionRequiredItemDefinition

The definition of an item and quantity required in a character's inventory in order to perform an action.
Type: object
Object Properties
count
The minimum quantity of the item you have to have.
Type: int32
itemHash
Mapped to Definition
The hash identifier of the item you need to have. Use it to look up the DestinyInventoryItemDefinition for more info.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
deleteOnAction
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

Destiny.Definitions.DestinyProgressionRewardDefinition

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.

Note 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.
Type: object
Object Properties
progressionMappingHash
Mapped to Definition
The hash identifier of the DestinyProgressionMappingDefinition that contains the progressions for which experience should be applied.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyProgressionMappingDefinition
amount
The amount of experience to give to each of the mapped progressions.
Type: int32
applyThrottles
If true, the game's internal mechanisms to throttle progression should be applied.
Type: boolean

Destiny.Definitions.DestinyProgressionMappingDefinition

Aggregations of multiple progressions.

These are used to apply rewards to multiple progressions at once. They can sometimes have human readable data as well, but only extremely sporadically.
Type: object
Object Properties
displayProperties
Infrequently defined in practice. Defer to the individual progressions' display properties.
Type: object
displayUnits
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
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyItemCraftingBlockDefinition

If an item can have an action performed on it (like "Dismantle"), it will be defined here if you care.
Type: object
Object Properties
outputItemHash
Mapped to Definition
A reference to the item definition that is created when crafting with this 'recipe' item.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
requiredSocketTypeHashes
Mapped to Definition
A list of socket type hashes that describes which sockets are required for crafting with this recipe.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Sockets.DestinySocketTypeDefinition
failedRequirementStrings
Type: array
Array Contents: string
baseMaterialRequirements
Nullable Mapped to Definition
A reference to the base material requirements for crafting with this recipe.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyMaterialRequirementSetDefinition
bonusPlugs
A list of 'bonus' socket plugs that may be available if certain requirements are met.
Type: array

Destiny.Definitions.DestinyItemCraftingBlockBonusPlugDefinition

Type: object
Object Properties
socketTypeHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Sockets.DestinySocketTypeDefinition
plugItemHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition

Destiny.Definitions.Sockets.DestinySocketTypeDefinition

Mobile Manifest Entity
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.

See DestinyInventoryItemDefinition for more information about Socketed items and Plugs.
Mapped to Mobile Manifest Table: SocketTypes
Type: object
Object Properties
displayProperties
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
insertAction
Defines what happens when a plug is inserted into sockets of this type.
Type: object
plugWhitelist
A list of Plug "Categories" that are allowed to be plugged into sockets of this type.

These should be compared against a given plug item's DestinyInventoryItemDefinition.plug.plugCategoryHash, which indicates the plug item's category.

If the plug's category matches any whitelisted plug, or if the whitelist is empty, it is allowed to be inserted.
Type: array
socketCategoryHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Sockets.DestinySocketCategoryDefinition
visibility
Sometimes a socket isn't visible. These are some of the conditions under which sockets of this type are not visible. Unfortunately, the truth of visibility is much, much more complex. Best to rely on the live data for whether the socket is visible and enabled.
Type: int32
alwaysRandomizeSockets
Type: boolean
isPreviewEnabled
Type: boolean
hideDuplicateReusablePlugs
Type: boolean
overridesUiAppearance
This property indicates if the socket type determines whether Emblem icons and nameplates should be overridden by the inserted plug item's icon and nameplate.
Type: boolean
avoidDuplicatesOnInitialization
Type: boolean
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Sockets.DestinyInsertPlugActionDefinition

Data related to what happens while a plug is being inserted, mostly for UI purposes.
Type: object
Object Properties
actionExecuteSeconds
How long it takes for the Plugging of the item to be completed once it is initiated, if you care.
Type: int32
actionType
The type of action being performed when you act on this Socket Type. The most common value is "insert plug", but there are others as well (for instance, a "Masterwork" socket may allow for Re-initialization, and an Infusion socket allows for items to be consumed to upgrade the item)
Type: int32

Destiny.SocketTypeActionType

Enumeration
Indicates the type of actions that can be performed
Type: int32
Valid Enum Values
  • InsertPlug: 0
  • InfuseItem: 1
  • ReinitializeSocket: 2

Destiny.Definitions.Sockets.DestinyPlugWhitelistEntryDefinition

Defines a plug "Category" that is allowed to be plugged into a socket of this type.

This should be compared against a given plug item's DestinyInventoryItemDefinition.plug.plugCategoryHash, which indicates the plug item's category.
Type: object
Object Properties
categoryHash
The hash identifier of the Plug Category to compare against the plug item's plug.plugCategoryHash.

Note that this does NOT relate to any Definition in itself, it is only used for comparison purposes.
Type: uint32
categoryIdentifier
The string identifier for the category, which is here mostly for debug purposes.
Type: string
reinitializationPossiblePlugHashes
The list of all plug items (DestinyInventoryItemDefinition) that the socket may randomly be populated with when reinitialized.

Which ones you should actually show are determined by the plug being inserted into the socket, and the socket’s type.

When you inspect the plug that could go into a Masterwork Socket, look up the socket type of the socket being inspected and find the DestinySocketTypeDefinition.

Then, look at the Plugs that can fit in that socket. Find the Whitelist in the DestinySocketTypeDefinition that matches the plug item’s categoryhash.

That whitelist entry will potentially have a new “reinitializationPossiblePlugHashes” property.If it does, that means we know what it will roll if you try to insert this plug into this socket.
Type: array
Array Contents: uint32

Destiny.DestinySocketVisibility

Enumeration
Type: int32
Valid Enum Values
  • Visible: 0
  • Hidden: 1
  • HiddenWhenEmpty: 2
  • HiddenIfNoPlugsAvailable: 3

Destiny.Definitions.Sockets.DestinySocketTypeScalarMaterialRequirementEntry

Type: object
Object Properties
currencyItemHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
scalarValue
Type: int32

Destiny.Definitions.Sockets.DestinySocketCategoryDefinition

Mobile Manifest Entity
Sockets on an item are organized into Categories visually.

You can find references to the socket category defined on an item's DestinyInventoryItemDefinition.sockets.socketCategories property.

This has the display information for rendering the categories' header, and a hint for how the UI should handle showing this category.

The shitty thing about this, however, is that the socket categories' UI style can be overridden by the item's UI style. For instance, the Socket Category used by Emote Sockets says it's "consumable," but that's a lie: they're all reusable, and overridden by the detail UI pages in ways that we can't easily account for in the API.

As a result, I will try to compile these rules into the individual sockets on items, and provide the best hint possible there through the plugSources property. In the future, I may attempt to use this information in conjunction with the item to provide a more usable UI hint on the socket layer, but for now improving the consistency of plugSources is the best I have time to provide. (See https://github.com/Bungie-net/api/issues/522 for more info)
Mapped to Mobile Manifest Table: SocketCategories
Type: object
Object Properties
uiCategoryStyle
A string hinting to the game's UI system about how the sockets in this category should be displayed.

BNet 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.
Type: uint32
categoryStyle
Same as uiCategoryStyle, but in a more usable enumeration form.
Type: int32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.DestinySocketCategoryStyle

Enumeration
Represents the possible and known UI styles used by the game for rendering Socket Categories.
Type: int32
Valid Enum Values
  • Unknown: 0
  • Reusable: 1
  • Consumable: 2
  • Unlockable: 3
  • Intrinsic: 4
  • EnergyMeter: 5
  • LargePerk: 6
  • Abilities: 7
  • Supers: 8

Destiny.Definitions.DestinyMaterialRequirementSetDefinition

Mobile Manifest Entity
Represent a set of material requirements: Items that either need to be owned or need to be consumed in order to perform an action.

A variety of other entities refer to these as gatekeepers and payments for actions that can be performed in game.
Mapped to Mobile Manifest Table: MaterialRequirementSets
Type: object
Object Properties
materials
The list of all materials that are required.
Type: array
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyMaterialRequirement

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.
Type: object
Object Properties
itemHash
Mapped to Definition
The hash identifier of the material required. Use it to look up the material's DestinyInventoryItemDefinition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
deleteOnAction
If True, the material will be removed from the character's inventory when the action is performed.
Type: boolean
count
The amount of the material required.
Type: int32
countIsConstant
If true, the material requirement count value is constant. Since The Witch Queen expansion, some material requirement counts can be dynamic and will need to be returned with an API call.
Type: boolean
omitFromRequirements
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

Destiny.Definitions.DestinyItemInventoryBlockDefinition

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.
Type: object
Object Properties
stackUniqueLabel
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
maxStackSize
The maximum quantity of this item that can exist in a stack.
Type: int32
bucketTypeHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryBucketDefinition
recoveryBucketTypeHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryBucketDefinition
tierTypeHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Items.DestinyItemTierTypeDefinition
isInstanceItem
If TRUE, this item is instanced. Otherwise, it is a generic item that merely has a quantity in a stack (like Glimmer).
Type: boolean
tierTypeName
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
tierType
The enumeration matching the tier type of the item to known values, again for convenience sake.
Type: int32
expirationTooltip
The tooltip message to show, if any, when the item expires.
Type: string
expiredInActivityMessage
If the item expires while playing in an activity, we show a different message.
Type: string
expiredInOrbitMessage
If the item expires in orbit, we show a... more different message. ("Consummate V's, consummate!")
Type: string
suppressExpirationWhenObjectivesComplete
Type: boolean
recipeItemHash
Nullable Mapped to Definition
A reference to the associated crafting 'recipe' item definition, if this item can be crafted.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition

Destiny.TierType

Enumeration
Type: int32
Valid Enum Values
  • Unknown: 0
  • Currency: 1
  • Basic: 2
  • Common: 3
  • Rare: 4
  • Superior: 5
  • Exotic: 6

Destiny.Definitions.DestinyInventoryBucketDefinition

Mobile Manifest Entity
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.

Item 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.

You 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.
Mapped to Mobile Manifest Table: InventoryBuckets
Type: object
Object Properties
scope
Where the bucket is found. 0 = Character, 1 = Account
Type: int32
category
An enum value for what items can be found in the bucket. See the BucketCategory enum for more details.
Type: int32
bucketOrder
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.
Type: int32
itemCount
The maximum # of item "slots" in a bucket. A slot is a given combination of item + quantity.

For 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.
Type: int32
location
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.

See ItemLocation for details.

Note 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: int32
hasTransferDestination
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
enabled
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
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
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.BucketScope

Enumeration
Type: int32
Valid Enum Values
  • Character: 0
  • Account: 1

Destiny.BucketCategory

Enumeration
Type: int32
Valid Enum Values
  • Invisible: 0
  • Item: 1
  • Currency: 2
  • Equippable: 3
  • Ignored: 4

Destiny.ItemLocation

Enumeration
Type: int32
Valid Enum Values
  • Unknown: 0
  • Inventory: 1
  • Vault: 2
  • Vendor: 3
  • Postmaster: 4

Destiny.Definitions.Items.DestinyItemTierTypeDefinition

Mobile Manifest Entity
Defines the tier type of an item. Mostly this provides human readable properties for types like Common, Rare, etc...

It also provides some base data for infusion that could be useful.
Mapped to Mobile Manifest Table: ItemTierTypes
Type: object
Object Properties
infusionProcess
If this tier defines infusion properties, they will be contained here.
Type: object
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Items.DestinyItemTierTypeInfusionBlock

Type: object
Object Properties
baseQualityTransferRatio
The default portion of quality that will transfer from the infuser to the infusee item. (InfuserQuality - InfuseeQuality) * baseQualityTransferRatio = base quality transferred.
Type: float
minimumQualityIncrement
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)
Type: int32

Destiny.Definitions.DestinyItemSetBlockDefinition

Primarily for Quests, this is the definition of properties related to the item if it is a quest and its various quest steps.
Type: object
Object Properties
itemList
A collection of hashes of set items, for items such as Quest Metadata items that possess this data.
Type: array
requireOrderedSetItemAdd
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
If true, the UI should treat this quest as "featured"
Type: boolean
setType
A string identifier we can use to attempt to identify the category of the Quest.
Type: string
questLineName
The name of the quest line that this quest step is a part of.
Type: string
questLineDescription
The description of the quest line that this quest step is a part of.
Type: string
questStepSummary
An additional summary of this step in the quest line.
Type: string

Destiny.Definitions.DestinyItemSetBlockEntryDefinition

Defines a particular entry in an ItemSet (AKA a particular Quest Step in a Quest)
Type: object
Object Properties
trackingValue
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.
Type: int32
itemHash
Mapped to Definition
This is the hash identifier for a DestinyInventoryItemDefinition representing this quest step.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition

Destiny.Definitions.DestinyItemStatBlockDefinition

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.

Note 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.

It 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.
Type: object
Object Properties
disablePrimaryStatDisplay
If true, the game won't show the "primary" stat on this item when you inspect it.

NOTE: This is being manually mapped, because I happen to want it in a block that isn't going to directly create this derivative block.
Type: boolean
statGroupHash
Nullable Mapped to Definition
If the item's stats are meant to be modified by a DestinyStatGroupDefinition, this will be the identifier for that definition.

If 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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyStatGroupDefinition
stats
Mapped to Definition
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.

These stats are keyed by the DestinyStatDefinition's hash identifier for the stat that's found on the item.
Type: object
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyStatDefinition
hasDisplayableStats
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
Mapped to Definition
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.

Use 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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyStatDefinition

Destiny.Definitions.DestinyInventoryItemStatDefinition

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.

Not 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.
Type: object
Object Properties
statHash
Mapped to Definition
The hash for the DestinyStatDefinition representing this stat.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyStatDefinition
value
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.

In 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.

In 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.
Type: int32
minimum
The minimum possible value for this stat that we think the item can roll.
Type: int32
maximum
The maximum possible value for this stat that we think the item can roll.

WARNING: In Destiny 1, this field was calculated using the potential stat rolls on the item's talent grid. In Destiny 2, items no longer have meaningful talent grids and instead have sockets: but the calculation of this field was never altered to adapt to this change. As such, this field should be considered deprecated until we can address this oversight.
Type: int32
displayMaximum
Nullable
The maximum possible value for the stat as shown in the UI, if it is being shown somewhere that reveals maximum in the UI (such as a bar chart-style view).

This is pulled directly from the item's DestinyStatGroupDefinition, and placed here for convenience.

If not returned, there is no maximum to use (and thus the stat should not be shown in a way that assumes there is a limit to the stat)
Type: int32

Destiny.Definitions.DestinyStatDefinition

Mobile Manifest Entity
This represents a stat that's applied to a character or an item (such as a weapon, piece of armor, or a vehicle).

An example of a stat might be Attack Power on a weapon.

Stats 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.

Stats 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)

A 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.

Stats actually go through four transformations, for those interested:

1) "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?

2) "Investment" stat (the stat's value after DestinyStatDefinition's interpolation tables and aggregation logic is applied to the "Sandbox" stat value)

3) "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.)

4) 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.)
Mapped to Mobile Manifest Table: Stats
Type: object
Object Properties
aggregationType
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: int32
hasComputedBlock
True if the stat is computed rather than being delivered as a raw value on items.

For instance, the Light stat in Destiny 1 was a computed stat.
Type: boolean
statCategory
The category of the stat, according to the game.
Type: int32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.DestinyStatAggregationType

Enumeration
When a Stat (DestinyStatDefinition) is aggregated, this is the rules used for determining the level and formula used for aggregation.

* 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.
Type: int32
Valid Enum Values
  • CharacterAverage: 0
  • Character: 1
  • Item: 2

Destiny.DestinyStatCategory

Enumeration
At last, stats have categories. Use this for whatever purpose you might wish.
Type: int32
Valid Enum Values
  • Gameplay: 0
  • Weapon: 1
  • Defense: 2
  • Primary: 3

Destiny.Definitions.DestinyStatGroupDefinition

Mobile Manifest Entity
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.

See DestinyStatDefinition's documentation for information about the transformation of Stats, and the meaning of an Investment vs. a Display stat.

If 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)
Mapped to Mobile Manifest Table: StatGroups
Type: object
Object Properties
maximumValue
The maximum possible value that any stat in this group can be transformed into.

This 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)
Type: int32
uiPosition
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.
Type: int32
scaledStats
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.

In 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]].
Type: array
overrides
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.

Mercifully, 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
Dictionary Key Type: uint32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyStatDisplayDefinition

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.

This 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)
Type: object
Object Properties
statHash
Mapped to Definition
The hash identifier for the stat being transformed into a Display stat.

Use it to look up the DestinyStatDefinition, or key into a DestinyInventoryItemDefinition's stats property.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyStatDefinition
maximumValue
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)
Type: int32
displayAsNumeric
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
The interpolation table representing how the Investment Stat is transformed into a Display Stat.

See DestinyStatDefinition for a description of the stages of stat transformation.
Type: array

Interpolation.InterpolationPoint

Type: object
Object Properties
value
Type: int32
weight
Type: int32

Destiny.Definitions.DestinyStatOverrideDefinition

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.

This 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.

Or 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.

Note 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.
Type: object
Object Properties
statHash
Mapped to Definition
The hash identifier of the stat whose display properties are being overridden.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyStatDefinition
displayProperties
The display properties to show instead of the base DestinyStatDefinition display properties.
Type: object

Destiny.Definitions.DestinyEquippingBlockDefinition

Items that can be equipped define this block. It contains information we need to understand how and when the item can be equipped.
Type: object
Object Properties
gearsetItemHash
Nullable Mapped to Definition
If the item is part of a gearset, this is a reference to that gearset item.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
uniqueLabel
If defined, this is the label used to check if the item has other items of matching types already equipped.

For 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
The hash of that unique label. Does not point to a specific definition.
Type: uint32
equipmentSlotTypeHash
Mapped to Definition
An equipped item *must* be equipped in an Equipment Slot. This is the hash identifier of the DestinyEquipmentSlotDefinition into which it must be equipped.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyEquipmentSlotDefinition
attributes
These are custom attributes on the equippability of the item.

For 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: int32
ammoType
Ammo type used by a weapon is no longer determined by the bucket in which it is contained. If the item has an ammo type - i.e. if it is a weapon - this will be the type of ammunition expected.
Type: int32
displayStrings
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.
Type: array
Array Contents: string

Destiny.EquippingItemBlockAttributes

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • EquipOnAcquire: 1

Destiny.DestinyAmmunitionType

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Primary: 1
  • Special: 2
  • Heavy: 3
  • Unknown: 4

Destiny.Definitions.DestinyEquipmentSlotDefinition

Mobile Manifest Entity
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.

The 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.

An Equipment Slot must have a related Inventory Bucket, but not all inventory buckets must have Equipment Slots.
Mapped to Mobile Manifest Table: EquipmentSlots
Type: object
Object Properties
equipmentCategoryHash
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.
Type: uint32
bucketTypeHash
Mapped to Definition
The inventory bucket that owns this equipment slot.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryBucketDefinition
applyCustomArtDyes
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
artDyeChannels
The Art Dye Channels that apply to this equipment slot.
Type: array
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyArtDyeReference

Type: object
Object Properties
artDyeChannelHash
Type: uint32

Destiny.Definitions.DestinyItemTranslationBlockDefinition

This Block defines the rendering data associated with the item, if any.
Type: object
Object Properties
weaponPatternIdentifier
Type: string
weaponPatternHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinySandboxPatternDefinition
defaultDyes
Type: array
Array Contents: Destiny.DyeReference
lockedDyes
Type: array
Array Contents: Destiny.DyeReference
customDyes
Type: array
Array Contents: Destiny.DyeReference
arrangements
hasGeometry
Type: boolean

Destiny.DyeReference

Type: object
Object Properties
channelHash
Type: uint32
dyeHash
Type: uint32

Destiny.Definitions.DestinyGearArtArrangementReference

Type: object
Object Properties
classHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyClassDefinition
artArrangementHash
Type: uint32

Destiny.Definitions.DestinyClassDefinition

Mobile Manifest Entity
Defines a Character Class in Destiny 2. These are types of characters you can play, like Titan, Warlock, and Hunter.
Mapped to Mobile Manifest Table: Classes
Type: object
Object Properties
classType
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: int32
genderedClassNames
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
Dictionary Contents: string
Dictionary Key Type: int32
genderedClassNamesByGenderHash
Mapped to Definition
Type: object
Dictionary Contents: string
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyGenderDefinition
mentorVendorHash
Nullable Mapped to Definition
Mentors don't really mean anything anymore. Don't expect this to be populated.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorDefinition
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.DestinyClass

Enumeration
Type: int32
Valid Enum Values
  • Titan: 0
  • Hunter: 1
  • Warlock: 2
  • Unknown: 3

Destiny.DestinyGender

Enumeration
Type: int32
Valid Enum Values
  • Male: 0
  • Female: 1
  • Unknown: 2

Destiny.Definitions.DestinyGenderDefinition

Mobile Manifest Entity
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.
Mapped to Mobile Manifest Table: Genders
Type: object
Object Properties
genderType
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: int32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyVendorDefinition

Mobile Manifest Entity
These are the definitions for Vendors.

In 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.

- 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.

- 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.

- 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.

- 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.

It 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.

Where 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.

Since 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.
Mapped to Mobile Manifest Table: Vendors
Type: object
Object Properties
vendorProgressionType
The type of reward progression that this vendor has. Default - The original rank progression from token redemption. Ritual - Progression from ranks in ritual content. For example: Crucible (Shaxx), Gambit (Drifter), and Battlegrounds (War Table).
Type: int32
buyString
If the vendor has a custom localized string describing the "buy" action, that is returned here.
Type: string
sellString
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
displayItemHash
Mapped to Definition
If the vendor has an item that should be displayed as the "featured" item, this is the hash identifier for that DestinyVendorItemDefinition.

Apparently this is usually a related currency, like a reputation token. But it need not be restricted to that.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
inhibitBuying
If this is true, you aren't allowed to buy whatever the vendor is selling.
Type: boolean
inhibitSelling
If this is true, you're not allowed to sell whatever the vendor is buying.
Type: boolean
factionHash
Mapped to Definition
If the Vendor has a faction, this hash will be valid and point to a DestinyFactionDefinition.

The 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").
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyFactionDefinition
resetIntervalMinutes
A number used for calculating the frequency of a vendor's inventory resetting/refreshing.

Don't worry about calculating this - we do it on the server side and send you the next refresh date with the live data.
Type: int32
resetOffsetMinutes
Again, used for reset/refreshing of inventory. Don't worry too much about it. Unless you want to.
Type: int32
failureStrings
If an item can't be purchased from the vendor, there may be many "custom"/game state specific reasons why not.

This 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.
Type: array
Array Contents: string
unlockRanges
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.
Type: array
Array Contents: Dates.DateRange
vendorIdentifier
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
A portrait of the Vendor's smiling mug. Or frothing tentacles.
Type: string
vendorBanner
If the vendor has a custom banner image, that can be found here.
Type: string
enabled
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
visible
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
vendorSubcategoryIdentifier
The identifier of the VendorCategoryDefinition for this vendor's subcategory.
Type: string
consolidateCategories
If TRUE, consolidate categories that only differ by trivial properties (such as having minor differences in name)
Type: boolean
actions
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.
Type: array
categories
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.

Well, 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.

These are the categories post-concatenation, if the vendor had concatenation applied. If you want the pre-aggregated category data, use originalCategories.
Type: array
originalCategories
See the categories property for a description of categories and why originalCategories exists.
Type: array
displayCategories
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.
Type: array
interactions
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.
Type: array
inventoryFlyouts
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.
Type: array
itemList
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.

Note 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".
Type: array
services
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.
Type: array
acceptedItems
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.
Type: array
returnWithVendorRequest
As many of you know, Vendor data has historically been pretty brutal on the BNet servers. In an effort to reduce this workload, only Vendors with this flag set will be returned on Vendor requests. This allows us to filter out Vendors that don't dynamic data that's particularly useful: things like "Preview/Sack" vendors, for example, that you can usually suss out the details for using just the definitions themselves.
Type: boolean
locations
A vendor can be at different places in the world depending on the game/character/account state. This is the list of possible locations for the vendor, along with conditions we use to determine which one is currently active.
Type: array
groups
A vendor can be a part of 0 or 1 "groups" at a time: a group being a collection of Vendors related by either location or function/purpose. It's used for our our Companion Vendor UI. Only one of these can be active for a Vendor at a time.
Type: array
ignoreSaleItemHashes
Some items don't make sense to return in the API, for example because they represent an action to be performed rather than an item being sold. I'd rather we not do this, but at least in the short term this is a workable workaround.
Type: array
Array Contents: uint32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyVendorDisplayPropertiesDefinition

Type: object
Object Properties
largeIcon
I regret calling this a "large icon". It's more like a medium-sized image with a picture of the vendor's mug on it, trying their best to look cool. Not what one would call an icon.
Type: string
subtitle
Type: string
originalIcon
If we replaced the icon with something more glitzy, this is the original icon that the vendor had according to the game's content. It may be more lame and/or have less razzle-dazzle. But who am I to tell you which icon to use.
Type: string
requirementsDisplay
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.
Type: array
smallTransparentIcon
This is the icon used in parts of the game UI such as the vendor's waypoint.
Type: string
mapIcon
This is the icon used in the map overview, when the vendor is located on the map.
Type: string
largeTransparentIcon
This is apparently the "Watermark". I am not certain offhand where this is actually used in the Game UI, but some people may find it useful.
Type: string
description
Type: string
name
Type: string
icon
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.

But usually, it will be a small square image that you can use as... well, an icon.

They are currently represented as 96px x 96px images.
Type: string
iconSequences
highResIcon
If this item has a high-res icon (at least for now, many things won't), then the path to that icon will be here.
Type: string
hasIcon
Type: boolean

Destiny.Definitions.DestinyVendorRequirementDisplayEntryDefinition

The localized properties of the requirementsDisplay, allowing information about the requirement or item being featured to be seen.
Type: object
Object Properties
icon
Type: string
name
Type: string
source
Type: string
type
Type: string

Destiny.DestinyVendorProgressionType

Enumeration
Describes the type of progression that a vendor has.
Type: int32
Valid Enum Values
  • Default: 0
    The original rank progression from token redemption.
  • Ritual: 1
    Progression from ranks in ritual content. For example: Crucible (Shaxx), Gambit (Drifter), and Season 13 Battlegrounds (War Table).
  • NoSeasonalRefresh: 2
    A vendor progression with no seasonal refresh. For example: Xur in the Eternity destination for the 30th Anniversary.

Dates.DateRange

Type: object
Object Properties
start
Type: date-time
end
Type: date-time

Destiny.Definitions.DestinyVendorActionDefinition

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.
Type: object
Object Properties
description
Type: string
executeSeconds
Type: int32
icon
Type: string
name
Type: string
verb
Type: string
isPositive
Type: boolean
actionId
Type: string
actionHash
Type: uint32
autoPerformAction
Type: boolean

Destiny.Definitions.DestinyVendorCategoryEntryDefinition

This is the definition for a single Vendor Category, into which Sale Items are grouped.
Type: object
Object Properties
categoryIndex
The index of the category in the original category definitions for the vendor.
Type: int32
sortValue
Used in sorting items in vendors... but there's a lot more to it. Just go with the order provided in the itemIndexes property on the DestinyVendorCategoryComponent instead, it should be more reliable than trying to recalculate it yourself.
Type: int32
categoryHash
The hashed identifier for the category.
Type: uint32
quantityAvailable
The amount of items that will be available when this category is shown.
Type: int32
showUnavailableItems
If items aren't up for sale in this category, should we still show them (greyed out)?
Type: boolean
hideIfNoCurrency
If you don't have the currency required to buy items from this category, should the items be hidden?
Type: boolean
hideFromRegularPurchase
True if this category doesn't allow purchases.
Type: boolean
buyStringOverride
The localized string for making purchases from this category, if it is different from the vendor's string for purchasing.
Type: string
disabledDescription
If the category is disabled, this is the localized description to show.
Type: string
displayTitle
The localized title of the category.
Type: string
overlay
If this category has an overlay prompt that should appear, this contains the details of that prompt.
Type: object
vendorItemIndexes
A shortcut for the vendor item indexes sold under this category. Saves us from some expensive reorganization at runtime.
Type: array
Array Contents: int32
isPreview
Sometimes a category isn't actually used to sell items, but rather to preview them. This implies different UI (and manual placement of the category in the UI) in the game, and special treatment.
Type: boolean
isDisplayOnly
If true, this category only displays items: you can't purchase anything in them.
Type: boolean
resetIntervalMinutesOverride
Type: int32
resetOffsetMinutesOverride
Type: int32

Destiny.Definitions.DestinyVendorCategoryOverlayDefinition

The details of an overlay prompt to show to a user. They are all fairly self-explanatory localized strings that can be shown.
Type: object
Object Properties
choiceDescription
Type: string
description
Type: string
icon
Type: string
title
Type: string
currencyItemHash
Nullable Mapped to Definition
If this overlay has a currency item that it features, this is said featured item.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition

Destiny.Definitions.DestinyDisplayCategoryDefinition

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.
Type: object
Object Properties
index
Type: int32
identifier
A string identifier for the display category.
Type: string
displayCategoryHash
Type: uint32
displayInBanner
If true, this category should be displayed in the "Banner" section of the vendor's UI.
Type: boolean
progressionHash
Nullable Mapped to Definition
If it exists, this is the hash identifier of a DestinyProgressionDefinition that represents the progression to show on this display category.

Specific categories can now have thier own distinct progression, apparently. So that's cool.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyProgressionDefinition
sortOrder
If this category sorts items in a nonstandard way, this will be the way we sort.
Type: int32
displayStyleHash
Nullable
An indicator of how the category will be displayed in the UI. It's up to you to do something cool or interesting in response to this, or just to treat it as a normal category.
Type: uint32
displayStyleIdentifier
An indicator of how the category will be displayed in the UI. It's up to you to do something cool or interesting in response to this, or just to treat it as a normal category.
Type: string

Destiny.VendorDisplayCategorySortOrder

Enumeration
Display categories can have custom sort orders. These are the possible options.
Type: int32
Valid Enum Values
  • Default: 0
  • SortByTier: 1

Destiny.Definitions.DestinyVendorInteractionDefinition

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.
Type: object
Object Properties
interactionIndex
The position of this interaction in its parent array. Note that this is NOT content agnostic, and should not be used as such.
Type: int32
replies
The potential replies that the user can make to the interaction.
Type: array
vendorCategoryIndex
If >= 0, this is the category of sale items to show along with this interaction dialog.
Type: int32
questlineItemHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
sackInteractionList
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.
Type: array
uiInteractionType
A UI hint for the behavior of the interaction screen. This is useful to determine what type of interaction is occurring, such as a prompt to receive a rank up reward or a prompt to choose a reward for completing a quest. The hash isn't as useful as the Enum in retrospect, well what can you do. Try using interactionType instead.
Type: uint32
interactionType
The enumerated version of the possible UI hints for vendor interactions, which is a little easier to grok than the hash found in uiInteractionType.
Type: int32
rewardBlockLabel
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
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.
Type: int32
flavorLineOne
If the vendor interaction has flavor text, this is some of it.
Type: string
flavorLineTwo
If the vendor interaction has flavor text, this is the rest of it.
Type: string
headerDisplayProperties
The header for the interaction dialog.
Type: object
instructions
The localized text telling the player what to do when they see this dialog.
Type: string

Destiny.Definitions.DestinyVendorInteractionReplyDefinition

When the interaction is replied to, Reward sites will fire and items potentially selected based on whether the given unlock expression is TRUE.

You can potentially choose one from multiple replies when replying to an interaction: this is how you get either/or rewards from vendors.
Type: object
Object Properties
itemRewardsSelection
The rewards granted upon responding to the vendor.
Type: int32
reply
The localized text for the reply.
Type: string
replyType
An enum indicating the type of reply being made.
Type: int32

Destiny.DestinyVendorInteractionRewardSelection

Enumeration
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.
Type: int32
Valid Enum Values
  • None: 0
  • One: 1
  • All: 2

Destiny.DestinyVendorReplyType

Enumeration
This determines the type of reply that a Vendor will have during an Interaction.
Type: int32
Valid Enum Values
  • Accept: 0
  • Decline: 1
  • Complete: 2

Destiny.Definitions.DestinyVendorInteractionSackEntryDefinition

Compare this sackType to the sack identifier in the DestinyInventoryItemDefinition.vendorSackType property of items. If they match, show this sack with this interaction.
Type: object
Object Properties
sackType
Type: uint32

Destiny.VendorInteractionType

Enumeration
An enumeration of the known UI interactions for Vendors.
Type: int32
Valid Enum Values
  • Unknown: 0
  • Undefined: 1
    An empty interaction. If this ends up in content, it is probably a game bug.
  • QuestComplete: 2
    An interaction shown when you complete a quest and receive a reward.
  • QuestContinue: 3
    An interaction shown when you talk to a Vendor as an intermediary step of a quest.
  • ReputationPreview: 4
    An interaction shown when you are previewing the vendor's reputation rewards.
  • RankUpReward: 5
    An interaction shown when you rank up with the vendor.
  • TokenTurnIn: 6
    An interaction shown when you have tokens to turn in for the vendor.
  • QuestAccept: 7
    An interaction shown when you're accepting a new quest.
  • ProgressTab: 8
    Honestly, this doesn't seem consistent to me. It is used to give you choices in the Cryptarch as well as some reward prompts by the Eververse vendor. I'll have to look into that further at some point.
  • End: 9
    These seem even less consistent. I don't know what these are.
  • Start: 10
    Also seem inconsistent. I also don't know what these are offhand.

Destiny.Definitions.DestinyVendorInventoryFlyoutDefinition

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.
Type: object
Object Properties
lockedDescription
If the flyout is locked, this is the reason why.
Type: string
displayProperties
The title and other common properties of the flyout.
Type: object
buckets
A list of inventory buckets and other metadata to show on the screen.
Type: array
flyoutId
An identifier for the flyout, in case anything else needs to refer to them.
Type: uint32
suppressNewness
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
equipmentSlotHash
Nullable
If this flyout is meant to show you the contents of the player's equipment slot, this is the slot to show.
Type: uint32

Destiny.Definitions.DestinyVendorInventoryFlyoutBucketDefinition

Information about a single inventory bucket in a vendor flyout UI and how it is shown.
Type: object
Object Properties
collapsible
If true, the inventory bucket should be able to be collapsed visually.
Type: boolean
inventoryBucketHash
Mapped to Definition
The inventory bucket whose contents should be shown.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryBucketDefinition
sortItemsBy
The methodology to use for sorting items from the flyout.
Type: int32

Destiny.DestinyItemSortType

Enumeration
Determines how items are sorted in an inventory bucket.
Type: int32
Valid Enum Values
  • ItemId: 0
  • Timestamp: 1
  • StackSize: 2

Destiny.Definitions.DestinyVendorItemDefinition

This represents an item being sold by the vendor.
Type: object
Object Properties
vendorItemIndex
The index into the DestinyVendorDefinition.saleList. This is what we use to refer to items being sold throughout live and definition data.
Type: int32
itemHash
Mapped to Definition
The hash identifier of the item being sold (DestinyInventoryItemDefinition).

Note that a vendor can sell the same item in multiple ways, so don't assume that itemHash is a unique identifier for this entity.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
quantity
The amount you will recieve of the item described in itemHash if you make the purchase.
Type: int32
failureIndexes
An list of indexes into the DestinyVendorDefinition.failureStrings array, indicating the possible failure strings that can be relevant for this item.
Type: array
Array Contents: int32
currencies
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.

The somewhat crappy part about this is that, now that item quantity overrides have dynamic modifiers, this will not necessarily be statically true. If you were using this instead of live data, switch to using live data.
Type: array
refundPolicy
If this item can be refunded, this is the policy for what will be refundd, how, and in what time period.
Type: int32
refundTimeLimit
The amount of time before refundability of the newly purchased item will expire.
Type: int32
creationLevels
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.
Type: array
displayCategoryIndex
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)
Type: int32
categoryIndex
The index into the DestinyVendorDefinition.categories array, so you can find the category associated with this item.
Type: int32
originalCategoryIndex
Same as above, but for the original category indexes.
Type: int32
minimumLevel
The minimum character level at which this item is available for sale.
Type: int32
maximumLevel
The maximum character level at which this item is available for sale.
Type: int32
action
The action to be performed when purchasing the item, if it's not just "buy".
Type: object
displayCategory
The string identifier for the category selling this item.
Type: string
inventoryBucketHash
Mapped to Definition
The inventory bucket into which this item will be placed upon purchase.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryBucketDefinition
visibilityScope
The most restrictive scope that determines whether the item is available in the Vendor's inventory. See DestinyGatingScope's documentation for more information.

This can be determined by Unlock gating, or by whether or not the item has purchase level requirements (minimumLevel and maximumLevel properties).
Type: int32
purchasableScope
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.

See DestinyGatingScope's documentation for more information.
Type: int32
exclusivity
If this item can only be purchased by a given platform, this indicates the platform to which it is restricted.
Type: int32
isOffer
Nullable
If this sale can only be performed as the result of an offer check, this is true.
Type: boolean
isCrm
Nullable
If this sale can only be performed as the result of receiving a CRM offer, this is true.
Type: boolean
sortValue
*if* the category this item is in supports non-default sorting, this value should represent the sorting value to use, pre-processed and ready to go.
Type: int32
expirationTooltip
If this item can expire, this is the tooltip message to show with its expiration info.
Type: string
redirectToSaleIndexes
If this is populated, the purchase of this item should redirect to purchasing these other items instead.
Type: array
Array Contents: int32
socketOverrides
unpurchasable
Nullable
If true, this item is some sort of dummy sale item that cannot actually be purchased. It may be a display only item, or some fluff left by a content designer for testing purposes, or something that got disabled because it was a terrible idea. You get the picture. We won't know *why* it can't be purchased, only that it can't be. Sorry.

This is also only whether it's unpurchasable as a static property according to game content. There are other reasons why an item may or may not be purchasable at runtime, so even if this isn't set to True you should trust the runtime value for this sale item over the static definition if this is unset.
Type: boolean

Destiny.Definitions.DestinyVendorItemQuantity

In addition to item quantity information for vendor prices, this also has any optional information that may exist about how the item's quantity can be modified. (unfortunately not information that is able to be read outside of the BNet servers, but it's there)
Type: object
Object Properties
itemHash
Mapped to Definition
The hash identifier for the item in question. Use it to look up the item's DestinyInventoryItemDefinition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
itemInstanceId
Nullable
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.
Type: int64
quantity
The amount of the item needed/available depending on the context of where DestinyItemQuantity is being used.
Type: int32
hasConditionalVisibility
Indicates that this item quantity may be conditionally shown or hidden, based on various sources of state. For example: server flags, account state, or character progress.
Type: boolean

Destiny.DestinyVendorItemRefundPolicy

Enumeration
The action that happens when the user attempts to refund an item.
Type: int32
Valid Enum Values
  • NotRefundable: 0
  • DeletesItem: 1
  • RevokesLicense: 2

Destiny.Definitions.DestinyItemCreationEntryLevelDefinition

An overly complicated wrapper for the item level at which the item should spawn.
Type: object
Object Properties
level
Type: int32

Destiny.Definitions.DestinyVendorSaleItemActionBlockDefinition

Not terribly useful, some basic cooldown interaction info.
Type: object
Object Properties
executeSeconds
Type: float
isPositive
Type: boolean

Destiny.DestinyGatingScope

Enumeration
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.

None = 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.
Type: int32
Valid Enum Values
  • None: 0
  • Global: 1
  • Clan: 2
  • Profile: 3
  • Character: 4
  • Item: 5
  • AssumedWorstCase: 6

Destiny.Definitions.DestinyVendorItemSocketOverride

The information for how the vendor purchase should override a given socket with custom plug data.
Type: object
Object Properties
singleItemHash
Nullable Mapped to Definition
If this is populated, the socket will be overridden with a specific plug.

If this isn't populated, it's being overridden by something more complicated that is only known by the Game Server and God, which means we can't tell you in advance what it'll be.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
randomizedOptionsCount
If this is greater than -1, the number of randomized plugs on this socket will be set to this quantity instead of whatever it's set to by default.
Type: int32
socketTypeHash
Mapped to Definition
This appears to be used to select which socket ultimately gets the override defined here.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Sockets.DestinySocketTypeDefinition

Destiny.Definitions.DestinyVendorServiceDefinition

When a vendor provides services, this is the localized name of those services.
Type: object
Object Properties
name
The localized name of a service provided.
Type: string

Destiny.Definitions.DestinyVendorAcceptedItemDefinition

If you ever wondered how the Vault works, here it is.

The 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.

The mechanics for Postmaster works similarly, which is also a vendor. All driven by Accepted Items.
Type: object
Object Properties
acceptedInventoryBucketHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryBucketDefinition
destinationInventoryBucketHash
Mapped to Definition
This is the bucket where the item being transferred will be put, given that it was being transferred *from* the bucket defined in acceptedInventoryBucketHash.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryBucketDefinition

Destiny.Definitions.Vendors.DestinyVendorLocationDefinition

These definitions represent vendors' locations and relevant display information at different times in the game.
Type: object
Object Properties
destinationHash
Mapped to Definition
The hash identifier for a Destination at which this vendor may be located. Each destination where a Vendor may exist will only ever have a single entry.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyDestinationDefinition
backgroundImagePath
The relative path to the background image representing this Vendor at this location, for use in a banner.
Type: string

Destiny.Definitions.DestinyDestinationDefinition

Mobile Manifest Entity
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?

A "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).
Mapped to Mobile Manifest Table: Destinations
Type: object
Object Properties
placeHash
Mapped to Definition
The place that "owns" this Destination. Use this hash to look up the DestinyPlaceDefinition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyPlaceDefinition
defaultFreeroamActivityHash
Mapped to Definition
If this Destination has a default Free-Roam activity, this is the hash for that Activity. Use it to look up the DestinyActivityDefintion.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
activityGraphEntries
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.
Type: array
bubbleSettings
A Destination may have many "Bubbles" zones with human readable properties.

We 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.

DEPRECATED - Just use bubbles, it now has this data.
Type: array
bubbles
This provides the unique identifiers for every bubble in the destination (only guaranteed unique within the destination), and any intrinsic properties of the bubble.

bubbleSettings and bubbles both have the identical number of entries, and you should match up their indexes to provide matching bubble and bubbleSettings data.
Type: array
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyActivityGraphListEntryDefinition

Destinations and Activities may have default Activity Graphs that should be shown when you bring up the Director and are playing in either.

This contract defines the graph referred to and the gating for when it is relevant.
Type: object
Object Properties
activityGraphHash
Mapped to Definition
The hash identifier of the DestinyActivityGraphDefinition that should be shown when opening the director.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Director.DestinyActivityGraphDefinition

Destiny.Definitions.Director.DestinyActivityGraphDefinition

Mobile Manifest Entity
Represents a Map View in the director: be them overview views, destination views, or other.

They have nodes which map to activities, and other various visual elements that we (or others) may or may not be able to use.

Activity graphs, most importantly, have nodes which can have activities in various states of playability.

Unfortunately, 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.

If 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.
Mapped to Mobile Manifest Table: ActivityGraphs
Type: object
Object Properties
nodes
These represent the visual "nodes" on the map's view. These are the activities you can click on in the map.
Type: array
artElements
Represents one-off/special UI elements that appear on the map.
Type: array
connections
Represents connections between graph nodes. However, it lacks context that we'd need to make good use of it.
Type: array
displayObjectives
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.
Type: array
displayProgressions
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.
Type: array
linkedGraphs
Represents links between this Activity Graph and other ones.
Type: array
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Director.DestinyActivityGraphNodeDefinition

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)
Type: object
Object Properties
nodeId
An identifier for the Activity Graph Node, only guaranteed to be unique within its parent Activity Graph.
Type: uint32
overrideDisplay
The node *may* have display properties that override the active Activity's display properties.
Type: object
position
The position on the map for this node.
Type: object
featuringStates
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.
Type: array
activities
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.
Type: array
states
Represents possible states that the graph node can be in. These are combined with some checking that happens in the game client and server to determine which state is actually active at any given time.
Type: array

Destiny.Definitions.Common.DestinyPositionDefinition

Type: object
Object Properties
x
Type: int32
y
Type: int32
z
Type: int32

Destiny.Definitions.Director.DestinyActivityGraphNodeFeaturingStateDefinition

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.
Type: object
Object Properties
highlightType
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: int32

Destiny.ActivityGraphNodeHighlightType

Enumeration
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.
Type: int32
Valid Enum Values
  • None: 0
  • Normal: 1
  • Hyper: 2
  • Comet: 3
  • RiseOfIron: 4

Destiny.Definitions.Director.DestinyActivityGraphNodeActivityDefinition

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.
Type: object
Object Properties
nodeActivityId
An identifier for this node activity. It is only guaranteed to be unique within the Activity Graph.
Type: uint32
activityHash
Mapped to Definition
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)
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition

Destiny.Definitions.DestinyActivityDefinition

Mobile Manifest Entity
The static data about Activities in Destiny 2.

Note that an Activity must be combined with an ActivityMode to know - from a Gameplay perspective - what the user is "Playing".

In most PvE activities, this is fairly straightforward. A Story Activity can only be played in the Story Activity Mode.

However, 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.

Activity 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.

Activities 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.
Mapped to Mobile Manifest Table: Activities
Type: object
Object Properties
displayProperties
The title, subtitle, and icon for the activity. We do a little post-processing on this to try and account for Activities where the designers have left this data too minimal to determine what activity is actually being played.
Type: object
originalDisplayProperties
The unadulterated form of the display properties, as they ought to be shown in the Director (if the activity appears in the director).
Type: object
selectionScreenDisplayProperties
The title, subtitle, and icon for the activity as determined by Selection Screen data, if there is any for this activity. There won't be data in this field if the activity is never shown in a selection/options screen.
Type: object
releaseIcon
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
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.
Type: int32
activityLightLevel
The recommended light level for this activity.
Type: int32
destinationHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyDestinationDefinition
placeHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyPlaceDefinition
activityTypeHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityTypeDefinition
tier
The difficulty tier of the activity.
Type: int32
pgcrImage
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
rewards
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)
Type: array
modifiers
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.
Type: array
isPlaylist
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
challenges
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.
Type: array
optionalUnlockStrings
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.
Type: array
playlistItems
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.
Type: array
activityGraphList
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.
Type: array
matchmaking
This block of data provides information about the Activity's matchmaking attributes: how many people can join and such.
Type: object
guidedGame
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
directActivityModeHash
Nullable Mapped to Definition
If this activity had an activity mode directly defined on it, this will be the hash of that mode.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityModeDefinition
directActivityModeType
Nullable Enumeration
If the activity had an activity mode directly defined on it, this will be the enum value of that mode.
Type: int32
Valid Enum Values
  • None: 0
  • Story: 2
  • Strike: 3
  • Raid: 4
  • AllPvP: 5
  • Patrol: 6
  • AllPvE: 7
  • Reserved9: 9
  • Control: 10
  • Reserved11: 11
  • Clash: 12
    Clash -> Destiny's name for Team Deathmatch. 4v4 combat, the team with the highest kills at the end of time wins.
  • Reserved13: 13
  • CrimsonDoubles: 15
  • Nightfall: 16
  • HeroicNightfall: 17
  • AllStrikes: 18
  • IronBanner: 19
  • Reserved20: 20
  • Reserved21: 21
  • Reserved22: 22
  • Reserved24: 24
  • AllMayhem: 25
  • Reserved26: 26
  • Reserved27: 27
  • Reserved28: 28
  • Reserved29: 29
  • Reserved30: 30
  • Supremacy: 31
  • PrivateMatchesAll: 32
  • Survival: 37
  • Countdown: 38
  • TrialsOfTheNine: 39
  • Social: 40
  • TrialsCountdown: 41
  • TrialsSurvival: 42
  • IronBannerControl: 43
  • IronBannerClash: 44
  • IronBannerSupremacy: 45
  • ScoredNightfall: 46
  • ScoredHeroicNightfall: 47
  • Rumble: 48
  • AllDoubles: 49
  • Doubles: 50
  • PrivateMatchesClash: 51
  • PrivateMatchesControl: 52
  • PrivateMatchesSupremacy: 53
  • PrivateMatchesCountdown: 54
  • PrivateMatchesSurvival: 55
  • PrivateMatchesMayhem: 56
  • PrivateMatchesRumble: 57
  • HeroicAdventure: 58
  • Showdown: 59
  • Lockdown: 60
  • Scorched: 61
  • ScorchedTeam: 62
  • Gambit: 63
  • AllPvECompetitive: 64
  • Breakthrough: 65
  • BlackArmoryRun: 66
  • Salvage: 67
  • IronBannerSalvage: 68
  • PvPCompetitive: 69
  • PvPQuickplay: 70
  • ClashQuickplay: 71
  • ClashCompetitive: 72
  • ControlQuickplay: 73
  • ControlCompetitive: 74
  • GambitPrime: 75
  • Reckoning: 76
  • Menagerie: 77
  • VexOffensive: 78
  • NightmareHunt: 79
  • Elimination: 80
  • Momentum: 81
  • Dungeon: 82
  • Sundial: 83
  • TrialsOfOsiris: 84
  • Dares: 85
  • Offensive: 86
  • LostSector: 87
  • Rift: 88
  • ZoneControl: 89
  • IronBannerRift: 90
  • IronBannerZoneControl: 91
  • Relic: 92
loadouts
The set of all possible loadout requirements that could be active for this activity. Only one will be active at any given time, and you can discover which one through activity-associated data such as Milestones that have activity info on them.
Type: array
activityModeHashes
Mapped to Definition
The hash identifiers for Activity Modes relevant to this activity. Note that if this is a playlist, the specific playlist entry chosen will determine the actual activity modes that end up being relevant.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityModeDefinition
activityModeTypes
The activity modes - if any - in enum form. Because we can't seem to escape the enums.
Type: array
Array Contents: int32
isPvP
If true, this activity is a PVP activity or playlist.
Type: boolean
insertionPoints
The list of phases or points of entry into an activity, along with information we can use to determine their gating and availability.
Type: array
activityLocationMappings
A list of location mappings that are affected by this activity. Pulled out of DestinyLocationDefinitions for our/your lookup convenience.
Type: array
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyActivityRewardDefinition

Activities can refer to one or more sets of tooltip-friendly reward data. These are the definitions for those tooltip friendly rewards.
Type: object
Object Properties
rewardText
The header for the reward set, if any.
Type: string
rewardItems
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.

Interesting 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?
Type: array
Array Contents: Destiny.DestinyItemQuantity

Destiny.Definitions.DestinyActivityModifierReferenceDefinition

A reference to an Activity Modifier from another entity, such as an Activity (for now, just Activities).

This defines some
Type: object
Object Properties
activityModifierHash
Mapped to Definition
The hash identifier for the DestinyActivityModifierDefinition referenced by this activity.
Type: uint32

Destiny.Definitions.ActivityModifiers.DestinyActivityModifierDefinition

Mobile Manifest Entity
Modifiers - in Destiny 1, these were referred to as "Skulls" - are changes that can be applied to an Activity.
Mapped to Mobile Manifest Table: ActivityModifiers
Type: object
Object Properties
displayInNavMode
Type: boolean
displayInActivitySelection
Type: boolean
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyActivityChallengeDefinition

Represents a reference to a Challenge, which for now is just an Objective.
Type: object
Object Properties
objectiveHash
Mapped to Definition
The hash for the Objective that matches this challenge. Use it to look up the DestinyObjectiveDefinition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyObjectiveDefinition
dummyRewards
The rewards as they're represented in the UI. Note that they generally link to "dummy" items that give a summary of rewards rather than direct, real items themselves.

If the quantity is 0, don't show the quantity.
Type: array
Array Contents: Destiny.DestinyItemQuantity

Destiny.Definitions.DestinyObjectiveDefinition

Mobile Manifest Entity
Defines an "Objective".

An objective is a specific task you should accomplish in the game. These are referred to by:

- Quest Steps (which are DestinyInventoryItemDefinition entities with Objectives)

- Challenges (which are Objectives defined on an DestinyActivityDefintion)

- Milestones (which refer to Objectives that are defined on both Quest Steps and Activities)

- Anything else that the designers decide to do later.

Objectives 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.
Mapped to Mobile Manifest Table: Objectives
Type: object
Object Properties
displayProperties
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
completionValue
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.
Type: int32
scope
A shortcut for determining the most restrictive gating that this Objective is set to use. This includes both the dynamic determination of progress and of completion values. See the DestinyGatingScope enum's documentation for more details.
Type: int32
locationHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyLocationDefinition
allowNegativeValue
If true, the value is allowed to go negative.
Type: boolean
allowValueChangeWhenCompleted
If true, you can effectively "un-complete" this objective if you lose progress after crossing the completion threshold.

If False, once you complete the task it will remain completed forever by locking the value.
Type: boolean
isCountingDownward
If true, completion means having an unlock value less than or equal to the completionValue.

If False, completion means having an unlock value greater than or equal to the completionValue.
Type: boolean
valueStyle
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.

DEPRECATED: This is no longer populated by Destiny 2 game content. Please use inProgressValueStyle and completedValueStyle instead.
Type: int32
progressDescription
Text to describe the progress bar.
Type: string
perks
If this objective enables Perks intrinsically, the conditions for that enabling are defined here.
Type: object
stats
If this objective enables modifications on a player's stats intrinsically, the conditions are defined here.
Type: object
minimumVisibilityThreshold
If nonzero, this is the minimum value at which the objective's progression should be shown. Otherwise, don't show it yet.
Type: int32
allowOvercompletion
If True, the progress will continue even beyond the point where the objective met its minimum completion requirements. Your UI will have to accommodate it.
Type: boolean
showValueOnComplete
If True, you should continue showing the progression value in the UI after it's complete. I mean, we already do that in BNet anyways, but if you want to be better behaved than us you could honor this flag.
Type: boolean
completedValueStyle
The style to use when the objective is completed.
Type: int32
inProgressValueStyle
The style to use when the objective is still in progress.
Type: int32
uiLabel
Objectives can have arbitrary UI-defined identifiers that define the style applied to objectives. For convenience, known UI labels will be defined in the uiStyle enum value.
Type: string
uiStyle
If the objective has a known UI label value, this property will represent it.
Type: int32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.DestinyUnlockValueUIStyle

Enumeration
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.
Type: int32
Valid Enum Values
  • Automatic: 0
    Generally, Automatic means "Just show the number"
  • Fraction: 1
    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.
  • Checkbox: 2
    Show the number as a checkbox. 0 Will mean unchecked, any other value will mean checked.
  • Percentage: 3
    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.
  • DateTime: 4
    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.
  • FractionFloat: 5
    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.
  • Integer: 6
    Show the number as a straight-up integer.
  • TimeDuration: 7
    Show the number as a time duration. The value will be returned as seconds.
  • Hidden: 8
    Don't bother showing the value at all, it's not easily human-interpretable, and used for some internal purpose.
  • Multiplier: 9
    Example: "1.5x"
  • GreenPips: 10
    Show the value as a series of green pips, like the wins in a Trials of Osiris score card.
  • RedPips: 11
    Show the value as a series of red pips, like the losses in a Trials of Osiris score card.
  • ExplicitPercentage: 12
    Show the value as a percentage. For example: "51%" - Does no division, only appends '%'
  • RawFloat: 13
    Show the value as a floating-point number. For example: "4.52" NOTE: Passed along from Investment as whole number with last two digits as decimal values (452 -> 4.52)
  • LevelAndReward: 14
    Show the value as a level and a reward.

Destiny.Definitions.DestinyObjectivePerkEntryDefinition

Defines the conditions under which an intrinsic perk is applied while participating in an Objective.

These perks will generally not be benefit-granting perks, but rather a perk that modifies gameplay in some interesting way.
Type: object
Object Properties
perkHash
Mapped to Definition
The hash identifier of the DestinySandboxPerkDefinition that will be applied to the character.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinySandboxPerkDefinition
style
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: int32

Destiny.DestinyObjectiveGrantStyle

Enumeration
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.
Type: int32
Valid Enum Values
  • WhenIncomplete: 0
  • WhenComplete: 1
  • Always: 2

Destiny.Definitions.DestinySandboxPerkDefinition

Mobile Manifest Entity
Perks are modifiers to a character or item that can be applied situationally.

- Perks determine a weapon's damage type.

- 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)

- Perks are applied for unique alterations of state in Objectives

Anyways, I'm sure you can see why perks are so interesting.

What 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.
Mapped to Mobile Manifest Table: SandboxPerks
Type: object
Object Properties
displayProperties
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
perkIdentifier
The string identifier for the perk.
Type: string
isDisplayable
If true, you can actually show the perk in the UI. Otherwise, it doesn't have useful player-facing information.
Type: boolean
damageType
If this perk grants a damage type to a weapon, the damage type will be defined here.

Unless you have a compelling reason to use this enum value, use the damageTypeHash instead to look up the actual DestinyDamageTypeDefinition.
Type: int32
damageTypeHash
Nullable Mapped to Definition
The hash identifier for looking up the DestinyDamageTypeDefinition, if this perk has a damage type.

This is preferred over using the damageType enumeration value, which has been left purely because it is occasionally convenient.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyDamageTypeDefinition
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.DamageType

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Kinetic: 1
  • Arc: 2
  • Thermal: 3
  • Void: 4
  • Raid: 5
  • Stasis: 6
  • Strand: 7

Destiny.Definitions.DestinyDamageTypeDefinition

Mobile Manifest Entity
All damage types that are possible in the game are defined here, along with localized info and icons as needed.
Mapped to Mobile Manifest Table: DamageTypes
Type: object
Object Properties
displayProperties
The description of the damage type, icon etc...
Type: object
transparentIconPath
A variant of the icon that is transparent and colorless.
Type: string
showIcon
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
enumValue
We have an enumeration for damage types for quick reference. This is the current definition's damage type enum value.
Type: int32
color
A color associated with the damage type. The displayProperties icon is tinted with a color close to this.
Type: object
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyObjectiveStatEntryDefinition

Defines the conditions under which stat modifications will be applied to a Character while participating in an objective.
Type: object
Object Properties
stat
The stat being modified, and the value used.
Type: object
style
Whether it will be applied as long as the objective is active, when it's completed, or until it's completed.
Type: int32

Destiny.Definitions.DestinyItemInvestmentStatDefinition

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.

Because 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.
Type: object
Object Properties
statTypeHash
Mapped to Definition
The hash identifier for the DestinyStatDefinition defining this stat.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyStatDefinition
value
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.
Type: int32
isConditionallyActive
If this is true, the stat will only be applied on the item in certain game state conditions, and we can't know statically whether or not this stat will be applied. Check the "live" API data instead for whether this value is being applied on a specific instance of the item in question, and you can use this to decide whether you want to show the stat on the generic view of the item, or whether you want to show some kind of caveat or warning about the stat value being conditional on game state.
Type: boolean

Destiny.DestinyObjectiveUiStyle

Enumeration
If the objective has a known UI label, this enumeration will represent it.
Type: int32
Valid Enum Values
  • None: 0
  • Highlighted: 1
  • CraftingWeaponLevel: 2
  • CraftingWeaponLevelProgress: 3
  • CraftingWeaponTimestamp: 4
  • CraftingMementos: 5
  • CraftingMementoTitle: 6

Destiny.Definitions.DestinyLocationDefinition

Mobile Manifest Entity
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.

Most 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.
Mapped to Mobile Manifest Table: Locations
Type: object
Object Properties
vendorHash
Mapped to Definition
If the location has a Vendor on it, this is the hash identifier for that Vendor. Look them up with DestinyVendorDefinition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorDefinition
locationReleases
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.
Type: array
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyLocationReleaseDefinition

A specific "spot" referred to by a location. Only one of these can be active at a time for a given Location.
Type: object
Object Properties
displayProperties
Sadly, these don't appear to be populated anymore (ever?)
Type: object
smallTransparentIcon
Type: string
mapIcon
Type: string
largeTransparentIcon
Type: string
spawnPoint
If we had map information, this spawnPoint would be interesting. But sadly, we don't have that info.
Type: uint32
destinationHash
Mapped to Definition
The Destination being pointed to by this location.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyDestinationDefinition
activityHash
Mapped to Definition
The Activity being pointed to by this location.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
activityGraphHash
The Activity Graph being pointed to by this location.
Type: uint32
activityGraphNodeHash
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)
Type: uint32
activityBubbleName
The Activity Bubble within the Destination. Look this up in the DestinyDestinationDefinition's bubbles and bubbleSettings properties.
Type: uint32
activityPathBundle
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.
Type: uint32
activityPathDestination
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.
Type: uint32
navPointType
The type of Nav Point that this represents. See the enumeration for more info.
Type: int32
worldPosition
Looks like it should be the position on the map, but sadly it does not look populated... yet?
Type: array
Array Contents: int32

Destiny.DestinyActivityNavPointType

Enumeration
Type: int32
Valid Enum Values
  • Inactive: 0
  • PrimaryObjective: 1
  • SecondaryObjective: 2
  • TravelObjective: 3
  • PublicEventObjective: 4
  • AmmoCache: 5
  • PointTypeFlag: 6
  • CapturePoint: 7
  • DefensiveEncounter: 8
  • GhostInteraction: 9
  • KillAi: 10
  • QuestItem: 11
  • PatrolMission: 12
  • Incoming: 13
  • ArenaObjective: 14
  • AutomationHint: 15
  • TrackedQuest: 16

Destiny.Definitions.DestinyActivityUnlockStringDefinition

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.
Type: object
Object Properties
displayString
The string to be displayed if the conditions are met.
Type: string

Destiny.Definitions.DestinyActivityRequirementsBlock

Type: object
Object Properties
leaderRequirementLabels
If being a fireteam Leader in this activity is gated, this is the gate being checked.
Type: array
fireteamRequirementLabels
If being a fireteam member in this activity is gated, this is the gate being checked.
Type: array

Destiny.Definitions.DestinyActivityRequirementLabel

Type: object
Object Properties
displayString
Type: string

Destiny.Definitions.DestinyActivityPlaylistItemDefinition

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.
Type: object
Object Properties
activityHash
Mapped to Definition
The hash identifier of the Activity that can be played. Use it to look up the DestinyActivityDefinition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
directActivityModeHash
Nullable Mapped to Definition
If this playlist entry had an activity mode directly defined on it, this will be the hash of that mode.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityModeDefinition
directActivityModeType
Nullable Enumeration
If the playlist entry had an activity mode directly defined on it, this will be the enum value of that mode.
Type: int32
Valid Enum Values
  • None: 0
  • Story: 2
  • Strike: 3
  • Raid: 4
  • AllPvP: 5
  • Patrol: 6
  • AllPvE: 7
  • Reserved9: 9
  • Control: 10
  • Reserved11: 11
  • Clash: 12
    Clash -> Destiny's name for Team Deathmatch. 4v4 combat, the team with the highest kills at the end of time wins.
  • Reserved13: 13
  • CrimsonDoubles: 15
  • Nightfall: 16
  • HeroicNightfall: 17
  • AllStrikes: 18
  • IronBanner: 19
  • Reserved20: 20
  • Reserved21: 21
  • Reserved22: 22
  • Reserved24: 24
  • AllMayhem: 25
  • Reserved26: 26
  • Reserved27: 27
  • Reserved28: 28
  • Reserved29: 29
  • Reserved30: 30
  • Supremacy: 31
  • PrivateMatchesAll: 32
  • Survival: 37
  • Countdown: 38
  • TrialsOfTheNine: 39
  • Social: 40
  • TrialsCountdown: 41
  • TrialsSurvival: 42
  • IronBannerControl: 43
  • IronBannerClash: 44
  • IronBannerSupremacy: 45
  • ScoredNightfall: 46
  • ScoredHeroicNightfall: 47
  • Rumble: 48
  • AllDoubles: 49
  • Doubles: 50
  • PrivateMatchesClash: 51
  • PrivateMatchesControl: 52
  • PrivateMatchesSupremacy: 53
  • PrivateMatchesCountdown: 54
  • PrivateMatchesSurvival: 55
  • PrivateMatchesMayhem: 56
  • PrivateMatchesRumble: 57
  • HeroicAdventure: 58
  • Showdown: 59
  • Lockdown: 60
  • Scorched: 61
  • ScorchedTeam: 62
  • Gambit: 63
  • AllPvECompetitive: 64
  • Breakthrough: 65
  • BlackArmoryRun: 66
  • Salvage: 67
  • IronBannerSalvage: 68
  • PvPCompetitive: 69
  • PvPQuickplay: 70
  • ClashQuickplay: 71
  • ClashCompetitive: 72
  • ControlQuickplay: 73
  • ControlCompetitive: 74
  • GambitPrime: 75
  • Reckoning: 76
  • Menagerie: 77
  • VexOffensive: 78
  • NightmareHunt: 79
  • Elimination: 80
  • Momentum: 81
  • Dungeon: 82
  • Sundial: 83
  • TrialsOfOsiris: 84
  • Dares: 85
  • Offensive: 86
  • LostSector: 87
  • Rift: 88
  • ZoneControl: 89
  • IronBannerRift: 90
  • IronBannerZoneControl: 91
  • Relic: 92
activityModeHashes
Mapped to Definition
The hash identifiers for Activity Modes relevant to this entry.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityModeDefinition
activityModeTypes
The activity modes - if any - in enum form. Because we can't seem to escape the enums.
Type: array
Array Contents: int32

Destiny.HistoricalStats.Definitions.DestinyActivityModeType

Enumeration
For historical reasons, this list will have both D1 and D2-relevant Activity Modes in it. Please don't take this to mean that some D1-only feature is coming back!
Type: int32
Valid Enum Values
  • None: 0
  • Story: 2
  • Strike: 3
  • Raid: 4
  • AllPvP: 5
  • Patrol: 6
  • AllPvE: 7
  • Reserved9: 9
  • Control: 10
  • Reserved11: 11
  • Clash: 12
    Clash -> Destiny's name for Team Deathmatch. 4v4 combat, the team with the highest kills at the end of time wins.
  • Reserved13: 13
  • CrimsonDoubles: 15
  • Nightfall: 16
  • HeroicNightfall: 17
  • AllStrikes: 18
  • IronBanner: 19
  • Reserved20: 20
  • Reserved21: 21
  • Reserved22: 22
  • Reserved24: 24
  • AllMayhem: 25
  • Reserved26: 26
  • Reserved27: 27
  • Reserved28: 28
  • Reserved29: 29
  • Reserved30: 30
  • Supremacy: 31
  • PrivateMatchesAll: 32
  • Survival: 37
  • Countdown: 38
  • TrialsOfTheNine: 39
  • Social: 40
  • TrialsCountdown: 41
  • TrialsSurvival: 42
  • IronBannerControl: 43
  • IronBannerClash: 44
  • IronBannerSupremacy: 45
  • ScoredNightfall: 46
  • ScoredHeroicNightfall: 47
  • Rumble: 48
  • AllDoubles: 49
  • Doubles: 50
  • PrivateMatchesClash: 51
  • PrivateMatchesControl: 52
  • PrivateMatchesSupremacy: 53
  • PrivateMatchesCountdown: 54
  • PrivateMatchesSurvival: 55
  • PrivateMatchesMayhem: 56
  • PrivateMatchesRumble: 57
  • HeroicAdventure: 58
  • Showdown: 59
  • Lockdown: 60
  • Scorched: 61
  • ScorchedTeam: 62
  • Gambit: 63
  • AllPvECompetitive: 64
  • Breakthrough: 65
  • BlackArmoryRun: 66
  • Salvage: 67
  • IronBannerSalvage: 68
  • PvPCompetitive: 69
  • PvPQuickplay: 70
  • ClashQuickplay: 71
  • ClashCompetitive: 72
  • ControlQuickplay: 73
  • ControlCompetitive: 74
  • GambitPrime: 75
  • Reckoning: 76
  • Menagerie: 77
  • VexOffensive: 78
  • NightmareHunt: 79
  • Elimination: 80
  • Momentum: 81
  • Dungeon: 82
  • Sundial: 83
  • TrialsOfOsiris: 84
  • Dares: 85
  • Offensive: 86
  • LostSector: 87
  • Rift: 88
  • ZoneControl: 89
  • IronBannerRift: 90
  • IronBannerZoneControl: 91
  • Relic: 92

Destiny.Definitions.DestinyActivityModeDefinition

Mobile Manifest Entity
This definition represents an "Activity Mode" as it exists in the Historical Stats endpoints. An individual Activity Mode represents a collection of activities that are played in a certain way. For example, Nightfall Strikes are part of a "Nightfall" activity mode, and any activities played as the PVP mode "Clash" are part of the "Clash activity mode.

Activity modes are nested under each other in a hierarchy, so that if you ask for - for example - "AllPvP", you will get any PVP activities that the user has played, regardless of what specific PVP mode was being played.
Mapped to Mobile Manifest Table: ActivityModes
Type: object
Object Properties
pgcrImage
If this activity mode has a related PGCR image, this will be the path to said image.
Type: string
modeType
The Enumeration value for this Activity Mode. Pass this identifier into Stats endpoints to get aggregate stats for this mode.
Type: int32
activityModeCategory
The type of play being performed in broad terms (PVP, PVE)
Type: int32
isTeamBased
If True, this mode has oppositional teams fighting against each other rather than "Free-For-All" or Co-operative modes of play.

Note that Aggregate modes are never marked as team based, even if they happen to be team based at the moment. At any time, an aggregate whose subordinates are only team based could be changed so that one or more aren't team based, and then this boolean won't make much sense (the aggregation would become "sometimes team based"). Let's not deal with that right now.
Type: boolean
isAggregateMode
If true, this mode is an aggregation of other, more specific modes rather than being a mode in itself. This includes modes that group Features/Events rather than Gameplay, such as Trials of The Nine: Trials of the Nine being an Event that is interesting to see aggregate data for, but when you play the activities within Trials of the Nine they are more specific activity modes such as Clash.
Type: boolean
parentHashes
The hash identifiers of the DestinyActivityModeDefinitions that represent all of the "parent" modes for this mode. For instance, the Nightfall Mode is also a member of AllStrikes and AllPvE.
Type: array
Array Contents: uint32
friendlyName
A Friendly identifier you can use for referring to this Activity Mode. We really only used this in our URLs, so... you know, take that for whatever it's worth.
Type: string
activityModeMappings
If this exists, the mode has specific Activities (referred to by the Key) that should instead map to other Activity Modes when they are played. This was useful in D1 for Private Matches, where we wanted to have Private Matches as an activity mode while still referring to the specific mode being played.
Type: object
Dictionary Contents: int32
Dictionary Key Type: uint32
display
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
order
The relative ordering of activity modes.
Type: int32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.DestinyActivityModeCategory

Enumeration
Activity Modes are grouped into a few possible broad categories.
Type: int32
Valid Enum Values
  • None: 0
    Activities that are neither PVP nor PVE, such as social activities.
  • PvE: 1
    PvE activities, where you shoot aliens in the face.
  • PvP: 2
    PvP activities, where you shoot your "friends".
  • PvECompetitive: 3
    PVE competitive activities, where you shoot whoever you want whenever you want. Or run around collecting small glowing triangles.

Destiny.Definitions.DestinyActivityMatchmakingBlockDefinition

Information about matchmaking and party size for the activity.
Type: object
Object Properties
isMatchmade
If TRUE, the activity is matchmade. Otherwise, it requires explicit forming of a party.
Type: boolean
minParty
The minimum # of people in the fireteam for the activity to launch.
Type: int32
maxParty
The maximum # of people allowed in a Fireteam.
Type: int32
maxPlayers
The maximum # of people allowed across all teams in the activity.
Type: int32
requiresGuardianOath
If true, you have to Solemnly Swear to be up to Nothing But Good(tm) to play.
Type: boolean

Destiny.Definitions.DestinyActivityGuidedBlockDefinition

Guided Game information for this activity.
Type: object
Object Properties
guidedMaxLobbySize
The maximum amount of people that can be in the waiting lobby.
Type: int32
guidedMinLobbySize
The minimum amount of people that can be in the waiting lobby.
Type: int32
guidedDisbandCount
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.
Type: int32

Destiny.Definitions.DestinyActivityLoadoutRequirementSet

Type: object
Object Properties
requirements
The set of requirements that will be applied on the activity if this requirement set is active.
Type: array

Destiny.Definitions.DestinyActivityLoadoutRequirement

Type: object
Object Properties
equipmentSlotHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyEquipmentSlotDefinition
allowedEquippedItemHashes
Mapped to Definition
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
allowedWeaponSubTypes
Type: array
Array Contents: int32

Destiny.DestinyItemSubType

Enumeration
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".

These 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.

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.
Type: int32
Valid Enum Values
  • None: 0
  • Crucible: 1
    DEPRECATED. Items can be both "Crucible" and something else interesting.
  • Vanguard: 2
    DEPRECATED. An item can both be "Vanguard" and something else.
  • Exotic: 5
    DEPRECATED. An item can both be Exotic and something else.
  • AutoRifle: 6
  • Shotgun: 7
  • Machinegun: 8
  • HandCannon: 9
  • RocketLauncher: 10
  • FusionRifle: 11
  • SniperRifle: 12
  • PulseRifle: 13
  • ScoutRifle: 14
  • Crm: 16
    DEPRECATED. An item can both be CRM and something else.
  • Sidearm: 17
  • Sword: 18
  • Mask: 19
  • Shader: 20
  • Ornament: 21
  • FusionRifleLine: 22
  • GrenadeLauncher: 23
  • SubmachineGun: 24
  • TraceRifle: 25
  • HelmetArmor: 26
  • GauntletsArmor: 27
  • ChestArmor: 28
  • LegArmor: 29
  • ClassArmor: 30
  • Bow: 31
  • DummyRepeatableBounty: 32
  • Glaive: 33

Destiny.Definitions.DestinyActivityInsertionPointDefinition

A point of entry into an activity, gated by an unlock flag and with some more-or-less useless (for our purposes) phase information. I'm including it in case we end up being able to bolt more useful information onto it in the future.

UPDATE: Turns out this information isn't actually useless, and is in fact actually useful for people. Who would have thought? We still don't have localized info for it, but at least this will help people when they're looking at phase indexes in stats data, or when they want to know what phases have been completed on a weekly achievement.
Type: object
Object Properties
phaseHash
A unique hash value representing the phase. This can be useful for, for example, comparing how different instances of Raids have phases in different orders!
Type: uint32

Destiny.Constants.DestinyEnvironmentLocationMapping

Type: object
Object Properties
locationHash
Mapped to Definition
The location that is revealed on the director by this mapping.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyLocationDefinition
activationSource
A hint that the UI uses to figure out how this location is activated by the player.
Type: string
itemHash
Nullable Mapped to Definition
If this is populated, it is the item that you must possess for this location to be active because of this mapping. (theoretically, a location can have multiple mappings, and some might require an item while others don't)
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
objectiveHash
Nullable Mapped to Definition
If this is populated, this is an objective related to the location.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyObjectiveDefinition
activityHash
Nullable Mapped to Definition
If this is populated, this is the activity you have to be playing in order to see this location appear because of this mapping. (theoretically, a location can have multiple mappings, and some might require you to be in a specific activity when others don't)
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition

Destiny.Definitions.DestinyPlaceDefinition

Mobile Manifest Entity
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).

Places are more on the planetary scale, like "Earth" and "Your Mom."
Mapped to Mobile Manifest Table: Places
Type: object
Object Properties
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyActivityTypeDefinition

Mobile Manifest Entity
The definition for an Activity Type.

In Destiny 2, an Activity Type represents a conceptual categorization of Activities.

These 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.

Unfortunately, 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.

For 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.
Mapped to Mobile Manifest Table: ActivityTypes
Type: object
Object Properties
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Director.DestinyActivityGraphNodeStateEntry

Represents a single state that a graph node might end up in. Depending on what's going on in the game, graph nodes could be shown in different ways or even excluded from view entirely.
Type: object
Object Properties
state
Type: int32

Destiny.DestinyGraphNodeState

Enumeration
Represents a potential state of an Activity Graph node.
Type: int32
Valid Enum Values
  • Hidden: 0
  • Visible: 1
  • Teaser: 2
  • Incomplete: 3
  • Completed: 4

Destiny.Definitions.Director.DestinyActivityGraphArtElementDefinition

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)
Type: object
Object Properties
position
The position on the map of the art element.
Type: object

Destiny.Definitions.Director.DestinyActivityGraphConnectionDefinition

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.
Type: object
Object Properties
sourceNodeHash
Type: uint32
destNodeHash
Type: uint32

Destiny.Definitions.Director.DestinyActivityGraphDisplayObjectiveDefinition

When a Graph needs to show active Objectives, this defines those objectives as well as an identifier.
Type: object
Object Properties
id
$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.
Type: uint32
objectiveHash
Mapped to Definition
The objective being shown on the map.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyObjectiveDefinition

Destiny.Definitions.Director.DestinyActivityGraphDisplayProgressionDefinition

When a Graph needs to show active Progressions, this defines those objectives as well as an identifier.
Type: object
Object Properties
id
Type: uint32
progressionHash
Type: uint32

Destiny.Definitions.Director.DestinyLinkedGraphDefinition

This describes links between the current graph and others, as well as when that link is relevant.
Type: object
Object Properties
description
Type: string
name
Type: string
linkedGraphId
Type: uint32
linkedGraphs
overview
Type: string

Destiny.Definitions.DestinyUnlockExpressionDefinition

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.

Use UnlockExpressionParser to evaluate expressions using an IUnlockContext parsed from Babel.
Type: object
Object Properties
scope
A shortcut for determining the most restrictive gating that this expression performs. See the DestinyGatingScope enum's documentation for more details.
Type: int32

Destiny.Definitions.Director.DestinyLinkedGraphEntryDefinition

Type: object
Object Properties
activityGraphHash
Type: uint32

Destiny.Definitions.DestinyDestinationBubbleSettingDefinition

Human readable data about the bubble. Combine with DestinyBubbleDefinition - see DestinyDestinationDefinition.bubbleSettings for more information.

DEPRECATED - Just use bubbles.
Type: object
Object Properties

Destiny.Definitions.DestinyBubbleDefinition

Basic identifying data about the bubble. Combine with DestinyDestinationBubbleSettingDefinition - see DestinyDestinationDefinition.bubbleSettings for more information.
Type: object
Object Properties
hash
The identifier for the bubble: only guaranteed to be unique within the Destination.
Type: uint32
displayProperties
The display properties of this bubble, so you don't have to look them up in a separate list anymore.
Type: object

Destiny.Definitions.DestinyVendorGroupReference

Type: object
Object Properties
vendorGroupHash
Mapped to Definition
The DestinyVendorGroupDefinition to which this Vendor can belong.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorGroupDefinition

Destiny.Definitions.DestinyVendorGroupDefinition

Mobile Manifest Entity
BNet attempts to group vendors into similar collections. These groups aren't technically game canonical, but they are helpful for filtering vendors or showing them organized into a clean view on a webpage or app.

These definitions represent the groups we've built. Unlike in Destiny 1, a Vendors' group may change dynamically as the game state changes: thus, you will want to check DestinyVendorComponent responses to find a vendor's currently active Group (if you care).

Using this will let you group your vendors in your UI in a similar manner to how we will do grouping in the Companion.
Mapped to Mobile Manifest Table: VendorGroups
Type: object
Object Properties
order
The recommended order in which to render the groups, Ascending order.
Type: int32
categoryName
For now, a group just has a name.
Type: string
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyFactionDefinition

Mobile Manifest Entity
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.

A 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.
Mapped to Mobile Manifest Table: Factions
Type: object
Object Properties
progressionHash
Mapped to Definition
The hash identifier for the DestinyProgressionDefinition that indicates the character's relationship with this faction in terms of experience and levels.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyProgressionDefinition
tokenValues
The faction token item hashes, and their respective progression values.
Type: object
Dictionary Contents: uint32
Dictionary Key Type: uint32
rewardItemHash
Mapped to Definition
The faction reward item hash, usually an engram.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
rewardVendorHash
Mapped to Definition
The faction reward vendor hash, used for faction engram previews.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorDefinition
vendors
List of vendors that are associated with this faction. The last vendor that passes the unlock flag checks is the one that should be shown.
Type: array
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyFactionVendorDefinition

These definitions represent faction vendors at different points in the game.

A single faction may contain multiple vendors, or the same vendor available at two different locations.
Type: object
Object Properties
vendorHash
Mapped to Definition
The faction vendor hash.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorDefinition
destinationHash
Mapped to Definition
The hash identifier for a Destination at which this vendor may be located. Each destination where a Vendor may exist will only ever have a single entry.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyDestinationDefinition
backgroundImagePath
The relative path to the background image representing this Vendor at this location, for use in a banner.
Type: string

Destiny.Definitions.DestinySandboxPatternDefinition

Mobile Manifest Entity
Mapped to Mobile Manifest Table: SandboxPatterns
Type: object
Object Properties
patternHash
Type: uint32
patternGlobalTagIdHash
Type: uint32
weaponContentGroupHash
Type: uint32
weaponTranslationGroupHash
Type: uint32
weaponTypeHash
Nullable
Type: uint32
weaponType
Type: int32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyArrangementRegionFilterDefinition

Type: object
Object Properties
artArrangementRegionHash
Type: uint32
artArrangementRegionIndex
Type: int32
statHash
Type: uint32
arrangementIndexByStatValue
Type: object
Dictionary Contents: int32
Dictionary Key Type: int32

Destiny.Definitions.DestinyItemPreviewBlockDefinition

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.

This defines those categories, and gives some insights into that data's source.
Type: object
Object Properties
screenStyle
A string that the game UI uses as a hint for which detail screen to show for the item. You, too, can leverage this for your own custom screen detail views. Note, however, that these are arbitrarily defined by designers: there's no guarantees of a fixed, known number of these - so fall back to something reasonable if you don't recognize it.
Type: string
previewVendorHash
Mapped to Definition
If the preview data is derived from a fake "Preview" Vendor, this will be the hash identifier for the DestinyVendorDefinition of that fake vendor.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorDefinition
artifactHash
Nullable Mapped to Definition
If this item should show you Artifact information when you preview it, this is the hash identifier of the DestinyArtifactDefinition for the artifact whose data should be shown.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Artifacts.DestinyArtifactDefinition
previewActionString
If the preview has an associated action (like "Open"), this will be the localized string for that action.
Type: string
derivedItemCategories
This is a list of the items being previewed, categorized in the same way as they are in the preview UI.
Type: array

Destiny.Definitions.Items.DestinyDerivedItemCategoryDefinition

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.

A 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.
Type: object
Object Properties
categoryDescription
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
This is the list of all of the items for this category and the basic properties we'll know about them.
Type: array

Destiny.Definitions.Items.DestinyDerivedItemDefinition

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.
Type: object
Object Properties
itemHash
Nullable
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.
Type: uint32
itemName
The name of the derived item.
Type: string
itemDetail
Additional details about the derived item, in addition to the description.
Type: string
itemDescription
A brief description of the item.
Type: string
iconPath
An icon for the item.
Type: string
vendorItemIndex
If the item was derived from a "Preview Vendor", this will be an index into the DestinyVendorDefinition's itemList property. Otherwise, -1.
Type: int32

Destiny.Definitions.Artifacts.DestinyArtifactDefinition

Mobile Manifest Entity
Represents known info about a Destiny Artifact.

We cannot guarantee that artifact definitions will be immutable between seasons - in fact, we've been told that they will be replaced between seasons. But this definition is built both to minimize the amount of lookups for related data that have to occur, and is built in hope that, if this plan changes, we will be able to accommodate it more easily.
Mapped to Mobile Manifest Table: Artifacts
Type: object
Object Properties
displayProperties
Any basic display info we know about the Artifact. Currently sourced from a related inventory item, but the source of this data is subject to change.
Type: object
translationBlock
Any Geometry/3D info we know about the Artifact. Currently sourced from a related inventory item's gearset information, but the source of this data is subject to change.
Type: object
tiers
Any Tier/Rank data related to this artifact, listed in display order. Currently sourced from a Vendor, but this source is subject to change.
Type: array
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Artifacts.DestinyArtifactTierDefinition

Type: object
Object Properties
tierHash
An identifier, unique within the Artifact, for this specific tier.
Type: uint32
displayTitle
The human readable title of this tier, if any.
Type: string
progressRequirementMessage
A string representing the localized minimum requirement text for this Tier, if any.
Type: string
items
The items that can be earned within this tier.
Type: array
minimumUnlockPointsUsedRequirement
The minimum number of "unlock points" that you must have used before you can unlock items from this tier.
Type: int32

Destiny.Definitions.Artifacts.DestinyArtifactTierItemDefinition

Type: object
Object Properties
itemHash
Mapped to Definition
The identifier of the Plug Item unlocked by activating this item in the Artifact.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition

Destiny.Definitions.DestinyItemQualityBlockDefinition

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.

In 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.
Type: object
Object Properties
itemLevels
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.

In 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.
Type: array
Array Contents: int32
qualityLevel
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.
Type: int32
infusionCategoryName
The string identifier for this item's "infusability", if any.

Items that match the same infusionCategoryName are allowed to infuse with each other.

DEPRECATED: Items can now have multiple infusion categories. Please use infusionCategoryHashes instead.
Type: string
infusionCategoryHash
The hash identifier for the infusion. It does not map to a Definition entity.

DEPRECATED: Items can now have multiple infusion categories. Please use infusionCategoryHashes instead.
Type: uint32
infusionCategoryHashes
If any one of these hashes matches any value in another item's infusionCategoryHashes, the two can infuse with each other.
Type: array
Array Contents: uint32
progressionLevelRequirementHash
Mapped to Definition
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.
Type: uint32
currentVersion
The latest version available for this item.
Type: uint32
versions
The list of versions available for this item.
Type: array
displayVersionWatermarkIcons
Icon overlays to denote the item version and power cap status.
Type: array
Array Contents: string

Destiny.Definitions.DestinyItemVersionDefinition

The version definition currently just holds a reference to the power cap.
Type: object
Object Properties
powerCapHash
Mapped to Definition
A reference to the power cap for this item version.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.PowerCaps.DestinyPowerCapDefinition

Destiny.Definitions.PowerCaps.DestinyPowerCapDefinition

Mobile Manifest Entity
Defines a 'power cap' (limit) for gear items, based on the rarity tier and season of release.
Mapped to Mobile Manifest Table: PowerCaps
Type: object
Object Properties
powerCap
The raw value for a power cap.
Type: int32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Progression.DestinyProgressionLevelRequirementDefinition

Mobile Manifest Entity
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).

For 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.
Mapped to Mobile Manifest Table: ProgressionLevelRequirements
Type: object
Object Properties
requirementCurve
A curve of level requirements, weighted by the related progressions' level.

Interpolate 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.
Type: array
progressionHash
Mapped to Definition
The progression whose level should be used to determine the level requirement.

Look up the DestinyProgressionDefinition with this hash for more information about the progression in question.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyProgressionDefinition
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Interpolation.InterpolationPointFloat

Type: object
Object Properties
value
Type: float
weight
Type: float

Destiny.Definitions.DestinyItemValueBlockDefinition

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.

For 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)

It 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.
Type: object
Object Properties
itemValue
References to the items that make up this item's "value", and the quantity.
Type: array
Array Contents: Destiny.DestinyItemQuantity
valueDescription
If there's a localized text description of the value provided, this will be said description.
Type: string

Destiny.Definitions.DestinyItemSourceBlockDefinition

Data about an item's "sources": ways that the item can be obtained.
Type: object
Object Properties
sourceHashes
Mapped to Definition
The list of hash identifiers for Reward Sources that hint where the item can be found (DestinyRewardSourceDefinition).
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyRewardSourceDefinition
sources
A collection of details about the stats that were computed for the ways we found that the item could be spawned.
Type: array
exclusive
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: int32
vendorSources
A denormalized reference back to vendors that potentially sell this item.
Type: array

Destiny.Definitions.Sources.DestinyItemSourceDefinition

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.

Items 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.
Type: object
Object Properties
level
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.
Type: int32
minQuality
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.
Type: int32
maxQuality
The maximum quality at which the item spawns for this level.
Type: int32
minLevelRequired
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.
Type: int32
maxLevelRequired
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.
Type: int32
computedStats
The stats computed for this level/quality range.
Type: object
Dictionary Key Type: uint32
sourceHashes
Mapped to Definition
The DestinyRewardSourceDefinitions found that can spawn the item at this level.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyRewardSourceDefinition

Destiny.Definitions.DestinyRewardSourceDefinition

Mobile Manifest Entity
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.

Still, 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.

An 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.
Mapped to Mobile Manifest Table: RewardSources
Type: object
Object Properties
category
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: int32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyRewardSourceCategory

Enumeration
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.
Type: int32
Valid Enum Values
  • None: 0
    The source doesn't fit well into any of the other types.
  • Activity: 1
    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.
  • Vendor: 2
    This source is directly related to items that Vendors sell.
  • Aggregate: 3
    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.

Destiny.Definitions.DestinyItemVendorSourceReference

Represents that a vendor could sell this item, and provides a quick link to that vendor and sale item.

Note that we do not and cannot make a guarantee that the vendor will ever *actually* sell this item, only that the Vendor has a definition that indicates it *could* be sold.

Note also that a vendor may sell the same item in multiple "ways", which means there may be multiple vendorItemIndexes for a single Vendor hash.
Type: object
Object Properties
vendorHash
Mapped to Definition
The identifier for the vendor that may sell this item.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorDefinition
vendorItemIndexes
The Vendor sale item indexes that represent the sale information for this item. The same vendor may sell an item in multiple "ways", hence why this is a list. (for instance, a weapon may be "sold" as a reward in a quest, for Glimmer, and for Masterwork Cores: each of those ways would be represented by a different vendor sale item with a different index)
Type: array
Array Contents: int32

Destiny.Definitions.DestinyItemObjectiveBlockDefinition

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.

Quest steps have 1:M objectives that we end up processing and returning in live data as DestinyQuestStatus data, and other useful information.
Type: object
Object Properties
objectiveHashes
Mapped to Definition
The hashes to Objectives (DestinyObjectiveDefinition) that are part of this Quest Step, in the order that they should be rendered.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyObjectiveDefinition
displayActivityHashes
Mapped to Definition
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).

Rendered somewhat obsolete by perObjectiveDisplayProperties, which currently has much the same information but may end up with more info in the future.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
requireFullObjectiveCompletion
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
questlineItemHash
Mapped to Definition
The hash for the DestinyInventoryItemDefinition representing the Quest to which this Quest Step belongs.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
narrative
The localized string for narrative text related to this quest step, if any.
Type: string
objectiveVerbName
The localized string describing an action to be performed associated with the objectives, if any.
Type: string
questTypeIdentifier
The identifier for the type of quest being performed, if any. Not associated with any fixed definition, yet.
Type: string
questTypeHash
A hashed value for the questTypeIdentifier, because apparently I like to be redundant.
Type: uint32
perObjectiveDisplayProperties
One entry per Objective on the item, it will have related display information.
Type: array
displayAsStatTracker
Type: boolean

Destiny.Definitions.DestinyObjectiveDisplayProperties

Type: object
Object Properties
activityHash
Nullable Mapped to Definition
The activity associated with this objective in the context of this item, if any.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
displayOnItemPreviewScreen
If true, the game shows this objective on item preview screens.
Type: boolean

Destiny.Definitions.DestinyItemMetricBlockDefinition

The metrics available for display and selection on an item.
Type: object
Object Properties
availableMetricCategoryNodeHashes
Mapped to Definition
Hash identifiers for any DestinyPresentationNodeDefinition entry that can be used to list available metrics. Any metric listed directly below these nodes, or in any of these nodes' children will be made available for selection.
Type: array
Array Contents: uint32

Destiny.Definitions.Presentation.DestinyPresentationNodeBaseDefinition

This is the base class for all presentation system children. Presentation Nodes, Records, Collectibles, and Metrics.
Type: object
Object Properties
presentationNodeType
Type: int32
traitIds
Type: array
Array Contents: string
traitHashes
Mapped to Definition
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Traits.DestinyTraitDefinition
parentNodeHashes
Mapped to Definition
A quick reference to presentation nodes that have this node as a child. Presentation nodes can be parented under multiple parents.
Type: array
Array Contents: uint32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.DestinyPresentationNodeType

Enumeration
Type: int32
Valid Enum Values
  • Default: 0
  • Category: 1
  • Collectibles: 2
  • Records: 3
  • Metric: 4
  • Craftable: 5

Destiny.Definitions.Traits.DestinyTraitDefinition

Mobile Manifest Entity
Mapped to Mobile Manifest Table: Traits
Type: object
Object Properties
displayHint
An identifier for how this trait can be displayed. For example: a 'keyword' hint to show an explanation for certain related terms.
Type: string
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Presentation.DestinyScoredPresentationNodeBaseDefinition

Type: object
Object Properties
maxCategoryRecordScore
Type: int32
presentationNodeType
Type: int32
traitIds
Type: array
Array Contents: string
traitHashes
Mapped to Definition
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Traits.DestinyTraitDefinition
parentNodeHashes
Mapped to Definition
A quick reference to presentation nodes that have this node as a child. Presentation nodes can be parented under multiple parents.
Type: array
Array Contents: uint32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition

Mobile Manifest Entity
A PresentationNode is an entity that represents a logical grouping of other entities visually/organizationally.

For now, Presentation Nodes may contain the following... but it may be used for more in the future:

- Collectibles - Records (Or, as the public will call them, "Triumphs." Don't ask me why we're overloading the term "Triumph", it still hurts me to think about it) - Metrics (aka Stat Trackers) - Other Presentation Nodes, allowing a tree of Presentation Nodes to be created

Part of me wants to break these into conceptual definitions per entity being collected, but the possibility of these different types being mixed in the same UI and the possibility that it could actually be more useful to return the "bare metal" presentation node concept has resulted in me deciding against that for the time being.

We'll see if I come to regret this as well.
Mapped to Mobile Manifest Table: PresentationNodes
Type: object
Object Properties
originalIcon
The original icon for this presentation node, before we futzed with it.
Type: string
rootViewIcon
Some presentation nodes are meant to be explicitly shown on the "root" or "entry" screens for the feature to which they are related. You should use this icon when showing them on such a view, if you have a similar "entry point" view in your UI. If you don't have a UI, then I guess it doesn't matter either way does it?
Type: string
nodeType
Type: int32
isSeasonal
Primarily for Guardian Ranks, this property if the contents of this node are tied to the current season. These nodes are shown with a different color for the in-game Guardian Ranks display.
Type: boolean
scope
Indicates whether this presentation node's state is determined on a per-character or on an account-wide basis.
Type: int32
objectiveHash
Nullable Mapped to Definition
If this presentation node shows a related objective (for instance, if it tracks the progress of its children), the objective being tracked is indicated here.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyObjectiveDefinition
completionRecordHash
Nullable Mapped to Definition
If this presentation node has an associated "Record" that you can accomplish for completing its children, this is the identifier of that Record.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Records.DestinyRecordDefinition
children
The child entities contained by this presentation node.
Type: object
displayStyle
A hint for how to display this presentation node when it's shown in a list.
Type: int32
screenStyle
A hint for how to display this presentation node when it's shown in its own detail screen.
Type: int32
requirements
The requirements for being able to interact with this presentation node and its children.
Type: object
disableChildSubscreenNavigation
If this presentation node has children, but the game doesn't let you inspect the details of those children, that is indicated here.
Type: boolean
maxCategoryRecordScore
Type: int32
presentationNodeType
Type: int32
traitIds
Type: array
Array Contents: string
traitHashes
Mapped to Definition
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Traits.DestinyTraitDefinition
parentNodeHashes
Mapped to Definition
A quick reference to presentation nodes that have this node as a child. Presentation nodes can be parented under multiple parents.
Type: array
Array Contents: uint32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.DestinyScope

Enumeration
There's a lot of places where we need to know scope on more than just a profile or character level. For everything else, there's this more generic sense of scope.
Type: int32
Valid Enum Values
  • Profile: 0
  • Character: 1

Destiny.Definitions.Presentation.DestinyPresentationNodeChildrenBlock

As/if presentation nodes begin to host more entities as children, these lists will be added to. One list property exists per type of entity that can be treated as a child of this presentation node, and each holds the identifier of the entity and any associated information needed to display the UI for that entity (if anything)
Type: object

Destiny.Definitions.Presentation.DestinyPresentationNodeChildEntryBase

Type: object
Object Properties
nodeDisplayPriority
Use this value to sort the presentation node children in ascending order.
Type: uint32

Destiny.Definitions.Presentation.DestinyPresentationNodeChildEntry

Type: object
Object Properties
presentationNodeHash
Mapped to Definition
Type: uint32
nodeDisplayPriority
Use this value to sort the presentation node children in ascending order.
Type: uint32

Destiny.Definitions.Presentation.DestinyPresentationNodeCollectibleChildEntry

Type: object
Object Properties
collectibleHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Collectibles.DestinyCollectibleDefinition
nodeDisplayPriority
Use this value to sort the presentation node children in ascending order.
Type: uint32

Destiny.Definitions.Collectibles.DestinyCollectibleDefinition

Mobile Manifest Entity
Defines a
Mapped to Mobile Manifest Table: Collectibles
Type: object
Object Properties
scope
Indicates whether the state of this Collectible is determined on a per-character or on an account-wide basis.
Type: int32
sourceString
A human readable string for a hint about how to acquire the item.
Type: string
sourceHash
Nullable
This is a hash identifier we are building on the BNet side in an attempt to let people group collectibles by similar sources.

I can't promise that it's going to be 100% accurate, but if the designers were consistent in assigning the same source strings to items with the same sources, it *ought to* be. No promises though.

This hash also doesn't relate to an actual definition, just to note: we've got nothing useful other than the source string for this data.
Type: uint32
itemHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
presentationNodeType
Type: int32
traitIds
Type: array
Array Contents: string
traitHashes
Mapped to Definition
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Traits.DestinyTraitDefinition
parentNodeHashes
Mapped to Definition
A quick reference to presentation nodes that have this node as a child. Presentation nodes can be parented under multiple parents.
Type: array
Array Contents: uint32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Collectibles.DestinyCollectibleAcquisitionBlock

Type: object
Object Properties
acquireMaterialRequirementHash
Nullable Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyMaterialRequirementSetDefinition
acquireTimestampUnlockValueHash
Nullable Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyUnlockValueDefinition

Destiny.Definitions.DestinyUnlockValueDefinition

An Unlock Value is an internal integer value, stored on the server and used in a variety of ways, most frequently for the gating/requirement checks that the game performs across all of its main features. They can also be used as the storage data for mapped Progressions, Objectives, and other features that require storage of variable numeric values.
Type: object
Object Properties
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Collectibles.DestinyCollectibleStateBlock

Type: object
Object Properties
obscuredOverrideItemHash
Nullable Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition

Destiny.Definitions.Presentation.DestinyPresentationNodeRequirementsBlock

Presentation nodes can be restricted by various requirements. This defines the rules of those requirements, and the message(s) to be shown if these requirements aren't met.
Type: object
Object Properties
entitlementUnavailableMessage
If this node is not accessible due to Entitlements (for instance, you don't own the required game expansion), this is the message to show.
Type: string

Destiny.Definitions.Presentation.DestinyPresentationChildBlock

Type: object
Object Properties
presentationNodeType
Type: int32
parentPresentationNodeHashes
Mapped to Definition
Type: array
Array Contents: uint32
displayStyle
Type: int32

Destiny.DestinyPresentationDisplayStyle

Enumeration
A hint for how the presentation node should be displayed when shown in a list. How you use this is your UI is up to you.
Type: int32
Valid Enum Values
  • Category: 0
    Display the item as a category, through which sub-items are filtered.
  • Badge: 1
  • Medals: 2
  • Collectible: 3
  • Record: 4
  • SeasonalTriumph: 5
  • GuardianRank: 6
  • CategoryCollectibles: 7
  • CategoryCurrencies: 8
  • CategoryEmblems: 9
  • CategoryEmotes: 10
  • CategoryEngrams: 11
  • CategoryFinishers: 12
  • CategoryGhosts: 13
  • CategoryMisc: 14
  • CategoryMods: 15
  • CategoryOrnaments: 16
  • CategoryShaders: 17
  • CategoryShips: 18
  • CategorySpawnfx: 19
  • CategoryUpgradeMaterials: 20

Destiny.Definitions.Presentation.DestinyPresentationNodeRecordChildEntry

Type: object
Object Properties
recordHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Records.DestinyRecordDefinition
nodeDisplayPriority
Use this value to sort the presentation node children in ascending order.
Type: uint32

Destiny.Definitions.Records.DestinyRecordDefinition

Mobile Manifest Entity
Mapped to Mobile Manifest Table: Records
Type: object
Object Properties
scope
Indicates whether this Record's state is determined on a per-character or on an account-wide basis.
Type: int32
loreHash
Nullable Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Lore.DestinyLoreDefinition
objectiveHashes
Mapped to Definition
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyObjectiveDefinition
recordValueStyle
Type: int32
forTitleGilding
Type: boolean
shouldShowLargeIcons
A hint to show a large icon for a reward
Type: boolean
intervalInfo
Some records have multiple 'interval' objectives, and the record may be claimed at each completed interval
Type: object
rewardItems
If there is any publicly available information about rewards earned for achieving this record, this is the list of those items.

However, note that some records intentionally have "hidden" rewards. These will not be returned in this list.
Type: array
Array Contents: Destiny.DestinyItemQuantity
recordTypeName
A display name for the type of record this is (Triumphs, Lore, Medals, Seasonal Challenge, etc.).
Type: string
presentationNodeType
Type: int32
traitIds
Type: array
Array Contents: string
traitHashes
Mapped to Definition
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Traits.DestinyTraitDefinition
parentNodeHashes
Mapped to Definition
A quick reference to presentation nodes that have this node as a child. Presentation nodes can be parented under multiple parents.
Type: array
Array Contents: uint32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.DestinyRecordValueStyle

Enumeration
Type: int32
Valid Enum Values
  • Integer: 0
  • Percentage: 1
  • Milliseconds: 2
  • Boolean: 3
  • Decimal: 4

Destiny.Definitions.Records.DestinyRecordTitleBlock

Type: object
Object Properties
hasTitle
Type: boolean
titlesByGender
Type: object
Dictionary Contents: string
Dictionary Key Type: int32
titlesByGenderHash
Mapped to Definition
For those who prefer to use the definitions.
Type: object
Dictionary Contents: string
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyGenderDefinition
gildingTrackingRecordHash
Nullable Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Records.DestinyRecordDefinition

Destiny.Definitions.Records.DestinyRecordCompletionBlock

Type: object
Object Properties
partialCompletionObjectiveCountThreshold
The number of objectives that must be completed before the objective is considered "complete"
Type: int32
ScoreValue
Type: int32
shouldFireToast
Type: boolean
toastStyle
Type: int32

Destiny.DestinyRecordToastStyle

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Record: 1
  • Lore: 2
  • Badge: 3
  • MetaRecord: 4
  • MedalComplete: 5
  • SeasonChallengeComplete: 6
  • GildedTitleComplete: 7
  • CraftingRecipeUnlocked: 8
  • ToastGuardianRankDetails: 9
  • PathfinderObjectiveCompleteRituals: 10
  • PathfinderObjectiveCompleteSchism: 11
  • PathfinderObjectiveCompletePvp: 12
  • PathfinderObjectiveCompleteStrikes: 13
  • PathfinderObjectiveCompleteGambit: 14

Destiny.Definitions.Records.SchemaRecordStateBlock

Type: object
Object Properties
featuredPriority
Type: int32
obscuredName
A display name override to show when this record is 'obscured' instead of the default obscured display name.
Type: string
obscuredDescription
A display description override to show when this record is 'obscured' instead of the default obscured display description.
Type: string

Destiny.Definitions.Records.DestinyRecordExpirationBlock

If this record has an expiration after which it cannot be earned, this is some information about that expiration.
Type: object
Object Properties
hasExpiration
Type: boolean
description
Type: string
icon
Type: string

Destiny.Definitions.Records.DestinyRecordIntervalBlock

Type: object
Object Properties
intervalObjectives
intervalRewards
originalObjectiveArrayInsertionIndex
Type: int32

Destiny.Definitions.Records.DestinyRecordIntervalObjective

Type: object
Object Properties
intervalObjectiveHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyObjectiveDefinition
intervalScoreValue
Type: int32

Destiny.Definitions.Records.DestinyRecordIntervalRewards

Type: object
Object Properties
intervalRewardItems
Type: array
Array Contents: Destiny.DestinyItemQuantity

Destiny.Definitions.Lore.DestinyLoreDefinition

Mobile Manifest Entity
These are definitions for in-game "Lore," meant to be narrative enhancements of the game experience.

DestinyInventoryItemDefinitions 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.
Mapped to Mobile Manifest Table: Lore
Type: object
Object Properties
subtitle
Type: string
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Presentation.DestinyPresentationNodeMetricChildEntry

Type: object
Object Properties
metricHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Metrics.DestinyMetricDefinition
nodeDisplayPriority
Use this value to sort the presentation node children in ascending order.
Type: uint32

Destiny.Definitions.Metrics.DestinyMetricDefinition

Mobile Manifest Entity
Mapped to Mobile Manifest Table: Metrics
Type: object
Object Properties
trackingObjectiveHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyObjectiveDefinition
lowerValueIsBetter
Type: boolean
presentationNodeType
Type: int32
traitIds
Type: array
Array Contents: string
traitHashes
Mapped to Definition
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Traits.DestinyTraitDefinition
parentNodeHashes
Mapped to Definition
A quick reference to presentation nodes that have this node as a child. Presentation nodes can be parented under multiple parents.
Type: array
Array Contents: uint32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Presentation.DestinyPresentationNodeCraftableChildEntry

Type: object
Object Properties
craftableItemHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
nodeDisplayPriority
Use this value to sort the presentation node children in ascending order.
Type: uint32

Destiny.DestinyPresentationScreenStyle

Enumeration
A hint for what screen should be shown when this presentation node is clicked into. How you use this is your UI is up to you.
Type: int32
Valid Enum Values
  • Default: 0
    Use the "default" view for the presentation nodes.
  • CategorySets: 1
    Show sub-items as "category sets". In-game, you'd see these as a vertical list of child presentation nodes - armor sets for example - and the icons of items within those sets displayed horizontally.
  • Badge: 2
    Show sub-items as Badges. (I know, I know. We don't need no stinkin' badges har har har)

Destiny.Definitions.Items.DestinyItemPlugDefinition

If an item is a Plug, its DestinyInventoryItemDefinition.plug property will be populated with an instance of one of these bad boys.

This 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.
Type: object
Object Properties
insertionRules
The rules around when this plug can be inserted into a socket, aside from the socket's individual restrictions.

The live data DestinyItemPlugComponent.insertFailIndexes will be an index into this array, so you can pull out the failure strings appropriate for the user.
Type: array
plugCategoryIdentifier
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
plugCategoryHash
The hash for the plugCategoryIdentifier. You can use this instead if you wish: I put both in the definition for debugging purposes.
Type: uint32
onActionRecreateSelf
If you successfully socket the item, this will determine whether or not you get "refunded" on the plug.
Type: boolean
insertionMaterialRequirementHash
Mapped to Definition
If inserting this plug requires materials, this is the hash identifier for looking up the DestinyMaterialRequirementSetDefinition for those requirements.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyMaterialRequirementSetDefinition
previewItemOverrideHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
enabledMaterialRequirementHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyMaterialRequirementSetDefinition
enabledRules
The rules around whether the plug, once inserted, is enabled and providing its benefits.

The live data DestinyItemPlugComponent.enableFailIndexes will be an index into this array, so you can pull out the failure strings appropriate for the user.
Type: array
uiPlugLabel
Plugs can have arbitrary, UI-defined identifiers that the UI designers use to determine the style applied to plugs. Unfortunately, we have neither a definitive list of these labels nor advance warning of when new labels might be applied or how that relates to how they get rendered. If you want to, you can refer to known labels to change your own styles: but know that new ones can be created arbitrarily, and we have no way of associating the labels with any specific UI style guidance... you'll have to piece that together on your end. Or do what we do, and just show plugs more generically, without specialized styles.
Type: string
plugStyle
Type: int32
plugAvailability
Indicates the rules about when this plug can be used. See the PlugAvailabilityMode enumeration for more information!
Type: int32
alternateUiPlugLabel
If the plug meets certain state requirements, it may have an alternative label applied to it. This is the alternative label that will be applied in such a situation.
Type: string
alternatePlugStyle
The alternate plug of the plug: only applies when the item is in states that only the server can know about and control, unfortunately. See AlternateUiPlugLabel for the related label info.
Type: int32
isDummyPlug
If TRUE, this plug is used for UI display purposes only, and doesn't have any interesting effects of its own.
Type: boolean
parentItemOverride
Do you ever get the feeling that a system has become so overburdened by edge cases that it probably should have become some other system entirely? So do I!

In totally unrelated news, Plugs can now override properties of their parent items. This is some of the relevant definition data for those overrides.

If this is populated, it will have the override data to be applied when this plug is applied to an item.
Type: object
energyCapacity
IF not null, this plug provides Energy capacity to the item in which it is socketed. In Armor 2.0 for example, is implemented in a similar way to Masterworks, where visually it's a single area of the UI being clicked on to "Upgrade" to higher energy levels, but it's actually socketing new plugs.
Type: object
energyCost
IF not null, this plug has an energy cost. This contains the details of that cost.
Type: object

Destiny.Definitions.Items.DestinyPlugRuleDefinition

Dictates a rule around whether the plug is enabled or insertable.

In 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.
Type: object
Object Properties
failureMessage
The localized string to show if this rule fails.
Type: string

Destiny.PlugUiStyles

Enumeration
If the plug has a specific custom style, this enumeration will represent that style/those styles.
Type: int32
Valid Enum Values
  • None: 0
  • Masterwork: 1

Destiny.PlugAvailabilityMode

Enumeration
This enum determines whether the plug is available to be inserted.

- Normal means that all existing rules for plug insertion apply.

- UnavailableIfSocketContainsMatchingPlugCategory means that the plug is only available if the socket does NOT match the plug category.

- AvailableIfSocketContainsMatchingPlugCategory means that the plug is only available if the socket DOES match the plug category.

For category matching, use the plug's "plugCategoryIdentifier" property, comparing it to
Type: int32
Valid Enum Values
  • Normal: 0
  • UnavailableIfSocketContainsMatchingPlugCategory: 1
  • AvailableIfSocketContainsMatchingPlugCategory: 2

Destiny.Definitions.Items.DestinyParentItemOverride

Type: object
Object Properties
additionalEquipRequirementsDisplayStrings
Type: array
Array Contents: string
pipIcon
Type: string

Destiny.Definitions.Items.DestinyEnergyCapacityEntry

Items can have Energy Capacity, and plugs can provide that capacity such as on a piece of Armor in Armor 2.0. This is how much "Energy" can be spent on activating plugs for this item.
Type: object
Object Properties
capacityValue
How much energy capacity this plug provides.
Type: int32
energyTypeHash
Mapped to Definition
Energy provided by a plug is always of a specific type - this is the hash identifier for the energy type for which it provides Capacity.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.EnergyTypes.DestinyEnergyTypeDefinition
energyType
The Energy Type for this energy capacity, in enum form for easy use.
Type: int32

Destiny.DestinyEnergyType

Enumeration
Represents the socket energy types for Armor 2.0, Ghosts 2.0, and Stasis subclasses.
Type: int32
Valid Enum Values
  • Any: 0
  • Arc: 1
  • Thermal: 2
  • Void: 3
  • Ghost: 4
  • Subclass: 5
  • Stasis: 6

Destiny.Definitions.EnergyTypes.DestinyEnergyTypeDefinition

Mobile Manifest Entity
Represents types of Energy that can be used for costs and payments related to Armor 2.0 mods.
Mapped to Mobile Manifest Table: EnergyTypes
Type: object
Object Properties
displayProperties
The description of the energy type, icon etc...
Type: object
transparentIconPath
A variant of the icon that is transparent and colorless.
Type: string
showIcon
If TRUE, the game shows this Energy type's icon. Otherwise, it doesn't. Whether you show it or not is up to you.
Type: boolean
enumValue
We have an enumeration for Energy types for quick reference. This is the current definition's Energy type enum value.
Type: int32
capacityStatHash
Nullable Mapped to Definition
If this Energy Type can be used for determining the Type of Energy that an item can consume, this is the hash for the DestinyInvestmentStatDefinition that represents the stat which holds the Capacity for that energy type. (Note that this is optional because "Any" is a valid cost, but not valid for Capacity - an Armor must have a specific Energy Type for determining the energy type that the Armor is restricted to use)
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyStatDefinition
costStatHash
Mapped to Definition
If this Energy Type can be used as a cost to pay for socketing Armor 2.0 items, this is the hash for the DestinyInvestmentStatDefinition that stores the plug's raw cost.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyStatDefinition
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Items.DestinyEnergyCostEntry

Some plugs cost Energy, which is a stat on the item that can be increased by other plugs (that, at least in Armor 2.0, have a "masterworks-like" mechanic for upgrading). If a plug has costs, the details of that cost are defined here.
Type: object
Object Properties
energyCost
The Energy cost for inserting this plug.
Type: int32
energyTypeHash
Mapped to Definition
The type of energy that this plug costs, as a reference to the DestinyEnergyTypeDefinition of the energy type.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.EnergyTypes.DestinyEnergyTypeDefinition
energyType
The type of energy that this plug costs, in enum form.
Type: int32

Destiny.Definitions.DestinyItemGearsetBlockDefinition

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!)
Type: object
Object Properties
trackingValueMax
The maximum possible number of items that can be collected.
Type: int32
itemList
Mapped to Definition
The list of hashes for items in the gearset. Use them to look up DestinyInventoryItemDefinition entries for the items in the set.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition

Destiny.Definitions.DestinyItemSackBlockDefinition

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".
Type: object
Object Properties
detailAction
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
The localized name of the action being performed when you open the sack.
Type: string
selectItemCount
Type: int32
vendorSackType
Type: string
openOnAcquire
Type: boolean

Destiny.Definitions.DestinyItemSocketBlockDefinition

If defined, the item has at least one socket.
Type: object
Object Properties
detail
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
socketEntries
Each non-intrinsic (or mutable) socket on an item is defined here. Check inside for more info.
Type: array
intrinsicSockets
Each intrinsic (or immutable/permanent) socket on an item is defined here, along with the plug that is permanently affixed to the socket.
Type: array
socketCategories
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.
Type: array

Destiny.Definitions.DestinyItemSocketEntryDefinition

The definition information for a specific socket on an item. This will determine how the socket behaves in-game.
Type: object
Object Properties
socketTypeHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Sockets.DestinySocketTypeDefinition
singleInitialItemHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
reusablePlugItems
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.

If 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.
Type: array
preventInitializationOnVendorPurchase
If this is true, then the socket will not be initialized with a plug if the item is purchased from a Vendor.

Remember that Vendors are much more than conceptual vendors: they include "Collection Kiosks" and other entities. See DestinyVendorDefinition for more information.
Type: boolean
hidePerksInItemTooltip
If this is true, the perks provided by this socket shouldn't be shown in the item's tooltip. This might be useful if it's providing a hidden bonus, or if the bonus is less important than other benefits on the item.
Type: boolean
plugSources
Indicates where you should go to get plugs for this socket. This will affect how you populate your UI, as well as what plugs are valid for this socket. It's an alternative to having to check for the existence of certain properties (reusablePlugItems for example) to infer where plugs should come from.
Type: int32
reusablePlugSetHash
Nullable Mapped to Definition
If this socket's plugs come from a reusable DestinyPlugSetDefinition, this is the identifier for that set. We added this concept to reduce some major duplication that's going to come from sockets as replacements for what was once implemented as large sets of items and kiosks (like Emotes).

As of Shadowkeep, these will come up much more frequently and be driven by game content rather than custom curation.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Sockets.DestinyPlugSetDefinition
randomizedPlugSetHash
Nullable Mapped to Definition
This field replaces "randomizedPlugItems" as of Shadowkeep launch. If a socket has randomized plugs, this is a pointer to the set of plugs that could be used, as defined in DestinyPlugSetDefinition.

If null, the item has no randomized plugs.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Sockets.DestinyPlugSetDefinition
defaultVisible
If true, then this socket is visible in the item's "default" state. If you have an instance, you should always check the runtime state, as that can override this visibility setting: but if you're looking at the item on a conceptual level, this property can be useful for hiding data such as legacy sockets - which remain defined on items for infrastructure purposes, but can be confusing for users to see.
Type: boolean

Destiny.Definitions.DestinyItemSocketEntryPlugItemDefinition

The definition of a known, reusable plug that can be applied to a socket.
Type: object
Object Properties
plugItemHash
Mapped to Definition
The hash identifier of a DestinyInventoryItemDefinition representing the plug that can be inserted.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition

Destiny.SocketPlugSources

Enumeration
Indicates how a socket is populated, and where you should look for valid plug data.

This is a flags enumeration/bitmask field, as you may have to look in multiple sources across multiple components for valid plugs.

For instance, a socket could have plugs that are sourced from its own definition, as well as plugs that are sourced from Character-scoped AND profile-scoped Plug Sets. Only by combining plug data for every indicated source will you be able to know all of the plugs available for a socket.
Type: int32
Valid Enum Values
  • None: 0
    If there's no way we can detect to insert new plugs.
  • InventorySourced: 1
    Use plugs found in the player's inventory, based on the socket type rules (see DestinySocketTypeDefinition for more info)

    Note that a socket - like Shaders - can have *both* reusable plugs and inventory items inserted theoretically.
  • ReusablePlugItems: 2
    Use the DestinyItemSocketsComponent.sockets.reusablePlugs property to determine which plugs are valid for this socket. This may have to be combined with other sources, such as plug sets, if those flags are set.

    Note that "Reusable" plugs may not necessarily come from a plug set, nor from the "reusablePlugItems" in the socket's Definition data. They can sometimes be "randomized" in which case the only source of truth at the moment is still the runtime DestinyItemSocketsComponent.sockets.reusablePlugs property.
  • ProfilePlugSet: 4
    Use the ProfilePlugSets (DestinyProfileResponse.profilePlugSets) component data to determine which plugs are valid for this socket.
  • CharacterPlugSet: 8
    Use the CharacterPlugSets (DestinyProfileResponse.characterPlugSets) component data to determine which plugs are valid for this socket.

Destiny.Definitions.Sockets.DestinyPlugSetDefinition

Mobile Manifest Entity
Sometimes, we have large sets of reusable plugs that are defined identically and thus can (and in some cases, are so large that they *must*) be shared across the places where they are used. These are the definitions for those reusable sets of plugs.

See DestinyItemSocketEntryDefinition.plugSource and reusablePlugSetHash for the relationship between these reusable plug sets and the sockets that leverage them (for starters, Emotes).

As of the release of Shadowkeep (Late 2019), these will begin to be sourced from game content directly - which means there will be many more of them, but it also means we may not get all data that we used to get for them.

DisplayProperties, in particular, will no longer be guaranteed to contain valid information. We will make a best effort to guess what ought to be populated there where possible, but it will be invalid for many/most plug sets.
Mapped to Mobile Manifest Table: PlugSets
Type: object
Object Properties
displayProperties
If you want to show these plugs in isolation, these are the display properties for them.
Type: object
reusablePlugItems
This is a list of pre-determined plugs that can be plugged into this socket, without the character having the plug in their inventory.

If 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.
Type: array
isFakePlugSet
Mostly for our debugging or reporting bugs, BNet is making "fake" plug sets in a desperate effort to reduce socket sizes.

If this is true, the plug set was generated by BNet: if it looks wrong, that's a good indicator that it's bungie.net that fucked this up.
Type: boolean
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyItemSocketEntryPlugItemRandomizedDefinition

Type: object
Object Properties
currentlyCanRoll
Indicates if the plug can be rolled on the current version of the item. For example, older versions of weapons may have plug rolls that are no longer possible on the current versions.
Type: boolean
plugItemHash
Mapped to Definition
The hash identifier of a DestinyInventoryItemDefinition representing the plug that can be inserted.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition

Destiny.Definitions.DestinyPlugItemCraftingRequirements

Type: object
Object Properties
unlockRequirements
requiredLevel
Nullable
If the plug has a known level requirement, it'll be available here.
Type: int32
materialRequirementHashes
Mapped to Definition
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyMaterialRequirementSetDefinition

Destiny.Definitions.DestinyPlugItemCraftingUnlockRequirement

Type: object
Object Properties
failureDescription
Type: string

Destiny.Definitions.DestinyItemIntrinsicSocketEntryDefinition

Represents a socket that has a plug associated with it intrinsically. This is useful for situations where the weapon needs to have a visual plug/Mod on it, but that plug/Mod should never change.
Type: object
Object Properties
plugItemHash
Mapped to Definition
Indicates the plug that is intrinsically inserted into this socket.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
socketTypeHash
Mapped to Definition
Indicates the type of this intrinsic socket.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Sockets.DestinySocketTypeDefinition
defaultVisible
If true, then this socket is visible in the item's "default" state. If you have an instance, you should always check the runtime state, as that can override this visibility setting: but if you're looking at the item on a conceptual level, this property can be useful for hiding data such as legacy sockets - which remain defined on items for infrastructure purposes, but can be confusing for users to see.
Type: boolean

Destiny.Definitions.DestinyItemSocketCategoryDefinition

Sockets are grouped into categories in the UI. These define which category and which sockets are under that category.
Type: object
Object Properties
socketCategoryHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Sockets.DestinySocketCategoryDefinition
socketIndexes
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.
Type: array
Array Contents: int32

Destiny.Definitions.DestinyItemSummaryBlockDefinition

This appears to be information used when rendering rewards. We don't currently use it on BNet.
Type: object
Object Properties
sortPriority
Apparently when rendering an item in a reward, this should be used as a sort priority. We're not doing it presently.
Type: int32

Destiny.Definitions.DestinyItemTalentGridBlockDefinition

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.

Builds/Subclasses are the only items left that still have talent grids with meaningful Nodes.
Type: object
Object Properties
talentGridHash
Mapped to Definition
The hash identifier of the DestinyTalentGridDefinition attached to this item.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyTalentGridDefinition
itemDetailString
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
buildName
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
If the talent grid implies a damage type, this is the enum value for that damage type.
Type: int32
hudIcon
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

Destiny.Definitions.DestinyTalentGridDefinition

Mobile Manifest Entity
The time has unfortunately come to talk about Talent Grids.

Talent Grids are the most complex and unintuitive part of the Destiny Definition data. Grab a cup of coffee before we begin, I can wait.

Talent 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.

Talent 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.

Now 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.

DestinyInventoryItem.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.
Mapped to Mobile Manifest Table: Talents
Type: object
Object Properties
maxGridLevel
The maximum possible level of the Talent Grid: at this level, any nodes are allowed to be activated.
Type: int32
gridLevelPerColumn
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.
Type: int32
progressionHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyProgressionDefinition
nodes
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).
Type: array
exclusiveSets
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").

If 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.

Not 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.
Type: array
independentNodeIndexes
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.
Type: array
Array Contents: int32
groups
Talent Nodes can have "Exclusive Groups". These are not to be confused with Exclusive Sets (see exclusiveSets property).

Look at the definition of DestinyTalentExclusiveGroup for more information and how they work. These groups are keyed by the "groupHash" from DestinyTalentExclusiveGroup.
Type: object
Dictionary Key Type: uint32
nodeCategories
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.

Note 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.
Type: array
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyTalentNodeDefinition

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.

The Current Step determines the visual properties of the node, as well as what the node grants when it is activated.

See 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).
Type: object
Object Properties
nodeIndex
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.
Type: int32
nodeHash
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.

The 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!
Type: uint32
row
The visual "row" where the node should be shown in the UI. If negative, then the node is hidden.
Type: int32
column
The visual "column" where the node should be shown in the UI. If negative, the node is hidden.
Type: int32
prerequisiteNodeIndexes
Indexes into the DestinyTalentGridDefinition.nodes property for any nodes that must be activated before this one is allowed to be activated.

I would have liked to change this to hashes for Destiny 2, but we have run out of time.
Type: array
Array Contents: int32
binaryPairNodeIndex
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.

If 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.
Type: int32
autoUnlocks
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
lastStepRepeats
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.

This 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
isRandom
If this is true, the node's step is determined randomly rather than the first step being chosen.
Type: boolean
randomActivationRequirement
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.

The system still exists to do this, as far as I know, so it may yet come back around!
Type: object
isRandomRepurchasable
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
steps
At this point, "steps" have been obfuscated into conceptual entities, aggregating the underlying notions of "properties" and "true steps".

If 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.
Type: array
exclusiveWithNodeHashes
The nodeHash values for nodes that are in an Exclusive Set with this node.

See DestinyTalentGridDefinition.exclusiveSets for more info about exclusive sets.

Again, note that these are nodeHashes and *not* nodeIndexes.
Type: array
Array Contents: uint32
randomStartProgressionBarAtProgression
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.
Type: int32
layoutIdentifier
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
groupHash
Nullable
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.

See DestinyTalentExclusiveGroup for more information on the details. This is an identifier for this node's group, if it is part of one.
Type: uint32
loreHash
Nullable Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Lore.DestinyLoreDefinition
nodeStyleIdentifier
Comes from the talent grid node style: this identifier should be used to determine how to render the node in the UI.
Type: string
ignoreForCompletion
Comes from the talent grid node style: if true, then this node should be ignored for determining whether the grid is complete.
Type: boolean

Destiny.Definitions.DestinyNodeActivationRequirement

Talent nodes have requirements that must be met before they can be activated.

This 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.
Type: object
Object Properties
gridLevel
The Progression level on the Talent Grid required to activate this node.

See DestinyTalentGridDefinition.progressionHash for the related Progression, and read DestinyProgressionDefinition's documentation to learn more about Progressions.
Type: int32
materialRequirementHashes
Mapped to Definition
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.

In 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.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyMaterialRequirementSetDefinition

Destiny.Definitions.DestinyNodeStepDefinition

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.

When a Talent Node is activated, the currently active step's benefits are conferred upon the item and character.

The 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).

Note 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.
Type: object
Object Properties
displayProperties
These are the display properties actually used to render the Talent Node. The currently active step's displayProperties are shown.
Type: object
stepIndex
The index of this step in the list of Steps on the Talent Node.

Unfortunately, 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.
Type: int32
nodeStepHash
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.
Type: uint32
interactionDescription
If you can interact with this node in some way, this is the localized description of that interaction.
Type: string
damageType
An enum representing a damage type granted by activating this step, if any.
Type: int32
damageTypeHash
Nullable Mapped to Definition
If the step provides a damage type, this will be the hash identifier used to look up the damage type's DestinyDamageTypeDefinition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyDamageTypeDefinition
activationRequirement
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
canActivateNextStep
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.

I 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
nextStepIndex
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.

This doesn't really matter anymore unless canActivateNextStep begins to be used again.
Type: int32
isNextStepRandom
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
perkHashes
Mapped to Definition
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.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinySandboxPerkDefinition
startProgressionBarAtProgress
When the Talent Grid's progression reaches this value, the circular "progress bar" that surrounds the talent node should be shown.

This 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)
Type: int32
statHashes
Mapped to Definition
When the step provides stat benefits on the item or character, this is the list of hash identifiers for stats (DestinyStatDefinition) that are provided.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyStatDefinition
affectsQuality
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
stepGroups
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
affectsLevel
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
socketReplacements
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.
Type: array

Destiny.Definitions.DestinyTalentNodeStepGroups

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.
Type: object
Object Properties
weaponPerformance
Type: int32
impactEffects
Type: int32
guardianAttributes
Type: int32
lightAbilities
Type: int32
damageTypes
Type: int32

Destiny.Definitions.DestinyTalentNodeStepWeaponPerformances

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • RateOfFire: 1
  • Damage: 2
  • Accuracy: 4
  • Range: 8
  • Zoom: 16
  • Recoil: 32
  • Ready: 64
  • Reload: 128
  • HairTrigger: 256
  • AmmoAndMagazine: 512
  • TrackingAndDetonation: 1024
  • ShotgunSpread: 2048
  • ChargeTime: 4096
  • All: 8191

Destiny.Definitions.DestinyTalentNodeStepImpactEffects

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • ArmorPiercing: 1
  • Ricochet: 2
  • Flinch: 4
  • CollateralDamage: 8
  • Disorient: 16
  • HighlightTarget: 32
  • All: 63

Destiny.Definitions.DestinyTalentNodeStepGuardianAttributes

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Stats: 1
  • Shields: 2
  • Health: 4
  • Revive: 8
  • AimUnderFire: 16
  • Radar: 32
  • Invisibility: 64
  • Reputations: 128
  • All: 255

Destiny.Definitions.DestinyTalentNodeStepLightAbilities

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Grenades: 1
  • Melee: 2
  • MovementModes: 4
  • Orbs: 8
  • SuperEnergy: 16
  • SuperMods: 32
  • All: 63

Destiny.Definitions.DestinyTalentNodeStepDamageTypes

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Kinetic: 1
  • Arc: 2
  • Solar: 4
  • Void: 8
  • All: 15

Destiny.Definitions.DestinyNodeSocketReplaceResponse

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.
Type: object
Object Properties
socketTypeHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Sockets.DestinySocketTypeDefinition
plugItemHash
Mapped to Definition
The hash identifier of the plug item that will be inserted into the socket found.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition

Destiny.Definitions.DestinyTalentNodeExclusiveSetDefinition

The list of indexes into the Talent Grid's "nodes" property for nodes in this exclusive set. (See DestinyTalentNodeDefinition.nodeIndex)
Type: object
Object Properties
nodeIndexes
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!)
Type: array
Array Contents: int32

Destiny.Definitions.DestinyTalentExclusiveGroup

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.
Type: object
Object Properties
groupHash
The identifier for this exclusive group. Only guaranteed unique within the talent grid, not globally.
Type: uint32
loreHash
Nullable Mapped to Definition
If this group has an associated piece of lore to show next to it, this will be the identifier for that DestinyLoreDefinition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Lore.DestinyLoreDefinition
nodeHashes
A quick reference of the talent nodes that are part of this group, by their Talent Node hashes. (See DestinyTalentNodeDefinition.nodeHash)
Type: array
Array Contents: uint32
opposingGroupHashes
A quick reference of Groups whose nodes will be deactivated if any node in this group is activated.
Type: array
Array Contents: uint32
opposingNodeHashes
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)
Type: array
Array Contents: uint32

Destiny.Definitions.DestinyTalentNodeCategory

An artificial construct provided by Bungie.Net, where we attempt to group talent nodes by functionality.

This is a single set of references to Talent Nodes that share a common trait or purpose.
Type: object
Object Properties
identifier
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
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
displayProperties
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
nodeHashes
The set of all hash identifiers for Talent Nodes (DestinyTalentNodeDefinition) in this Talent Grid that are part of this Category.
Type: array
Array Contents: uint32

Destiny.Definitions.DestinyItemPerkEntryDefinition

An intrinsic perk on an item, and the requirements for it to be activated.
Type: object
Object Properties
requirementDisplayString
If this perk is not active, this is the string to show for why it's not providing its benefits.
Type: string
perkHash
Mapped to Definition
A hash identifier for the DestinySandboxPerkDefinition being provided on the item.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinySandboxPerkDefinition
perkVisibility
Indicates whether this perk should be shown, or if it should be shown disabled.
Type: int32

Destiny.ItemPerkVisibility

Enumeration
Indicates how a perk should be shown, or if it should be, in the game UI. Maybe useful for those of you trying to filter out internal-use-only perks (or for those of you trying to figure out what they do!)
Type: int32
Valid Enum Values
  • Visible: 0
  • Disabled: 1
  • Hidden: 2

Destiny.Definitions.Animations.DestinyAnimationReference

Type: object
Object Properties
animName
Type: string
animIdentifier
Type: string
path
Type: string

Links.HyperlinkReference

Type: object
Object Properties
title
Type: string
url
Type: string

Destiny.SpecialItemType

Enumeration
As you run into items that need to be classified for Milestone purposes in ways that we cannot infer via direct data, add a new classification here and use a string constant to represent it in the local item config file.

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.
Type: int32
Valid Enum Values
  • None: 0
  • SpecialCurrency: 1
  • Armor: 8
  • Weapon: 9
  • Engram: 23
  • Consumable: 24
  • ExchangeMaterial: 25
  • MissionReward: 27
  • Currency: 29

Destiny.DestinyItemType

Enumeration
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 weapon "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.

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.

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.

I keep updating these because they're so damn convenient. I guess I shouldn't fight it.
Type: int32
Valid Enum Values
  • None: 0
  • Currency: 1
  • Armor: 2
  • Weapon: 3
  • Message: 7
  • Engram: 8
  • Consumable: 9
  • ExchangeMaterial: 10
  • MissionReward: 11
  • QuestStep: 12
  • QuestStepComplete: 13
  • Emblem: 14
  • Quest: 15
  • Subclass: 16
  • ClanBanner: 17
  • Aura: 18
  • Mod: 19
  • Dummy: 20
  • Ship: 21
  • Vehicle: 22
  • Emote: 23
  • Ghost: 24
  • Package: 25
  • Bounty: 26
  • Wrapper: 27
  • SeasonalArtifact: 28
  • Finisher: 29
  • Pattern: 30

Destiny.DestinyBreakerType

Enumeration
A plug can optionally have a "Breaker Type": a special ability that can affect units in unique ways. Activating this plug can grant one of these types.
Type: int32
Valid Enum Values
  • None: 0
  • ShieldPiercing: 1
  • Disruption: 2
  • Stagger: 3

Destiny.Definitions.DestinyItemCategoryDefinition

Mobile Manifest Entity
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.

This heuristic is imperfect, however. If you find an item miscategorized, let us know on the Bungie API forums!

We 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!
Mapped to Mobile Manifest Table: ItemCategories
Type: object
Object Properties
visible
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
deprecated
If True, this category has been deprecated: it may have no items left, or there may be only legacy items that remain in it which are no longer relevant to the game.
Type: boolean
shortTitle
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
itemTypeRegex
The janky regular expression we used against the item type to try and discern whether the item belongs to this category.
Type: string
grantDestinyBreakerType
If the item in question has this category, it also should have this breaker type.
Type: int32
plugCategoryIdentifier
If the item is a plug, this is the identifier we expect to find associated with it if it is in this category.
Type: string
itemTypeRegexNot
If the item type matches this janky regex, it does *not* belong to this category.
Type: string
originBucketIdentifier
If the item belongs to this bucket, it does belong to this category.
Type: string
grantDestinyItemType
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: int32
grantDestinySubType
If an item belongs to this category, it will also receive this subtype enum value.

I know what you're thinking - what if it belongs to multiple categories that provide sub-types?

The 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: int32
grantDestinyClass
If an item belongs to this category, it will also get this class restriction enum value.

See the other "grant"-prefixed properties on this definition for my color commentary.
Type: int32
traitId
The traitId that can be found on items that belong to this category.
Type: string
groupedCategoryHashes
Mapped to Definition
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.

In 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.

(I hope someone named Carl reads this someday)
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyItemCategoryDefinition
parentCategoryHashes
All item category hashes of "parent" categories: categories that contain this as a child through the hierarchy of groupedCategoryHashes. It's a bit redundant, but having this child-centric list speeds up some calculations.
Type: array
Array Contents: uint32
groupCategoryOnly
If true, this category is only used for grouping, and should not be evaluated with its own checks. Rather, the item only has this category if it has one of its child categories.
Type: boolean
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.BreakerTypes.DestinyBreakerTypeDefinition

Mobile Manifest Entity
Mapped to Mobile Manifest Table: BreakerTypes
Type: object
Object Properties
enumValue
We have an enumeration for Breaker types for quick reference. This is the current definition's breaker type enum value.
Type: int32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Seasons.DestinySeasonDefinition

Mobile Manifest Entity
Defines a canonical "Season" of Destiny: a range of a few months where the game highlights certain challenges, provides new loot, has new Clan-related rewards and celebrates various seasonal events.
Mapped to Mobile Manifest Table: Seasons
Type: object
Object Properties
backgroundImagePath
Type: string
seasonNumber
Type: int32
startDate
Nullable
Type: date-time
endDate
Nullable
Type: date-time
seasonPassHash
Nullable Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Seasons.DestinySeasonPassDefinition
seasonPassProgressionHash
Nullable Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyProgressionDefinition
artifactItemHash
Nullable Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
sealPresentationNodeHash
Nullable Mapped to Definition
Type: uint32
acts
A list of Acts for the Episode
Type: array
seasonalChallengesPresentationNodeHash
Nullable Mapped to Definition
Type: uint32
preview
Optional - Defines the promotional text, images, and links to preview this season.
Type: object
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Seasons.DestinySeasonActDefinition

Defines the name, start time and ranks included in an Act of an Episode.
Type: object
Object Properties
displayName
The name of the Act.
Type: string
startTime
The start time of the Act.
Type: date-time
rankCount
The number of ranks included in the Act.
Type: int32

Destiny.Definitions.Seasons.DestinySeasonPreviewDefinition

Defines the promotional text, images, and links to preview this season.
Type: object
Object Properties
description
A localized description of the season.
Type: string
linkPath
A relative path to learn more about the season. Web browsers should be automatically redirected to the user's Bungie.net locale. For example: "/SeasonOfTheChosen" will redirect to "/7/en/Seasons/SeasonOfTheChosen" for English users.
Type: string
videoLink
An optional link to a localized video, probably YouTube.
Type: string
images
A list of images to preview the seasonal content. Should have at least three to show.
Type: array

Destiny.Definitions.Seasons.DestinySeasonPreviewImageDefinition

Defines the thumbnail icon, high-res image, and video link for promotional images
Type: object
Object Properties
thumbnailImage
A thumbnail icon path to preview seasonal content, probably 480x270.
Type: string
highResImage
An optional path to a high-resolution image, probably 1920x1080.
Type: string

Destiny.Definitions.Seasons.DestinySeasonPassDefinition

Mobile Manifest Entity
Mapped to Mobile Manifest Table: SeasonPasses
Type: object
Object Properties
rewardProgressionHash
Mapped to Definition
This is the progression definition related to the progression for the initial levels 1-100 that provide item rewards for the Season pass. Further experience after you reach the limit is provided in the "Prestige" progression referred to by prestigeProgressionHash.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyProgressionDefinition
prestigeProgressionHash
Mapped to Definition
I know what you're thinking, but I promise we're not going to duplicate and drown you. Instead, we're giving you sweet, sweet power bonuses.

Prestige progression is further progression that you can make on the Season pass after you gain max ranks, that will ultimately increase your power/light level over the theoretical limit.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyProgressionDefinition
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyProgressionRewardItemQuantity

Type: object
Object Properties
rewardedAtProgressionLevel
Type: int32
acquisitionBehavior
Type: int32
uiDisplayStyle
Type: string
claimUnlockDisplayStrings
Type: array
Array Contents: string
itemHash
Mapped to Definition
The hash identifier for the item in question. Use it to look up the item's DestinyInventoryItemDefinition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
itemInstanceId
Nullable
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.
Type: int64
quantity
The amount of the item needed/available depending on the context of where DestinyItemQuantity is being used.
Type: int32
hasConditionalVisibility
Indicates that this item quantity may be conditionally shown or hidden, based on various sources of state. For example: server flags, account state, or character progress.
Type: boolean

Destiny.DestinyProgressionRewardItemAcquisitionBehavior

Enumeration
Represents the different kinds of acquisition behavior for progression reward items.
Type: int32
Valid Enum Values
  • Instant: 0
  • PlayerClaimRequired: 1

GroupsV2.GroupUserBase

Type: object
Object Properties
groupId
Type: int64
destinyUserInfo
bungieNetUserInfo
joinDate
Type: date-time

GroupsV2.GroupMember

Type: object
Object Properties
memberType
Type: int32
isOnline
Type: boolean
lastOnlineStatusChange
Type: int64
groupId
Type: int64
destinyUserInfo
bungieNetUserInfo
joinDate
Type: date-time

GroupsV2.GroupAllianceStatus

Enumeration
Type: int32
Valid Enum Values
  • Unallied: 0
  • Parent: 1
  • Child: 2

GroupsV2.GroupPotentialMember

Type: object
Object Properties
potentialStatus
Type: int32
groupId
Type: int64
destinyUserInfo
bungieNetUserInfo
joinDate
Type: date-time

GroupsV2.GroupPotentialMemberStatus

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Applicant: 1
  • Invitee: 2

Tags.Models.Contracts.TagResponse

Type: object
Object Properties
tagText
Type: string
ignoreStatus

Forum.PollResponse

Type: object
Object Properties
topicId
Type: int64
results
Type: array
Array Contents: Forum.PollResult
totalVotes
Type: int32

Forum.PollResult

Type: object
Object Properties
answerText
Type: string
answerSlot
Type: int32
lastVoteDate
Type: date-time
votes
Type: int32
requestingUserVoted
Type: boolean

Forum.ForumRecruitmentDetail

Type: object
Object Properties
topicId
Type: int64
microphoneRequired
Type: boolean
intensity
Type: byte
tone
Type: byte
approved
Type: boolean
conversationId
Nullable
Type: int64
playerSlotsTotal
Type: int32
playerSlotsRemaining
Type: int32
Fireteam
Type: array
Array Contents: User.GeneralUser
kickedPlayerIds
Type: array
Array Contents: int64

Forum.ForumRecruitmentIntensityLabel

Enumeration
Type: byte
Valid Enum Values
  • None: 0
  • Casual: 1
  • Professional: 2

Forum.ForumRecruitmentToneLabel

Enumeration
Type: byte
Valid Enum Values
  • None: 0
  • FamilyFriendly: 1
  • Rowdy: 2

Forum.ForumPostSortEnum

Enumeration
Type: int32
Valid Enum Values
  • Default: 0
  • OldestFirst: 1

Config.GroupTheme

Type: object
Object Properties
name
Type: string
folder
Type: string
description
Type: string

GroupsV2.GroupDateRange

Enumeration
Type: int32
Valid Enum Values
  • All: 0
  • PastDay: 1
  • PastWeek: 2
  • PastMonth: 3
  • PastYear: 4

GroupsV2.GroupV2Card

A small infocard of group information, usually used for when a list of groups are returned
Type: object
Object Properties
groupId
Type: int64
name
Type: string
groupType
Type: int32
creationDate
Type: date-time
about
Type: string
motto
Type: string
memberCount
Type: int32
locale
Type: string
membershipOption
Type: int32
capabilities
Type: int32
remoteGroupId
Nullable
Type: int64
clanInfo
avatarPath
Type: string
theme
Type: string

SearchResultOfGroupV2Card

Type: object
Object Properties
results
Type: array
Array Contents: GroupsV2.GroupV2Card
totalResults
Type: int32
hasMore
Type: boolean
query
replacementContinuationToken
Type: string
useTotalResults
If useTotalResults is true, then totalResults represents an accurate count.

If False, it does not, and may be estimated/only the size of the current page.

Either way, you should probably always only trust hasMore.

This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one.
Type: boolean

GroupsV2.GroupSearchResponse

Type: object
Object Properties
results
Type: array
Array Contents: GroupsV2.GroupV2Card
totalResults
Type: int32
hasMore
Type: boolean
query
replacementContinuationToken
Type: string
useTotalResults
If useTotalResults is true, then totalResults represents an accurate count.

If False, it does not, and may be estimated/only the size of the current page.

Either way, you should probably always only trust hasMore.

This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one.
Type: boolean

GroupsV2.GroupQuery

NOTE: GroupQuery, as of Destiny 2, has essentially two totally different and incompatible "modes".

If you are querying for a group, you can pass any of the properties below.

If you are querying for a Clan, you MUST NOT pass any of the following properties (they must be null or undefined in your request, not just empty string/default values):

- groupMemberCountFilter - localeFilter - tagText

If you pass these, you will get a useless InvalidParameters error.
Type: object
Object Properties
name
Type: string
groupType
Type: int32
creationDate
Type: int32
sortBy
Type: int32
groupMemberCountFilter
Nullable Enumeration
Type: int32
Valid Enum Values
  • All: 0
  • OneToTen: 1
  • ElevenToOneHundred: 2
  • GreaterThanOneHundred: 3
localeFilter
Type: string
tagText
Type: string
itemsPerPage
Type: int32
currentPage
Type: int32
requestContinuationToken
Type: string

GroupsV2.GroupSortBy

Enumeration
Type: int32
Valid Enum Values
  • Name: 0
  • Date: 1
  • Popularity: 2
  • Id: 3

GroupsV2.GroupMemberCountFilter

Enumeration
Type: int32
Valid Enum Values
  • All: 0
  • OneToTen: 1
  • ElevenToOneHundred: 2
  • GreaterThanOneHundred: 3

GroupsV2.GroupNameSearchRequest

Type: object
Object Properties
groupName
Type: string
groupType
Type: int32

GroupsV2.GroupOptionalConversation

Type: object
Object Properties
groupId
Type: int64
conversationId
Type: int64
chatEnabled
Type: boolean
chatName
Type: string
chatSecurity
Type: int32

GroupsV2.GroupEditAction

Type: object
Object Properties
name
Type: string
about
Type: string
motto
Type: string
theme
Type: string
avatarImageIndex
Nullable
Type: int32
tags
Type: string
isPublic
Nullable
Type: boolean
membershipOption
Nullable Enumeration
Type: int32
Valid Enum Values
  • Reviewed: 0
  • Open: 1
  • Closed: 2
isPublicTopicAdminOnly
Nullable
Type: boolean
allowChat
Nullable
Type: boolean
chatSecurity
Nullable Enumeration
Type: int32
Valid Enum Values
  • Group: 0
  • Admins: 1
callsign
Type: string
locale
Type: string
homepage
Nullable Enumeration
Type: int32
Valid Enum Values
  • Wall: 0
  • Forum: 1
  • AllianceForum: 2
enableInvitationMessagingForAdmins
Nullable
Type: boolean
defaultPublicity
Nullable Enumeration
Type: int32
Valid Enum Values
  • Public: 0
  • Alliance: 1
  • Private: 2

GroupsV2.GroupOptionsEditAction

Type: object
Object Properties
InvitePermissionOverride
Nullable
Minimum Member Level allowed to invite new members to group

Always Allowed: Founder, Acting Founder

True means admins have this power, false means they don't

Default is false for clans, true for groups.
Type: boolean
UpdateCulturePermissionOverride
Nullable
Minimum Member Level allowed to update group culture

Always Allowed: Founder, Acting Founder

True means admins have this power, false means they don't

Default is false for clans, true for groups.
Type: boolean
HostGuidedGamePermissionOverride
Nullable Enumeration
Minimum Member Level allowed to host guided games

Always Allowed: Founder, Acting Founder, Admin

Allowed Overrides: None, Member, Beginner

Default is Member for clans, None for groups, although this means nothing for groups.
Type: int32
Valid Enum Values
  • None: 0
  • Beginner: 1
  • Member: 2
UpdateBannerPermissionOverride
Nullable
Minimum Member Level allowed to update banner

Always Allowed: Founder, Acting Founder

True means admins have this power, false means they don't

Default is false for clans, true for groups.
Type: boolean
JoinLevel
Nullable Enumeration
Level to join a member at when accepting an invite, application, or joining an open clan

Default is Beginner.
Type: int32
Valid Enum Values
  • None: 0
  • Beginner: 1
  • Member: 2
  • Admin: 3
  • ActingFounder: 4
  • Founder: 5

GroupsV2.GroupOptionalConversationAddRequest

Type: object
Object Properties
chatName
Type: string
chatSecurity
Type: int32

GroupsV2.GroupOptionalConversationEditRequest

Type: object
Object Properties
chatEnabled
Nullable
Type: boolean
chatName
Type: string
chatSecurity
Nullable Enumeration
Type: int32
Valid Enum Values
  • Group: 0
  • Admins: 1

SearchResultOfGroupMember

Type: object
Object Properties
results
Type: array
Array Contents: GroupsV2.GroupMember
totalResults
Type: int32
hasMore
Type: boolean
query
replacementContinuationToken
Type: string
useTotalResults
If useTotalResults is true, then totalResults represents an accurate count.

If False, it does not, and may be estimated/only the size of the current page.

Either way, you should probably always only trust hasMore.

This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one.
Type: boolean

GroupsV2.GroupMemberLeaveResult

Type: object
Object Properties
group
groupDeleted
Type: boolean

GroupsV2.GroupBanRequest

Type: object
Object Properties
comment
Type: string
length
Type: int32

Ignores.IgnoreLength

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Week: 1
  • TwoWeeks: 2
  • ThreeWeeks: 3
  • Month: 4
  • ThreeMonths: 5
  • SixMonths: 6
  • Year: 7
  • Forever: 8
  • ThreeMinutes: 9
  • Hour: 10
  • ThirtyDays: 11

GroupsV2.GroupBan

Type: object
Object Properties
groupId
Type: int64
lastModifiedBy
createdBy
dateBanned
Type: date-time
dateExpires
Type: date-time
comment
Type: string
bungieNetUserInfo
destinyUserInfo

SearchResultOfGroupBan

Type: object
Object Properties
results
Type: array
Array Contents: GroupsV2.GroupBan
totalResults
Type: int32
hasMore
Type: boolean
query
replacementContinuationToken
Type: string
useTotalResults
If useTotalResults is true, then totalResults represents an accurate count.

If False, it does not, and may be estimated/only the size of the current page.

Either way, you should probably always only trust hasMore.

This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one.
Type: boolean

GroupsV2.GroupEditHistory

Type: object
Object Properties
groupId
Type: int64
name
Type: string
nameEditors
Nullable
Type: int64
about
Type: string
aboutEditors
Nullable
Type: int64
motto
Type: string
mottoEditors
Nullable
Type: int64
clanCallsign
Type: string
clanCallsignEditors
Nullable
Type: int64
editDate
Nullable
Type: date-time
groupEditors
Type: array
Array Contents: User.UserInfoCard

SearchResultOfGroupEditHistory

Type: object
Object Properties
results
Type: array
Array Contents: GroupsV2.GroupEditHistory
totalResults
Type: int32
hasMore
Type: boolean
query
replacementContinuationToken
Type: string
useTotalResults
If useTotalResults is true, then totalResults represents an accurate count.

If False, it does not, and may be estimated/only the size of the current page.

Either way, you should probably always only trust hasMore.

This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one.
Type: boolean

GroupsV2.GroupMemberApplication

Type: object
Object Properties
groupId
Type: int64
creationDate
Type: date-time
resolveState
Type: int32
resolveDate
Nullable
Type: date-time
resolvedByMembershipId
Nullable
Type: int64
requestMessage
Type: string
resolveMessage
Type: string
destinyUserInfo
bungieNetUserInfo

GroupsV2.GroupApplicationResolveState

Enumeration
Type: int32
Valid Enum Values
  • Unresolved: 0
  • Accepted: 1
  • Denied: 2
  • Rescinded: 3

SearchResultOfGroupMemberApplication

Type: object
Object Properties
results
Type: array
totalResults
Type: int32
hasMore
Type: boolean
query
replacementContinuationToken
Type: string
useTotalResults
If useTotalResults is true, then totalResults represents an accurate count.

If False, it does not, and may be estimated/only the size of the current page.

Either way, you should probably always only trust hasMore.

This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one.
Type: boolean

Entities.EntityActionResult

Type: object
Object Properties
entityId
Type: int64
result
Type: int32

Exceptions.PlatformErrorCodes

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Success: 1
  • TransportException: 2
  • UnhandledException: 3
  • NotImplemented: 4
  • SystemDisabled: 5
  • FailedToLoadAvailableLocalesConfiguration: 6
  • ParameterParseFailure: 7
  • ParameterInvalidRange: 8
  • BadRequest: 9
  • AuthenticationInvalid: 10
  • DataNotFound: 11
  • InsufficientPrivileges: 12
  • Duplicate: 13
  • UnknownSqlResult: 14
  • ValidationError: 15
  • ValidationMissingFieldError: 16
  • ValidationInvalidInputError: 17
  • InvalidParameters: 18
  • ParameterNotFound: 19
  • UnhandledHttpException: 20
  • NotFound: 21
  • WebAuthModuleAsyncFailed: 22
  • InvalidReturnValue: 23
  • UserBanned: 24
  • InvalidPostBody: 25
  • MissingPostBody: 26
  • ExternalServiceTimeout: 27
  • ValidationLengthError: 28
  • ValidationRangeError: 29
  • JsonDeserializationError: 30
  • ThrottleLimitExceeded: 31
  • ValidationTagError: 32
  • ValidationProfanityError: 33
  • ValidationUrlFormatError: 34
  • ThrottleLimitExceededMinutes: 35
  • ThrottleLimitExceededMomentarily: 36
  • ThrottleLimitExceededSeconds: 37
  • ExternalServiceUnknown: 38
  • ValidationWordLengthError: 39
  • ValidationInvisibleUnicode: 40
  • ValidationBadNames: 41
  • ExternalServiceFailed: 42
  • ServiceRetired: 43
  • UnknownSqlException: 44
  • UnsupportedLocale: 45
  • InvalidPageNumber: 46
  • MaximumPageSizeExceeded: 47
  • ServiceUnsupported: 48
  • ValidationMaximumUnicodeCombiningCharacters: 49
  • ValidationMaximumSequentialCarriageReturns: 50
  • PerEndpointRequestThrottleExceeded: 51
  • AuthContextCacheAssertion: 52
  • ExPlatformStringValidationError: 53
  • PerApplicationThrottleExceeded: 54
  • PerApplicationAnonymousThrottleExceeded: 55
  • PerApplicationAuthenticatedThrottleExceeded: 56
  • PerUserThrottleExceeded: 57
  • PayloadSignatureVerificationFailure: 58
  • InvalidServiceAuthContext: 59
  • FailedMinimumAgeCheck: 60
  • ObsoleteCredentialType: 89
  • UnableToUnPairMobileApp: 90
  • UnableToPairMobileApp: 91
  • CannotUseMobileAuthWithNonMobileProvider: 92
  • MissingDeviceCookie: 93
  • FacebookTokenExpired: 94
  • AuthTicketRequired: 95
  • CookieContextRequired: 96
  • UnknownAuthenticationError: 97
  • BungieNetAccountCreationRequired: 98
  • WebAuthRequired: 99
  • ContentUnknownSqlResult: 100
  • ContentNeedUniquePath: 101
  • ContentSqlException: 102
  • ContentNotFound: 103
  • ContentSuccessWithTagAddFail: 104
  • ContentSearchMissingParameters: 105
  • ContentInvalidId: 106
  • ContentPhysicalFileDeletionError: 107
  • ContentPhysicalFileCreationError: 108
  • ContentPerforceSubmissionError: 109
  • ContentPerforceInitializationError: 110
  • ContentDeploymentPackageNotReadyError: 111
  • ContentUploadFailed: 112
  • ContentTooManyResults: 113
  • ContentInvalidState: 115
  • ContentNavigationParentNotFound: 116
  • ContentNavigationParentUpdateError: 117
  • DeploymentPackageNotEditable: 118
  • ContentValidationError: 119
  • ContentPropertiesValidationError: 120
  • ContentTypeNotFound: 121
  • DeploymentPackageNotFound: 122
  • ContentSearchInvalidParameters: 123
  • ContentItemPropertyAggregationError: 124
  • DeploymentPackageFileNotFound: 125
  • ContentPerforceFileHistoryNotFound: 126
  • ContentAssetZipCreationFailure: 127
  • ContentAssetZipCreationBusy: 128
  • ContentProjectNotFound: 129
  • ContentFolderNotFound: 130
  • ContentPackagesInconsistent: 131
  • ContentPackagesInvalidState: 132
  • ContentPackagesInconsistentType: 133
  • ContentCannotDeletePackage: 134
  • ContentLockedForChanges: 135
  • ContentFileUploadFailed: 136
  • ContentNotReviewed: 137
  • ContentPermissionDenied: 138
  • ContentInvalidExternalUrl: 139
  • ContentExternalFileCannotBeImportedLocally: 140
  • ContentTagSaveFailure: 141
  • ContentPerforceUnmatchedFileError: 142
  • ContentPerforceChangelistResultNotFound: 143
  • ContentPerforceChangelistFileItemsNotFound: 144
  • ContentPerforceInvalidRevisionError: 145
  • ContentUnloadedSaveResult: 146
  • ContentPropertyInvalidNumber: 147
  • ContentPropertyInvalidUrl: 148
  • ContentPropertyInvalidDate: 149
  • ContentPropertyInvalidSet: 150
  • ContentPropertyCannotDeserialize: 151
  • ContentRegexValidationFailOnProperty: 152
  • ContentMaxLengthFailOnProperty: 153
  • ContentPropertyUnexpectedDeserializationError: 154
  • ContentPropertyRequired: 155
  • ContentCannotCreateFile: 156
  • ContentInvalidMigrationFile: 157
  • ContentMigrationAlteringProcessedItem: 158
  • ContentPropertyDefinitionNotFound: 159
  • ContentReviewDataChanged: 160
  • ContentRollbackRevisionNotInPackage: 161
  • ContentItemNotBasedOnLatestRevision: 162
  • ContentUnauthorized: 163
  • ContentCannotCreateDeploymentPackage: 164
  • ContentUserNotFound: 165
  • ContentLocalePermissionDenied: 166
  • ContentInvalidLinkToInternalEnvironment: 167
  • ContentInvalidBlacklistedContent: 168
  • ContentMacroMalformedNoContentId: 169
  • ContentMacroMalformedNoTemplateType: 170
  • ContentIllegalBNetMembershipId: 171
  • ContentLocaleDidNotMatchExpected: 172
  • ContentBabelCallFailed: 173
  • ContentEnglishPostLiveForbidden: 174
  • ContentLocaleEditPermissionDenied: 175
  • ContentStackUnknownError: 176
  • ContentStackNotFound: 177
  • ContentStackRateLimited: 178
  • ContentStackTimeout: 179
  • ContentStackServiceError: 180
  • ContentStackDeserializationFailure: 181
  • UserNonUniqueName: 200
  • UserManualLinkingStepRequired: 201
  • UserCreateUnknownSqlResult: 202
  • UserCreateUnknownSqlException: 203
  • UserMalformedMembershipId: 204
  • UserCannotFindRequestedUser: 205
  • UserCannotLoadAccountCredentialLinkInfo: 206
  • UserInvalidMobileAppType: 207
  • UserMissingMobilePairingInfo: 208
  • UserCannotGenerateMobileKeyWhileUsingMobileCredential: 209
  • UserGenerateMobileKeyExistingSlotCollision: 210
  • UserDisplayNameMissingOrInvalid: 211
  • UserCannotLoadAccountProfileData: 212
  • UserCannotSaveUserProfileData: 213
  • UserEmailMissingOrInvalid: 214
  • UserTermsOfUseRequired: 215
  • UserCannotCreateNewAccountWhileLoggedIn: 216
  • UserCannotResolveCentralAccount: 217
  • UserInvalidAvatar: 218
  • UserMissingCreatedUserResult: 219
  • UserCannotChangeUniqueNameYet: 220
  • UserCannotChangeDisplayNameYet: 221
  • UserCannotChangeEmail: 222
  • UserUniqueNameMustStartWithLetter: 223
  • UserNoLinkedAccountsSupportFriendListings: 224
  • UserAcknowledgmentTableFull: 225
  • UserCreationDestinyMembershipRequired: 226
  • UserFriendsTokenNeedsRefresh: 227
  • UserEmailValidationUnknown: 228
  • UserEmailValidationLimit: 229
  • TransactionEmailSendFailure: 230
  • MailHookPermissionFailure: 231
  • MailServiceRateLimit: 232
  • UserEmailMustBeVerified: 233
  • UserMustAllowCustomerServiceEmails: 234
  • NonTransactionalEmailSendFailure: 235
  • UnknownErrorSettingGlobalDisplayName: 236
  • DuplicateGlobalDisplayName: 237
  • ErrorRunningNameValidationChecks: 238
  • ErrorDatabaseGlobalName: 239
  • ErrorNoAvailableNameChanges: 240
  • ErrorNameAlreadySetToInput: 241
  • UserDisplayNameLessThanMinLength: 242
  • UserDisplayNameGreaterThanMaxLength: 243
  • UserDisplayNameContainsUnacceptableOrInvalidContent: 244
  • EmailValidationOffline: 245
  • EmailValidationFailOldCode: 246
  • EmailValidationFailBadLink: 247
  • EmailUnsubscribeFail: 248
  • EmailUnsubscribeFailNew: 249
  • MessagingUnknownError: 300
  • MessagingSelfError: 301
  • MessagingSendThrottle: 302
  • MessagingNoBody: 303
  • MessagingTooManyUsers: 304
  • MessagingCanNotLeaveConversation: 305
  • MessagingUnableToSend: 306
  • MessagingDeletedUserForbidden: 307
  • MessagingCannotDeleteExternalConversation: 308
  • MessagingGroupChatDisabled: 309
  • MessagingMustIncludeSelfInPrivateMessage: 310
  • MessagingSenderIsBanned: 311
  • MessagingGroupOptionalChatExceededMaximum: 312
  • PrivateMessagingRequiresDestinyMembership: 313
  • MessagingSendDailyThrottle: 314
  • AddSurveyAnswersUnknownSqlException: 400
  • ForumBodyCannotBeEmpty: 500
  • ForumSubjectCannotBeEmptyOnTopicPost: 501
  • ForumCannotLocateParentPost: 502
  • ForumThreadLockedForReplies: 503
  • ForumUnknownSqlResultDuringCreatePost: 504
  • ForumUnknownTagCreationError: 505
  • ForumUnknownSqlResultDuringTagItem: 506
  • ForumUnknownExceptionCreatePost: 507
  • ForumQuestionMustBeTopicPost: 508
  • ForumExceptionDuringTagSearch: 509
  • ForumExceptionDuringTopicRetrieval: 510
  • ForumAliasedTagError: 511
  • ForumCannotLocateThread: 512
  • ForumUnknownExceptionEditPost: 513
  • ForumCannotLocatePost: 514
  • ForumUnknownExceptionGetOrCreateTags: 515
  • ForumEditPermissionDenied: 516
  • ForumUnknownSqlResultDuringTagIdRetrieval: 517
  • ForumCannotGetRating: 518
  • ForumUnknownExceptionGetRating: 519
  • ForumRatingsAccessError: 520
  • ForumRelatedPostAccessError: 521
  • ForumLatestReplyAccessError: 522
  • ForumUserStatusAccessError: 523
  • ForumAuthorAccessError: 524
  • ForumGroupAccessError: 525
  • ForumUrlExpectedButMissing: 526
  • ForumRepliesCannotBeEmpty: 527
  • ForumRepliesCannotBeInDifferentGroups: 528
  • ForumSubTopicCannotBeCreatedAtThisThreadLevel: 529
  • ForumCannotCreateContentTopic: 530
  • ForumTopicDoesNotExist: 531
  • ForumContentCommentsNotAllowed: 532
  • ForumUnknownSqlResultDuringEditPost: 533
  • ForumUnknownSqlResultDuringGetPost: 534
  • ForumPostValidationBadUrl: 535
  • ForumBodyTooLong: 536
  • ForumSubjectTooLong: 537
  • ForumAnnouncementNotAllowed: 538
  • ForumCannotShareOwnPost: 539
  • ForumEditNoOp: 540
  • ForumUnknownDatabaseErrorDuringGetPost: 541
  • ForumExceeedMaximumRowLimit: 542
  • ForumCannotSharePrivatePost: 543
  • ForumCannotCrossPostBetweenGroups: 544
  • ForumIncompatibleCategories: 555
  • ForumCannotUseTheseCategoriesOnNonTopicPost: 556
  • ForumCanOnlyDeleteTopics: 557
  • ForumDeleteSqlException: 558
  • ForumDeleteSqlUnknownResult: 559
  • ForumTooManyTags: 560
  • ForumCanOnlyRateTopics: 561
  • ForumBannedPostsCannotBeEdited: 562
  • ForumThreadRootIsBanned: 563
  • ForumCannotUseOfficialTagCategoryAsTag: 564
  • ForumAnswerCannotBeMadeOnCreatePost: 565
  • ForumAnswerCannotBeMadeOnEditPost: 566
  • ForumAnswerPostIdIsNotADirectReplyOfQuestion: 567
  • ForumAnswerTopicIdIsNotAQuestion: 568
  • ForumUnknownExceptionDuringMarkAnswer: 569
  • ForumUnknownSqlResultDuringMarkAnswer: 570
  • ForumCannotRateYourOwnPosts: 571
  • ForumPollsMustBeTheFirstPostInTopic: 572
  • ForumInvalidPollInput: 573
  • ForumGroupAdminEditNonMember: 574
  • ForumCannotEditModeratorEditedPost: 575
  • ForumRequiresDestinyMembership: 576
  • ForumUnexpectedError: 577
  • ForumAgeLock: 578
  • ForumMaxPages: 579
  • ForumMaxPagesOldestFirst: 580
  • ForumCannotApplyForumIdWithoutTags: 581
  • ForumCannotApplyForumIdToNonTopics: 582
  • ForumCannotDownvoteCommunityCreations: 583
  • ForumTopicsMustHaveOfficialCategory: 584
  • ForumRecruitmentTopicMalformed: 585
  • ForumRecruitmentTopicNotFound: 586
  • ForumRecruitmentTopicNoSlotsRemaining: 587
  • ForumRecruitmentTopicKickBan: 588
  • ForumRecruitmentTopicRequirementsNotMet: 589
  • ForumRecruitmentTopicNoPlayers: 590
  • ForumRecruitmentApproveFailMessageBan: 591
  • ForumRecruitmentGlobalBan: 592
  • ForumUserBannedFromThisTopic: 593
  • ForumRecruitmentFireteamMembersOnly: 594
  • ForumRequiresDestiny2Progress: 595
  • ForumRequiresDestiny2EntitlementPurchase: 596
  • GroupMembershipApplicationAlreadyResolved: 601
  • GroupMembershipAlreadyApplied: 602
  • GroupMembershipInsufficientPrivileges: 603
  • GroupIdNotReturnedFromCreation: 604
  • GroupSearchInvalidParameters: 605
  • GroupMembershipPendingApplicationNotFound: 606
  • GroupInvalidId: 607
  • GroupInvalidMembershipId: 608
  • GroupInvalidMembershipType: 609
  • GroupMissingTags: 610
  • GroupMembershipNotFound: 611
  • GroupInvalidRating: 612
  • GroupUserFollowingAccessError: 613
  • GroupUserMembershipAccessError: 614
  • GroupCreatorAccessError: 615
  • GroupAdminAccessError: 616
  • GroupPrivatePostNotViewable: 617
  • GroupMembershipNotLoggedIn: 618
  • GroupNotDeleted: 619
  • GroupUnknownErrorUndeletingGroup: 620
  • GroupDeleted: 621
  • GroupNotFound: 622
  • GroupMemberBanned: 623
  • GroupMembershipClosed: 624
  • GroupPrivatePostOverrideError: 625
  • GroupNameTaken: 626
  • GroupDeletionGracePeriodExpired: 627
  • GroupCannotCheckBanStatus: 628
  • GroupMaximumMembershipCountReached: 629
  • NoDestinyAccountForClanPlatform: 630
  • AlreadyRequestingMembershipForClanPlatform: 631
  • AlreadyClanMemberOnPlatform: 632
  • GroupJoinedCannotSetClanName: 633
  • GroupLeftCannotClearClanName: 634
  • GroupRelationshipRequestPending: 635
  • GroupRelationshipRequestBlocked: 636
  • GroupRelationshipRequestNotFound: 637
  • GroupRelationshipBlockNotFound: 638
  • GroupRelationshipNotFound: 639
  • GroupAlreadyAllied: 641
  • GroupAlreadyMember: 642
  • GroupRelationshipAlreadyExists: 643
  • InvalidGroupTypesForRelationshipRequest: 644
  • GroupAtMaximumAlliances: 646
  • GroupCannotSetClanOnlySettings: 647
  • ClanCannotSetTwoDefaultPostTypes: 648
  • GroupMemberInvalidMemberType: 649
  • GroupInvalidPlatformType: 650
  • GroupMemberInvalidSort: 651
  • GroupInvalidResolveState: 652
  • ClanAlreadyEnabledForPlatform: 653
  • ClanNotEnabledForPlatform: 654
  • ClanEnabledButCouldNotJoinNoAccount: 655
  • ClanEnabledButCouldNotJoinAlreadyMember: 656
  • ClanCannotJoinNoCredential: 657
  • NoClanMembershipForPlatform: 658
  • GroupToGroupFollowLimitReached: 659
  • ChildGroupAlreadyInAlliance: 660
  • OwnerGroupAlreadyInAlliance: 661
  • AllianceOwnerCannotJoinAlliance: 662
  • GroupNotInAlliance: 663
  • ChildGroupCannotInviteToAlliance: 664
  • GroupToGroupAlreadyFollowed: 665
  • GroupToGroupNotFollowing: 666
  • ClanMaximumMembershipReached: 667
  • ClanNameNotValid: 668
  • ClanNameNotValidError: 669
  • AllianceOwnerNotDefined: 670
  • AllianceChildNotDefined: 671
  • ClanCultureIllegalCharacters: 672
  • ClanTagIllegalCharacters: 673
  • ClanRequiresInvitation: 674
  • ClanMembershipClosed: 675
  • ClanInviteAlreadyMember: 676
  • GroupInviteAlreadyMember: 677
  • GroupJoinApprovalRequired: 678
  • ClanTagRequired: 679
  • GroupNameCannotStartOrEndWithWhiteSpace: 680
  • ClanCallsignCannotStartOrEndWithWhiteSpace: 681
  • ClanMigrationFailed: 682
  • ClanNotEnabledAlreadyMemberOfAnotherClan: 683
  • GroupModerationNotPermittedOnNonMembers: 684
  • ClanCreationInWorldServerFailed: 685
  • ClanNotFound: 686
  • ClanMembershipLevelDoesNotPermitThatAction: 687
  • ClanMemberNotFound: 688
  • ClanMissingMembershipApprovers: 689
  • ClanInWrongStateForRequestedAction: 690
  • ClanNameAlreadyUsed: 691
  • ClanTooFewMembers: 692
  • ClanInfoCannotBeWhitespace: 693
  • GroupCultureThrottle: 694
  • ClanTargetDisallowsInvites: 695
  • ClanInvalidOperation: 696
  • ClanFounderCannotLeaveWithoutAbdication: 697
  • ClanNameReserved: 698
  • ClanApplicantInClanSoNowInvited: 699
  • ActivitiesUnknownException: 701
  • ActivitiesParameterNull: 702
  • ActivityCountsDiabled: 703
  • ActivitySearchInvalidParameters: 704
  • ActivityPermissionDenied: 705
  • ShareAlreadyShared: 706
  • ActivityLoggingDisabled: 707
  • ClanRequiresExistingDestinyAccount: 750
  • ClanNameRestricted: 751
  • ClanCreationBan: 752
  • ClanCreationTenureRequirementsNotMet: 753
  • ClanFieldContainsReservedTerms: 754
  • ClanFieldContainsInappropriateContent: 755
  • ItemAlreadyFollowed: 801
  • ItemNotFollowed: 802
  • CannotFollowSelf: 803
  • GroupFollowLimitExceeded: 804
  • TagFollowLimitExceeded: 805
  • UserFollowLimitExceeded: 806
  • FollowUnsupportedEntityType: 807
  • NoValidTagsInList: 900
  • BelowMinimumSuggestionLength: 901
  • CannotGetSuggestionsOnMultipleTagsSimultaneously: 902
  • NotAValidPartialTag: 903
  • TagSuggestionsUnknownSqlResult: 904
  • TagsUnableToLoadPopularTagsFromDatabase: 905
  • TagInvalid: 906
  • TagNotFound: 907
  • SingleTagExpected: 908
  • TagsExceededMaximumPerItem: 909
  • IgnoreInvalidParameters: 1000
  • IgnoreSqlException: 1001
  • IgnoreErrorRetrievingGroupPermissions: 1002
  • IgnoreErrorInsufficientPermission: 1003
  • IgnoreErrorRetrievingItem: 1004
  • IgnoreCannotIgnoreSelf: 1005
  • IgnoreIllegalType: 1006
  • IgnoreNotFound: 1007
  • IgnoreUserGloballyIgnored: 1008
  • IgnoreUserIgnored: 1009
  • TargetUserIgnored: 1010
  • NotificationSettingInvalid: 1100
  • PsnApiExpiredAccessToken: 1204
  • PSNExForbidden: 1205
  • PSNExSystemDisabled: 1218
  • PsnApiErrorCodeUnknown: 1223
  • PsnApiErrorWebException: 1224
  • PsnApiBadRequest: 1225
  • PsnApiAccessTokenRequired: 1226
  • PsnApiInvalidAccessToken: 1227
  • PsnApiBannedUser: 1229
  • PsnApiAccountUpgradeRequired: 1230
  • PsnApiServiceTemporarilyUnavailable: 1231
  • PsnApiServerBusy: 1232
  • PsnApiUnderMaintenance: 1233
  • PsnApiProfileUserNotFound: 1234
  • PsnApiProfilePrivacyRestriction: 1235
  • PsnApiProfileUnderMaintenance: 1236
  • PsnApiAccountAttributeMissing: 1237
  • PsnApiNoPermission: 1238
  • PsnApiTargetUserBlocked: 1239
  • PsnApiJwksMissing: 1240
  • PsnApiJwtMalformedHeader: 1241
  • PsnApiJwtMalformedPayload: 1242
  • XblExSystemDisabled: 1300
  • XblExUnknownError: 1301
  • XblApiErrorWebException: 1302
  • XblStsTokenInvalid: 1303
  • XblStsMissingToken: 1304
  • XblStsExpiredToken: 1305
  • XblAccessToTheSandboxDenied: 1306
  • XblMsaResponseMissing: 1307
  • XblMsaAccessTokenExpired: 1308
  • XblMsaInvalidRequest: 1309
  • XblMsaFriendsRequireSignIn: 1310
  • XblUserActionRequired: 1311
  • XblParentalControls: 1312
  • XblDeveloperAccount: 1313
  • XblUserTokenExpired: 1314
  • XblUserTokenInvalid: 1315
  • XblOffline: 1316
  • XblUnknownErrorCode: 1317
  • XblMsaInvalidGrant: 1318
  • ReportNotYetResolved: 1400
  • ReportOverturnDoesNotChangeDecision: 1401
  • ReportNotFound: 1402
  • ReportAlreadyReported: 1403
  • ReportInvalidResolution: 1404
  • ReportNotAssignedToYou: 1405
  • LegacyGameStatsSystemDisabled: 1500
  • LegacyGameStatsUnknownError: 1501
  • LegacyGameStatsMalformedSneakerNetCode: 1502
  • DestinyAccountAcquisitionFailure: 1600
  • DestinyAccountNotFound: 1601
  • DestinyBuildStatsDatabaseError: 1602
  • DestinyCharacterStatsDatabaseError: 1603
  • DestinyPvPStatsDatabaseError: 1604
  • DestinyPvEStatsDatabaseError: 1605
  • DestinyGrimoireStatsDatabaseError: 1606
  • DestinyStatsParameterMembershipTypeParseError: 1607
  • DestinyStatsParameterMembershipIdParseError: 1608
  • DestinyStatsParameterRangeParseError: 1609
  • DestinyStringItemHashNotFound: 1610
  • DestinyStringSetNotFound: 1611
  • DestinyContentLookupNotFoundForKey: 1612
  • DestinyContentItemNotFound: 1613
  • DestinyContentSectionNotFound: 1614
  • DestinyContentPropertyNotFound: 1615
  • DestinyContentConfigNotFound: 1616
  • DestinyContentPropertyBucketValueNotFound: 1617
  • DestinyUnexpectedError: 1618
  • DestinyInvalidAction: 1619
  • DestinyCharacterNotFound: 1620
  • DestinyInvalidFlag: 1621
  • DestinyInvalidRequest: 1622
  • DestinyItemNotFound: 1623
  • DestinyInvalidCustomizationChoices: 1624
  • DestinyVendorItemNotFound: 1625
  • DestinyInternalError: 1626
  • DestinyVendorNotFound: 1627
  • DestinyRecentActivitiesDatabaseError: 1628
  • DestinyItemBucketNotFound: 1629
  • DestinyInvalidMembershipType: 1630
  • DestinyVersionIncompatibility: 1631
  • DestinyItemAlreadyInInventory: 1632
  • DestinyBucketNotFound: 1633
  • DestinyCharacterNotInTower: 1634
    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"
  • DestinyCharacterNotLoggedIn: 1635
  • DestinyDefinitionsNotLoaded: 1636
  • DestinyInventoryFull: 1637
  • DestinyItemFailedLevelCheck: 1638
  • DestinyItemFailedUnlockCheck: 1639
  • DestinyItemUnequippable: 1640
  • DestinyItemUniqueEquipRestricted: 1641
  • DestinyNoRoomInDestination: 1642
  • DestinyServiceFailure: 1643
  • DestinyServiceRetired: 1644
  • DestinyTransferFailed: 1645
  • DestinyTransferNotFoundForSourceBucket: 1646
  • DestinyUnexpectedResultInVendorTransferCheck: 1647
  • DestinyUniquenessViolation: 1648
  • DestinyErrorDeserializationFailure: 1649
  • DestinyValidAccountTicketRequired: 1650
  • DestinyShardRelayClientTimeout: 1651
  • DestinyShardRelayProxyTimeout: 1652
  • DestinyPGCRNotFound: 1653
  • DestinyAccountMustBeOffline: 1654
  • DestinyCanOnlyEquipInGame: 1655
  • DestinyCannotPerformActionOnEquippedItem: 1656
  • DestinyQuestAlreadyCompleted: 1657
  • DestinyQuestAlreadyTracked: 1658
  • DestinyTrackableQuestsFull: 1659
  • DestinyItemNotTransferrable: 1660
  • DestinyVendorPurchaseNotAllowed: 1661
  • DestinyContentVersionMismatch: 1662
  • DestinyItemActionForbidden: 1663
  • DestinyRefundInvalid: 1664
  • DestinyPrivacyRestriction: 1665
  • DestinyActionInsufficientPrivileges: 1666
  • DestinyInvalidClaimException: 1667
  • DestinyLegacyPlatformRestricted: 1668
  • DestinyLegacyPlatformInUse: 1669
  • DestinyLegacyPlatformInaccessible: 1670
  • DestinyCannotPerformActionAtThisLocation: 1671
  • DestinyThrottledByGameServer: 1672
  • DestinyItemNotTransferrableHasSideEffects: 1673
  • DestinyItemLocked: 1674
  • DestinyCannotAffordMaterialRequirements: 1675
  • DestinyFailedPlugInsertionRules: 1676
  • DestinySocketNotFound: 1677
  • DestinySocketActionNotAllowed: 1678
  • DestinySocketAlreadyHasPlug: 1679
  • DestinyPlugItemNotAvailable: 1680
  • DestinyCharacterLoggedInNotAllowed: 1681
  • DestinyPublicAccountNotAccessible: 1682
  • DestinyClaimsItemAlreadyClaimed: 1683
  • DestinyClaimsNoInventorySpace: 1684
  • DestinyClaimsRequiredLevelNotMet: 1685
  • DestinyClaimsInvalidState: 1686
  • DestinyNotEnoughRoomForMultipleRewards: 1687
  • DestinyDirectBabelClientTimeout: 1688
  • FbInvalidRequest: 1800
  • FbRedirectMismatch: 1801
  • FbAccessDenied: 1802
  • FbUnsupportedResponseType: 1803
  • FbInvalidScope: 1804
  • FbUnsupportedGrantType: 1805
  • FbInvalidGrant: 1806
  • InvitationExpired: 1900
  • InvitationUnknownType: 1901
  • InvitationInvalidResponseStatus: 1902
  • InvitationInvalidType: 1903
  • InvitationAlreadyPending: 1904
  • InvitationInsufficientPermission: 1905
  • InvitationInvalidCode: 1906
  • InvitationInvalidTargetState: 1907
  • InvitationCannotBeReactivated: 1908
  • InvitationNoRecipients: 1910
  • InvitationGroupCannotSendToSelf: 1911
  • InvitationTooManyRecipients: 1912
  • InvitationInvalid: 1913
  • InvitationNotFound: 1914
  • TokenInvalid: 2000
  • TokenBadFormat: 2001
  • TokenAlreadyClaimed: 2002
  • TokenAlreadyClaimedSelf: 2003
  • TokenThrottling: 2004
  • TokenUnknownRedemptionFailure: 2005
  • TokenPurchaseClaimFailedAfterTokenClaimed: 2006
  • TokenUserAlreadyOwnsOffer: 2007
  • TokenInvalidOfferKey: 2008
  • TokenEmailNotValidated: 2009
  • TokenProvisioningBadVendorOrOffer: 2010
  • TokenPurchaseHistoryUnknownError: 2011
  • TokenThrottleStateUnknownError: 2012
  • TokenUserAgeNotVerified: 2013
  • TokenExceededOfferMaximum: 2014
  • TokenNoAvailableUnlocks: 2015
  • TokenMarketplaceInvalidPlatform: 2016
  • TokenNoMarketplaceCodesFound: 2017
  • TokenOfferNotAvailableForRedemption: 2018
  • TokenUnlockPartialFailure: 2019
  • TokenMarketplaceInvalidRegion: 2020
  • TokenOfferExpired: 2021
  • RAFExceededMaximumReferrals: 2022
  • RAFDuplicateBond: 2023
  • RAFNoValidVeteranDestinyMembershipsFound: 2024
  • RAFNotAValidVeteranUser: 2025
  • RAFCodeAlreadyClaimedOrNotFound: 2026
  • RAFMismatchedDestinyMembershipType: 2027
  • RAFUnableToAccessPurchaseHistory: 2028
  • RAFUnableToCreateBond: 2029
  • RAFUnableToFindBond: 2030
  • RAFUnableToRemoveBond: 2031
  • RAFCannotBondToSelf: 2032
  • RAFInvalidPlatform: 2033
  • RAFGenerateThrottled: 2034
  • RAFUnableToCreateBondVersionMismatch: 2035
  • RAFUnableToRemoveBondVersionMismatch: 2036
  • RAFRedeemThrottled: 2037
  • NoAvailableDiscountCode: 2038
  • DiscountAlreadyClaimed: 2039
  • DiscountClaimFailure: 2040
  • DiscountConfigurationFailure: 2041
  • DiscountGenerationFailure: 2042
  • DiscountAlreadyExists: 2043
  • TokenRequiresCredentialXuid: 2044
  • TokenRequiresCredentialPsnid: 2045
  • OfferRequired: 2046
  • UnknownEververseHistoryError: 2047
  • MissingEververseHistoryError: 2048
  • BungieRewardEmailStateInvalid: 2049
  • BungieRewardNotYetClaimable: 2050
  • MissingOfferConfig: 2051
  • RAFQuestEntitlementRequiresBnet: 2052
  • RAFQuestEntitlementTransportFailure: 2053
  • RAFQuestEntitlementUnknownFailure: 2054
  • RAFVeteranRewardUnknownFailure: 2055
  • RAFTooEarlyToCancelBond: 2056
  • LoyaltyRewardAlreadyRedeemed: 2057
  • UnclaimedLoyaltyRewardEntryNotFound: 2058
  • PartnerOfferPartialFailure: 2059
  • PartnerOfferAlreadyClaimed: 2060
  • PartnerOfferSkuNotFound: 2061
  • PartnerOfferSkuExpired: 2062
  • PartnerOfferPermissionFailure: 2063
  • PartnerOfferNoDestinyAccount: 2064
  • PartnerOfferApplyDataNotFound: 2065
  • ApiExceededMaxKeys: 2100
  • ApiInvalidOrExpiredKey: 2101
  • ApiKeyMissingFromRequest: 2102
  • ApplicationDisabled: 2103
  • ApplicationExceededMax: 2104
  • ApplicationDisallowedByScope: 2105
  • AuthorizationCodeInvalid: 2106
  • OriginHeaderDoesNotMatchKey: 2107
  • AccessNotPermittedByApplicationScope: 2108
  • ApplicationNameIsTaken: 2109
  • RefreshTokenNotYetValid: 2110
  • AccessTokenHasExpired: 2111
  • ApplicationTokenFormatNotValid: 2112
  • ApplicationNotConfiguredForBungieAuth: 2113
  • ApplicationNotConfiguredForOAuth: 2114
  • OAuthAccessTokenExpired: 2115
  • ApplicationTokenKeyIdDoesNotExist: 2116
  • ProvidedTokenNotValidRefreshToken: 2117
  • RefreshTokenExpired: 2118
  • AuthorizationRecordInvalid: 2119
  • TokenPreviouslyRevoked: 2120
  • TokenInvalidMembership: 2121
  • AuthorizationCodeStale: 2122
  • AuthorizationRecordExpired: 2123
  • AuthorizationRecordRevoked: 2124
  • AuthorizationRecordInactiveApiKey: 2125
  • AuthorizationRecordApiKeyMatching: 2126
  • PartnershipInvalidType: 2200
  • PartnershipValidationError: 2201
  • PartnershipValidationTimeout: 2202
  • PartnershipAccessFailure: 2203
  • PartnershipAccountInvalid: 2204
  • PartnershipGetAccountInfoFailure: 2205
  • PartnershipDisabled: 2206
  • PartnershipAlreadyExists: 2207
  • CommunityStreamingUnavailable: 2300
  • TwitchNotLinked: 2500
  • TwitchAccountNotFound: 2501
  • TwitchCouldNotLoadDestinyInfo: 2502
  • TwitchCouldNotRegisterUser: 2503
  • TwitchCouldNotUnregisterUser: 2504
  • TwitchRequiresRelinking: 2505
  • TwitchNoPlatformChosen: 2506
  • TwitchDropHistoryPermissionFailure: 2507
  • TwitchDropsRepairPartialFailure: 2508
  • TwitchNotAuthorized: 2509
  • TwitchUnknownAuthorizationFailure: 2510
  • TrendingCategoryNotFound: 2600
  • TrendingEntryTypeNotSupported: 2601
  • ReportOffenderNotInPgcr: 2700
  • ReportRequestorNotInPgcr: 2701
  • ReportSubmissionFailed: 2702
  • ReportCannotReportSelf: 2703
  • AwaTypeDisabled: 2800
  • AwaTooManyPendingRequests: 2801
  • AwaTheFeatureRequiresARegisteredDevice: 2802
  • AwaRequestWasUnansweredForTooLong: 2803
  • AwaWriteRequestMissingOrInvalidToken: 2804
  • AwaWriteRequestTokenExpired: 2805
  • AwaWriteRequestTokenUsageLimitReached: 2806
  • SteamWebApiError: 2900
  • SteamWebNullResponseError: 2901
  • SteamAccountRequired: 2902
  • SteamNotAuthorized: 2903
  • ClanFireteamNotFound: 3000
  • ClanFireteamAddNoAlternatesForImmediate: 3001
  • ClanFireteamFull: 3002
  • ClanFireteamAltFull: 3003
  • ClanFireteamBlocked: 3004
  • ClanFireteamPlayerEntryNotFound: 3005
  • ClanFireteamPermissions: 3006
  • ClanFireteamInvalidPlatform: 3007
  • ClanFireteamCannotAdjustSlotCount: 3008
  • ClanFireteamInvalidPlayerPlatform: 3009
  • ClanFireteamNotReadyForInvitesNotEnoughPlayers: 3010
  • ClanFireteamGameInvitesNotSupportForPlatform: 3011
  • ClanFireteamPlatformInvitePreqFailure: 3012
  • ClanFireteamInvalidAuthContext: 3013
  • ClanFireteamInvalidAuthProviderPsn: 3014
  • ClanFireteamPs4SessionFull: 3015
  • ClanFireteamInvalidAuthToken: 3016
  • ClanFireteamScheduledFireteamsDisabled: 3017
  • ClanFireteamNotReadyForInvitesNotScheduledYet: 3018
  • ClanFireteamNotReadyForInvitesClosed: 3019
  • ClanFireteamScheduledFireteamsRequireAdminPermissions: 3020
  • ClanFireteamNonPublicMustHaveClan: 3021
  • ClanFireteamPublicCreationRestriction: 3022
  • ClanFireteamAlreadyJoined: 3023
  • ClanFireteamScheduledFireteamsRange: 3024
  • ClanFireteamPublicCreationRestrictionExtended: 3025
  • ClanFireteamExpired: 3026
  • ClanFireteamInvalidAuthProvider: 3027
  • ClanFireteamInvalidAuthProviderXuid: 3028
  • ClanFireteamThrottle: 3029
  • ClanFireteamTooManyOpenScheduledFireteams: 3030
  • ClanFireteamCannotReopenScheduledFireteams: 3031
  • ClanFireteamJoinNoAccountSpecified: 3032
  • ClanFireteamMinDestiny2ProgressForCreation: 3033
  • ClanFireteamMinDestiny2ProgressForJoin: 3034
  • ClanFireteamSMSOrPurchaseRequiredCreate: 3035
  • ClanFireteamPurchaseRequiredCreate: 3036
  • ClanFireteamSMSOrPurchaseRequiredJoin: 3037
  • ClanFireteamPurchaseRequiredJoin: 3038
  • FireteamFinderInvalidMembershipType: 3100
  • FireteamFinderInvalidMembershipId: 3101
  • FireteamFinderInvalidCharacterId: 3102
  • FireteamFinderInvalidListingOptions: 3103
  • FireteamFinderInvalidRequestData: 3104
  • FireteamFinderListingApplicationFailed: 3105
  • FireteamFinderListingAutoJoinFailed: 3106
  • FireteamFinderPlayerApplicationsParsingFailed: 3107
  • FireteamFinderJoinLobbyHostFailed: 3108
  • FireteamFinderPlayerNotInGame: 3109
  • FireteamFinderActivationFailed: 3110
  • FireteamFinderApplicationNotFound: 3111
  • FireteamFinderUserAlreadyAppliedToListing: 3112
  • FireteamFinderApplicationClosedForUpdates: 3113
  • FireteamFinderListingAtMaxOpenApplicationsLimit: 3114
  • FireteamFinderUserNotInApplication: 3115
  • FireteamFinderApplicationUserAlreadyListingOwner: 3116
  • FireteamFinderOfferNotFound: 3117
  • FireteamFinderOfferClosedForUpdates: 3118
  • FireteamFinderOfferUserNotTarget: 3119
  • FireteamFinderLobbyNotFound: 3120
  • FireteamFinderListingNotFound: 3121
  • FireteamFinderLobbyFull: 3122
  • FireteamFinderUserNotListingOwner: 3123
  • FireteamFinderUserNotLobbyOwner: 3124
  • FireteamFinderLobbyClosedForUpdates: 3125
  • FireteamFinderUserNotInLobby: 3126
  • FireteamFinderDisabledSettingsValue: 3127
  • FireteamFinderOwnerInActiveLobby: 3128
  • FireteamFinderApplicationClosedToOfflinePlayers: 3129
  • FireteamFinderUserNotApplicationOwner: 3130
  • FireteamFinderInviteValidationFailed: 3131
  • FireteamFinderOwnerNotInGame: 3132
  • FireteamFinderPlayerAtMaxLobbyLimit: 3133
  • FireteamFinderLobbyTooFarInTheFuture: 3134
  • FireteamFinderResponseUndefined: 3150
  • FireteamFinderResponseMoved: 3151
  • FireteamFinderResponseLoggingIn: 3152
  • FireteamFinderResponseBadRequest: 3153
  • FireteamFinderResponseUnauthorized: 3154
  • FireteamFinderResponseForbidden: 3155
  • FireteamFinderResponseNotFound: 3156
  • FireteamFinderInternalServerError: 3157
  • FireteamFinderServiceUnavailable: 3158
  • FireteamFinderInternalServerErrorNonFatal: 3159
  • CrossSaveOverriddenAccountNotFound: 3200
  • CrossSaveTooManyOverriddenPlatforms: 3201
  • CrossSaveNoOverriddenPlatforms: 3202
  • CrossSavePrimaryAccountNotFound: 3203
  • CrossSaveRequestInvalid: 3204
  • CrossSaveBungieAccountValidationFailure: 3206
  • CrossSaveOverriddenPlatformNotAllowed: 3207
  • CrossSaveThresholdExceeded: 3208
  • CrossSaveIncompatibleMembershipType: 3209
  • CrossSaveCouldNotFindLinkedAccountForMembershipType: 3210
  • CrossSaveCouldNotCreateDestinyProfileForMembershipType: 3211
  • CrossSaveErrorCreatingDestinyProfileForMembershipType: 3212
  • CrossSaveCannotOverrideSelf: 3213
  • CrossSaveRecentSilverPurchase: 3214
  • CrossSaveSilverBalanceNegative: 3215
  • CrossSaveAccountNotAuthenticated: 3216
  • ErrorOneAccountAlreadyActive: 3217
  • ErrorOneAccountDestinyRestriction: 3218
  • CrossSaveMustMigrateToSteam: 3219
  • CrossSaveSteamAlreadyPaired: 3220
  • CrossSaveCannotPairJustSteamAndBlizzard: 3221
  • CrossSaveCannotPairSteamAloneBeforeShadowkeep: 3222
  • AuthVerificationNotLinkedToAccount: 3300
  • PCMigrationMissingBlizzard: 3400
  • PCMigrationMissingSteam: 3401
  • PCMigrationInvalidBlizzard: 3402
  • PCMigrationInvalidSteam: 3403
  • PCMigrationUnknownFailure: 3404
  • PCMigrationUnknownException: 3405
  • PCMigrationNotLinked: 3406
  • PCMigrationAccountsAlreadyUsed: 3407
  • PCMigrationStepFailed: 3408
  • PCMigrationInvalidBlizzardCrossSaveState: 3409
  • PCMigrationDestinationBanned: 3410
  • PCMigrationDestinyFailure: 3411
  • PCMigrationSilverTransferFailed: 3412
  • PCMigrationEntitlementTransferFailed: 3413
  • PCMigrationCannotStompClanFounder: 3414
  • UnsupportedBrowser: 3500
  • StadiaAccountRequired: 3600
  • ErrorPhoneValidationTooManyUses: 3702
  • ErrorPhoneValidationNoAssociatedPhone: 3703
  • ErrorPhoneValidationCodeInvalid: 3705
  • ErrorPhoneValidationBanned: 3706
  • ErrorPhoneValidationCodeTooRecentlySent: 3707
  • ErrorPhoneValidationCodeExpired: 3708
  • ErrorPhoneValidationInvalidNumberType: 3709
  • ErrorPhoneValidationCodeTooRecentlyChecked: 3710
  • ErrorPhoneValidationRecentlyPlayedDestiny2AccountRequired: 3711
  • ApplePushErrorUnknown: 3800
  • ApplePushErrorNull: 3801
  • ApplePushErrorTimeout: 3802
  • ApplePushBadRequest: 3803
  • ApplePushFailedAuth: 3804
  • ApplePushThrottled: 3805
  • ApplePushServiceUnavailable: 3806
  • NotAnImageOrVideo: 3807
  • ErrorBungieFriendsBlockFailed: 3900
  • ErrorBungieFriendsAutoReject: 3901
  • ErrorBungieFriendsNoRequestFound: 3902
  • ErrorBungieFriendsAlreadyFriends: 3903
  • ErrorBungieFriendsUnableToRemoveRequest: 3904
  • ErrorBungieFriendsUnableToRemove: 3905
  • ErrorBungieFriendsIdenticalSourceTarget: 3906
  • ErrorBungieFriendsSelf: 3907
  • ErrorBungieBlockSelf: 3908
  • ErrorBungieFriendsListFull: 3910
  • ErrorBungieBlockListFull: 3911
  • ErrorBungieFriendNotFound: 3912
  • ErrorBungieFriendInvalidMembershipType: 3913
  • ErrorEgsUnknown: 4000
  • ErrorEgsBadRequest: 4001
  • ErrorEgsNotAuthorized: 4002
  • ErrorEgsForbidden: 4003
  • ErrorEgsAccountNotFound: 4004
  • ErrorEgsWebException: 4005
  • ErrorEgsUnavailable: 4006
  • ErrorEgsJwksMissing: 4007
  • ErrorEgsJwtMalformedHeader: 4008
  • ErrorEgsJwtMalformedPayload: 4009

GroupsV2.GroupApplicationRequest

Type: object
Object Properties
message
Type: string

GroupsV2.GroupApplicationListRequest

Type: object
Object Properties
memberships
Type: array
Array Contents: User.UserMembership
message
Type: string

GroupsV2.GroupsForMemberFilter

Enumeration
Type: int32
Valid Enum Values
  • All: 0
  • Founded: 1
  • NonFounded: 2

GroupsV2.GroupMembershipBase

Type: object
Object Properties
group

GroupsV2.GroupMembership

Type: object
Object Properties
member
group

SearchResultOfGroupMembership

Type: object
Object Properties
results
Type: array
Array Contents: GroupsV2.GroupMembership
totalResults
Type: int32
hasMore
Type: boolean
query
replacementContinuationToken
Type: string
useTotalResults
If useTotalResults is true, then totalResults represents an accurate count.

If False, it does not, and may be estimated/only the size of the current page.

Either way, you should probably always only trust hasMore.

This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one.
Type: boolean

GroupsV2.GroupMembershipSearchResponse

Type: object
Object Properties
results
Type: array
Array Contents: GroupsV2.GroupMembership
totalResults
Type: int32
hasMore
Type: boolean
query
replacementContinuationToken
Type: string
useTotalResults
If useTotalResults is true, then totalResults represents an accurate count.

If False, it does not, and may be estimated/only the size of the current page.

Either way, you should probably always only trust hasMore.

This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one.
Type: boolean

GroupsV2.GetGroupsForMemberResponse

Type: object
Object Properties
areAllMembershipsInactive
A convenience property that indicates if every membership this user has that is a part of this group are part of an account that is considered inactive - for example, overridden accounts in Cross Save.

The key is the Group ID for the group being checked, and the value is true if the users' memberships for that group are all inactive.
Type: object
Dictionary Contents: boolean
Dictionary Key Type: int64
results
Type: array
Array Contents: GroupsV2.GroupMembership
totalResults
Type: int32
hasMore
Type: boolean
query
replacementContinuationToken
Type: string
useTotalResults
If useTotalResults is true, then totalResults represents an accurate count.

If False, it does not, and may be estimated/only the size of the current page.

Either way, you should probably always only trust hasMore.

This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one.
Type: boolean

GroupsV2.GroupPotentialMembership

Type: object
Object Properties
group

SearchResultOfGroupPotentialMembership

Type: object
Object Properties
results
Type: array
totalResults
Type: int32
hasMore
Type: boolean
query
replacementContinuationToken
Type: string
useTotalResults
If useTotalResults is true, then totalResults represents an accurate count.

If False, it does not, and may be estimated/only the size of the current page.

Either way, you should probably always only trust hasMore.

This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one.
Type: boolean

GroupsV2.GroupPotentialMembershipSearchResponse

Type: object
Object Properties
results
Type: array
totalResults
Type: int32
hasMore
Type: boolean
query
replacementContinuationToken
Type: string
useTotalResults
If useTotalResults is true, then totalResults represents an accurate count.

If False, it does not, and may be estimated/only the size of the current page.

Either way, you should probably always only trust hasMore.

This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one.
Type: boolean

GroupsV2.GroupApplicationResponse

Type: object
Object Properties
resolution
Type: int32

Tokens.PartnerOfferClaimRequest

Type: object
Object Properties
PartnerOfferId
Type: string
BungieNetMembershipId
Type: int64
TransactionId
Type: string

Tokens.PartnerOfferSkuHistoryResponse

Type: object
Object Properties
SkuIdentifier
Type: string
LocalizedName
Type: string
LocalizedDescription
Type: string
ClaimDate
Type: date-time
AllOffersApplied
Type: boolean
TransactionId
Type: string
SkuOffers
Type: array

Tokens.PartnerOfferHistoryResponse

Type: object
Object Properties
PartnerOfferKey
Type: string
MembershipId
Nullable
Type: int64
MembershipType
Nullable Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • TigerXbox: 1
  • TigerPsn: 2
  • TigerSteam: 3
  • TigerBlizzard: 4
  • TigerStadia: 5
  • TigerEgs: 6
  • TigerDemon: 10
  • BungieNext: 254
  • All: -1
    "All" is only valid for searching capabilities: you need to pass the actual matching BungieMembershipType for any query where you pass a known membershipId.
LocalizedName
Type: string
LocalizedDescription
Type: string
IsConsumable
Type: boolean
QuantityApplied
Type: int32
ApplyDate
Nullable
Type: date-time

Tokens.PartnerRewardHistoryResponse

Type: object
Object Properties
PartnerOffers
Type: array
TwitchDrops
Type: array

Tokens.TwitchDropHistoryResponse

Type: object
Object Properties
Title
Type: string
Description
Type: string
CreatedAt
Nullable
Type: date-time
ClaimState
Nullable Enumeration
Type: byte
Valid Enum Values
  • Claimed: 0
  • Applied: 1
  • Fulfilled: 2

Streaming.DropStateEnum

Enumeration
Type: byte
Valid Enum Values
  • Claimed: 0
  • Applied: 1
  • Fulfilled: 2

Tokens.BungieRewardDisplay

Type: object
Object Properties
UserRewardAvailabilityModel
ObjectiveDisplayProperties
RewardDisplayProperties

Tokens.UserRewardAvailabilityModel

Type: object
Object Properties
AvailabilityModel
IsAvailableForUser
Type: boolean
IsUnlockedForUser
Type: boolean

Tokens.RewardAvailabilityModel

Type: object
Object Properties
HasExistingCode
Type: boolean
RecordDefinitions
CollectibleDefinitions
Type: array
IsOffer
Type: boolean
HasOffer
Type: boolean
OfferApplied
Type: boolean
DecryptedToken
Type: string
IsLoyaltyReward
Type: boolean
ShopifyEndDate
Nullable
Type: date-time
GameEarnByDate
Type: date-time
RedemptionEndDate
Type: date-time

Tokens.CollectibleDefinitions

Type: object
Object Properties
DestinyInventoryItemDefinition

Tokens.RewardDisplayProperties

Type: object
Object Properties
Name
Type: string
Description
Type: string
ImagePath
Type: string

Destiny.Config.DestinyManifest

DestinyManifest is the external-facing contract for just the properties needed by those calling the Destiny Platform.
Type: object
Object Properties
version
Type: string
mobileAssetContentPath
Type: string
mobileGearAssetDataBases
Type: array
mobileWorldContentPaths
Type: object
Dictionary Contents: string
Dictionary Key Type: string
jsonWorldContentPaths
This points to the generated JSON that contains all the Definitions. Each key is a locale. The value is a path to the aggregated world definitions (warning: large file!)
Type: object
Dictionary Contents: string
Dictionary Key Type: string
jsonWorldComponentContentPaths
This points to the generated JSON that contains all the Definitions. Each key is a locale. The value is a dictionary, where the key is a definition type by name, and the value is the path to the file for that definition. WARNING: This is unsafe and subject to change - do not depend on data in these files staying around long-term.
Type: object
Dictionary Contents: object
Dictionary Key Type: string
mobileClanBannerDatabasePath
Type: string
mobileGearCDN
Type: object
Dictionary Contents: string
Dictionary Key Type: string
iconImagePyramidInfo
Information about the "Image Pyramid" for Destiny icons. Where possible, we create smaller versions of Destiny icons. These are found as subfolders under the location of the "original/full size" Destiny images, with the same file name and extension as the original image itself. (this lets us avoid sending largely redundant path info with every entity, at the expense of the smaller versions of the image being less discoverable)
Type: array

Destiny.Config.GearAssetDataBaseDefinition

Type: object
Object Properties
version
Type: int32
path
Type: string

Destiny.Config.ImagePyramidEntry

Type: object
Object Properties
name
The name of the subfolder where these images are located.
Type: string
factor
The factor by which the original image size has been reduced.
Type: float

User.ExactSearchRequest

Type: object
Object Properties
displayName
Type: string
displayNameCode
Type: int16

Destiny.Responses.DestinyLinkedProfilesResponse

I know what you seek. You seek linked accounts. Found them, you have.

This contract returns a minimal amount of data about Destiny Accounts that are linked through your Bungie.Net account. We will not return accounts in this response whose
Type: object
Object Properties
profiles
Any Destiny account for whom we could successfully pull characters will be returned here, as the Platform-level summary of user data. (no character data, no Destiny account data other than the Membership ID and Type so you can make further queries)
Type: array
bnetMembership
If the requested membership had a linked Bungie.Net membership ID, this is the basic information about that BNet account.

I know, Tetron; I know this is mixing UserServices concerns with DestinyServices concerns. But it's so damn convenient! https://www.youtube.com/watch?v=X5R-bB-gKVI
Type: object
profilesWithErrors
This is brief summary info for profiles that we believe have valid Destiny info, but who failed to return data for some other reason and thus we know that subsequent calls for their info will also fail.
Type: array

Destiny.Responses.DestinyProfileUserInfoCard

Type: object
Object Properties
dateLastPlayed
Type: date-time
isOverridden
If this profile is being overridden/obscured by Cross Save, this will be set to true. We will still return the profile for display purposes where users need to know the info: it is up to any given area of the app/site to determine if this profile should still be shown.
Type: boolean
isCrossSavePrimary
If true, this account is hooked up as the "Primary" cross save account for one or more platforms.
Type: boolean
platformSilver
This is the silver available on this Profile across any platforms on which they have purchased silver.

This is only available if you are requesting yourself.
Type: object
unpairedGameVersions
Nullable Enumeration
If this profile is not in a cross save pairing, this will return the game versions that we believe this profile has access to.

For the time being, we will not return this information for any membership that is in a cross save pairing. The gist is that, once the pairing occurs, we do not currently have a consistent way to get that information for the profile's original Platform, and thus gameVersions would be too inconsistent (based on the last platform they happened to play on) for the info to be useful.

If we ever can get this data, this field will be deprecated and replaced with data on the DestinyLinkedProfileResponse itself, with game versions per linked Platform. But since we can't get that, we have this as a stop-gap measure for getting the data in the only situation that we currently need it.
Type: int32
Valid Enum Values
  • None: 0
  • Destiny2: 1
  • DLC1: 2
  • DLC2: 4
  • Forsaken: 8
  • YearTwoAnnualPass: 16
  • Shadowkeep: 32
  • BeyondLight: 64
  • Anniversary30th: 128
  • TheWitchQueen: 256
  • Lightfall: 512
  • TheFinalShape: 1024
supplementalDisplayName
A platform specific additional display name - ex: psn Real Name, bnet Unique Name, etc.
Type: string
iconPath
URL the Icon if available.
Type: string
crossSaveOverride
If there is a cross save override in effect, this value will tell you the type that is overridding this one.
Type: int32
applicableMembershipTypes
The list of Membership Types indicating the platforms on which this Membership can be used.

Not in Cross Save = its original membership type. Cross Save Primary = Any membership types it is overridding, and its original membership type Cross Save Overridden = Empty list
Type: array
Array Contents: int32
isPublic
If True, this is a public user membership.
Type: boolean
membershipType
Type of the membership. Not necessarily the native type.
Type: int32
membershipId
Membership ID as they user is known in the Accounts service
Type: int64
displayName
Display Name the player has chosen for themselves. The display name is optional when the data type is used as input to a platform API.
Type: string
bungieGlobalDisplayName
The bungie global display name, if set.
Type: string
bungieGlobalDisplayNameCode
Nullable
The bungie global display name code, if set.
Type: int16

Destiny.Components.Inventory.DestinyPlatformSilverComponent

Depends on Component "PlatformSilver"
Type: object
Object Properties
platformSilver
If a Profile is played on multiple platforms, this is the silver they have for each platform, keyed by Membership Type.
Type: object
Dictionary Key Type: int32

Destiny.Entities.Items.DestinyItemComponent

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.
Type: object
Object Properties
itemHash
Mapped to Definition
The identifier for the item's definition, which is where most of the useful static information for the item can be found.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
itemInstanceId
Nullable
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.
Type: int64
quantity
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)
Type: int32
bindStatus
If the item is bound to a location, it will be specified in this enum.
Type: int32
location
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: int32
bucketHash
Mapped to Definition
The hash identifier for the specific inventory bucket in which the item is located.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryBucketDefinition
transferStatus
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: int32
lockable
If the item can be locked, this will indicate that state.
Type: boolean
state
A flags enumeration indicating the transient/custom states of the item that affect how it is rendered: whether it's tracked or locked for example, or whether it has a masterwork plug inserted.
Type: int32
overrideStyleItemHash
Nullable Mapped to Definition
If populated, this is the hash of the item whose icon (and other secondary styles, but *not* the human readable strings) should override whatever icons/styles are on the item being sold.

If you don't do this, certain items whose styles are being overridden by socketed items - such as the "Recycle Shader" item - would show whatever their default icon/style is, and it wouldn't be pretty or look accurate.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
expirationDate
Nullable
If the item can expire, this is the date at which it will/did expire.
Type: date-time
isWrapper
If this is true, the object is actually a "wrapper" of the object it's representing. This means that it's not the actual item itself, but rather an item that must be "opened" in game before you have and can use the item.

Wrappers are an evolution of "bundles", which give an easy way to let you preview the contents of what you purchased while still letting you get a refund before you "open" it.
Type: boolean
tooltipNotificationIndexes
If this is populated, it is a list of indexes into DestinyInventoryItemDefinition.tooltipNotifications for any special tooltip messages that need to be shown for this item.
Type: array
Array Contents: int32
metricHash
Nullable Mapped to Definition
The identifier for the currently-selected metric definition, to be displayed on the emblem nameplate.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Metrics.DestinyMetricDefinition
metricObjective
The objective progress for the currently-selected metric definition, to be displayed on the emblem nameplate.
Type: object
versionNumber
Nullable
The version of this item, used to index into the versions list in the item definition quality block.
Type: int32
itemValueVisibility
If available, a list that describes which item values (rewards) should be shown (true) or hidden (false).
Type: array
Array Contents: boolean

Destiny.ItemBindStatus

Enumeration
Type: int32
Valid Enum Values
  • NotBound: 0
  • BoundToCharacter: 1
  • BoundToAccount: 2
  • BoundToGuild: 3

Destiny.TransferStatuses

Enumeration
Whether you can transfer an item, and why not if you can't.
Type: int32
Valid Enum Values
  • CanTransfer: 0
    The item can be transferred.
  • ItemIsEquipped: 1
    You can't transfer the item because it is equipped on a character.
  • NotTransferrable: 2
    The item is defined as not transferrable in its DestinyInventoryItemDefinition.nonTransferrable property.
  • NoRoomInDestination: 4
    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.

Destiny.ItemState

Enumeration
A flags enumeration/bitmask where each bit represents a different possible state that the item can be in that may effect how the item is displayed to the user and what actions can be performed against it.
Type: int32
Valid Enum Values
  • None: 0
  • Locked: 1
    If this bit is set, the item has been "locked" by the user and cannot be deleted. You may want to represent this visually with a "lock" icon.
  • Tracked: 2
    If this bit is set, the item is a quest that's being tracked by the user. You may want a visual indicator to show that this is a tracked quest.
  • Masterwork: 4
    If this bit is set, the item has a Masterwork plug inserted. This usually coincides with having a special "glowing" effect applied to the item's icon.
  • Crafted: 8
    If this bit is set, the item has been 'crafted' by the player. You may want to represent this visually with a "crafted" icon overlay.
  • HighlightedObjective: 16
    If this bit is set, the item has a 'highlighted' objective. You may want to represent this with an orange-red icon border color.

Destiny.Quests.DestinyObjectiveProgress

Returns data about a character's status with a given Objective. Combine with DestinyObjectiveDefinition static data for display purposes.
Type: object
Object Properties
objectiveHash
Mapped to Definition
The unique identifier of the Objective being referred to. Use to look up the DestinyObjectiveDefinition in static data.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyObjectiveDefinition
destinationHash
Nullable Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyDestinationDefinition
activityHash
Nullable Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
progress
Nullable
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.inProgressValueStyle or completedValueStyle 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.inProgressValueStyle or completedValueStyle before rendering progress.
Type: int32
completionValue
As of Forsaken, objectives' completion value is determined dynamically at runtime.

This value represents the threshold of progress you need to surpass in order for this objective to be considered "complete".

If you were using objective data, switch from using the DestinyObjectiveDefinition's "completionValue" to this value.
Type: int32
complete
Whether or not the Objective is completed.
Type: boolean
visible
If this is true, the objective is visible in-game. Otherwise, it's not yet visible to the player. Up to you if you want to honor this property.
Type: boolean

Destiny.DestinyGameVersions

Enumeration
A flags enumeration/bitmask indicating the versions of the game that a given user has purchased.
Type: int32
Valid Enum Values
  • None: 0
  • Destiny2: 1
  • DLC1: 2
  • DLC2: 4
  • Forsaken: 8
  • YearTwoAnnualPass: 16
  • Shadowkeep: 32
  • BeyondLight: 64
  • Anniversary30th: 128
  • TheWitchQueen: 256
  • Lightfall: 512
  • TheFinalShape: 1024

Destiny.Responses.DestinyErrorProfile

If a Destiny Profile can't be returned, but we're pretty certain it's a valid Destiny account, this will contain as much info as we can get about the profile for your use.

Assume that the most you'll get is the Error Code, the Membership Type and the Membership ID.
Type: object
Object Properties
errorCode
The error that we encountered. You should be able to look up localized text to show to the user for these failures.
Type: int32
infoCard
Basic info about the account that failed. Don't expect anything other than membership ID, Membership Type, and displayName to be populated.
Type: object

Destiny.DestinyComponentType

Enumeration
Represents the possible components that can be returned from Destiny "Get" calls such as GetProfile, GetCharacter, GetVendor etc...

When making one of these requests, you will pass one or more of these components as a comma separated list in the "?components=" querystring parameter. For instance, if you want baseline Profile data, Character Data, and character progressions, you would pass "?components=Profiles,Characters,CharacterProgressions" You may use either the numerical or string values.
Type: int32
Valid Enum Values
  • None: 0
  • Profiles: 100
    Profiles is the most basic component, only relevant when calling GetProfile. This returns basic information about the profile, which is almost nothing: a list of characterIds, some information about the last time you logged in, and that most sobering statistic: how long you've played.
  • VendorReceipts: 101
    Only applicable for GetProfile, this will return information about receipts for refundable vendor items.
  • ProfileInventories: 102
    Asking for this will get you the profile-level inventories, such as your Vault buckets (yeah, the Vault is really inventory buckets located on your Profile)
  • ProfileCurrencies: 103
    This will get you a summary of items on your Profile that we consider to be "currencies", such as Glimmer. I mean, if there's Glimmer in Destiny 2. I didn't say there was Glimmer.
  • ProfileProgression: 104
    This will get you any progression-related information that exists on a Profile-wide level, across all characters.
  • PlatformSilver: 105
    This will get you information about the silver that this profile has on every platform on which it plays.

    You may only request this component for the logged in user's Profile, and will not recieve it if you request it for another Profile.
  • Characters: 200
    This will get you summary info about each of the characters in the profile.
  • CharacterInventories: 201
    This will get you information about any non-equipped items on the character or character(s) in question, if you're allowed to see it. You have to either be authenticated as that user, or that user must allow anonymous viewing of their non-equipped items in Bungie.Net settings to actually get results.
  • CharacterProgressions: 202
    This will get you information about the progression (faction, experience, etc... "levels") relevant to each character, if you are the currently authenticated user or the user has elected to allow anonymous viewing of its progression info.
  • CharacterRenderData: 203
    This will get you just enough information to be able to render the character in 3D if you have written a 3D rendering library for Destiny Characters, or "borrowed" ours. It's okay, I won't tell anyone if you're using it. I'm no snitch. (actually, we don't care if you use it - go to town)
  • CharacterActivities: 204
    This will return info about activities that a user can see and gating on it, if you are the currently authenticated user or the user has elected to allow anonymous viewing of its progression info. Note that the data returned by this can be unfortunately problematic and relatively unreliable in some cases. We'll eventually work on making it more consistently reliable.
  • CharacterEquipment: 205
    This will return info about the equipped items on the character(s). Everyone can see this.
  • CharacterLoadouts: 206
    This will return info about the loadouts of the character(s).
  • ItemInstances: 300
    This will return basic info about instanced items - whether they can be equipped, their tracked status, and some info commonly needed in many places (current damage type, primary stat value, etc)
  • ItemObjectives: 301
    Items can have Objectives (DestinyObjectiveDefinition) bound to them. If they do, this will return info for items that have such bound objectives.
  • ItemPerks: 302
    Items can have perks (DestinySandboxPerkDefinition). If they do, this will return info for what perks are active on items.
  • ItemRenderData: 303
    If you just want to render the weapon, this is just enough info to do that rendering.
  • ItemStats: 304
    Items can have stats, like rate of fire. Asking for this component will return requested item's stats if they have stats.
  • ItemSockets: 305
    Items can have sockets, where plugs can be inserted. Asking for this component will return all info relevant to the sockets on items that have them.
  • ItemTalentGrids: 306
    Items can have talent grids, though that matters a lot less frequently than it used to. Asking for this component will return all relevant info about activated Nodes and Steps on this talent grid, like the good ol' days.
  • ItemCommonData: 307
    Items that *aren't* instanced still have important information you need to know: how much of it you have, the itemHash so you can look up their DestinyInventoryItemDefinition, whether they're locked, etc... Both instanced and non-instanced items will have these properties. You will get this automatically with Inventory components - you only need to pass this when calling GetItem on a specific item.
  • ItemPlugStates: 308
    Items that are "Plugs" can be inserted into sockets. This returns statuses about those plugs and why they can/can't be inserted. I hear you giggling, there's nothing funny about inserting plugs. Get your head out of the gutter and pay attention!
  • ItemPlugObjectives: 309
    Sometimes, plugs have objectives on them. This data can get really large, so we split it into its own component. Please, don't grab it unless you need it.
  • ItemReusablePlugs: 310
    Sometimes, designers create thousands of reusable plugs and suddenly your response sizes are almost 3MB, and something has to give.

    Reusable Plugs were split off as their own component, away from ItemSockets, as a result of the Plug changes in Shadowkeep that made plug data infeasibly large for the most common use cases.

    Request this component if and only if you need to know what plugs *could* be inserted into a socket, and need to know it before "drilling" into the details of an item in your application (for instance, if you're doing some sort of interesting sorting or aggregation based on available plugs.

    When you get this, you will also need to combine it with "Plug Sets" data if you want a full picture of all of the available plugs: this component will only return plugs that have state data that is per-item. See Plug Sets for available plugs that have Character, Profile, or no state-specific restrictions.
  • Vendors: 400
    When obtaining vendor information, this will return summary information about the Vendor or Vendors being returned.
  • VendorCategories: 401
    When obtaining vendor information, this will return information about the categories of items provided by the Vendor.
  • VendorSales: 402
    When obtaining vendor information, this will return the information about items being sold by the Vendor.
  • Kiosks: 500
    Asking for this component will return you the account's Kiosk statuses: that is, what items have been filled out/acquired. But only if you are the currently authenticated user or the user has elected to allow anonymous viewing of its progression info.
  • CurrencyLookups: 600
    A "shortcut" component that will give you all of the item hashes/quantities of items that the requested character can use to determine if an action (purchasing, socket insertion) has the required currency. (recall that all currencies are just items, and that some vendor purchases require items that you might not traditionally consider to be a "currency", like plugs/mods!)
  • PresentationNodes: 700
    Returns summary status information about all "Presentation Nodes". See DestinyPresentationNodeDefinition for more details, but the gist is that these are entities used by the game UI to bucket Collectibles and Records into a hierarchy of categories. You may ask for and use this data if you want to perform similar bucketing in your own UI: or you can skip it and roll your own.
  • Collectibles: 800
    Returns summary status information about all "Collectibles". These are records of what items you've discovered while playing Destiny, and some other basic information. For detailed information, you will have to call a separate endpoint devoted to the purpose.
  • Records: 900
    Returns summary status information about all "Records" (also known in the game as "Triumphs". I know, it's confusing because there's also "Moments of Triumph" that will themselves be represented as "Triumphs.")
  • Transitory: 1000
    Returns information that Bungie considers to be "Transitory": data that may change too frequently or come from a non-authoritative source such that we don't consider the data to be fully trustworthy, but that might prove useful for some limited use cases. We can provide no guarantee of timeliness nor consistency for this data: buyer beware with the Transitory component.
  • Metrics: 1100
    Returns summary status information about all "Metrics" (also known in the game as "Stat Trackers").
  • StringVariables: 1200
    Returns a mapping of localized string variable hashes to values, on a per-account or per-character basis.
  • Craftables: 1300
    Returns summary status information about all "Craftables" aka crafting recipe items.
  • SocialCommendations: 1400
    Returns score values for all commendations and commendation nodes.

Destiny.Responses.DestinyProfileResponse

The response for GetDestinyProfile, with components for character and item-level data.
Type: object
Object Properties
responseMintedTimestamp
Records the timestamp of when most components were last generated from the world server source. Unless the component type is specified in the documentation for secondaryComponentsMintedTimestamp, this value is sufficient to do data freshness.
Type: date-time
secondaryComponentsMintedTimestamp
Some secondary components are not tracked in the primary response timestamp and have their timestamp tracked here. If your component is any of the following, this field is where you will find your timestamp value:

PresentationNodes, Records, Collectibles, Metrics, StringVariables, Craftables, Transitory

All other component types may use the primary timestamp property.
Type: date-time
vendorReceipts
Depends on Component "VendorReceipts"
Recent, refundable purchases you have made from vendors. When will you use it? Couldn't say...

COMPONENT TYPE: VendorReceipts
Type: object
profileInventory
Depends on Component "ProfileInventories"
The profile-level inventory of the Destiny Profile.

COMPONENT TYPE: ProfileInventories
Type: object
profileCurrencies
Depends on Component "ProfileCurrencies"
The profile-level currencies owned by the Destiny Profile.

COMPONENT TYPE: ProfileCurrencies
Type: object
profile
Depends on Component "Profiles"
The basic information about the Destiny Profile (formerly "Account").

COMPONENT TYPE: Profiles
Type: object
platformSilver
Depends on Component "PlatformSilver"
Silver quantities for any platform on which this Profile plays destiny.

COMPONENT TYPE: PlatformSilver
Type: object
profileKiosks
Depends on Component "Kiosks"
Items available from Kiosks that are available Profile-wide (i.e. across all characters)

This 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.

COMPONENT TYPE: Kiosks
Type: object
profilePlugSets
Depends on Component "ItemSockets"
When sockets refer to reusable Plug Sets (see DestinyPlugSetDefinition for more info), this is the set of plugs and their states that are profile-scoped.

This comes back with ItemSockets, as it is needed for a complete picture of the sockets on requested items.

COMPONENT TYPE: ItemSockets
Type: object
profileProgression
Depends on Component "ProfileProgression"
When we have progression information - such as Checklists - that may apply profile-wide, it will be returned here rather than in the per-character progression data.

COMPONENT TYPE: ProfileProgression
Type: object
profilePresentationNodes
Depends on Component "PresentationNodes"
COMPONENT TYPE: PresentationNodes
Type: object
profileRecords
Depends on Component "Records"
COMPONENT TYPE: Records
Type: object
profileCollectibles
Depends on Component "Collectibles"
COMPONENT TYPE: Collectibles
Type: object
profileTransitoryData
Depends on Component "Transitory"
COMPONENT TYPE: Transitory
Type: object
metrics
Depends on Component "Metrics"
COMPONENT TYPE: Metrics
Type: object
profileStringVariables
Depends on Component "StringVariables"
COMPONENT TYPE: StringVariables
Type: object
profileCommendations
Depends on Component "SocialCommendations"
COMPONENT TYPE: SocialCommendations
Type: object
characters
Depends on Component "Characters"
Basic information about each character, keyed by the CharacterId.

COMPONENT TYPE: Characters
Type: object
characterInventories
Depends on Component "CharacterInventories"
The character-level non-equipped inventory items, keyed by the Character's Id.

COMPONENT TYPE: CharacterInventories
Type: object
characterLoadouts
Depends on Component "CharacterLoadouts"
The character loadouts, keyed by the Character's Id.

COMPONENT TYPE: CharacterLoadouts
Type: object
characterProgressions
Depends on Component "CharacterProgressions"
Character-level progression data, keyed by the Character's Id.

COMPONENT TYPE: CharacterProgressions
Type: object
characterRenderData
Depends on Component "CharacterRenderData"
Character rendering data - a minimal set of info needed to render a character in 3D - keyed by the Character's Id.

COMPONENT TYPE: CharacterRenderData
Type: object
characterActivities
Depends on Component "CharacterActivities"
Character activity data - the activities available to this character and its status, keyed by the Character's Id.

COMPONENT TYPE: CharacterActivities
Type: object
characterEquipment
Depends on Component "CharacterEquipment"
The character's equipped items, keyed by the Character's Id.

COMPONENT TYPE: CharacterEquipment
Type: object
characterKiosks
Depends on Component "Kiosks"
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.

This 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.

COMPONENT TYPE: Kiosks
Type: object
characterPlugSets
Depends on Component "ItemSockets"
When sockets refer to reusable Plug Sets (see DestinyPlugSetDefinition for more info), this is the set of plugs and their states, per character, that are character-scoped.

This comes back with ItemSockets, as it is needed for a complete picture of the sockets on requested items.

COMPONENT TYPE: ItemSockets
Type: object
characterUninstancedItemComponents
Do you ever get the feeling that a system was designed *too* flexibly? That it can be used in so many different ways that you end up being unable to provide an easy to use abstraction for the mess that's happening under the surface?

Let's talk about character-specific data that might be related to items without instances. These two statements are totally unrelated, I promise.

At some point during D2, it was decided that items - such as Bounties - could be given to characters and *not* have instance data, but that *could* display and even use relevant state information on your account and character.

Up to now, any item that had meaningful dependencies on character or account state had to be instanced, and thus "itemComponents" was all that you needed: it was keyed by item's instance IDs and provided the stateful information you needed inside.

Unfortunately, we don't live in such a magical world anymore. This is information held on a per-character basis about non-instanced items that the characters have in their inventory - or that reference character-specific state information even if it's in Account-level inventory - and the values related to that item's state in relation to the given character.

To give a concrete example, look at a Moments of Triumph bounty. They exist in a character's inventory, and show/care about a character's progression toward completing the bounty. But the bounty itself is a non-instanced item, like a mod or a currency. This returns that data for the characters who have the bounty in their inventory.

I'm not crying, you're crying Okay we're both crying but it's going to be okay I promise Actually I shouldn't promise that, I don't know if it's going to be okay
Type: object
Dictionary Key Type: int64
characterPresentationNodes
Depends on Component "PresentationNodes"
COMPONENT TYPE: PresentationNodes
Type: object
characterRecords
Depends on Component "Records"
COMPONENT TYPE: Records
Type: object
characterCollectibles
Depends on Component "Collectibles"
COMPONENT TYPE: Collectibles
Type: object
characterStringVariables
Depends on Component "StringVariables"
COMPONENT TYPE: StringVariables
Type: object
characterCraftables
Depends on Component "Craftables"
COMPONENT TYPE: Craftables
Type: object
itemComponents
Information about instanced items across all returned characters, keyed by the item's instance ID.

COMPONENT TYPE: [See inside the DestinyItemComponentSet contract for component types.]
Type: object
characterCurrencyLookups
Depends on Component "CurrencyLookups"
A "lookup" convenience component that can be used to quickly check if the character has access to items that can be used for purchasing.

COMPONENT TYPE: CurrencyLookups
Type: object

Destiny.Entities.Profiles.DestinyVendorReceiptsComponent

Depends on Component "VendorReceipts"
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?
Type: object
Object Properties
receipts
The receipts for refundable purchases made at a vendor.
Type: array

Destiny.Vendors.DestinyVendorReceipt

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.
Type: object
Object Properties
currencyPaid
The amount paid for the item, in terms of items that were consumed in the purchase and their quantity.
Type: array
Array Contents: Destiny.DestinyItemQuantity
itemReceived
The item that was received, and its quantity.
Type: object
licenseUnlockHash
The unlock flag used to determine whether you still have the purchased item.
Type: uint32
purchasedByCharacterId
The ID of the character who made the purchase.
Type: int64
refundPolicy
Whether you can get a refund, and what happens in order for the refund to be received. See the DestinyVendorItemRefundPolicy enum for details.
Type: int32
sequenceNumber
The identifier of this receipt.
Type: int32
timeToExpiration
The seconds since epoch at which this receipt is rendered invalid.
Type: int64
expiresOn
The date at which this receipt is rendered invalid.
Type: date-time

Components.ComponentResponse

The base class for any component-returning object that may need to indicate information about the state of the component being returned.
Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Components.ComponentPrivacySetting

Enumeration
A set of flags for reason(s) why the component populated in the way that it did. Inspect the individual flags for the reasons.
Type: int32
Valid Enum Values
  • None: 0
  • Public: 1
  • Private: 2

SingleComponentResponseOfDestinyVendorReceiptsComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Entities.Inventory.DestinyInventoryComponent

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)

Inventory 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.
Type: object
Object Properties
items
The items in this inventory. If you care to bucket them, use the item's bucketHash property to group them.
Type: array

SingleComponentResponseOfDestinyInventoryComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Entities.Profiles.DestinyProfileComponent

Depends on Component "Profiles"
The most essential summary information about a Profile (in Destiny 1, we called these "Accounts").
Type: object
Object Properties
userInfo
If you need to render the Profile (their platform name, icon, etc...) somewhere, this property contains that information.
Type: object
dateLastPlayed
The last time the user played with any character on this Profile.
Type: date-time
versionsOwned
If you want to know what expansions they own, this will contain that data.

IMPORTANT: This field may not return the data you're interested in for Cross-Saved users. It returns the last ownership data we saw for this account - which is to say, what they've purchased on the platform on which they last played, which now could be a different platform.

If you don't care about per-platform ownership and only care about whatever platform it seems they are playing on most recently, then this should be "good enough." Otherwise, this should be considered deprecated. We do not have a good alternative to provide at this time with platform specific ownership data for DLC.
Type: int32
characterIds
A list of the character IDs, for further querying on your part.
Type: array
Array Contents: int64
seasonHashes
Mapped to Definition
A list of seasons that this profile owns. Unlike versionsOwned, these stay with the profile across Platforms, and thus will be valid.

It turns out that Stadia Pro subscriptions will give access to seasons but only while playing on Stadia and with an active subscription. So some users (users who have Stadia Pro but choose to play on some other platform) won't see these as available: it will be whatever seasons are available for the platform on which they last played.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Seasons.DestinySeasonDefinition
eventCardHashesOwned
Mapped to Definition
A list of hashes for event cards that a profile owns. Unlike most values in versionsOwned, these stay with the profile across all platforms.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Seasons.DestinyEventCardDefinition
currentSeasonHash
Nullable Mapped to Definition
If populated, this is a reference to the season that is currently active.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Seasons.DestinySeasonDefinition
currentSeasonRewardPowerCap
Nullable
If populated, this is the reward power cap for the current season.
Type: int32
activeEventCardHash
Nullable Mapped to Definition
If populated, this is a reference to the event card that is currently active.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Seasons.DestinyEventCardDefinition
currentGuardianRank
Mapped to Definition
The 'current' Guardian Rank value, which starts at rank 1. This rank value will drop at the start of a new season to your 'renewed' rank from the previous season.
Type: int32
Mapped to Manifest Database Definition: Destiny.Definitions.GuardianRanks.DestinyGuardianRankDefinition
lifetimeHighestGuardianRank
Mapped to Definition
The 'lifetime highest' Guardian Rank value, which starts at rank 1. This rank value should never go down.
Type: int32
Mapped to Manifest Database Definition: Destiny.Definitions.GuardianRanks.DestinyGuardianRankDefinition
renewedGuardianRank
Mapped to Definition
The seasonal 'renewed' Guardian Rank value. This rank value resets at the start of each new season to the highest-earned non-advanced rank.
Type: int32
Mapped to Manifest Database Definition: Destiny.Definitions.GuardianRanks.DestinyGuardianRankDefinition

Destiny.Definitions.Seasons.DestinyEventCardDefinition

Mobile Manifest Entity
Defines the properties of an 'Event Card' in Destiny 2, to coincide with a seasonal event for additional challenges, premium rewards, a new seal, and a special title. For example: Solstice of Heroes 2022.
Mapped to Mobile Manifest Table: EventCards
Type: object
Object Properties
linkRedirectPath
Type: string
triumphsPresentationNodeHash
Mapped to Definition
Type: uint32
sealPresentationNodeHash
Mapped to Definition
Type: uint32
ticketCurrencyItemHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
ticketVendorHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorDefinition
ticketVendorCategoryHash
Type: uint32
endTime
Type: int64
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Seasons.DestinyEventCardImages

Type: object
Object Properties
unownedCardSleeveImagePath
Type: string
unownedCardSleeveWrapImagePath
Type: string
cardIncompleteImagePath
Type: string
cardCompleteImagePath
Type: string
cardCompleteWrapImagePath
Type: string
progressIconImagePath
Type: string
themeBackgroundImagePath
Type: string

Destiny.Definitions.GuardianRanks.DestinyGuardianRankDefinition

Mobile Manifest Entity
Mapped to Mobile Manifest Table: GuardianRanks
Type: object
Object Properties
rankNumber
Type: int32
presentationNodeHash
Mapped to Definition
Type: uint32
foregroundImagePath
Type: string
overlayImagePath
Type: string
overlayMaskImagePath
Type: string
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

SingleComponentResponseOfDestinyProfileComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

SingleComponentResponseOfDestinyPlatformSilverComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Components.Kiosks.DestinyKiosksComponent

Depends on Component "Kiosks"
A Kiosk is a Vendor (DestinyVendorDefinition) that sells items based on whether you have already acquired that item before.

This 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.

Note 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.
Type: object
Object Properties
kioskItems
Mapped to Definition
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
Dictionary Contents: array
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorDefinition

Destiny.Components.Kiosks.DestinyKioskItem

Type: object
Object Properties
index
The index of the item in the related DestinyVendorDefintion's itemList property, representing the sale.
Type: int32
canAcquire
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
Indexes into failureStrings for the Vendor, indicating the reasons why it failed if any.
Type: array
Array Contents: int32
flavorObjective
I may regret naming it this way - but this represents when an item has an objective that doesn't serve a beneficial purpose, but rather is used for "flavor" or additional information. For instance, when Emblems track specific stats, those stats are represented as Objectives on the item.
Type: object

SingleComponentResponseOfDestinyKiosksComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Components.PlugSets.DestinyPlugSetsComponent

Depends on Component "ItemSockets"
Sockets may refer to a "Plug Set": a set of reusable plugs that may be shared across multiple sockets (or even, in theory, multiple sockets over multiple items).

This is the set of those plugs that we came across in the users' inventory, along with the values for plugs in the set. Any given set in this component may be represented in Character and Profile-level, as some plugs may be Profile-level restricted, and some character-level restricted. (note that the ones that are even more specific will remain on the actual socket component itself, as they cannot be reused)
Type: object
Object Properties
plugs
Mapped to Definition
The shared list of plugs for each relevant PlugSet, keyed by the hash identifier of the PlugSet (DestinyPlugSetDefinition).
Type: object
Dictionary Contents: array
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Sockets.DestinyPlugSetDefinition

Destiny.Sockets.DestinyItemPlugBase

Type: object
Object Properties
plugItemHash
Mapped to Definition
The hash identifier of the DestinyInventoryItemDefinition that represents this plug.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
canInsert
If true, this plug has met all of its insertion requirements. Big if true.
Type: boolean
enabled
If true, this plug will provide its benefits while inserted.
Type: boolean
insertFailIndexes
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.

This list will be empty if the plug can be inserted.
Type: array
Array Contents: int32
enableFailIndexes
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.

This list will be empty if the plug is enabled.
Type: array
Array Contents: int32
stackSize
Nullable
If available, this is the stack size to display for the socket plug item.
Type: int32
maxStackSize
Nullable
If available, this is the maximum stack size to display for the socket plug item.
Type: int32

Destiny.Sockets.DestinyItemPlug

Type: object
Object Properties
plugObjectives
Sometimes, Plugs may have objectives: these are often used for flavor and display purposes, but they can be used for any arbitrary purpose (both fortunately and unfortunately). Recently (with Season 2) they were expanded in use to be used as the "gating" for whether the plug can be inserted at all. For instance, a Plug might be tracking the number of PVP kills you have made. It will use the parent item's data about that tracking status to determine what to show, and will generally show it using the DestinyObjectiveDefinition's progressDescription property. Refer to the plug's itemHash and objective property for more information if you would like to display even more data.
Type: array
plugItemHash
Mapped to Definition
The hash identifier of the DestinyInventoryItemDefinition that represents this plug.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
canInsert
If true, this plug has met all of its insertion requirements. Big if true.
Type: boolean
enabled
If true, this plug will provide its benefits while inserted.
Type: boolean
insertFailIndexes
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.

This list will be empty if the plug can be inserted.
Type: array
Array Contents: int32
enableFailIndexes
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.

This list will be empty if the plug is enabled.
Type: array
Array Contents: int32
stackSize
Nullable
If available, this is the stack size to display for the socket plug item.
Type: int32
maxStackSize
Nullable
If available, this is the maximum stack size to display for the socket plug item.
Type: int32

SingleComponentResponseOfDestinyPlugSetsComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Components.Profiles.DestinyProfileProgressionComponent

Depends on Component "ProfileProgression"
The set of progression-related information that applies at a Profile-wide level for your Destiny experience. This differs from the Jimi Hendrix Experience because there's less guitars on fire. Yet. #spoileralert?

This will include information such as Checklist info.
Type: object
Object Properties
checklists
Mapped to Definition
The set of checklists that can be examined on a profile-wide basis, keyed by the hash identifier of the Checklist (DestinyChecklistDefinition)

For each checklist returned, its value is itself a Dictionary keyed by the checklist's hash identifier with the value being a boolean indicating if it's been discovered yet.
Type: object
Dictionary Contents: object
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Checklists.DestinyChecklistDefinition
seasonalArtifact
Data related to your progress on the current season's artifact that is the same across characters.
Type: object

Destiny.Artifacts.DestinyArtifactProfileScoped

Represents a Seasonal Artifact and all data related to it for the requested Account.

It can be combined with Character-scoped data for a full picture of what a character has available/has chosen, or just these settings can be used for overview information.
Type: object
Object Properties
artifactHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Artifacts.DestinyArtifactDefinition
pointProgression
pointsAcquired
Type: int32
powerBonusProgression
powerBonus
Type: int32

Destiny.Definitions.Checklists.DestinyChecklistDefinition

Mobile Manifest Entity
By public demand, Checklists are loose sets of "things to do/things you have done" in Destiny that we were actually able to track. They include easter eggs you find in the world, unique chests you unlock, and other such data where the first time you do it is significant enough to be tracked, and you have the potential to "get them all".

These may be account-wide, or may be per character. The status of these will be returned in related "Checklist" data coming down from API requests such as GetProfile or GetCharacter.

Generally speaking, the items in a checklist can be completed in any order: we return an ordered list which only implies the way we are showing them in our own UI, and you can feel free to alter it as you wish.

Note that, in the future, there will be something resembling the old D1 Record Books in at least some vague form. When that is created, it may be that it will supercede much or all of this Checklist data. It remains to be seen if that will be the case, so for now assume that the Checklists will still exist even after the release of D2: Forsaken.
Mapped to Mobile Manifest Table: Checklists
Type: object
Object Properties
viewActionString
A localized string prompting you to view the checklist.
Type: string
scope
Indicates whether you will find this checklist on the Profile or Character components.
Type: int32
entries
The individual checklist items. Gotta catch 'em all.
Type: array
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Checklists.DestinyChecklistEntryDefinition

The properties of an individual checklist item. Note that almost everything is optional: it is *highly* variable what kind of data we'll actually be able to return: at times we may have no other relationships to entities at all.

Whatever UI you build, do it with the knowledge that any given entry might not actually be able to be associated with some other Destiny entity.
Type: object
Object Properties
hash
The identifier for this Checklist entry. Guaranteed unique only within this Checklist Definition, and not globally/for all checklists.
Type: uint32
displayProperties
Even if no other associations exist, we will give you *something* for display properties. In cases where we have no associated entities, it may be as simple as a numerical identifier.
Type: object
destinationHash
Nullable Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyDestinationDefinition
locationHash
Nullable Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyLocationDefinition
bubbleHash
Nullable
Note that a Bubble's hash doesn't uniquely identify a "top level" entity in Destiny. Only the combination of location and bubble can uniquely identify a place in the world of Destiny: so if bubbleHash is populated, locationHash must too be populated for it to have any meaning.

You can use this property if it is populated to look up the DestinyLocationDefinition's associated .locationReleases[].activityBubbleName property.
Type: uint32
activityHash
Nullable Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
itemHash
Nullable Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
vendorHash
Nullable Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorDefinition
vendorInteractionIndex
Nullable
Type: int32
scope
The scope at which this specific entry can be computed.
Type: int32

SingleComponentResponseOfDestinyProfileProgressionComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Components.Presentation.DestinyPresentationNodesComponent

Depends on Component "PresentationNodes"
Type: object
Object Properties
nodes
Mapped to Definition
Type: object
Dictionary Key Type: uint32

Destiny.Components.Presentation.DestinyPresentationNodeComponent

Type: object
Object Properties
state
Type: int32
objective
An optional property: presentation nodes MAY have objectives, which can be used to infer more human readable data about the progress. However, progressValue and completionValue ought to be considered the canonical values for progress on Progression Nodes.
Type: object
progressValue
How much of the presentation node is considered to be completed so far by the given character/profile.
Type: int32
completionValue
The value at which the presentation node is considered to be completed.
Type: int32
recordCategoryScore
Nullable
If available, this is the current score for the record category that this node represents.
Type: int32

Destiny.DestinyPresentationNodeState

Enumeration
I know this doesn't look like a Flags Enumeration/bitmask right now, but I assure you it is. This is the possible states that a Presentation Node can be in, and it is almost certain that its potential states will increase in the future. So don't treat it like a straight up enumeration.
Type: int32
Valid Enum Values
  • None: 0
  • Invisible: 1
    If this is set, the game recommends that you not show this node. But you know your life, do what you've got to do.
  • Obscured: 2
    Turns out Presentation Nodes can also be obscured. If they are, this is set.

SingleComponentResponseOfDestinyPresentationNodesComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Components.Records.DestinyRecordsComponent

Depends on Component "Records"
Type: object
Object Properties
records
Type: object
Dictionary Key Type: uint32
recordCategoriesRootNodeHash
Mapped to Definition
The hash for the root presentation node definition of Triumph categories.
Type: uint32
recordSealsRootNodeHash
Mapped to Definition
The hash for the root presentation node definition of Triumph Seals.
Type: uint32

Destiny.Components.Records.DestinyRecordComponent

Type: object
Object Properties
state
Type: int32
objectives
Type: array
intervalObjectives
Type: array
intervalsRedeemedCount
Type: int32
completedCount
Nullable
If available, this is the number of times this record has been completed. For example, the number of times a seal title has been gilded.
Type: int32
rewardVisibilty
If available, a list that describes which reward rewards should be shown (true) or hidden (false). This property is for regular record rewards, and not for interval objective rewards.
Type: array
Array Contents: boolean

Destiny.DestinyRecordState

Enumeration
A Flags enumeration/bitmask where each bit represents a possible state that a Record/Triumph can be in.
Type: int32
Valid Enum Values
  • None: 0
    If there are no flags set, the record is in a state where it *could* be redeemed, but it has not been yet.
  • RecordRedeemed: 1
    If this is set, the completed record has been redeemed.
  • RewardUnavailable: 2
    If this is set, there's a reward available from this Record but it's unavailable for redemption.
  • ObjectiveNotCompleted: 4
    If this is set, the objective for this Record has not yet been completed.
  • Obscured: 8
    If this is set, the game recommends that you replace the display text of this Record with DestinyRecordDefinition.stateInfo.obscuredDescription.
  • Invisible: 16
    If this is set, the game recommends that you not show this record. Do what you will with this recommendation.
  • EntitlementUnowned: 32
    If this is set, you can't complete this record because you lack some permission that's required to complete it.
  • CanEquipTitle: 64
    If this is set, the record has a title (check DestinyRecordDefinition for title info) and you can equip it.

Destiny.Components.Records.DestinyProfileRecordsComponent

Depends on Component "Records"
Type: object
Object Properties
score
Your 'active' Triumphs score, maintained for backwards compatibility.
Type: int32
activeScore
Your 'active' Triumphs score.
Type: int32
legacyScore
Your 'legacy' Triumphs score.
Type: int32
lifetimeScore
Your 'lifetime' Triumphs score.
Type: int32
trackedRecordHash
Nullable Mapped to Definition
If this profile is tracking a record, this is the hash identifier of the record it is tracking.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Records.DestinyRecordDefinition
records
Type: object
Dictionary Key Type: uint32
recordCategoriesRootNodeHash
Mapped to Definition
The hash for the root presentation node definition of Triumph categories.
Type: uint32
recordSealsRootNodeHash
Mapped to Definition
The hash for the root presentation node definition of Triumph Seals.
Type: uint32

SingleComponentResponseOfDestinyProfileRecordsComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Components.Collectibles.DestinyCollectiblesComponent

Depends on Component "Collectibles"
Type: object
Object Properties
collectibles
Mapped to Definition
Type: object
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Collectibles.DestinyCollectibleDefinition
collectionCategoriesRootNodeHash
Mapped to Definition
The hash for the root presentation node definition of Collection categories.
Type: uint32
collectionBadgesRootNodeHash
Mapped to Definition
The hash for the root presentation node definition of Collection Badges.
Type: uint32

Destiny.Components.Collectibles.DestinyCollectibleComponent

Type: object
Object Properties
state
Type: int32

Destiny.DestinyCollectibleState

Enumeration
A Flags Enumeration/bitmask where each bit represents a different state that the Collectible can be in. A collectible can be in any number of these states, and you can choose to use or ignore any or all of them when making your own UI that shows Collectible info. Our displays are going to honor them, but we're also the kind of people who only pretend to inhale before quickly passing it to the left. So, you know, do what you got to do.

(All joking aside, please note the caveat I mention around the Invisible flag: there are cases where it is in the best interest of your users to honor these flags even if you're a "show all the data" person. Collector-oriented compulsion is a very unfortunate and real thing, and I would hate to instill that compulsion in others through showing them items that they cannot earn. Please consider this when you are making your own apps/sites.)
Type: int32
Valid Enum Values
  • None: 0
  • NotAcquired: 1
    If this flag is set, you have not yet obtained this collectible.
  • Obscured: 2
    If this flag is set, the item is "obscured" to you: you can/should use the alternate item hash found in DestinyCollectibleDefinition.stateInfo.obscuredOverrideItemHash when displaying this collectible instead of the default display info.
  • Invisible: 4
    If this flag is set, the collectible should not be shown to the user.

    Please do consider honoring this flag. It is used - for example - to hide items that a person didn't get from the Eververse. I can't prevent these from being returned in definitions, because some people may have acquired them and thus they should show up: but I would hate for people to start feeling some variant of a Collector's Remorse about these items, and thus increasing their purchasing based on that compulsion. That would be a very unfortunate outcome, and one that I wouldn't like to see happen. So please, whether or not I'm your mom, consider honoring this flag and don't show people invisible collectibles.
  • CannotAffordMaterialRequirements: 8
    If this flag is set, the collectible requires payment for creating an instance of the item, and you are lacking in currency. Bring the benjamins next time. Or spinmetal. Whatever.
  • InventorySpaceUnavailable: 16
    If this flag is set, you can't pull this item out of your collection because there's no room left in your inventory.
  • UniquenessViolation: 32
    If this flag is set, you already have one of these items and can't have a second one.
  • PurchaseDisabled: 64
    If this flag is set, the ability to pull this item out of your collection has been disabled.

Destiny.Components.Collectibles.DestinyProfileCollectiblesComponent

Depends on Component "Collectibles"
Type: object
Object Properties
recentCollectibleHashes
Mapped to Definition
The list of collectibles determined by the game as having been "recently" acquired.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Collectibles.DestinyCollectibleDefinition
newnessFlaggedCollectibleHashes
Mapped to Definition
The list of collectibles determined by the game as having been "recently" acquired.

The game client itself actually controls this data, so I personally question whether anyone will get much use out of this: because we can't edit this value through the API. But in case anyone finds it useful, here it is.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Collectibles.DestinyCollectibleDefinition
collectibles
Mapped to Definition
Type: object
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Collectibles.DestinyCollectibleDefinition
collectionCategoriesRootNodeHash
Mapped to Definition
The hash for the root presentation node definition of Collection categories.
Type: uint32
collectionBadgesRootNodeHash
Mapped to Definition
The hash for the root presentation node definition of Collection Badges.
Type: uint32

SingleComponentResponseOfDestinyProfileCollectiblesComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Components.Profiles.DestinyProfileTransitoryComponent

Depends on Component "Transitory"
This is an experimental set of data that Bungie considers to be "transitory" - information that may be useful for API users, but that is coming from a non-authoritative data source about information that could potentially change at a more frequent pace than Bungie.net will receive updates about it.

This information is provided exclusively for convenience should any of it be useful to users: we provide no guarantees to the accuracy or timeliness of data that comes from this source. Know that this data can potentially be out-of-date or even wrong entirely if the user disconnected from the game or suddenly changed their status before we can receive refreshed data.
Type: object
Object Properties
partyMembers
If you have any members currently in your party, this is some (very) bare-bones information about those members.
Type: array
currentActivity
If you are in an activity, this is some transitory info about the activity currently being played.
Type: object
joinability
Information about whether and what might prevent you from joining this person on a fireteam.
Type: object
tracking
Information about tracked entities.
Type: array
lastOrbitedDestinationHash
Nullable Mapped to Definition
The hash identifier for the DestinyDestinationDefinition of the last location you were orbiting when in orbit.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyDestinationDefinition

Destiny.Components.Profiles.DestinyProfileTransitoryPartyMember

This is some bare minimum information about a party member in a Fireteam. Unfortunately, without great computational expense on our side we can only get at the data contained here. I'd like to give you a character ID for example, but we don't have it. But we do have these three pieces of information. May they help you on your quest to show meaningful data about current Fireteams.

Notably, we don't and can't feasibly return info on characters. If you can, try to use just the data below for your UI and purposes. Only hit us with further queries if you absolutely must know the character ID of the currently playing character. Pretty please with sugar on top.
Type: object
Object Properties
membershipId
The Membership ID that matches the party member.
Type: int64
emblemHash
Mapped to Definition
The identifier for the DestinyInventoryItemDefinition of the player's emblem.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
displayName
The player's last known display name.
Type: string
status
A Flags Enumeration value indicating the states that the player is in relevant to being on a fireteam.
Type: int32

Destiny.DestinyPartyMemberStates

Enumeration
A flags enumeration that represents a Fireteam Member's status.
Type: int32
Valid Enum Values
  • None: 0
  • FireteamMember: 1
    This one's pretty obvious - they're on your Fireteam.
  • PosseMember: 2
    I don't know what it means to be in a 'Posse', but apparently this is it.
  • GroupMember: 4
    Nor do I understand the difference between them being in a 'Group' vs. a 'Fireteam'.

    I'll update these docs once I get more info. If I get more info. If you're reading this, I never got more info. You're on your own, kid.
  • PartyLeader: 8
    This person is the party leader.

Destiny.Components.Profiles.DestinyProfileTransitoryCurrentActivity

If you are playing in an activity, this is some information about it.

Note that we cannot guarantee any of this resembles what ends up in the PGCR in any way. They are sourced by two entirely separate systems with their own logic, and the one we source this data from should be considered non-authoritative in comparison.
Type: object
Object Properties
startTime
Nullable
When the activity started.
Type: date-time
endTime
Nullable
If you're still in it but it "ended" (like when folks are dancing around the loot after they beat a boss), this is when the activity ended.
Type: date-time
score
This is what our non-authoritative source thought the score was.
Type: float
highestOpposingFactionScore
If you have human opponents, this is the highest opposing team's score.
Type: float
numberOfOpponents
This is how many human or poorly crafted aimbot opponents you have.
Type: int32
numberOfPlayers
This is how many human or poorly crafted aimbots are on your team.
Type: int32

Destiny.Components.Profiles.DestinyProfileTransitoryJoinability

Some basic information about whether you can be joined, how many slots are left etc. Note that this can change quickly, so it may not actually be useful. But perhaps it will be in some use cases?
Type: object
Object Properties
openSlots
The number of slots still available on this person's fireteam.
Type: int32
privacySetting
Who the person is currently allowing invites from.
Type: int32
closedReasons
Reasons why a person can't join this person's fireteam.
Type: int32

Destiny.DestinyGamePrivacySetting

Enumeration
A player can choose to restrict requests to join their Fireteam to specific states. These are the possible states a user can choose.
Type: int32
Valid Enum Values
  • Open: 0
  • ClanAndFriendsOnly: 1
  • FriendsOnly: 2
  • InvitationOnly: 3
  • Closed: 4

Destiny.DestinyJoinClosedReasons

Enumeration
A Flags enumeration representing the reasons why a person can't join this user's fireteam.
Type: int32
Valid Enum Values
  • None: 0
  • InMatchmaking: 1
    The user is currently in matchmaking.
  • Loading: 2
    The user is currently in a loading screen.
  • SoloMode: 4
    The user is in an activity that requires solo play.
  • InternalReasons: 8
    The user can't be joined for one of a variety of internal reasons. Basically, the game can't let you join at this time, but for reasons that aren't under the control of this user.
  • DisallowedByGameState: 16
    The user's current activity/quest/other transitory game state is preventing joining.
  • Offline: 32768
    The user appears to be offline.

Destiny.Components.Profiles.DestinyProfileTransitoryTrackingEntry

This represents a single "thing" being tracked by the player.

This can point to many types of entities, but only a subset of them will actually have a valid hash identifier for whatever it is being pointed to.

It's up to you to interpret what it means when various combinations of these entries have values being tracked.
Type: object
Object Properties
locationHash
Nullable Mapped to Definition
OPTIONAL - If this is tracking a DestinyLocationDefinition, this is the identifier for that location.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyLocationDefinition
itemHash
Nullable Mapped to Definition
OPTIONAL - If this is tracking the status of a DestinyInventoryItemDefinition, this is the identifier for that item.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
objectiveHash
Nullable Mapped to Definition
OPTIONAL - If this is tracking the status of a DestinyObjectiveDefinition, this is the identifier for that objective.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyObjectiveDefinition
activityHash
Nullable Mapped to Definition
OPTIONAL - If this is tracking the status of a DestinyActivityDefinition, this is the identifier for that activity.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
questlineItemHash
Nullable Mapped to Definition
OPTIONAL - If this is tracking the status of a quest, this is the identifier for the DestinyInventoryItemDefinition that containst that questline data.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
trackedDate
Nullable
OPTIONAL - I've got to level with you, I don't really know what this is. Is it when you started tracking it? Is it only populated for tracked items that have time limits?

I don't know, but we can get at it - when I get time to actually test what it is, I'll update this. In the meantime, bask in the mysterious data.
Type: date-time

SingleComponentResponseOfDestinyProfileTransitoryComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Components.Metrics.DestinyMetricsComponent

Depends on Component "Metrics"
Type: object
Object Properties
metrics
Type: object
Dictionary Key Type: uint32
metricsRootNodeHash
Mapped to Definition
Type: uint32

Destiny.Components.Metrics.DestinyMetricComponent

Type: object
Object Properties
invisible
Type: boolean

SingleComponentResponseOfDestinyMetricsComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Components.StringVariables.DestinyStringVariablesComponent

Depends on Component "StringVariables"
Type: object
Object Properties
integerValuesByHash
Type: object
Dictionary Contents: int32
Dictionary Key Type: uint32

SingleComponentResponseOfDestinyStringVariablesComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Components.Social.DestinySocialCommendationsComponent

Depends on Component "SocialCommendations"
Type: object
Object Properties
totalScore
Type: int32
commendationNodePercentagesByHash
The percentage for each commendation type out of total received
Type: object
Dictionary Contents: uint32
Dictionary Key Type: uint32
scoreDetailValues
Type: array
Array Contents: int32
commendationNodeScoresByHash
Mapped to Definition
Type: object
Dictionary Contents: int32
Dictionary Key Type: uint32
commendationScoresByHash
Mapped to Definition
Type: object
Dictionary Contents: int32
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Social.DestinySocialCommendationDefinition

Destiny.Definitions.Social.DestinySocialCommendationNodeDefinition

Mobile Manifest Entity
Mapped to Mobile Manifest Table: SocialCommendationNodes
Type: object
Object Properties
color
The color associated with this group of commendations.
Type: object
tintedIcon
A version of the displayProperties icon tinted with the color of this node.
Type: string
parentCommendationNodeHash
Mapped to Definition
Type: uint32
childCommendationNodeHashes
Mapped to Definition
A list of hashes that map to child commendation nodes. Only the root commendations node is expected to have child nodes.
Type: array
Array Contents: uint32
childCommendationHashes
Mapped to Definition
A list of hashes that map to child commendations.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Social.DestinySocialCommendationDefinition
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Social.DestinySocialCommendationDefinition

Mobile Manifest Entity
Mapped to Mobile Manifest Table: SocialCommendations
Type: object
Object Properties
cardImagePath
Type: string
displayPriority
Type: int32
activityGivingLimit
Type: int32
parentCommendationNodeHash
Mapped to Definition
Type: uint32
displayActivities
The display properties for the the activities that this commendation is available in.
Type: array
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

SingleComponentResponseOfDestinySocialCommendationsComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Entities.Characters.DestinyCharacterComponent

Depends on Component "Characters"
This component contains base properties of the character. You'll probably want to always request this component, but hey you do you.
Type: object
Object Properties
membershipId
Every Destiny Profile has a membershipId. This is provided on the character as well for convenience.
Type: int64
membershipType
membershipType tells you the platform on which the character plays. Examine the BungieMembershipType enumeration for possible values.
Type: int32
characterId
The unique identifier for the character.
Type: int64
dateLastPlayed
The last date that the user played Destiny.
Type: date-time
minutesPlayedThisSession
If the user is currently playing, this is how long they've been playing.
Type: int64
minutesPlayedTotal
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.
Type: int64
light
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.
Type: int32
stats
Your character's stats, such as Agility, Resilience, etc... *not* historical stats.

You'll have to call a different endpoint for those.
Type: object
Dictionary Contents: int32
Dictionary Key Type: uint32
raceHash
Mapped to Definition
Use this hash to look up the character's DestinyRaceDefinition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyRaceDefinition
genderHash
Mapped to Definition
Use this hash to look up the character's DestinyGenderDefinition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyGenderDefinition
classHash
Mapped to Definition
Use this hash to look up the character's DestinyClassDefinition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyClassDefinition
raceType
Mostly for historical purposes at this point, this is an enumeration for the character's race.

It'll be preferable in the general case to look up the related definition: but for some people this was too convenient to remove.
Type: int32
classType
Mostly for historical purposes at this point, this is an enumeration for the character's class.

It'll be preferable in the general case to look up the related definition: but for some people this was too convenient to remove.
Type: int32
genderType
Mostly for historical purposes at this point, this is an enumeration for the character's Gender.

It'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: int32
emblemPath
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
emblemBackgroundPath
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
Mapped to Definition
The hash of the currently equipped emblem for the user. Can be used to look up the DestinyInventoryItemDefinition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
emblemColor
A shortcut for getting the background color of the user's currently equipped emblem without having to do a DestinyInventoryItemDefinition lookup.
Type: object
levelProgression
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
baseCharacterLevel
The "base" level of your character, not accounting for any light level.
Type: int32
percentToNextLevel
A number between 0 and 100, indicating the whole and fractional % remaining to get to the next character level.
Type: float
titleRecordHash
Nullable Mapped to Definition
If this Character has a title assigned to it, this is the identifier of the DestinyRecordDefinition that has that title information.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Records.DestinyRecordDefinition

Destiny.DestinyRace

Enumeration
Type: int32
Valid Enum Values
  • Human: 0
  • Awoken: 1
  • Exo: 2
  • Unknown: 3

Destiny.Definitions.DestinyRaceDefinition

Mobile Manifest Entity
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.
Mapped to Mobile Manifest Table: Races
Type: object
Object Properties
raceType
An enumeration defining the existing, known Races/Species for player characters. This value will be the enum value matching this definition.
Type: int32
genderedRaceNames
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
Dictionary Contents: string
Dictionary Key Type: int32
genderedRaceNamesByGenderHash
Mapped to Definition
Type: object
Dictionary Contents: string
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyGenderDefinition
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

DictionaryComponentResponseOfint64AndDestinyCharacterComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfint64AndDestinyInventoryComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Components.Loadouts.DestinyLoadoutsComponent

Depends on Component "CharacterLoadouts"
Type: object
Object Properties
loadouts

Destiny.Components.Loadouts.DestinyLoadoutComponent

Type: object
Object Properties
colorHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Loadouts.DestinyLoadoutColorDefinition
iconHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Loadouts.DestinyLoadoutIconDefinition
nameHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Loadouts.DestinyLoadoutNameDefinition

Destiny.Components.Loadouts.DestinyLoadoutItemComponent

Type: object
Object Properties
itemInstanceId
Type: int64
plugItemHashes
Mapped to Definition
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition

Destiny.Definitions.Loadouts.DestinyLoadoutColorDefinition

Mobile Manifest Entity
Mapped to Mobile Manifest Table: LoadoutColors
Type: object
Object Properties
colorImagePath
Type: string
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Loadouts.DestinyLoadoutIconDefinition

Mobile Manifest Entity
Mapped to Mobile Manifest Table: LoadoutIcons
Type: object
Object Properties
iconImagePath
Type: string
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Loadouts.DestinyLoadoutNameDefinition

Mobile Manifest Entity
Mapped to Mobile Manifest Table: LoadoutNames
Type: object
Object Properties
name
Type: string
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

DictionaryComponentResponseOfint64AndDestinyLoadoutsComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Entities.Characters.DestinyCharacterProgressionComponent

Depends on Component "CharacterProgressions"
This component returns anything that could be considered "Progression" on a user: data where the user is gaining levels, reputation, completions, rewards, etc...
Type: object
Object Properties
progressions
Mapped to Definition
A Dictionary of all known progressions for the Character, keyed by the Progression's hash.

Not all progressions have user-facing data, but those who do will have that data contained in the DestinyProgressionDefinition.
Type: object
Dictionary Contents: Destiny.DestinyProgression
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyProgressionDefinition
factions
Mapped to Definition
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
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyFactionDefinition
milestones
Mapped to Definition
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
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Milestones.DestinyMilestoneDefinition
quests
If the user has any active quests, the quests' statuses will be returned here.

Note 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.

(Fun fact: quests came back as I feared they would, but we never looped back to populate this... I'm going to put that in the backlog.)
Type: array
uninstancedItemObjectives
Mapped to Definition
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.

This 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
Dictionary Contents: array
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
uninstancedItemPerks
Mapped to Definition
Sometimes, you have items in your inventory that don't have instances, but still have perks (for example: Trials passage cards). This gives you the perk information for uninstanced items.

This dictionary is keyed by item hash, which you can use to look up the corresponding item definition. The value is the list of perks states for the item.
Type: object
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
checklists
Mapped to Definition
The set of checklists that can be examined for this specific character, keyed by the hash identifier of the Checklist (DestinyChecklistDefinition)

For each checklist returned, its value is itself a Dictionary keyed by the checklist's hash identifier with the value being a boolean indicating if it's been discovered yet.
Type: object
Dictionary Contents: object
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Checklists.DestinyChecklistDefinition
seasonalArtifact
Data related to your progress on the current season's artifact that can vary per character.
Type: object

Destiny.Progression.DestinyFactionProgression

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.
Type: object
Object Properties
factionHash
Mapped to Definition
The hash identifier of the Faction related to this progression. Use it to look up the DestinyFactionDefinition for more rendering info.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyFactionDefinition
factionVendorIndex
The index of the Faction vendor that is currently available. Will be set to -1 if no vendors are available.
Type: int32
progressionHash
Mapped to Definition
The hash identifier of the Progression in question. Use it to look up the DestinyProgressionDefinition in static data.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyProgressionDefinition
dailyProgress
The amount of progress earned today for this progression.
Type: int32
dailyLimit
If this progression has a daily limit, this is that limit.
Type: int32
weeklyProgress
The amount of progress earned toward this progression in the current week.
Type: int32
weeklyLimit
If this progression has a weekly limit, this is that limit.
Type: int32
currentProgress
This is the total amount of progress obtained overall for this progression (for instance, the total amount of Character Level experience earned)
Type: int32
level
This is the level of the progression (for instance, the Character Level).
Type: int32
levelCap
This is the maximum possible level you can achieve for this progression (for example, the maximum character level obtainable)
Type: int32
stepIndex
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.)
Type: int32
progressToNextLevel
The amount of progression (i.e. "Experience") needed to reach the next level of this Progression. Jeez, progression is such an overloaded word.
Type: int32
nextLevelAt
The total amount of progression (i.e. "Experience") needed in order to reach the next level.
Type: int32
currentResetCount
Nullable
The number of resets of this progression you've executed this season, if applicable to this progression.
Type: int32
seasonResets
Information about historical resets of this progression, if there is any data for it.
Type: array
rewardItemStates
Information about historical rewards for this progression, if there is any data for it.
Type: array
Array Contents: int32

Destiny.Milestones.DestinyMilestone

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.
Type: object
Object Properties
milestoneHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Milestones.DestinyMilestoneDefinition
availableQuests
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.
Type: array
activities
The currently active Activities in this milestone, when the Milestone is driven by Challenges.

Not all Milestones have Challenges, but when they do this will indicate the Activities and Challenges under those Activities related to this Milestone.
Type: array
values
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
Dictionary Contents: float
Dictionary Key Type: string
vendorHashes
Mapped to Definition
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. [I told you I'd regret this] 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.

Before we even use it, it's already deprecated! How much of a bummer is that? We need more data.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorDefinition
vendors
Replaces vendorHashes, which I knew was going to be trouble the day it walked in the door. This will return not only what Vendors are active and relevant to the activity (in an implied order that you can choose to ignore), but also other data - for example, if the Vendor is featuring a specific item relevant to this event that you should show with them.
Type: array
rewards
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.
Type: array
startDate
Nullable
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.
Type: date-time
endDate
Nullable
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.
Type: date-time
order
Used for ordering milestones in a display to match how we order them in BNet. May pull from static data, or possibly in the future from dynamic information.
Type: int32

Destiny.Milestones.DestinyMilestoneQuest

If a Milestone has one or more Quests, this will contain the live information for the character's status with one of those quests.
Type: object
Object Properties
questItemHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
status
The current status of the quest for the character making the request.
Type: object
activity
*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
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.
Type: array

Destiny.Quests.DestinyQuestStatus

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.
Type: object
Object Properties
questHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
stepHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
stepObjectives
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.
Type: array
tracked
Whether or not the quest is tracked
Type: boolean
itemInstanceId
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.
Type: int64
completed
Whether or not the whole quest has been completed, regardless of whether or not you have redeemed the rewards for the quest.
Type: boolean
redeemed
Whether or not you have redeemed rewards for this quest.
Type: boolean
started
Whether or not you have started this quest.
Type: boolean
vendorHash
Nullable
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.
Type: uint32

Destiny.Milestones.DestinyMilestoneActivity

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)
Type: object
Object Properties
activityHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
activityModeHash
Nullable Mapped to Definition
The hash identifier of the most specific Activity Mode under which this activity is played. This is useful for situations where the activity in question is - for instance - a PVP map, but it's not clear what mode the PVP map is being played under. If it's a playlist, this will be less specific: but hopefully useful in some way.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityModeDefinition
activityModeType
Nullable Enumeration
The enumeration equivalent of the most specific Activity Mode under which this activity is played.
Type: int32
Valid Enum Values
  • None: 0
  • Story: 2
  • Strike: 3
  • Raid: 4
  • AllPvP: 5
  • Patrol: 6
  • AllPvE: 7
  • Reserved9: 9
  • Control: 10
  • Reserved11: 11
  • Clash: 12
    Clash -> Destiny's name for Team Deathmatch. 4v4 combat, the team with the highest kills at the end of time wins.
  • Reserved13: 13
  • CrimsonDoubles: 15
  • Nightfall: 16
  • HeroicNightfall: 17
  • AllStrikes: 18
  • IronBanner: 19
  • Reserved20: 20
  • Reserved21: 21
  • Reserved22: 22
  • Reserved24: 24
  • AllMayhem: 25
  • Reserved26: 26
  • Reserved27: 27
  • Reserved28: 28
  • Reserved29: 29
  • Reserved30: 30
  • Supremacy: 31
  • PrivateMatchesAll: 32
  • Survival: 37
  • Countdown: 38
  • TrialsOfTheNine: 39
  • Social: 40
  • TrialsCountdown: 41
  • TrialsSurvival: 42
  • IronBannerControl: 43
  • IronBannerClash: 44
  • IronBannerSupremacy: 45
  • ScoredNightfall: 46
  • ScoredHeroicNightfall: 47
  • Rumble: 48
  • AllDoubles: 49
  • Doubles: 50
  • PrivateMatchesClash: 51
  • PrivateMatchesControl: 52
  • PrivateMatchesSupremacy: 53
  • PrivateMatchesCountdown: 54
  • PrivateMatchesSurvival: 55
  • PrivateMatchesMayhem: 56
  • PrivateMatchesRumble: 57
  • HeroicAdventure: 58
  • Showdown: 59
  • Lockdown: 60
  • Scorched: 61
  • ScorchedTeam: 62
  • Gambit: 63
  • AllPvECompetitive: 64
  • Breakthrough: 65
  • BlackArmoryRun: 66
  • Salvage: 67
  • IronBannerSalvage: 68
  • PvPCompetitive: 69
  • PvPQuickplay: 70
  • ClashQuickplay: 71
  • ClashCompetitive: 72
  • ControlQuickplay: 73
  • ControlCompetitive: 74
  • GambitPrime: 75
  • Reckoning: 76
  • Menagerie: 77
  • VexOffensive: 78
  • NightmareHunt: 79
  • Elimination: 80
  • Momentum: 81
  • Dungeon: 82
  • Sundial: 83
  • TrialsOfOsiris: 84
  • Dares: 85
  • Offensive: 86
  • LostSector: 87
  • Rift: 88
  • ZoneControl: 89
  • IronBannerRift: 90
  • IronBannerZoneControl: 91
  • Relic: 92
modifierHashes
Mapped to Definition
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.
Type: array
Array Contents: uint32
variants
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.
Type: array

Destiny.Milestones.DestinyMilestoneActivityVariant

Represents custom data that we know about an individual variant of an activity.
Type: object
Object Properties
activityHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
completionStatus
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
activityModeHash
Nullable Mapped to Definition
The hash identifier of the most specific Activity Mode under which this activity is played. This is useful for situations where the activity in question is - for instance - a PVP map, but it's not clear what mode the PVP map is being played under. If it's a playlist, this will be less specific: but hopefully useful in some way.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityModeDefinition
activityModeType
Nullable Enumeration
The enumeration equivalent of the most specific Activity Mode under which this activity is played.
Type: int32
Valid Enum Values
  • None: 0
  • Story: 2
  • Strike: 3
  • Raid: 4
  • AllPvP: 5
  • Patrol: 6
  • AllPvE: 7
  • Reserved9: 9
  • Control: 10
  • Reserved11: 11
  • Clash: 12
    Clash -> Destiny's name for Team Deathmatch. 4v4 combat, the team with the highest kills at the end of time wins.
  • Reserved13: 13
  • CrimsonDoubles: 15
  • Nightfall: 16
  • HeroicNightfall: 17
  • AllStrikes: 18
  • IronBanner: 19
  • Reserved20: 20
  • Reserved21: 21
  • Reserved22: 22
  • Reserved24: 24
  • AllMayhem: 25
  • Reserved26: 26
  • Reserved27: 27
  • Reserved28: 28
  • Reserved29: 29
  • Reserved30: 30
  • Supremacy: 31
  • PrivateMatchesAll: 32
  • Survival: 37
  • Countdown: 38
  • TrialsOfTheNine: 39
  • Social: 40
  • TrialsCountdown: 41
  • TrialsSurvival: 42
  • IronBannerControl: 43
  • IronBannerClash: 44
  • IronBannerSupremacy: 45
  • ScoredNightfall: 46
  • ScoredHeroicNightfall: 47
  • Rumble: 48
  • AllDoubles: 49
  • Doubles: 50
  • PrivateMatchesClash: 51
  • PrivateMatchesControl: 52
  • PrivateMatchesSupremacy: 53
  • PrivateMatchesCountdown: 54
  • PrivateMatchesSurvival: 55
  • PrivateMatchesMayhem: 56
  • PrivateMatchesRumble: 57
  • HeroicAdventure: 58
  • Showdown: 59
  • Lockdown: 60
  • Scorched: 61
  • ScorchedTeam: 62
  • Gambit: 63
  • AllPvECompetitive: 64
  • Breakthrough: 65
  • BlackArmoryRun: 66
  • Salvage: 67
  • IronBannerSalvage: 68
  • PvPCompetitive: 69
  • PvPQuickplay: 70
  • ClashQuickplay: 71
  • ClashCompetitive: 72
  • ControlQuickplay: 73
  • ControlCompetitive: 74
  • GambitPrime: 75
  • Reckoning: 76
  • Menagerie: 77
  • VexOffensive: 78
  • NightmareHunt: 79
  • Elimination: 80
  • Momentum: 81
  • Dungeon: 82
  • Sundial: 83
  • TrialsOfOsiris: 84
  • Dares: 85
  • Offensive: 86
  • LostSector: 87
  • Rift: 88
  • ZoneControl: 89
  • IronBannerRift: 90
  • IronBannerZoneControl: 91
  • Relic: 92

Destiny.Milestones.DestinyMilestoneActivityCompletionStatus

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.
Type: object
Object Properties
completed
If the activity has been "completed", that information will be returned here.
Type: boolean
phases
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.
Type: array

Destiny.Milestones.DestinyMilestoneActivityPhase

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.
Type: object
Object Properties
complete
Indicates if the phase has been completed.
Type: boolean
phaseHash
In DestinyActivityDefinition, if the activity has phases, there will be a set of phases defined in the "insertionPoints" property. This is the hash that maps to that phase.
Type: uint32

Destiny.Challenges.DestinyChallengeStatus

Represents the status and other related information for a challenge that is - or was - available to a player.

A challenge is a bonus objective, generally tacked onto Quests or Activities, that provide additional variations on play.
Type: object
Object Properties
objective
The progress - including completion status - of the active challenge.
Type: object

Destiny.Milestones.DestinyMilestoneChallengeActivity

Type: object
Object Properties
activityHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
challenges
Type: array
modifierHashes
Mapped to Definition
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.
Type: array
Array Contents: uint32
booleanActivityOptions
The set of activity options for this activity, keyed by an identifier that's unique for this activity (not guaranteed to be unique between or across all activities, though should be unique for every *variant* of a given *conceptual* activity: for instance, the original D2 Raid has many variant DestinyActivityDefinitions. While other activities could potentially have the same option hashes, for any given D2 base Raid variant the hash will be unique).

As a concrete example of this data, the hashes you get for Raids will correspond to the currently active "Challenge Mode".

We don't have any human readable information for these, but saavy 3rd party app users could manually associate the key (a hash identifier for the "option" that is enabled/disabled) and the value (whether it's enabled or disabled presently)

On our side, we don't necessarily even know what these are used for (the game designers know, but we don't), and we have no human readable data for them. In order to use them, you will have to do some experimentation.
Type: object
Dictionary Contents: boolean
Dictionary Key Type: uint32
loadoutRequirementIndex
Nullable
If returned, this is the index into the DestinyActivityDefinition's "loadouts" property, indicating the currently active loadout requirements.
Type: int32
phases
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.
Type: array

Destiny.Milestones.DestinyMilestoneVendor

If a Milestone has one or more Vendors that are relevant to it, this will contain information about that vendor that you can choose to show.
Type: object
Object Properties
vendorHash
Mapped to Definition
The hash identifier of the Vendor related to this Milestone. You can show useful things from this, such as thier Faction icon or whatever you might care about.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorDefinition
previewItemHash
Nullable Mapped to Definition
If this vendor is featuring a specific item for this event, this will be the hash identifier of that item. I'm taking bets now on how long we go before this needs to be a list or some other, more complex representation instead and I deprecate this too. I'm going to go with 5 months. Calling it now, 2017-09-14 at 9:46pm PST.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition

Destiny.Milestones.DestinyMilestoneRewardCategory

Represents a category of "summary" rewards that can be earned for the Milestone regardless of specific quest rewards that can be earned.
Type: object
Object Properties
rewardCategoryHash
Look up the relevant DestinyMilestoneDefinition, and then use rewardCategoryHash to look up the category info in DestinyMilestoneDefinition.rewards.
Type: uint32
entries
The individual reward entries for this category, and their status.
Type: array

Destiny.Milestones.DestinyMilestoneRewardEntry

The character-specific data for a milestone's reward entry. See DestinyMilestoneDefinition for more information about Reward Entries.
Type: object
Object Properties
rewardEntryHash
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.
Type: uint32
earned
If TRUE, the player has earned this reward.
Type: boolean
redeemed
If TRUE, the player has redeemed/picked up/obtained this reward. Feel free to alias this to "gotTheShinyBauble" in your own codebase.
Type: boolean

Destiny.Definitions.Milestones.DestinyMilestoneDefinition

Mobile Manifest Entity
Milestones are an in-game concept where they're attempting to tell you what you can do next in-game.

If 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.

Each Milestone represents something going on in the game right now:

- A "ritual activity" you can perform, like nightfall

- A "special event" that may have activities related to it, like Taco Tuesday (there's no Taco Tuesday in Destiny 2)

- A checklist you can fulfill, like helping your Clan complete all of its weekly objectives

- A tutorial quest you can play through, like the introduction to the Crucible.

Most of these milestones appear in game as well. Some of them are BNet only, because we're so extra. You're welcome.

There are some important caveats to understand about how we currently render Milestones and their deficiencies. The game currently doesn't have any content that actually tells you oughtright *what* the Milestone is: that is to say, what you'll be doing. The best we get is either a description of the overall Milestone, or of the Quest that the Milestone is having you partake in: which is usually something that assumes you already know what it's talking about, like "Complete 5 Challenges". 5 Challenges for what? What's a challenge? These are not questions that the Milestone data will answer for you unfortunately.

This isn't great, and in the future I'd like to add some custom text to give you more contextual information to pass on to your users. But for now, you can do what we do to render what little display info we do have:

Start by looking at the currently active quest (ideally, you've fetched DestinyMilestone or DestinyPublicMilestone data from the API, so you know the currently active quest for the Milestone in question). Look up the Quests property in the Milestone Definition, and check if it has display properties. If it does, show that as the description of the Milestone. If it doesn't, fall back on the Milestone's description.

This approach will let you avoid, whenever possible, the even less useful (and sometimes nonexistant) milestone-level names and descriptions.
Mapped to Mobile Manifest Table: Milestones
Type: object
Object Properties
displayPreference
A hint to the UI to indicate what to show as the display properties for this Milestone when showing "Live" milestone data. Feel free to show more than this if desired: this hint is meant to simplify our own UI, but it may prove useful to you as well.
Type: int32
image
A custom image someone made just for the milestone. Isn't that special?
Type: string
milestoneType
An enumeration listing one of the possible types of milestones. Check out the DestinyMilestoneType enum for more info!
Type: int32
recruitable
If True, then the Milestone has been integrated with BNet's recruiting feature.
Type: boolean
friendlyName
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
showInExplorer
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) Note that this is a property specifically used by BNet and the companion app for the "Live Events" feature of the front page/welcome view: it's not a reflection of what you see in-game.
Type: boolean
showInMilestones
Determines whether we'll show this Milestone in the user's personal Milestones list.
Type: boolean
explorePrioritizesActivityImage
If TRUE, "Explore Destiny" (the front page of BNet and the companion app) prioritize using the activity image over any overriding Quest or Milestone image provided. This unfortunate hack is brought to you by Trials of The Nine.
Type: boolean
hasPredictableDates
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
quests
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.

As of Forsaken (~September 2018), Quest-style Milestones are being removed for many types of activities. There will likely be further revisions to the Milestone concept in the future.
Type: object
Dictionary Key Type: uint32
rewards
If this milestone can provide rewards, this will define the categories into which the individual reward entries are placed.

This is keyed by the Category's hash, which is only guaranteed to be unique within a given Milestone.
Type: object
Dictionary Key Type: uint32
vendorsDisplayTitle
If you're going to show Vendors for the Milestone, you can use this as a localized "header" for the section where you show that vendor data. It'll provide a more context-relevant clue about what the vendor's role is in the Milestone.
Type: string
vendors
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.
Type: array
values
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
Dictionary Key Type: string
isInGameMilestone
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
activities
A Milestone can now be represented by one or more activities directly (without a backing Quest), and that activity can have many challenges, modifiers, and related to it.
Type: array
defaultOrder
Type: int32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Milestones.DestinyMilestoneDisplayPreference

Enumeration
A hint for the UI as to what display information ought to be shown. Defaults to showing the static MilestoneDefinition's display properties.

If for some reason the indicated property is not populated, fall back to the MilestoneDefinition.displayProperties.
Type: int32
Valid Enum Values
  • MilestoneDefinition: 0
    Indicates you should show DestinyMilestoneDefinition.displayProperties for this Milestone.
  • CurrentQuestSteps: 1
    Indicates you should show the displayProperties for any currently active Quest Steps in DestinyMilestone.availableQuests.
  • CurrentActivityChallenges: 2
    Indicates you should show the displayProperties for any currently active Activities and their Challenges in DestinyMilestone.activities.

Destiny.Definitions.Milestones.DestinyMilestoneType

Enumeration
The type of milestone. Milestones can be Tutorials, one-time/triggered/non-repeating but not necessarily tutorials, or Repeating Milestones.
Type: int32
Valid Enum Values
  • Unknown: 0
  • Tutorial: 1
    One-time milestones that are specifically oriented toward teaching players about new mechanics and gameplay modes.
  • OneTime: 2
    Milestones that, once completed a single time, can never be repeated.
  • Weekly: 3
    Milestones that repeat/reset on a weekly basis. They need not all reset on the same day or time, but do need to reset weekly to qualify for this type.
  • Daily: 4
    Milestones that repeat or reset on a daily basis.
  • Special: 5
    Special indicates that the event is not on a daily/weekly cadence, but does occur more than once. For instance, Iron Banner in Destiny 1 or the Dawning were examples of what could be termed "Special" events.

Destiny.Definitions.Milestones.DestinyMilestoneQuestDefinition

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.
Type: object
Object Properties
questItemHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
displayProperties
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
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
questRewards
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
activities
Mapped to Definition
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
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
destinationHash
Nullable Mapped to Definition
Sometimes, a Milestone's quest is related to an entire Destination rather than a specific activity. In that situation, this will be the hash of that Destination. Hotspots are currently the only Milestones that expose this data, but that does not preclude this data from being returned for other Milestones in the future.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyDestinationDefinition

Destiny.Definitions.Milestones.DestinyMilestoneQuestRewardsDefinition

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?"
Type: object
Object Properties
items
The items that represent your reward for completing the quest.

Be 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.

For 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.
Type: array

Destiny.Definitions.Milestones.DestinyMilestoneQuestRewardItem

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.

If 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.
Type: object
Object Properties
vendorHash
Nullable Mapped to Definition
The quest reward item *may* be associated with a vendor. If so, this is that vendor. Use this hash to look up the DestinyVendorDefinition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorDefinition
vendorItemIndex
Nullable
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.
Type: int32
itemHash
Mapped to Definition
The hash identifier for the item in question. Use it to look up the item's DestinyInventoryItemDefinition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
itemInstanceId
Nullable
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.
Type: int64
quantity
The amount of the item needed/available depending on the context of where DestinyItemQuantity is being used.
Type: int32
hasConditionalVisibility
Indicates that this item quantity may be conditionally shown or hidden, based on various sources of state. For example: server flags, account state, or character progress.
Type: boolean

Destiny.Definitions.Milestones.DestinyMilestoneActivityDefinition

Milestones can have associated activities which provide additional information about the context, challenges, modifiers, state etc... related to this Milestone.

Information 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.
Type: object
Object Properties
conceptualActivityHash
Mapped to Definition
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.

If you care about the specific difficulty modes and variations, use the activities under "Variants".
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
variants
Mapped to Definition
A milestone-referenced activity can have many variants, such as Tiers or alternative modes of play.

Even if there is only a single variant, the details for these are represented within as a variant definition.

It is assumed that, if this DestinyMilestoneActivityDefinition is active, then all variants should be active.

If 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
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition

Destiny.Definitions.Milestones.DestinyMilestoneActivityVariantDefinition

Represents a variant on an activity for a Milestone: a specific difficulty tier, or a specific activity variant for example.

These will often have more specific details, such as an associated Guided Game, progression steps, tier-specific rewards, and custom values.
Type: object
Object Properties
activityHash
Mapped to Definition
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.

Frequently, that will be the only distinguishing characteristics in practice, which is somewhat of a bummer.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
order
If you care to do so, render the variants in the order prescribed by this value.

When 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.
Type: int32

Destiny.Definitions.Milestones.DestinyMilestoneRewardCategoryDefinition

The definition of a category of rewards, that contains many individual rewards.
Type: object
Object Properties
categoryHash
Identifies the reward category. Only guaranteed unique within this specific component!
Type: uint32
categoryIdentifier
The string identifier for the category, if you want to use it for some end. Guaranteed unique within the specific component.
Type: string
displayProperties
Hopefully this is obvious by now.
Type: object
rewardEntries
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
Dictionary Key Type: uint32
order
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.
Type: int32

Destiny.Definitions.Milestones.DestinyMilestoneRewardEntryDefinition

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.
Type: object
Object Properties
rewardEntryHash
The identifier for this reward entry. Runtime data will refer to reward entries by this hash. Only guaranteed unique within the specific Milestone.
Type: uint32
rewardEntryIdentifier
The string identifier, if you care about it. Only guaranteed unique within the specific Milestone.
Type: string
items
The items you will get as rewards, and how much of it you'll get.
Type: array
Array Contents: Destiny.DestinyItemQuantity
vendorHash
Nullable Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorDefinition
displayProperties
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
order
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.
Type: int32

Destiny.Definitions.Milestones.DestinyMilestoneVendorDefinition

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.

It also contains information we need to determine whether that vendor is actually relevant at the moment, given the user's current state.
Type: object
Object Properties
vendorHash
Mapped to Definition
The hash of the vendor whose wares should be shown as associated with the Milestone.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorDefinition

Destiny.Definitions.Milestones.DestinyMilestoneValueDefinition

The definition for information related to a key/value pair that is relevant for a particular Milestone or component within the Milestone.

This lets us more flexibly pass up information that's useful to someone, even if it's not necessarily us.
Type: object
Object Properties
key
Type: string

Destiny.Definitions.Milestones.DestinyMilestoneChallengeActivityDefinition

Type: object
Object Properties
activityHash
Mapped to Definition
The activity for which this challenge is active.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
activityGraphNodes
If the activity and its challenge is visible on any of these nodes, it will be returned.
Type: array
phases
Phases related to this activity, if there are any.

These will be listed in the order in which they will appear in the actual activity.
Type: array

Destiny.Definitions.Milestones.DestinyMilestoneChallengeDefinition

Type: object
Object Properties
challengeObjectiveHash
Mapped to Definition
The challenge related to this milestone.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyObjectiveDefinition

Destiny.Definitions.Milestones.DestinyMilestoneChallengeActivityGraphNodeEntry

Type: object
Object Properties
activityGraphHash
Type: uint32
activityGraphNodeHash
Type: uint32

Destiny.Definitions.Milestones.DestinyMilestoneChallengeActivityPhase

Type: object
Object Properties
phaseHash
The hash identifier of the activity's phase.
Type: uint32

Destiny.Entities.Items.DestinyItemPerksComponent

Depends on Component "ItemPerks"
Instanced items can have perks: benefits that the item bestows.

These 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.

Talent Grids, Sockets, and the item itself can apply Perks, which are then summarized here for your convenience.
Type: object
Object Properties
perks
The list of perks to display in an item tooltip - and whether or not they have been activated.
Type: array

Destiny.Perks.DestinyPerkReference

The list of perks to display in an item tooltip - and whether or not they have been activated.

Perks apply a variety of effects to a character, and are generally either intrinsic to the item or provided in activated talent nodes or sockets.
Type: object
Object Properties
perkHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinySandboxPerkDefinition
iconPath
The icon for the perk.
Type: string
isActive
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
visible
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

Destiny.Artifacts.DestinyArtifactCharacterScoped

Type: object
Object Properties
artifactHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Artifacts.DestinyArtifactDefinition
pointsUsed
Type: int32
resetCount
Type: int32
tiers
Type: array

Destiny.Artifacts.DestinyArtifactTier

Type: object
Object Properties
tierHash
Type: uint32
isUnlocked
Type: boolean
pointsToUnlock
Type: int32
items
Type: array

Destiny.Artifacts.DestinyArtifactTierItem

Type: object
Object Properties
itemHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
isActive
Type: boolean
isVisible
Type: boolean

DictionaryComponentResponseOfint64AndDestinyCharacterProgressionComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Entities.Characters.DestinyCharacterRenderComponent

Depends on Component "CharacterRenderData"
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.

Examine 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.
Type: object
Object Properties
customDyes
Custom dyes, calculated by iterating over the character's equipped items. Useful for pre-fetching all of the dye data needed from our server.
Type: array
Array Contents: Destiny.DyeReference
customization
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
A minimal view of:

- Equipped items

- The rendering-related custom options on those equipped items

Combined, that should be enough to render all of the items on the equipped character.
Type: object

Destiny.Character.DestinyCharacterCustomization

Raw data about the customization options chosen for a character's face and appearance.

You 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)
Type: object
Object Properties
personality
Type: uint32
face
Type: uint32
skinColor
Type: uint32
lipColor
Type: uint32
eyeColor
Type: uint32
hairColors
Type: array
Array Contents: uint32
featureColors
Type: array
Array Contents: uint32
decalColor
Type: uint32
wearHelmet
Type: boolean
hairIndex
Type: int32
featureIndex
Type: int32
decalIndex
Type: int32

Destiny.Character.DestinyCharacterPeerView

A minimal view of a character's equipped items, for the purpose of rendering a summary screen or showing the character in 3D.
Type: object
Object Properties
equipment
Type: array

Destiny.Character.DestinyItemPeerView

Bare minimum summary information for an item, for the sake of 3D rendering the item.
Type: object
Object Properties
itemHash
Mapped to Definition
The hash identifier of the item in question. Use it to look up the DestinyInventoryItemDefinition of the item for static rendering data.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
dyes
The list of dyes that have been applied to this item.
Type: array
Array Contents: Destiny.DyeReference

DictionaryComponentResponseOfint64AndDestinyCharacterRenderComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Entities.Characters.DestinyCharacterActivitiesComponent

Depends on Component "CharacterActivities"
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.
Type: object
Object Properties
dateActivityStarted
The last date that the user started playing an activity.
Type: date-time
availableActivities
The list of activities that the user can play.
Type: array
Array Contents: Destiny.DestinyActivity
availableActivityInteractables
The list of activity interactables that the player can interact with.
Type: array
currentActivityHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
currentActivityModeHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityModeDefinition
currentActivityModeType
Nullable Enumeration
And the current activity's most specific mode type, if it can be found.
Type: int32
Valid Enum Values
  • None: 0
  • Story: 2
  • Strike: 3
  • Raid: 4
  • AllPvP: 5
  • Patrol: 6
  • AllPvE: 7
  • Reserved9: 9
  • Control: 10
  • Reserved11: 11
  • Clash: 12
    Clash -> Destiny's name for Team Deathmatch. 4v4 combat, the team with the highest kills at the end of time wins.
  • Reserved13: 13
  • CrimsonDoubles: 15
  • Nightfall: 16
  • HeroicNightfall: 17
  • AllStrikes: 18
  • IronBanner: 19
  • Reserved20: 20
  • Reserved21: 21
  • Reserved22: 22
  • Reserved24: 24
  • AllMayhem: 25
  • Reserved26: 26
  • Reserved27: 27
  • Reserved28: 28
  • Reserved29: 29
  • Reserved30: 30
  • Supremacy: 31
  • PrivateMatchesAll: 32
  • Survival: 37
  • Countdown: 38
  • TrialsOfTheNine: 39
  • Social: 40
  • TrialsCountdown: 41
  • TrialsSurvival: 42
  • IronBannerControl: 43
  • IronBannerClash: 44
  • IronBannerSupremacy: 45
  • ScoredNightfall: 46
  • ScoredHeroicNightfall: 47
  • Rumble: 48
  • AllDoubles: 49
  • Doubles: 50
  • PrivateMatchesClash: 51
  • PrivateMatchesControl: 52
  • PrivateMatchesSupremacy: 53
  • PrivateMatchesCountdown: 54
  • PrivateMatchesSurvival: 55
  • PrivateMatchesMayhem: 56
  • PrivateMatchesRumble: 57
  • HeroicAdventure: 58
  • Showdown: 59
  • Lockdown: 60
  • Scorched: 61
  • ScorchedTeam: 62
  • Gambit: 63
  • AllPvECompetitive: 64
  • Breakthrough: 65
  • BlackArmoryRun: 66
  • Salvage: 67
  • IronBannerSalvage: 68
  • PvPCompetitive: 69
  • PvPQuickplay: 70
  • ClashQuickplay: 71
  • ClashCompetitive: 72
  • ControlQuickplay: 73
  • ControlCompetitive: 74
  • GambitPrime: 75
  • Reckoning: 76
  • Menagerie: 77
  • VexOffensive: 78
  • NightmareHunt: 79
  • Elimination: 80
  • Momentum: 81
  • Dungeon: 82
  • Sundial: 83
  • TrialsOfOsiris: 84
  • Dares: 85
  • Offensive: 86
  • LostSector: 87
  • Rift: 88
  • ZoneControl: 89
  • IronBannerRift: 90
  • IronBannerZoneControl: 91
  • Relic: 92
currentActivityModeHashes
Mapped to Definition
If the user is in an activity, this will be the hashes of the DestinyActivityModeDefinition being played. Combine with currentActivityHash to give a person a full picture of what they're doing right now.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityModeDefinition
currentActivityModeTypes
All Activity Modes that apply to the current activity being played, in enum form.
Type: array
Array Contents: int32
currentPlaylistActivityHash
Nullable Mapped to Definition
If the user is in a playlist, this is the hash identifier for the playlist that they chose.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
lastCompletedStoryHash
Mapped to Definition
This will have the activity hash of the last completed story/campaign mission, in case you care about that.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition

Destiny.DestinyActivity

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.

Meant to be combined with static DestinyActivityDefinition data for a full picture of the Activity.
Type: object
Object Properties
activityHash
Mapped to Definition
The hash identifier of the Activity. Use this to look up the DestinyActivityDefinition of the activity.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
isNew
If true, then the activity should have a "new" indicator in the Director UI.
Type: boolean
canLead
If true, the user is allowed to lead a Fireteam into this activity.
Type: boolean
canJoin
If true, the user is allowed to join with another Fireteam in this activity.
Type: boolean
isCompleted
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
isVisible
If true, the user should be able to see this activity.
Type: boolean
displayLevel
Nullable
The difficulty level of the activity, if applicable.
Type: int32
recommendedLight
Nullable
The recommended light level for the activity, if applicable.
Type: int32
difficultyTier
A DestinyActivityDifficultyTier enum value indicating the difficulty of the activity.
Type: int32
challenges
Type: array
modifierHashes
Mapped to Definition
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.
Type: array
Array Contents: uint32
booleanActivityOptions
The set of activity options for this activity, keyed by an identifier that's unique for this activity (not guaranteed to be unique between or across all activities, though should be unique for every *variant* of a given *conceptual* activity: for instance, the original D2 Raid has many variant DestinyActivityDefinitions. While other activities could potentially have the same option hashes, for any given D2 base Raid variant the hash will be unique).

As a concrete example of this data, the hashes you get for Raids will correspond to the currently active "Challenge Mode".

We don't have any human readable information for these, but saavy 3rd party app users could manually associate the key (a hash identifier for the "option" that is enabled/disabled) and the value (whether it's enabled or disabled presently)

On our side, we don't necessarily even know what these are used for (the game designers know, but we don't), and we have no human readable data for them. In order to use them, you will have to do some experimentation.
Type: object
Dictionary Contents: boolean
Dictionary Key Type: uint32
loadoutRequirementIndex
Nullable
If returned, this is the index into the DestinyActivityDefinition's "loadouts" property, indicating the currently active loadout requirements.
Type: int32

Destiny.DestinyActivityDifficultyTier

Enumeration
An enumeration representing the potential difficulty levels of an activity. Their names are... more qualitative than quantitative.
Type: int32
Valid Enum Values
  • Trivial: 0
  • Easy: 1
  • Normal: 2
  • Challenging: 3
  • Hard: 4
  • Brave: 5
  • AlmostImpossible: 6
  • Impossible: 7

Destiny.Definitions.FireteamFinder.DestinyActivityInteractableReference

Type: object
Object Properties
activityInteractableHash
Mapped to Definition
Type: uint32
activityInteractableElementIndex
Type: int32

Destiny.Definitions.Activities.DestinyActivityInteractableDefinition

Mobile Manifest Entity
There are times in every Activity's life when interacting with an object in the world will result in another Activity activating. Well, not every Activity. Just certain ones.

Anyways, this defines a set of interactable components, the activities that they spawn when you interact with them, and the conditions under which they can be interacted with.

Sadly, we don't get any *really* good data for them, like positional data... yet. I have hopes for future data that we could put on this.
Mapped to Mobile Manifest Table: ActivityInteractables
Type: object
Object Properties
entries
The possible interactables in this activity interactable definition.
Type: array
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Activities.DestinyActivityInteractableEntryDefinition

Defines a specific interactable and the action that can occur when triggered.
Type: object
Object Properties
activityHash
Mapped to Definition
The activity that will trigger when you interact with this interactable.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition

DictionaryComponentResponseOfint64AndDestinyCharacterActivitiesComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfint64AndDestinyKiosksComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfint64AndDestinyPlugSetsComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Entities.Items.DestinyItemObjectivesComponent

Depends on Component "ItemObjectives"
Items can have objectives and progression. When you request this block, you will obtain information about any Objectives and progression tied to this item.
Type: object
Object Properties
objectives
If the item has a hard association with objectives, your progress on them will be defined here.

Objectives are our standard way to describe a series of tasks that have to be completed for a reward.
Type: array
flavorObjective
I may regret naming it this way - but this represents when an item has an objective that doesn't serve a beneficial purpose, but rather is used for "flavor" or additional information. For instance, when Emblems track specific stats, those stats are represented as Objectives on the item.
Type: object
dateCompleted
Nullable
If we have any information on when these objectives were completed, this will be the date of that completion. This won't be on many items, but could be interesting for some items that do store this information.
Type: date-time

DictionaryComponentResponseOfuint32AndDestinyItemObjectivesComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: uint32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfuint32AndDestinyItemPerksComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: uint32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfint64AndDestinyPresentationNodesComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Components.Records.DestinyCharacterRecordsComponent

Depends on Component "Records"
Type: object
Object Properties
featuredRecordHashes
Mapped to Definition
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Records.DestinyRecordDefinition
records
Type: object
Dictionary Key Type: uint32
recordCategoriesRootNodeHash
Mapped to Definition
The hash for the root presentation node definition of Triumph categories.
Type: uint32
recordSealsRootNodeHash
Mapped to Definition
The hash for the root presentation node definition of Triumph Seals.
Type: uint32

DictionaryComponentResponseOfint64AndDestinyCharacterRecordsComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfint64AndDestinyCollectiblesComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfint64AndDestinyStringVariablesComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Components.Craftables.DestinyCraftablesComponent

Depends on Component "Craftables"
Type: object
Object Properties
craftables
Mapped to Definition
A map of craftable item hashes to craftable item state components.
Type: object
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
craftingRootNodeHash
Mapped to Definition
The hash for the root presentation node definition of craftable item categories.
Type: uint32

Destiny.Components.Craftables.DestinyCraftableComponent

Type: object
Object Properties
visible
Type: boolean
failedRequirementIndexes
If the requirements are not met for crafting this item, these will index into the list of failure strings.
Type: array
Array Contents: int32
sockets
Plug item state for the crafting sockets.
Type: array

Destiny.Components.Craftables.DestinyCraftableSocketComponent

Type: object
Object Properties
plugSetHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Sockets.DestinyPlugSetDefinition
plugs
Unlock state for plugs in the socket plug set definition
Type: array

Destiny.Components.Craftables.DestinyCraftableSocketPlugComponent

Type: object
Object Properties
plugItemHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
failedRequirementIndexes
Index into the unlock requirements to display failure descriptions
Type: array
Array Contents: int32

DictionaryComponentResponseOfint64AndDestinyCraftablesComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfint64AndDestinyItemObjectivesComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfint64AndDestinyItemPerksComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Entities.Items.DestinyItemInstanceComponent

Depends on Component "ItemInstances"
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.

Items 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.

You can tell from an item's definition whether it will be instanced or not by looking at the DestinyInventoryItemDefinition's definition.inventory.isInstanceItem property.
Type: object
Object Properties
damageType
If the item has a damage type, this is the item's current damage type.
Type: int32
damageTypeHash
Nullable Mapped to Definition
The current damage type's hash, so you can look up localized info and icons for it.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyDamageTypeDefinition
primaryStat
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
itemLevel
The Item's "Level" has the most significant bearing on its stats, such as Light and Power.
Type: int32
quality
The "Quality" of the item has a lesser - but still impactful - bearing on stats like Light and Power.
Type: int32
isEquipped
Is the item currently equipped on the given character?
Type: boolean
canEquip
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
equipRequiredLevel
If the item cannot be equipped until you reach a certain level, that level will be reflected here.
Type: int32
unlockHashesRequiredToEquip
Mapped to Definition
Sometimes, there are limitations to equipping that are represented by character-level flags called "unlocks".

This 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.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyUnlockDefinition
cannotEquipReason
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: int32
breakerType
Nullable Enumeration
If populated, this item has a breaker type corresponding to the given value. See DestinyBreakerTypeDefinition for more details.
Type: int32
Valid Enum Values
  • None: 0
  • ShieldPiercing: 1
  • Disruption: 2
  • Stagger: 3
breakerTypeHash
Nullable Mapped to Definition
If populated, this is the hash identifier for the item's breaker type. See DestinyBreakerTypeDefinition for more details.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.BreakerTypes.DestinyBreakerTypeDefinition
energy
IF populated, this item supports Energy mechanics (i.e. Armor 2.0), and these are the current details of its energy type and available capacity to spend energy points.
Type: object

Destiny.DestinyStat

Represents a stat on an item *or* Character (NOT a Historical Stat, but a physical attribute stat like Attack, Defense etc...)
Type: object
Object Properties
statHash
Mapped to Definition
The hash identifier for the Stat. Use it to look up the DestinyStatDefinition for static data about the stat.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyStatDefinition
value
The current value of the Stat.
Type: int32

Destiny.EquipFailureReason

Enumeration
The reasons why an item cannot be equipped, if any. Many flags can be set, or "None" if
Type: int32
Valid Enum Values
  • None: 0
    The item is/was able to be equipped.
  • ItemUnequippable: 1
    This is not the kind of item that can be equipped. Did you try equipping Glimmer or something?
  • ItemUniqueEquipRestricted: 2
    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.
  • ItemFailedUnlockCheck: 4
    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)
  • ItemFailedLevelCheck: 8
    This item requires you to have reached a specific character level in order to equip it, and you haven't reached that level yet.
  • ItemWrapped: 16
    This item is 'wrapped' and must be unwrapped before being equipped. NOTE: This value used to be called ItemNotOnCharacter but that is no longer accurate.
  • ItemNotLoaded: 32
    This item is not yet loaded and cannot be equipped yet.
  • ItemEquipBlocklisted: 64
    This item is block-listed and cannot be equipped.
  • ItemLoadoutRequirementNotMet: 128
    This item does not meet the loadout requirements for the current activity

Destiny.Entities.Items.DestinyItemInstanceEnergy

Type: object
Object Properties
energyTypeHash
Mapped to Definition
The type of energy for this item. Plugs that require Energy can only be inserted if they have the "Any" Energy Type or the matching energy type of this item. This is a reference to the DestinyEnergyTypeDefinition for the energy type, where you can find extended info about it.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.EnergyTypes.DestinyEnergyTypeDefinition
energyType
This is the enum version of the Energy Type value, for convenience.
Type: int32
energyCapacity
The total capacity of Energy that the item currently has, regardless of if it is currently being used.
Type: int32
energyUsed
The amount of Energy currently in use by inserted plugs.
Type: int32
energyUnused
The amount of energy still available for inserting new plugs.
Type: int32

Destiny.Definitions.DestinyUnlockDefinition

Mobile Manifest Entity
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.
Mapped to Mobile Manifest Table: Unlocks
Type: object
Object Properties
displayProperties
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
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

DictionaryComponentResponseOfint64AndDestinyItemInstanceComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Entities.Items.DestinyItemRenderComponent

Depends on Component "ItemRenderData"
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.
Type: object
Object Properties
useCustomDyes
If you should use custom dyes on this item, it will be indicated here.
Type: boolean
artRegions
A dictionary for rendering gear components, with:

key = Art Arrangement Region Index

value = The chosen Arrangement Index for the Region, based on the value of a stat on the item used for making the choice.
Type: object
Dictionary Contents: int32
Dictionary Key Type: int32

DictionaryComponentResponseOfint64AndDestinyItemRenderComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Entities.Items.DestinyItemStatsComponent

Depends on Component "ItemStats"
If you want the stats on an item's instanced data, get this component.

These are stats like Attack, Defense etc... and *not* historical stats.

Note 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.
Type: object
Object Properties
stats
Mapped to Definition
If the item has stats that it provides (damage, defense, etc...), it will be given here.
Type: object
Dictionary Contents: Destiny.DestinyStat
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyStatDefinition

DictionaryComponentResponseOfint64AndDestinyItemStatsComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Entities.Items.DestinyItemSocketsComponent

Depends on Component "ItemSockets"
Instanced items can have sockets, which are slots on the item where plugs can be inserted.

Sockets are a bit complex: be sure to examine the documentation on the DestinyInventoryItemDefinition's "socket" block and elsewhere on these objects for more details.
Type: object
Object Properties
sockets
The list of all sockets on the item, and their status information.
Type: array

Destiny.Entities.Items.DestinyItemSocketState

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...)

If I had it to do over, this would probably have a DestinyItemPlug representing the inserted item instead of most of these properties. :shrug:
Type: object
Object Properties
plugHash
Nullable Mapped to Definition
The currently active plug, if any.

Note 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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
isEnabled
Even if a plug is inserted, it doesn't mean it's enabled.

This flag indicates whether the plug is active and providing its benefits.
Type: boolean
isVisible
A plug may theoretically provide benefits but not be visible - for instance, some older items use a plug's damage type perk to modify their own damage type. These, though they are not visible, still affect the item. This field indicates that state.

An invisible plug, while it provides benefits if it is Enabled, cannot be directly modified by the user.
Type: boolean
enableFailIndexes
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.
Type: array
Array Contents: int32

DictionaryComponentResponseOfint64AndDestinyItemSocketsComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Components.Items.DestinyItemReusablePlugsComponent

Depends on Component "ItemReusablePlugs"
Type: object
Object Properties
plugs
If the item supports reusable plugs, this is the list of plugs that are allowed to be used for the socket, and any relevant information about whether they are "enabled", whether they are allowed to be inserted, and any other information such as objectives.

A Reusable Plug is a plug that you can always insert into this socket as long as its insertion rules are passed, regardless of whether or not you have the plug in your inventory. An example of it failing an insertion rule would be if it has an Objective that needs to be completed before it can be inserted, and that objective hasn't been completed yet.

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.

KEY = The INDEX into the item's list of sockets. VALUE = The set of plugs for that socket.

If a socket doesn't have any reusable plugs defined at the item scope, there will be no entry for that socket.
Type: object
Dictionary Contents: array
Dictionary Key Type: int32

DictionaryComponentResponseOfint64AndDestinyItemReusablePlugsComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Components.Items.DestinyItemPlugObjectivesComponent

Depends on Component "ItemPlugObjectives"
Type: object
Object Properties
objectivesPerPlug
Mapped to Definition
This set of data is keyed by the Item Hash (DestinyInventoryItemDefinition) of the plug whose objectives are being returned, with the value being the list of those objectives.

What if two plugs with the same hash are returned for an item, you ask?

Good question! They share the same item-scoped state, and as such would have identical objective state as a result. How's that for convenient.

Sometimes, Plugs may have objectives: generally, these are used for flavor and display purposes. For instance, a Plug might be tracking the number of PVP kills you have made. It will use the parent item's data about that tracking status to determine what to show, and will generally show it using the DestinyObjectiveDefinition's progressDescription property. Refer to the plug's itemHash and objective property for more information if you would like to display even more data.
Type: object
Dictionary Contents: array
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition

DictionaryComponentResponseOfint64AndDestinyItemPlugObjectivesComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Entities.Items.DestinyItemTalentGridComponent

Depends on Component "ItemTalentGrids"
Well, we're here in Destiny 2, and Talent Grids are unfortunately still around.

The 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.

An important note is that talent grids are defined as such:

A Grid has 1:M Nodes, which has 1:M Steps.

Any 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).

Nodes can be grouped into exclusivity sets *and* as of D2, exclusivity groups (which are collections of exclusivity sets that affect each other).

See DestinyTalentGridDefinition for more information. Brace yourself, the water's cold out there in the deep end.
Type: object
Object Properties
talentGridHash
Mapped to Definition
Most items don't have useful talent grids anymore, but Builds in particular still do.

You can use this hash to lookup the DestinyTalentGridDefinition attached to this item, which will be crucial for understanding the node values on the item.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyTalentGridDefinition
nodes
Detailed information about the individual nodes in the talent grid.

A 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.
Type: array
Array Contents: Destiny.DestinyTalentNode
isGridComplete
Indicates whether the talent grid on this item is completed, and thus whether it should have a gold border around it.

Only 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
gridProgression
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

Destiny.DestinyTalentNode

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.
Type: object
Object Properties
nodeIndex
The index of the Talent Node being referred to (an index into DestinyTalentGridDefinition.nodes[]). CONTENT VERSION DEPENDENT.
Type: int32
nodeHash
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.
Type: uint32
state
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: int32
isActivated
If true, the node is activated: it's current step then provides its benefits.
Type: boolean
stepIndex
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]
Type: int32
materialsToUpgrade
If the node has material requirements to be activated, this is the list of those requirements.
Type: array
activationGridLevel
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.
Type: int32
progressPercent
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.
Type: float
hidden
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
nodeStatsBlock
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

Destiny.DestinyTalentNodeState

Enumeration
Type: int32
Valid Enum Values
  • Invalid: 0
  • CanUpgrade: 1
  • NoPoints: 2
  • NoPrerequisites: 3
  • NoSteps: 4
  • NoUnlock: 5
  • NoMaterial: 6
  • NoGridLevel: 7
  • SwappingLocked: 8
  • MustSwap: 9
  • Complete: 10
  • Unknown: 11
  • CreationOnly: 12
  • Hidden: 13

Destiny.DestinyTalentNodeStatBlock

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
Object Properties
currentStepStats
The stat benefits conferred when this talent node is activated for the current Step that is active on the node.
Type: array
Array Contents: Destiny.DestinyStat
nextStepStats
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.
Type: array
Array Contents: Destiny.DestinyStat

DictionaryComponentResponseOfint64AndDestinyItemTalentGridComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Components.Items.DestinyItemPlugComponent

Depends on Component "ItemPlugStates"
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.

This 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.
Type: object
Object Properties
plugObjectives
Sometimes, Plugs may have objectives: these are often used for flavor and display purposes, but they can be used for any arbitrary purpose (both fortunately and unfortunately). Recently (with Season 2) they were expanded in use to be used as the "gating" for whether the plug can be inserted at all. For instance, a Plug might be tracking the number of PVP kills you have made. It will use the parent item's data about that tracking status to determine what to show, and will generally show it using the DestinyObjectiveDefinition's progressDescription property. Refer to the plug's itemHash and objective property for more information if you would like to display even more data.
Type: array
plugItemHash
Mapped to Definition
The hash identifier of the DestinyInventoryItemDefinition that represents this plug.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
canInsert
If true, this plug has met all of its insertion requirements. Big if true.
Type: boolean
enabled
If true, this plug will provide its benefits while inserted.
Type: boolean
insertFailIndexes
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.

This list will be empty if the plug can be inserted.
Type: array
Array Contents: int32
enableFailIndexes
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.

This list will be empty if the plug is enabled.
Type: array
Array Contents: int32
stackSize
Nullable
If available, this is the stack size to display for the socket plug item.
Type: int32
maxStackSize
Nullable
If available, this is the maximum stack size to display for the socket plug item.
Type: int32

DictionaryComponentResponseOfuint32AndDestinyItemPlugComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: uint32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Components.Inventory.DestinyCurrenciesComponent

Depends on Component "CurrencyLookups"
This component provides a quick lookup of every item the requested character has and how much of that item they have.

Requesting this component will allow you to circumvent manually putting together the list of which currencies you have for the purpose of testing currency requirements on an item being purchased, or operations that have costs.

You *could* figure this out yourself by doing a GetCharacter or GetProfile request and forming your own lookup table, but that is inconvenient enough that this feels like a worthwhile (and optional) redundency. Don't bother requesting it if you have already created your own lookup from prior GetCharacter/GetProfile calls.
Type: object
Object Properties
itemQuantities
Mapped to Definition
A dictionary - keyed by the item's hash identifier (DestinyInventoryItemDefinition), and whose value is the amount of that item you have across all available inventory buckets for purchasing.

This allows you to see whether the requesting character can afford any given purchase/action without having to re-create this list itself.
Type: object
Dictionary Contents: int32
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition

DictionaryComponentResponseOfint64AndDestinyCurrenciesComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int64
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Responses.DestinyCharacterResponse

The response contract for GetDestinyCharacter, with components that can be returned for character and item-level data.
Type: object
Object Properties
inventory
Depends on Component "CharacterInventories"
The character-level non-equipped inventory items.

COMPONENT TYPE: CharacterInventories
Type: object
character
Depends on Component "Characters"
Base information about the character in question.

COMPONENT TYPE: Characters
Type: object
progressions
Depends on Component "CharacterProgressions"
Character progression data, including Milestones.

COMPONENT TYPE: CharacterProgressions
Type: object
renderData
Depends on Component "CharacterRenderData"
Character rendering data - a minimal set of information about equipment and dyes used for rendering.

COMPONENT TYPE: CharacterRenderData
Type: object
activities
Depends on Component "CharacterActivities"
Activity data - info about current activities available to the player.

COMPONENT TYPE: CharacterActivities
Type: object
equipment
Depends on Component "CharacterEquipment"
Equipped items on the character.

COMPONENT TYPE: CharacterEquipment
Type: object
loadouts
Depends on Component "CharacterLoadouts"
The loadouts available to the character.

COMPONENT TYPE: CharacterLoadouts
Type: object
kiosks
Depends on Component "Kiosks"
Items available from Kiosks that are available to this specific character.

COMPONENT TYPE: Kiosks
Type: object
plugSets
Depends on Component "ItemSockets"
When sockets refer to reusable Plug Sets (see DestinyPlugSetDefinition for more info), this is the set of plugs and their states that are scoped to this character.

This comes back with ItemSockets, as it is needed for a complete picture of the sockets on requested items.

COMPONENT TYPE: ItemSockets
Type: object
presentationNodes
Depends on Component "PresentationNodes"
COMPONENT TYPE: PresentationNodes
Type: object
records
Depends on Component "Records"
COMPONENT TYPE: Records
Type: object
collectibles
Depends on Component "Collectibles"
COMPONENT TYPE: Collectibles
Type: object
itemComponents
The set of components belonging to the player's instanced items.

COMPONENT TYPE: [See inside the DestinyItemComponentSet contract for component types.]
Type: object
uninstancedItemComponents
The set of components belonging to the player's UNinstanced items. Because apparently now those too can have information relevant to the character's state.

COMPONENT TYPE: [See inside the DestinyItemComponentSet contract for component types.]
Type: object
currencyLookups
Depends on Component "CurrencyLookups"
A "lookup" convenience component that can be used to quickly check if the character has access to items that can be used for purchasing.

COMPONENT TYPE: CurrencyLookups
Type: object

SingleComponentResponseOfDestinyCharacterComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

SingleComponentResponseOfDestinyCharacterProgressionComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

SingleComponentResponseOfDestinyCharacterRenderComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

SingleComponentResponseOfDestinyCharacterActivitiesComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

SingleComponentResponseOfDestinyLoadoutsComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

SingleComponentResponseOfDestinyCharacterRecordsComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

SingleComponentResponseOfDestinyCollectiblesComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

SingleComponentResponseOfDestinyCurrenciesComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Config.ClanBanner.ClanBannerDecal

Type: object
Object Properties
identifier
Type: string
foregroundPath
Type: string
backgroundPath
Type: string

Destiny.Responses.DestinyItemResponse

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.
Type: object
Object Properties
characterId
Nullable
If the item is on a character, this will return the ID of the character that is holding the item.
Type: int64
item
Depends on Component "ItemCommonData"
Common data for the item relevant to its non-instanced properties.

COMPONENT TYPE: ItemCommonData
Type: object
instance
Depends on Component "ItemInstances"
Basic instance data for the item.

COMPONENT TYPE: ItemInstances
Type: object
objectives
Depends on Component "ItemObjectives"
Information specifically about the item's objectives.

COMPONENT TYPE: ItemObjectives
Type: object
perks
Depends on Component "ItemPerks"
Information specifically about the perks currently active on the item.

COMPONENT TYPE: ItemPerks
Type: object
renderData
Depends on Component "ItemRenderData"
Information about how to render the item in 3D.

COMPONENT TYPE: ItemRenderData
Type: object
stats
Depends on Component "ItemStats"
Information about the computed stats of the item: power, defense, etc...

COMPONENT TYPE: ItemStats
Type: object
talentGrid
Depends on Component "ItemTalentGrids"
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".

COMPONENT TYPE: ItemTalentGrids
Type: object
sockets
Depends on Component "ItemSockets"
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.

COMPONENT TYPE: ItemSockets
Type: object
reusablePlugs
Depends on Component "ItemReusablePlugs"
Information about the Reusable Plugs for sockets on an item. These are plugs that you can insert into the given socket regardless of if you actually own an instance of that plug: they are logic-driven plugs rather than inventory-driven.

These may need to be combined with Plug Set component data to get a full picture of available plugs on a given socket.

COMPONENT TYPE: ItemReusablePlugs
Type: object
plugObjectives
Depends on Component "ItemPlugObjectives"
Information about objectives on Plugs for a given item. See the component's documentation for more info.

COMPONENT TYPE: ItemPlugObjectives
Type: object

SingleComponentResponseOfDestinyItemComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

SingleComponentResponseOfDestinyItemInstanceComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

SingleComponentResponseOfDestinyItemObjectivesComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

SingleComponentResponseOfDestinyItemPerksComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

SingleComponentResponseOfDestinyItemRenderComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

SingleComponentResponseOfDestinyItemStatsComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

SingleComponentResponseOfDestinyItemTalentGridComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

SingleComponentResponseOfDestinyItemSocketsComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

SingleComponentResponseOfDestinyItemReusablePlugsComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

SingleComponentResponseOfDestinyItemPlugObjectivesComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.DestinyVendorFilter

Enumeration
Indicates the type of filter to apply to Vendor results.
Type: int32
Valid Enum Values
  • None: 0
  • ApiPurchasable: 1

Destiny.Responses.DestinyVendorsResponse

A response containing all of the components for all requested vendors.
Type: object
Object Properties
vendorGroups
Depends on Component "Vendors"
For Vendors being returned, this will give you the information you need to group them and order them in the same way that the Bungie Companion app performs grouping. It will automatically be returned if you request the Vendors component.

COMPONENT TYPE: Vendors
Type: object
vendors
Depends on Component "Vendors"
The base properties of the vendor. These are keyed by the Vendor Hash, so you will get one Vendor Component per vendor returned.

COMPONENT TYPE: Vendors
Type: object
categories
Depends on Component "VendorCategories"
Categories that the vendor has available, and references to the sales therein. These are keyed by the Vendor Hash, so you will get one Categories Component per vendor returned.

COMPONENT TYPE: VendorCategories
Type: object
sales
Depends on Component "VendorSales"
Sales, keyed by the vendorItemIndex of the item being sold. These are keyed by the Vendor Hash, so you will get one Sale Item Set Component per vendor returned.

Note that within the Sale Item Set component, the sales are themselves keyed by the vendorSaleIndex, so you can relate it to the current sale item definition within the Vendor's definition.

COMPONENT TYPE: VendorSales
Type: object
itemComponents
The set of item detail components, one set of item components per Vendor. These are keyed by the Vendor Hash, so you will get one Item Component Set per vendor returned.

The components contained inside are themselves keyed by the vendorSaleIndex, and will have whatever item-level components you requested (Sockets, Stats, Instance data etc...) per item being sold by the vendor.
Type: object
Dictionary Key Type: uint32
currencyLookups
Depends on Component "CurrencyLookups"
A "lookup" convenience component that can be used to quickly check if the character has access to items that can be used for purchasing.

COMPONENT TYPE: CurrencyLookups
Type: object
stringVariables
Depends on Component "StringVariables"
A map of string variable values by hash for this character context.

COMPONENT TYPE: StringVariables
Type: object

Destiny.Components.Vendors.DestinyVendorGroupComponent

Depends on Component "Vendors"
This component returns references to all of the Vendors in the response, grouped by categorizations that Bungie has deemed to be interesting, in the order in which both the groups and the vendors within that group should be rendered.
Type: object
Object Properties
groups
The ordered list of groups being returned.
Type: array

Destiny.Components.Vendors.DestinyVendorGroup

Represents a specific group of vendors that can be rendered in the recommended order.

How do we figure out this order? It's a long story, and will likely get more complicated over time.
Type: object
Object Properties
vendorGroupHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorGroupDefinition
vendorHashes
Mapped to Definition
The ordered list of vendors within a particular group.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorDefinition

SingleComponentResponseOfDestinyVendorGroupComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Components.Vendors.DestinyVendorBaseComponent

Depends on Component "Vendors"
This component contains essential/summary information about the vendor.
Type: object
Object Properties
vendorHash
Mapped to Definition
The unique identifier for the vendor. Use it to look up their DestinyVendorDefinition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorDefinition
nextRefreshDate
The date when this vendor's inventory will next rotate/refresh.

Note that this is distinct from the date ranges that the vendor is visible/available in-game: this field indicates the specific time when the vendor's available items refresh and rotate, regardless of whether the vendor is actually available at that time. Unfortunately, these two values may be (and are, for the case of important vendors like Xur) different.

Issue https://github.com/Bungie-net/api/issues/353 is tracking a fix to start providing visibility date ranges where possible in addition to this refresh date, so that all important dates for vendors are available for use.
Type: date-time
enabled
If True, the Vendor is currently accessible.

If False, they may not actually be visible in the world at the moment.
Type: boolean

Destiny.Entities.Vendors.DestinyVendorComponent

Depends on Component "Vendors"
This component contains essential/summary information about the vendor.
Type: object
Object Properties
canPurchase
If True, you can purchase from the Vendor.
Type: boolean
progression
If the Vendor has a related Reputation, this is the Progression data that represents the character's Reputation level with this Vendor.
Type: object
vendorLocationIndex
An index into the vendor definition's "locations" property array, indicating which location they are at currently. If -1, then the vendor has no known location (and you may choose not to show them in your UI as a result. I mean, it's your bag honey)
Type: int32
seasonalRank
Nullable
If this vendor has a seasonal rank, this will be the calculated value of that rank. How nice is that? I mean, that's pretty sweeet. It's a whole 32 bit integer.
Type: int32
vendorHash
Mapped to Definition
The unique identifier for the vendor. Use it to look up their DestinyVendorDefinition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorDefinition
nextRefreshDate
The date when this vendor's inventory will next rotate/refresh.

Note that this is distinct from the date ranges that the vendor is visible/available in-game: this field indicates the specific time when the vendor's available items refresh and rotate, regardless of whether the vendor is actually available at that time. Unfortunately, these two values may be (and are, for the case of important vendors like Xur) different.

Issue https://github.com/Bungie-net/api/issues/353 is tracking a fix to start providing visibility date ranges where possible in addition to this refresh date, so that all important dates for vendors are available for use.
Type: date-time
enabled
If True, the Vendor is currently accessible.

If False, they may not actually be visible in the world at the moment.
Type: boolean

DictionaryComponentResponseOfuint32AndDestinyVendorComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: uint32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Entities.Vendors.DestinyVendorCategoriesComponent

Depends on Component "VendorCategories"
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.

Note 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.
Type: object
Object Properties
categories
The list of categories for items that the vendor sells, in rendering order.

These categories each point to a "display category" in the displayCategories property of the DestinyVendorDefinition, as opposed to the other categories.
Type: array

Destiny.Entities.Vendors.DestinyVendorCategory

Information about the category and items currently sold in that category.
Type: object
Object Properties
displayCategoryIndex
An index into the DestinyVendorDefinition.displayCategories property, so you can grab the display data for this category.
Type: int32
itemIndexes
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.
Type: array
Array Contents: int32

DictionaryComponentResponseOfuint32AndDestinyVendorCategoriesComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: uint32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Components.Vendors.DestinyVendorSaleItemBaseComponent

Depends on Component "VendorSales"
The base class for Vendor Sale Item data. Has a bunch of character-agnostic state about the item being sold.

Note 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.
Type: object
Object Properties
vendorItemIndex
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.

Most systems avoid this problem, but Vendors is one area where we are unable to reasonably avoid content dependency at the moment.
Type: int32
itemHash
Mapped to Definition
The hash of the item being sold, as a quick shortcut for looking up the DestinyInventoryItemDefinition of the sale item.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
overrideStyleItemHash
Nullable Mapped to Definition
If populated, this is the hash of the item whose icon (and other secondary styles, but *not* the human readable strings) should override whatever icons/styles are on the item being sold.

If you don't do this, certain items whose styles are being overridden by socketed items - such as the "Recycle Shader" item - would show whatever their default icon/style is, and it wouldn't be pretty or look accurate.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
quantity
How much of the item you'll be getting.
Type: int32
costs
A summary of the current costs of the item.
Type: array
Array Contents: Destiny.DestinyItemQuantity
overrideNextRefreshDate
Nullable
If this item has its own custom date where it may be removed from the Vendor's rotation, this is that date.

Note that there's not actually any guarantee that it will go away: it could be chosen again and end up still being in the Vendor's sale items! But this is the next date where that test will occur, and is also the date that the game shows for availability on things like Bounties being sold. So it's the best we can give.
Type: date-time
apiPurchasable
Nullable
If true, this item can be purchased through the Bungie.net API.
Type: boolean

Destiny.Entities.Vendors.DestinyVendorSaleItemComponent

Depends on Component "VendorSales"
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.

Note 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.
Type: object
Object Properties
saleStatus
A flag indicating whether the requesting character can buy the item, and if not the reasons why the character can't buy it.
Type: int32
requiredUnlocks
Mapped to Definition
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)

Prefer using failureIndexes instead. These are provided for informational purposes, but have largely been supplanted by failureIndexes.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyUnlockDefinition
unlockStatuses
If any complex unlock states are checked in determining purchasability, these will be returned here along with the status of the unlock check.

Prefer using failureIndexes instead. These are provided for informational purposes, but have largely been supplanted by failureIndexes.
Type: array
Array Contents: Destiny.DestinyUnlockStatus
failureIndexes
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.

It 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.
Type: array
Array Contents: int32
augments
A flags enumeration value representing the current state of any "state modifiers" on the item being sold. These are meant to correspond with some sort of visual indicator as to the augmentation: for instance, if an item is on sale or if you already own the item in question.

Determining how you want to represent these in your own app (or if you even want to) is an exercise left for the reader.
Type: int32
itemValueVisibility
If available, a list that describes which item values (rewards) should be shown (true) or hidden (false).
Type: array
Array Contents: boolean
vendorItemIndex
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.

Most systems avoid this problem, but Vendors is one area where we are unable to reasonably avoid content dependency at the moment.
Type: int32
itemHash
Mapped to Definition
The hash of the item being sold, as a quick shortcut for looking up the DestinyInventoryItemDefinition of the sale item.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
overrideStyleItemHash
Nullable Mapped to Definition
If populated, this is the hash of the item whose icon (and other secondary styles, but *not* the human readable strings) should override whatever icons/styles are on the item being sold.

If you don't do this, certain items whose styles are being overridden by socketed items - such as the "Recycle Shader" item - would show whatever their default icon/style is, and it wouldn't be pretty or look accurate.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
quantity
How much of the item you'll be getting.
Type: int32
costs
A summary of the current costs of the item.
Type: array
Array Contents: Destiny.DestinyItemQuantity
overrideNextRefreshDate
Nullable
If this item has its own custom date where it may be removed from the Vendor's rotation, this is that date.

Note that there's not actually any guarantee that it will go away: it could be chosen again and end up still being in the Vendor's sale items! But this is the next date where that test will occur, and is also the date that the game shows for availability on things like Bounties being sold. So it's the best we can give.
Type: date-time
apiPurchasable
Nullable
If true, this item can be purchased through the Bungie.net API.
Type: boolean

Destiny.VendorItemStatus

Enumeration
Type: int32
Valid Enum Values
  • Success: 0
  • NoInventorySpace: 1
  • NoFunds: 2
  • NoProgression: 4
  • NoUnlock: 8
  • NoQuantity: 16
  • OutsidePurchaseWindow: 32
  • NotAvailable: 64
  • UniquenessViolation: 128
  • UnknownError: 256
  • AlreadySelling: 512
  • Unsellable: 1024
  • SellingInhibited: 2048
  • AlreadyOwned: 4096
  • DisplayOnly: 8192

Destiny.DestinyUnlockStatus

Indicates the status of an "Unlock Flag" on a Character or Profile.

These are individual bits of state that can be either set or not set, and sometimes provide interesting human-readable information in their related DestinyUnlockDefinition.
Type: object
Object Properties
unlockHash
Mapped to Definition
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...
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyUnlockDefinition
isSet
Whether the unlock flag is set.
Type: boolean

Destiny.DestinyVendorItemState

Enumeration
The possible states of Destiny Profile Records. IMPORTANT: Any given item can theoretically have many of these states simultaneously: as a result, this was altered to be a flags enumeration/bitmask for v3.2.0.
Type: int32
Valid Enum Values
  • None: 0
    There are no augments on the item.
  • Incomplete: 1
    Deprecated forever (probably). There was a time when Records were going to be implemented through Vendors, and this field was relevant. Now they're implemented through Presentation Nodes, and this field doesn't matter anymore.
  • RewardAvailable: 2
    Deprecated forever (probably). See the description of the "Incomplete" value for the juicy scoop.
  • Complete: 4
    Deprecated forever (probably). See the description of the "Incomplete" value for the juicy scoop.
  • New: 8
    This item is considered to be "newly available", and should have some UI showing how shiny it is.
  • Featured: 16
    This item is being "featured", and should be shiny in a different way from items that are merely new.
  • Ending: 32
    This item is only available for a limited time, and that time is approaching.
  • OnSale: 64
    This item is "on sale". Get it while it's hot.
  • Owned: 128
    This item is already owned.
  • WideView: 256
    This item should be shown with a "wide view" instead of normal icon view.
  • NexusAttention: 512
    This indicates that you should show some kind of attention-requesting indicator on the item, in a similar manner to items in the nexus that have such notifications.
  • SetDiscount: 1024
    This indicates that the item has some sort of a 'set' discount.
  • PriceDrop: 2048
    This indicates that the item has a price drop.
  • DailyOffer: 4096
    This indicates that the item is a daily offer.
  • Charity: 8192
    This indicates that the item is for charity.
  • SeasonalRewardExpiration: 16384
    This indicates that the item has a seasonal reward expiration.
  • BestDeal: 32768
    This indicates that the sale item is the best deal among different choices.
  • Popular: 65536
    This indicates that the sale item is popular.
  • Free: 131072
    This indicates that the sale item is free.
  • Locked: 262144
    This indicates that the sale item is locked.
  • Paracausal: 524288
    This indicates that the sale item is paracausal.
  • Cryptarch: 1048576
  • ArtifactPerkOwned: 2097152
  • Savings: 4194304
  • Ineligible: 8388608
  • ArtifactPerkBoosted: 16777216

DestinyVendorSaleItemSetComponentOfDestinyVendorSaleItemComponent

Depends on Component "VendorSales"
Type: object
Object Properties
saleItems
Type: object
Dictionary Key Type: int32

Destiny.Responses.PersonalDestinyVendorSaleItemSetComponent

Depends on Component "VendorSales"
Type: object
Object Properties
saleItems
Type: object
Dictionary Key Type: int32

DictionaryComponentResponseOfuint32AndPersonalDestinyVendorSaleItemSetComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: uint32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfint32AndDestinyItemObjectivesComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfint32AndDestinyItemPerksComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfint32AndDestinyItemInstanceComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfint32AndDestinyItemRenderComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfint32AndDestinyItemStatsComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfint32AndDestinyItemSocketsComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfint32AndDestinyItemReusablePlugsComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfint32AndDestinyItemPlugObjectivesComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfint32AndDestinyItemTalentGridComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfint32AndDestinyItemComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Responses.DestinyVendorResponse

A response containing all of the components for a vendor.
Type: object
Object Properties
vendor
Depends on Component "Vendors"
The base properties of the vendor.

COMPONENT TYPE: Vendors
Type: object
categories
Depends on Component "VendorCategories"
Categories that the vendor has available, and references to the sales therein.

COMPONENT TYPE: VendorCategories
Type: object
sales
Depends on Component "VendorSales"
Sales, keyed by the vendorItemIndex of the item being sold.

COMPONENT TYPE: VendorSales
Type: object
itemComponents
Item components, keyed by the vendorItemIndex of the active sale items.

COMPONENT TYPE: [See inside the DestinyVendorItemComponentSet contract for component types.]
Type: object
currencyLookups
Depends on Component "CurrencyLookups"
A "lookup" convenience component that can be used to quickly check if the character has access to items that can be used for purchasing.

COMPONENT TYPE: CurrencyLookups
Type: object
stringVariables
Depends on Component "StringVariables"
A map of string variable values by hash for this character context.

COMPONENT TYPE: StringVariables
Type: object

SingleComponentResponseOfDestinyVendorComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

SingleComponentResponseOfDestinyVendorCategoriesComponent

Type: object
Object Properties
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfint32AndDestinyVendorSaleItemComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: int32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Responses.DestinyPublicVendorsResponse

A response containing all valid components for the public Vendors endpoint.

It is a decisively smaller subset of data compared to what we can get when we know the specific user making the request.

If you want any of the other data - item details, whether or not you can buy it, etc... you'll have to call in the context of a character. I know, sad but true.
Type: object
Object Properties
vendorGroups
Depends on Component "Vendors"
For Vendors being returned, this will give you the information you need to group them and order them in the same way that the Bungie Companion app performs grouping. It will automatically be returned if you request the Vendors component.

COMPONENT TYPE: Vendors
Type: object
vendors
Depends on Component "Vendors"
The base properties of the vendor. These are keyed by the Vendor Hash, so you will get one Vendor Component per vendor returned.

COMPONENT TYPE: Vendors
Type: object
categories
Depends on Component "VendorCategories"
Categories that the vendor has available, and references to the sales therein. These are keyed by the Vendor Hash, so you will get one Categories Component per vendor returned.

COMPONENT TYPE: VendorCategories
Type: object
sales
Depends on Component "VendorSales"
Sales, keyed by the vendorItemIndex of the item being sold. These are keyed by the Vendor Hash, so you will get one Sale Item Set Component per vendor returned.

Note that within the Sale Item Set component, the sales are themselves keyed by the vendorSaleIndex, so you can relate it to the corrent sale item definition within the Vendor's definition.

COMPONENT TYPE: VendorSales
Type: object
stringVariables
Depends on Component "StringVariables"
A set of string variable values by hash for a public vendors context.

COMPONENT TYPE: StringVariables
Type: object

Destiny.Components.Vendors.DestinyPublicVendorComponent

Depends on Component "Vendors"
This component contains essential/summary information about the vendor from the perspective of a character-agnostic view.
Type: object
Object Properties
vendorHash
Mapped to Definition
The unique identifier for the vendor. Use it to look up their DestinyVendorDefinition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorDefinition
nextRefreshDate
The date when this vendor's inventory will next rotate/refresh.

Note that this is distinct from the date ranges that the vendor is visible/available in-game: this field indicates the specific time when the vendor's available items refresh and rotate, regardless of whether the vendor is actually available at that time. Unfortunately, these two values may be (and are, for the case of important vendors like Xur) different.

Issue https://github.com/Bungie-net/api/issues/353 is tracking a fix to start providing visibility date ranges where possible in addition to this refresh date, so that all important dates for vendors are available for use.
Type: date-time
enabled
If True, the Vendor is currently accessible.

If False, they may not actually be visible in the world at the moment.
Type: boolean

DictionaryComponentResponseOfuint32AndDestinyPublicVendorComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: uint32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Components.Vendors.DestinyPublicVendorSaleItemComponent

Depends on Component "VendorSales"
Has character-agnostic information about an item being sold by a vendor.

Note 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. For most of these, however, you'll have to ask for it in context of a specific character.
Type: object
Object Properties
vendorItemIndex
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.

Most systems avoid this problem, but Vendors is one area where we are unable to reasonably avoid content dependency at the moment.
Type: int32
itemHash
Mapped to Definition
The hash of the item being sold, as a quick shortcut for looking up the DestinyInventoryItemDefinition of the sale item.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
overrideStyleItemHash
Nullable Mapped to Definition
If populated, this is the hash of the item whose icon (and other secondary styles, but *not* the human readable strings) should override whatever icons/styles are on the item being sold.

If you don't do this, certain items whose styles are being overridden by socketed items - such as the "Recycle Shader" item - would show whatever their default icon/style is, and it wouldn't be pretty or look accurate.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
quantity
How much of the item you'll be getting.
Type: int32
costs
A summary of the current costs of the item.
Type: array
Array Contents: Destiny.DestinyItemQuantity
overrideNextRefreshDate
Nullable
If this item has its own custom date where it may be removed from the Vendor's rotation, this is that date.

Note that there's not actually any guarantee that it will go away: it could be chosen again and end up still being in the Vendor's sale items! But this is the next date where that test will occur, and is also the date that the game shows for availability on things like Bounties being sold. So it's the best we can give.
Type: date-time
apiPurchasable
Nullable
If true, this item can be purchased through the Bungie.net API.
Type: boolean

DestinyVendorSaleItemSetComponentOfDestinyPublicVendorSaleItemComponent

Depends on Component "VendorSales"
Type: object
Object Properties
saleItems
Type: object
Dictionary Key Type: int32

Destiny.Responses.PublicDestinyVendorSaleItemSetComponent

Depends on Component "VendorSales"
Type: object
Object Properties
saleItems
Type: object
Dictionary Key Type: int32

DictionaryComponentResponseOfuint32AndPublicDestinyVendorSaleItemSetComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: uint32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Responses.DestinyCollectibleNodeDetailResponse

Returns the detailed information about a Collectible Presentation Node and any Collectibles that are direct descendants.
Type: object
Object Properties
collectibles
Depends on Component "Collectibles"
COMPONENT TYPE: Collectibles
Type: object
collectibleItemComponents
Item components, keyed by the item hash of the items pointed at collectibles found under the requested Presentation Node.

NOTE: I had a lot of hemming and hawing about whether these should be keyed by collectible hash or item hash... but ultimately having it be keyed by item hash meant that UI that already uses DestinyItemComponentSet data wouldn't have to have a special override to do the collectible -> item lookup once you delve into an item's details, and it also meant that you didn't have to remember that the Hash being used as the key for plugSets was different from the Hash being used for the other Dictionaries. As a result, using the Item Hash felt like the least crappy solution.

We may all come to regret this decision. We will see.

COMPONENT TYPE: [See inside the DestinyItemComponentSet contract for component types.]
Type: object

DictionaryComponentResponseOfuint32AndDestinyItemInstanceComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: uint32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfuint32AndDestinyItemRenderComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: uint32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfuint32AndDestinyItemStatsComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: uint32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfuint32AndDestinyItemSocketsComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: uint32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfuint32AndDestinyItemReusablePlugsComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: uint32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfuint32AndDestinyItemPlugObjectivesComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: uint32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

DictionaryComponentResponseOfuint32AndDestinyItemTalentGridComponent

Type: object
Object Properties
data
Type: object
Dictionary Key Type: uint32
privacy
Type: int32
disabled
Nullable
If true, this component is disabled.
Type: boolean

Destiny.Requests.Actions.DestinyActionRequest

Type: object
Object Properties
membershipType
Type: int32

Destiny.Requests.Actions.DestinyCharacterActionRequest

Type: object
Object Properties
characterId
Type: int64
membershipType
Type: int32

Destiny.Requests.Actions.DestinyItemActionRequest

Type: object
Object Properties
itemId
The instance ID of the item for this action request.
Type: int64
characterId
Type: int64
membershipType
Type: int32

Destiny.Requests.DestinyItemTransferRequest

Type: object
Object Properties
itemReferenceHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
stackSize
Type: int32
transferToVault
Type: boolean
itemId
The instance ID of the item for this action request.
Type: int64
characterId
Type: int64
membershipType
Type: int32

Destiny.Requests.Actions.DestinyPostmasterTransferRequest

Type: object
Object Properties
itemReferenceHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
stackSize
Type: int32
itemId
The instance ID of the item for this action request.
Type: int64
characterId
Type: int64
membershipType
Type: int32

Destiny.DestinyEquipItemResults

The results of a bulk Equipping operation performed through the Destiny API.
Type: object
Object Properties
equipResults
Type: array

Destiny.DestinyEquipItemResult

The results of an Equipping operation performed through the Destiny API.
Type: object
Object Properties
itemInstanceId
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)
Type: int64
equipStatus
A PlatformErrorCodes enum indicating whether it succeeded, and if it failed why.
Type: int32

Destiny.Requests.Actions.DestinyItemSetActionRequest

Type: object
Object Properties
itemIds
Type: array
Array Contents: int64
characterId
Type: int64
membershipType
Type: int32

Destiny.Requests.Actions.DestinyLoadoutActionRequest

Type: object
Object Properties
loadoutIndex
The index of the loadout for this action request.
Type: int32
characterId
Type: int64
membershipType
Type: int32

Destiny.Requests.Actions.DestinyLoadoutUpdateActionRequest

Type: object
Object Properties
colorHash
Nullable
Type: uint32
iconHash
Nullable
Type: uint32
nameHash
Nullable
Type: uint32
loadoutIndex
The index of the loadout for this action request.
Type: int32
characterId
Type: int64
membershipType
Type: int32

Destiny.Requests.Actions.DestinyItemStateRequest

Type: object
Object Properties
state
Type: boolean
itemId
The instance ID of the item for this action request.
Type: int64
characterId
Type: int64
membershipType
Type: int32

Destiny.Responses.InventoryChangedResponse

A response containing all of the components for all requested vendors.
Type: object
Object Properties
addedInventoryItems
Items that appeared in the inventory possibly as a result of an action.
Type: array
removedInventoryItems
Items that disappeared from the inventory possibly as a result of an action.
Type: array

Destiny.Responses.DestinyItemChangeResponse

Type: object
Object Properties
addedInventoryItems
Items that appeared in the inventory possibly as a result of an action.
Type: array
removedInventoryItems
Items that disappeared from the inventory possibly as a result of an action.
Type: array

Destiny.Requests.Actions.DestinyInsertPlugsActionRequest

Type: object
Object Properties
actionToken
Action token provided by the AwaGetActionToken API call.
Type: string
itemInstanceId
The instance ID of the item having a plug inserted. Only instanced items can have sockets.
Type: int64
plug
The plugs being inserted.
Type: object
characterId
Type: int64
membershipType
Type: int32

Destiny.Requests.Actions.DestinyInsertPlugsRequestEntry

Represents all of the data related to a single plug to be inserted.

Note that, while you *can* point to a socket that represents infusion, you will receive an error if you attempt to do so. Come on guys, let's play nice.
Type: object
Object Properties
socketIndex
The index into the socket array, which identifies the specific socket being operated on. We also need to know the socketArrayType in order to uniquely identify the socket.

Don't point to or try to insert a plug into an infusion socket. It won't work.
Type: int32
socketArrayType
This property, combined with the socketIndex, tells us which socket we are referring to (since operations can be performed on both Intrinsic and "default" sockets, and they occupy different arrays in the Inventory Item Definition). I know, I know. Don't give me that look.
Type: int32
plugItemHash
Plugs are never instanced (except in infusion). So with the hash alone, we should be able to: 1) Infer whether the player actually needs to have the item, or if it's a reusable plug 2) Perform any operation needed to use the Plug, including removing the plug item and running reward sheets.
Type: uint32

Destiny.Requests.Actions.DestinySocketArrayType

Enumeration
If you look in the DestinyInventoryItemDefinition's "sockets" property, you'll see that there are two types of sockets: intrinsic, and "socketEntry."

Unfortunately, because Intrinsic sockets are a whole separate array, it is no longer sufficient to know the index into that array to know which socket we're talking about. You have to know whether it's in the default "socketEntries" or if it's in the "intrinsic" list.
Type: int32
Valid Enum Values
  • Default: 0
  • Intrinsic: 1

Destiny.Requests.Actions.DestinyInsertPlugsFreeActionRequest

Type: object
Object Properties
plug
The plugs being inserted.
Type: object
itemId
The instance ID of the item for this action request.
Type: int64
characterId
Type: int64
membershipType
Type: int32

Destiny.HistoricalStats.DestinyPostGameCarnageReportData

Type: object
Object Properties
period
Date and time for the activity.
Type: date-time
startingPhaseIndex
Nullable
If this activity has "phases", this is the phase at which the activity was started. This value is only valid for activities before the Beyond Light expansion shipped. Subsequent activities will not have a valid value here.
Type: int32
activityWasStartedFromBeginning
Nullable
True if the activity was started from the beginning, if that information is available and the activity was played post Witch Queen release.
Type: boolean
activityDetails
Details about the activity.
Type: object
entries
Collection of players and their data for this activity.
Type: array
teams
Collection of stats for the player in this activity.
Type: array

Destiny.HistoricalStats.DestinyHistoricalStatsActivity

Summary information about the activity that was played.
Type: object
Object Properties
referenceId
Mapped to Definition
The unique hash identifier of the DestinyActivityDefinition that was played. If I had this to do over, it'd be named activityHash. Too late now.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
directorActivityHash
Mapped to Definition
The unique hash identifier of the DestinyActivityDefinition that was played.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
instanceId
The unique identifier for this *specific* match that was played.

This value can be used to get additional data about this activity such as who else was playing via the GetPostGameCarnageReport endpoint.
Type: int64
mode
Indicates the most specific game mode of the activity that we could find.
Type: int32
modes
The list of all Activity Modes to which this activity applies, including aggregates. This will let you see, for example, whether the activity was both Clash and part of the Trials of the Nine event.
Type: array
Array Contents: int32
isPrivate
Whether or not the match was a private match.
Type: boolean
membershipType
The Membership Type indicating the platform on which this match was played.
Type: int32

Destiny.HistoricalStats.DestinyPostGameCarnageReportEntry

Type: object
Object Properties
standing
Standing of the player
Type: int32
score
Score of the player if available
Type: object
player
Identity details of the player
Type: object
characterId
ID of the player's character used in the activity.
Type: int64
values
Collection of stats for the player in this activity.
Type: object
Dictionary Key Type: string
extended
Extended data extracted from the activity blob.
Type: object

Destiny.HistoricalStats.DestinyHistoricalStatsValue

Type: object
Object Properties
statId
Unique ID for this stat
Type: string
basic
Basic stat value.
Type: object
pga
Per game average for the statistic, if applicable
Type: object
weighted
Weighted value of the stat if a weight greater than 1 has been assigned.
Type: object
activityId
Nullable
When a stat represents the best, most, longest, fastest or some other personal best, the actual activity ID where that personal best was established is available on this property.
Type: int64

Destiny.HistoricalStats.DestinyHistoricalStatsValuePair

Type: object
Object Properties
value
Raw value of the statistic
Type: double
displayValue
Localized formated version of the value.
Type: string

Destiny.HistoricalStats.DestinyPlayer

Type: object
Object Properties
destinyUserInfo
Details about the player as they are known in game (platform display name, Destiny emblem)
Type: object
characterClass
Class of the character if applicable and available.
Type: string
classHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyClassDefinition
raceHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyRaceDefinition
genderHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyGenderDefinition
characterLevel
Level of the character if available. Zero if it is not available.
Type: int32
lightLevel
Light Level of the character if available. Zero if it is not available.
Type: int32
bungieNetUserInfo
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
clanName
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
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
emblemHash
Mapped to Definition
If we know the emblem's hash, this can be used to look up the player's emblem at the time of a match when receiving PGCR data, or otherwise their currently equipped emblem (if we are able to obtain it).
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition

Destiny.HistoricalStats.DestinyPostGameCarnageReportExtendedData

Type: object
Object Properties
weapons
List of weapons and their perspective values.
Type: array
values
Collection of stats for the player in this activity.
Type: object
Dictionary Key Type: string

Destiny.HistoricalStats.DestinyHistoricalWeaponStats

Type: object
Object Properties
referenceId
Mapped to Definition
The hash ID of the item definition that describes the weapon.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
values
Collection of stats for the period.
Type: object
Dictionary Key Type: string

Destiny.HistoricalStats.DestinyPostGameCarnageReportTeamEntry

Type: object
Object Properties
teamId
Integer ID for the team.
Type: int32
standing
Team's standing relative to other teams.
Type: object
score
Score earned by the team
Type: object
teamName
Alpha or Bravo
Type: string

Destiny.Reporting.Requests.DestinyReportOffensePgcrRequest

If you want to report a player causing trouble in a game, this request will let you report that player and the specific PGCR in which the trouble was caused, along with why.

Please don't do this just because you dislike the person! I mean, I know people will do it anyways, but can you like take a good walk, or put a curse on them or something? Do me a solid and reconsider.

Note that this request object doesn't have the actual PGCR ID nor your Account/Character ID in it. We will infer that information from your authentication information and the PGCR ID that you pass into the URL of the reporting endpoint itself.
Type: object
Object Properties
reasonCategoryHashes
Mapped to Definition
So you've decided to report someone instead of cursing them and their descendants. Well, okay then. This is the category or categorie(s) of infractions for which you are reporting the user. These are hash identifiers that map to DestinyReportReasonCategoryDefinition entries.
Type: array
Array Contents: uint32
reasonHashes
If applicable, provide a more specific reason(s) within the general category of problems provided by the reasonHash. This is also an identifier for a reason. All reasonHashes provided must be children of at least one the reasonCategoryHashes provided.
Type: array
Array Contents: uint32
offendingCharacterId
Within the PGCR provided when calling the Reporting endpoint, this should be the character ID of the user that you thought was violating terms of use. They must exist in the PGCR provided.
Type: int64

Destiny.Definitions.Reporting.DestinyReportReasonCategoryDefinition

Mobile Manifest Entity
If you're going to report someone for a Terms of Service violation, you need to choose a category and reason for the report. This definition holds both the categories and the reasons within those categories, for simplicity and my own laziness' sake.

Note tha this means that, to refer to a Reason by reasonHash, you need a combination of the reasonHash *and* the associated ReasonCategory's hash: there are some reasons defined under multiple categories.
Mapped to Mobile Manifest Table: ReportReasonCategories
Type: object
Object Properties
reasons
The specific reasons for the report under this category.
Type: object
Dictionary Key Type: uint32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.Reporting.DestinyReportReasonDefinition

A specific reason for being banned. Only accessible under the related category (DestinyReportReasonCategoryDefinition) under which it is shown. Note that this means that report reasons' reasonHash are not globally unique: and indeed, entries like "Other" are defined under most categories for example.
Type: object
Object Properties
reasonHash
The identifier for the reason: they are only guaranteed unique under the Category in which they are found.
Type: uint32

Destiny.HistoricalStats.Definitions.DestinyHistoricalStatsDefinition

Mobile Manifest Entity
Mapped to Mobile Manifest Table: HistoricalStats
Type: object
Object Properties
statId
Unique programmer friendly ID for this stat
Type: string
group
Statistic group
Type: int32
periodTypes
Time periods the statistic covers
Type: array
Array Contents: int32
modes
Game modes where this statistic can be reported.
Type: array
Array Contents: int32
category
Category for the stat.
Type: int32
statName
Display name
Type: string
statNameAbbr
Display name abbreviated
Type: string
statDescription
Description of a stat if applicable.
Type: string
unitType
Unit, if any, for the statistic
Type: int32
iconImage
Optional URI to an icon for the statistic
Type: string
mergeMethod
Nullable Enumeration
Optional icon for the statistic
Type: int32
Valid Enum Values
  • Add: 0
    When collapsing multiple instances of the stat together, add the values.
  • Min: 1
    When collapsing multiple instances of the stat together, take the lower value.
  • Max: 2
    When collapsing multiple instances of the stat together, take the higher value.
unitLabel
Localized Unit Name for the stat.
Type: string
weight
Weight assigned to this stat indicating its relative impressiveness.
Type: int32
medalTierHash
Nullable Mapped to Definition
The tier associated with this medal - be it implicitly or explicitly.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyMedalTierDefinition

Destiny.HistoricalStats.Definitions.DestinyStatsGroupType

Enumeration
If the enum value is > 100, it is a "special" group that cannot be queried for directly (special cases apply to when they are returned, and are not relevant in general cases)
Type: int32
Valid Enum Values
  • None: 0
  • General: 1
  • Weapons: 2
  • Medals: 3
  • ReservedGroups: 100
    This is purely to serve as the dividing line between filterable and un-filterable groups. Below this number is a group you can pass as a filter. Above it are groups used in very specific circumstances and not relevant for filtering.
  • Leaderboard: 101
    Only applicable while generating leaderboards.
  • Activity: 102
    These will *only* be consumed by GetAggregateStatsByActivity
  • UniqueWeapon: 103
    These are only consumed and returned by GetUniqueWeaponHistory
  • Internal: 104

Destiny.HistoricalStats.Definitions.PeriodType[]

Type: array
Array Contents: int32

Destiny.HistoricalStats.Definitions.DestinyStatsCategoryType

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Kills: 1
  • Assists: 2
  • Deaths: 3
  • Criticals: 4
  • KDa: 5
  • KD: 6
  • Score: 7
  • Entered: 8
  • TimePlayed: 9
  • MedalWins: 10
  • MedalGame: 11
  • MedalSpecialKills: 12
  • MedalSprees: 13
  • MedalMultiKills: 14
  • MedalAbilities: 15

Destiny.HistoricalStats.Definitions.UnitType

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Count: 1
    Indicates the statistic is a simple count of something.
  • PerGame: 2
    Indicates the statistic is a per game average.
  • Seconds: 3
    Indicates the number of seconds
  • Points: 4
    Indicates the number of points earned
  • Team: 5
    Values represents a team ID
  • Distance: 6
    Values represents a distance (units to-be-determined)
  • Percent: 7
    Ratio represented as a whole value from 0 to 100.
  • Ratio: 8
    Ratio of something, shown with decimal places
  • Boolean: 9
    True or false
  • WeaponType: 10
    The stat is actually a weapon type.
  • Standing: 11
    Indicates victory, defeat, or something in between.
  • Milliseconds: 12
    Number of milliseconds some event spanned. For example, race time, or lap time.
  • CompletionReason: 13
    The value is a enumeration of the Completion Reason type.

Destiny.HistoricalStats.Definitions.DestinyStatsMergeMethod

Enumeration
Type: int32
Valid Enum Values
  • Add: 0
    When collapsing multiple instances of the stat together, add the values.
  • Min: 1
    When collapsing multiple instances of the stat together, take the lower value.
  • Max: 2
    When collapsing multiple instances of the stat together, take the higher value.

Destiny.Definitions.DestinyMedalTierDefinition

Mobile Manifest Entity
An artificial construct of our own creation, to try and put some order on top of Medals and keep them from being one giant, unmanageable and unsorted blob of stats.

Unfortunately, we haven't had time to do this evaluation yet in Destiny 2, so we're short on Medal Tiers. This will hopefully be updated over time, if Medals continue to exist.
Mapped to Mobile Manifest Table: MedalTiers
Type: object
Object Properties
tierName
The name of the tier.
Type: string
order
If you're rendering medals by tier, render them in this order (ascending)
Type: int32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.HistoricalStats.DestinyLeaderboard

Type: object
Object Properties
statId
Type: string
entries

Destiny.HistoricalStats.DestinyLeaderboardEntry

Type: object
Object Properties
rank
Where this player ranks on the leaderboard. A value of 1 is the top rank.
Type: int32
player
Identity details of the player
Type: object
characterId
ID of the player's best character for the reported stat.
Type: int64
value
Value of the stat for this player
Type: object

Destiny.HistoricalStats.DestinyLeaderboardResults

Type: object
Dictionary Contents: object
Dictionary Key Type: string
Object Properties
focusMembershipId
Nullable
Indicate the membership ID of the account that is the focal point of the provided leaderboards.
Type: int64
focusCharacterId
Nullable
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.
Type: int64

Destiny.HistoricalStats.DestinyClanAggregateStat

Type: object
Object Properties
mode
The id of the mode of stats (allPvp, allPvE, etc)
Type: int32
statId
The id of the stat
Type: string
value
Value of the stat for this player
Type: object

Destiny.Definitions.DestinyEntitySearchResult

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.
Type: object
Object Properties
suggestedWords
A list of suggested words that might make for better search results, based on the text searched for.
Type: array
Array Contents: string
results
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

Destiny.Definitions.DestinyEntitySearchResultItem

An individual Destiny Entity returned from the entity search.
Type: object
Object Properties
hash
The hash identifier of the entity. You will use this to look up the DestinyDefinition relevant for the entity found.
Type: uint32
entityType
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
displayProperties
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
weight
The ranking value for sorting that we calculated using our relevance formula. This will hopefully get better with time and iteration.
Type: double

SearchResultOfDestinyEntitySearchResultItem

Type: object
Object Properties
results
totalResults
Type: int32
hasMore
Type: boolean
query
replacementContinuationToken
Type: string
useTotalResults
If useTotalResults is true, then totalResults represents an accurate count.

If False, it does not, and may be estimated/only the size of the current page.

Either way, you should probably always only trust hasMore.

This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one.
Type: boolean

Destiny.HistoricalStats.Definitions.PeriodType

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Daily: 1
  • AllTime: 2
  • Activity: 3

Destiny.HistoricalStats.DestinyHistoricalStatsByPeriod

Type: object
Object Properties
allTime
Type: object
Dictionary Key Type: string
allTimeTier1
Type: object
Dictionary Key Type: string
allTimeTier2
Type: object
Dictionary Key Type: string
allTimeTier3
Type: object
Dictionary Key Type: string
monthly

Destiny.HistoricalStats.DestinyHistoricalStatsPeriodGroup

Type: object
Object Properties
period
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'.
Type: date-time
activityDetails
If the period group is for a specific activity, this property will be set.
Type: object
values
Collection of stats for the period.
Type: object
Dictionary Key Type: string

Destiny.HistoricalStats.DestinyHistoricalStatsWithMerged

Type: object
Object Properties
results
Type: object
Dictionary Key Type: string

Destiny.HistoricalStats.DestinyHistoricalStatsPerCharacter

Type: object
Object Properties
characterId
Type: int64
deleted
Type: boolean
results
Type: object
Dictionary Key Type: string

Destiny.HistoricalStats.DestinyActivityHistoryResults

Type: object
Object Properties
activities
List of activities, the most recent activity first.
Type: array

Destiny.HistoricalStats.DestinyHistoricalWeaponStatsData

Type: object
Object Properties
weapons
List of weapons and their perspective values.
Type: array

Destiny.HistoricalStats.DestinyAggregateActivityResults

Type: object
Object Properties
activities
List of all activities the player has participated in.
Type: array

Destiny.HistoricalStats.DestinyAggregateActivityStats

Type: object
Object Properties
activityHash
Mapped to Definition
Hash ID that can be looked up in the DestinyActivityTable.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
values
Collection of stats for the player in this activity.
Type: object
Dictionary Key Type: string

Destiny.Milestones.DestinyMilestoneContent

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.
Type: object
Object Properties
about
The "About this Milestone" text from the Firehose.
Type: string
status
The Current Status of the Milestone, as driven by the Firehose.
Type: string
tips
A list of tips, provided by the Firehose.
Type: array
Array Contents: string
itemCategories
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.
Type: array

Destiny.Milestones.DestinyMilestoneContentItemCategory

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.
Type: object
Object Properties
title
Type: string
itemHashes
Mapped to Definition
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition

Destiny.Milestones.DestinyPublicMilestone

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.
Type: object
Object Properties
milestoneHash
Mapped to Definition
The hash identifier for the milestone. Use it to look up the DestinyMilestoneDefinition for static data about the Milestone.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Milestones.DestinyMilestoneDefinition
availableQuests
A milestone not need have even a single quest, but if there are active quests they will be returned here.
Type: array
activities
vendorHashes
Sometimes milestones - or activities active in milestones - will have relevant vendors. These are the vendors that are currently relevant.

Deprecated, already, for the sake of the new "vendors" property that has more data. What was I thinking.
Type: array
Array Contents: uint32
vendors
This is why we can't have nice things. This is the ordered list of vendors to be shown that relate to this milestone, potentially along with other interesting data.
Type: array
startDate
Nullable
If known, this is the date when the Milestone started/became active.
Type: date-time
endDate
Nullable
If known, this is the date when the Milestone will expire/recycle/end.
Type: date-time
order
Used for ordering milestones in a display to match how we order them in BNet. May pull from static data, or possibly in the future from dynamic information.
Type: int32

Destiny.Milestones.DestinyPublicMilestoneQuest

Type: object
Object Properties
questItemHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Milestones.DestinyMilestoneDefinition
activity
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
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.
Type: array

Destiny.Milestones.DestinyPublicMilestoneActivity

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.
Type: object
Object Properties
activityHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
modifierHashes
Mapped to Definition
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.
Type: array
Array Contents: uint32
variants
Every relevant variation of this conceptual activity, including the conceptual activity itself, have variants defined here.
Type: array
activityModeHash
Nullable Mapped to Definition
The hash identifier of the most specific Activity Mode under which this activity is played. This is useful for situations where the activity in question is - for instance - a PVP map, but it's not clear what mode the PVP map is being played under. If it's a playlist, this will be less specific: but hopefully useful in some way.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityModeDefinition
activityModeType
Nullable Enumeration
The enumeration equivalent of the most specific Activity Mode under which this activity is played.
Type: int32
Valid Enum Values
  • None: 0
  • Story: 2
  • Strike: 3
  • Raid: 4
  • AllPvP: 5
  • Patrol: 6
  • AllPvE: 7
  • Reserved9: 9
  • Control: 10
  • Reserved11: 11
  • Clash: 12
    Clash -> Destiny's name for Team Deathmatch. 4v4 combat, the team with the highest kills at the end of time wins.
  • Reserved13: 13
  • CrimsonDoubles: 15
  • Nightfall: 16
  • HeroicNightfall: 17
  • AllStrikes: 18
  • IronBanner: 19
  • Reserved20: 20
  • Reserved21: 21
  • Reserved22: 22
  • Reserved24: 24
  • AllMayhem: 25
  • Reserved26: 26
  • Reserved27: 27
  • Reserved28: 28
  • Reserved29: 29
  • Reserved30: 30
  • Supremacy: 31
  • PrivateMatchesAll: 32
  • Survival: 37
  • Countdown: 38
  • TrialsOfTheNine: 39
  • Social: 40
  • TrialsCountdown: 41
  • TrialsSurvival: 42
  • IronBannerControl: 43
  • IronBannerClash: 44
  • IronBannerSupremacy: 45
  • ScoredNightfall: 46
  • ScoredHeroicNightfall: 47
  • Rumble: 48
  • AllDoubles: 49
  • Doubles: 50
  • PrivateMatchesClash: 51
  • PrivateMatchesControl: 52
  • PrivateMatchesSupremacy: 53
  • PrivateMatchesCountdown: 54
  • PrivateMatchesSurvival: 55
  • PrivateMatchesMayhem: 56
  • PrivateMatchesRumble: 57
  • HeroicAdventure: 58
  • Showdown: 59
  • Lockdown: 60
  • Scorched: 61
  • ScorchedTeam: 62
  • Gambit: 63
  • AllPvECompetitive: 64
  • Breakthrough: 65
  • BlackArmoryRun: 66
  • Salvage: 67
  • IronBannerSalvage: 68
  • PvPCompetitive: 69
  • PvPQuickplay: 70
  • ClashQuickplay: 71
  • ClashCompetitive: 72
  • ControlQuickplay: 73
  • ControlCompetitive: 74
  • GambitPrime: 75
  • Reckoning: 76
  • Menagerie: 77
  • VexOffensive: 78
  • NightmareHunt: 79
  • Elimination: 80
  • Momentum: 81
  • Dungeon: 82
  • Sundial: 83
  • TrialsOfOsiris: 84
  • Dares: 85
  • Offensive: 86
  • LostSector: 87
  • Rift: 88
  • ZoneControl: 89
  • IronBannerRift: 90
  • IronBannerZoneControl: 91
  • Relic: 92

Destiny.Milestones.DestinyPublicMilestoneActivityVariant

Represents a variant of an activity that's relevant to a milestone.
Type: object
Object Properties
activityHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
activityModeHash
Nullable Mapped to Definition
The hash identifier of the most specific Activity Mode under which this activity is played. This is useful for situations where the activity in question is - for instance - a PVP map, but it's not clear what mode the PVP map is being played under. If it's a playlist, this will be less specific: but hopefully useful in some way.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityModeDefinition
activityModeType
Nullable Enumeration
The enumeration equivalent of the most specific Activity Mode under which this activity is played.
Type: int32
Valid Enum Values
  • None: 0
  • Story: 2
  • Strike: 3
  • Raid: 4
  • AllPvP: 5
  • Patrol: 6
  • AllPvE: 7
  • Reserved9: 9
  • Control: 10
  • Reserved11: 11
  • Clash: 12
    Clash -> Destiny's name for Team Deathmatch. 4v4 combat, the team with the highest kills at the end of time wins.
  • Reserved13: 13
  • CrimsonDoubles: 15
  • Nightfall: 16
  • HeroicNightfall: 17
  • AllStrikes: 18
  • IronBanner: 19
  • Reserved20: 20
  • Reserved21: 21
  • Reserved22: 22
  • Reserved24: 24
  • AllMayhem: 25
  • Reserved26: 26
  • Reserved27: 27
  • Reserved28: 28
  • Reserved29: 29
  • Reserved30: 30
  • Supremacy: 31
  • PrivateMatchesAll: 32
  • Survival: 37
  • Countdown: 38
  • TrialsOfTheNine: 39
  • Social: 40
  • TrialsCountdown: 41
  • TrialsSurvival: 42
  • IronBannerControl: 43
  • IronBannerClash: 44
  • IronBannerSupremacy: 45
  • ScoredNightfall: 46
  • ScoredHeroicNightfall: 47
  • Rumble: 48
  • AllDoubles: 49
  • Doubles: 50
  • PrivateMatchesClash: 51
  • PrivateMatchesControl: 52
  • PrivateMatchesSupremacy: 53
  • PrivateMatchesCountdown: 54
  • PrivateMatchesSurvival: 55
  • PrivateMatchesMayhem: 56
  • PrivateMatchesRumble: 57
  • HeroicAdventure: 58
  • Showdown: 59
  • Lockdown: 60
  • Scorched: 61
  • ScorchedTeam: 62
  • Gambit: 63
  • AllPvECompetitive: 64
  • Breakthrough: 65
  • BlackArmoryRun: 66
  • Salvage: 67
  • IronBannerSalvage: 68
  • PvPCompetitive: 69
  • PvPQuickplay: 70
  • ClashQuickplay: 71
  • ClashCompetitive: 72
  • ControlQuickplay: 73
  • ControlCompetitive: 74
  • GambitPrime: 75
  • Reckoning: 76
  • Menagerie: 77
  • VexOffensive: 78
  • NightmareHunt: 79
  • Elimination: 80
  • Momentum: 81
  • Dungeon: 82
  • Sundial: 83
  • TrialsOfOsiris: 84
  • Dares: 85
  • Offensive: 86
  • LostSector: 87
  • Rift: 88
  • ZoneControl: 89
  • IronBannerRift: 90
  • IronBannerZoneControl: 91
  • Relic: 92

Destiny.Milestones.DestinyPublicMilestoneChallenge

A Milestone can have many Challenges. Challenges are just extra Objectives that provide a fun way to mix-up play and provide extra rewards.
Type: object
Object Properties
objectiveHash
Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyObjectiveDefinition
activityHash
Nullable Mapped to Definition
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.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition

Destiny.Milestones.DestinyPublicMilestoneChallengeActivity

Type: object
Object Properties
activityHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
challengeObjectiveHashes
Type: array
Array Contents: uint32
modifierHashes
Mapped to Definition
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.
Type: array
Array Contents: uint32
loadoutRequirementIndex
Nullable
If returned, this is the index into the DestinyActivityDefinition's "loadouts" property, indicating the currently active loadout requirements.
Type: int32
phaseHashes
The ordered list of phases for this activity, if any. Note that we have no human readable info for phases, nor any entities to relate them to: relating these hashes to something human readable is up to you unfortunately.
Type: array
Array Contents: uint32
booleanActivityOptions
The set of activity options for this activity, keyed by an identifier that's unique for this activity (not guaranteed to be unique between or across all activities, though should be unique for every *variant* of a given *conceptual* activity: for instance, the original D2 Raid has many variant DestinyActivityDefinitions. While other activities could potentially have the same option hashes, for any given D2 base Raid variant the hash will be unique).

As a concrete example of this data, the hashes you get for Raids will correspond to the currently active "Challenge Mode".

We have no human readable information for this data, so it's up to you if you want to associate it with such info to show it.
Type: object
Dictionary Contents: boolean
Dictionary Key Type: uint32

Destiny.Milestones.DestinyPublicMilestoneVendor

Type: object
Object Properties
vendorHash
Mapped to Definition
The hash identifier of the Vendor related to this Milestone. You can show useful things from this, such as thier Faction icon or whatever you might care about.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorDefinition
previewItemHash
Nullable Mapped to Definition
If this vendor is featuring a specific item for this event, this will be the hash identifier of that item. I'm taking bets now on how long we go before this needs to be a list or some other, more complex representation instead and I deprecate this too. I'm going to go with 5 months. Calling it now, 2017-09-14 at 9:46pm PST.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition

Destiny.Advanced.AwaInitializeResponse

Type: object
Object Properties
correlationId
ID used to get the token. Present this ID to the user as it will identify this specific request on their device.
Type: string
sentToSelf
True if the PUSH message will only be sent to the device that made this request.
Type: boolean

Destiny.Advanced.AwaPermissionRequested

Type: object
Object Properties
type
Type of advanced write action.
Type: int32
affectedItemId
Nullable
Item instance ID the action shall be applied to. This is optional for all but a new AwaType values. Rule of thumb is to provide the item instance ID if one is available.
Type: int64
membershipType
Destiny membership type of the account to modify.
Type: int32
characterId
Nullable
Destiny character ID, if applicable, that will be affected by the action.
Type: int64

Destiny.Advanced.AwaType

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • InsertPlugs: 1
    Insert plugs into sockets.

Destiny.Advanced.AwaUserResponse

Type: object
Object Properties
selection
Indication of the selection the user has made (Approving or rejecting the action)
Type: int32
correlationId
Correlation ID of the request
Type: string
nonce
Secret nonce received via the PUSH notification.
Type: array
Array Contents: byte

Destiny.Advanced.AwaUserSelection

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Rejected: 1
  • Approved: 2

Destiny.Advanced.AwaAuthorizationResult

Type: object
Object Properties
userSelection
Indication of how the user responded to the request. If the value is "Approved" the actionToken will contain the token that can be presented when performing the advanced write action.
Type: int32
responseReason
Type: int32
developerNote
Message to the app developer to help understand the response.
Type: string
actionToken
Credential used to prove the user authorized an advanced write action.
Type: string
maximumNumberOfUses
This token may be used to perform the requested action this number of times, at a maximum. If this value is 0, then there is no limit.
Type: int32
validUntil
Nullable
Time, UTC, when token expires.
Type: date-time
type
Advanced Write Action Type from the permission request.
Type: int32
membershipType
MembershipType from the permission request.
Type: int32

Destiny.Advanced.AwaResponseReason

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Answered: 1
    User provided an answer
  • TimedOut: 2
    The HTTP request timed out, a new request may be made and an answer may still be provided.
  • Replaced: 3
    This request was replaced by another request.

Forum.CommunityContentSortMode

Enumeration
Type: byte
Valid Enum Values
  • Trending: 0
  • Latest: 1
  • HighestRated: 2

Trending.TrendingCategories

Type: object
Object Properties
categories
Type: array
Array Contents: Trending.TrendingCategory

Trending.TrendingCategory

Type: object
Object Properties
categoryName
Type: string
categoryId
Type: string

Trending.TrendingEntry

The list entry view for trending items. Returns just enough to show the item on the trending page.
Type: object
Object Properties
weight
The weighted score of this trending item.
Type: double
isFeatured
Type: boolean
identifier
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
entityType
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: int32
displayName
The localized "display name/article title/'primary localized identifier'" of the entity.
Type: string
tagline
If the entity has a localized tagline/subtitle/motto/whatever, that is found here.
Type: string
image
Type: string
startDate
Nullable
Type: date-time
endDate
Nullable
Type: date-time
link
Type: string
webmVideo
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
mp4Video
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
featureImage
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
items
If the item is of entityType TrendingEntryType.Container, it may have items - also Trending Entries - contained within it. This is the ordered list of those to display under the Container's header.
Type: array
Array Contents: Trending.TrendingEntry
creationDate
Nullable
If the entry has a date at which it was created, this is that date.
Type: date-time

Trending.TrendingEntryType

Enumeration
The known entity types that you can have returned from Trending.
Type: int32
Valid Enum Values
  • News: 0
  • DestinyItem: 1
  • DestinyActivity: 2
  • DestinyRitual: 3
  • SupportArticle: 4
  • Creation: 5
  • Stream: 6
  • Update: 7
  • Link: 8
  • ForumTag: 9
  • Container: 10
  • Release: 11

SearchResultOfTrendingEntry

Type: object
Object Properties
results
Type: array
Array Contents: Trending.TrendingEntry
totalResults
Type: int32
hasMore
Type: boolean
query
replacementContinuationToken
Type: string
useTotalResults
If useTotalResults is true, then totalResults represents an accurate count.

If False, it does not, and may be estimated/only the size of the current page.

Either way, you should probably always only trust hasMore.

This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one.
Type: boolean

Trending.TrendingDetail

Type: object
Object Properties
identifier
Type: string
entityType
Type: int32

Trending.TrendingEntryNews

Type: object
Object Properties

Trending.TrendingEntrySupportArticle

Type: object
Object Properties

Trending.TrendingEntryDestinyItem

Type: object
Object Properties
itemHash
Type: uint32

Trending.TrendingEntryDestinyActivity

Type: object
Object Properties
activityHash
Type: uint32

Destiny.Activities.DestinyPublicActivityStatus

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.
Type: object
Object Properties
challengeObjectiveHashes
Mapped to Definition
Active Challenges for the activity, if any - represented as hashes for DestinyObjectiveDefinitions.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyObjectiveDefinition
modifierHashes
Mapped to Definition
The active modifiers on this activity, if any - represented as hashes for DestinyActivityModifierDefinitions.
Type: array
Array Contents: uint32
rewardTooltipItems
If the activity itself provides any specific "mock" rewards, this will be the items and their quantity.

Why "mock", you ask? Because these are the rewards as they are represented in the tooltip of the Activity.

These 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.
Type: array
Array Contents: Destiny.DestinyItemQuantity

Trending.TrendingEntryDestinyRitual

Type: object
Object Properties
image
Type: string
icon
Type: string
title
Type: string
subtitle
Type: string
dateStart
Nullable
Type: date-time
dateEnd
Nullable
Type: date-time
milestoneDetails
A destiny event does not necessarily have a related Milestone, but if it does the details will be returned here.
Type: object
eventContent
A destiny event will not necessarily have milestone "custom content", but if it does the details will be here.
Type: object

Trending.TrendingEntryCommunityCreation

Type: object
Object Properties
media
Type: string
title
Type: string
author
Type: string
authorMembershipId
Type: int64
postId
Type: int64
body
Type: string
upvotes
Type: int32

Fireteam.FireteamDateRange

Enumeration
Type: byte
Valid Enum Values
  • All: 0
  • Now: 1
  • TwentyFourHours: 2
  • FortyEightHours: 3
  • ThisWeek: 4

Fireteam.FireteamPlatform

Enumeration
Type: byte
Valid Enum Values
  • Any: 0
  • Playstation4: 1
  • XboxOne: 2
  • Blizzard: 3
  • Steam: 4
  • Stadia: 5
  • Egs: 6

Fireteam.FireteamPublicSearchOption

Enumeration
Type: byte
Valid Enum Values
  • PublicAndPrivate: 0
  • PublicOnly: 1
  • PrivateOnly: 2

Fireteam.FireteamSlotSearch

Enumeration
Type: byte
Valid Enum Values
  • NoSlotRestriction: 0
  • HasOpenPlayerSlots: 1
  • HasOpenPlayerOrAltSlots: 2

Fireteam.FireteamSummary

Type: object
Object Properties
fireteamId
Type: int64
groupId
Type: int64
platform
Type: byte
activityType
Type: int32
isImmediate
Type: boolean
scheduledTime
Nullable
Type: date-time
ownerMembershipId
Type: int64
playerSlotCount
Type: int32
alternateSlotCount
Nullable
Type: int32
availablePlayerSlotCount
Type: int32
availableAlternateSlotCount
Type: int32
title
Type: string
dateCreated
Type: date-time
dateModified
Nullable
Type: date-time
isPublic
Type: boolean
locale
Type: string
isValid
Type: boolean
datePlayerModified
Type: date-time
titleBeforeModeration
Type: string
ownerCurrentGuardianRankSnapshot
Mapped to Definition
Type: int32
Mapped to Manifest Database Definition: Destiny.Definitions.GuardianRanks.DestinyGuardianRankDefinition
ownerHighestLifetimeGuardianRankSnapshot
Mapped to Definition
Type: int32
Mapped to Manifest Database Definition: Destiny.Definitions.GuardianRanks.DestinyGuardianRankDefinition
ownerTotalCommendationScoreSnapshot
Type: int32

SearchResultOfFireteamSummary

Type: object
Object Properties
results
Type: array
Array Contents: Fireteam.FireteamSummary
totalResults
Type: int32
hasMore
Type: boolean
query
replacementContinuationToken
Type: string
useTotalResults
If useTotalResults is true, then totalResults represents an accurate count.

If False, it does not, and may be estimated/only the size of the current page.

Either way, you should probably always only trust hasMore.

This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one.
Type: boolean

Fireteam.FireteamResponse

Type: object
Object Properties
Members
Type: array
Array Contents: Fireteam.FireteamMember
Alternates
Type: array
Array Contents: Fireteam.FireteamMember

Fireteam.FireteamMember

Type: object
Object Properties
destinyUserInfo
bungieNetUserInfo
characterId
Type: int64
dateJoined
Type: date-time
hasMicrophone
Type: boolean
lastPlatformInviteAttemptDate
Type: date-time
lastPlatformInviteAttemptResult
Type: byte

Fireteam.FireteamUserInfoCard

Type: object
Object Properties
FireteamDisplayName
Type: string
FireteamMembershipType
Type: int32
supplementalDisplayName
A platform specific additional display name - ex: psn Real Name, bnet Unique Name, etc.
Type: string
iconPath
URL the Icon if available.
Type: string
crossSaveOverride
If there is a cross save override in effect, this value will tell you the type that is overridding this one.
Type: int32
applicableMembershipTypes
The list of Membership Types indicating the platforms on which this Membership can be used.

Not in Cross Save = its original membership type. Cross Save Primary = Any membership types it is overridding, and its original membership type Cross Save Overridden = Empty list
Type: array
Array Contents: int32
isPublic
If True, this is a public user membership.
Type: boolean
membershipType
Type of the membership. Not necessarily the native type.
Type: int32
membershipId
Membership ID as they user is known in the Accounts service
Type: int64
displayName
Display Name the player has chosen for themselves. The display name is optional when the data type is used as input to a platform API.
Type: string
bungieGlobalDisplayName
The bungie global display name, if set.
Type: string
bungieGlobalDisplayNameCode
Nullable
The bungie global display name code, if set.
Type: int16

Fireteam.FireteamPlatformInviteResult

Enumeration
Type: byte
Valid Enum Values
  • None: 0
  • Success: 1
  • AlreadyInFireteam: 2
  • Throttled: 3
  • ServiceError: 4

SearchResultOfFireteamResponse

Type: object
Object Properties
results
Type: array
Array Contents: Fireteam.FireteamResponse
totalResults
Type: int32
hasMore
Type: boolean
query
replacementContinuationToken
Type: string
useTotalResults
If useTotalResults is true, then totalResults represents an accurate count.

If False, it does not, and may be estimated/only the size of the current page.

Either way, you should probably always only trust hasMore.

This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one.
Type: boolean

FireteamFinder.DestinyFireteamFinderApplicationType

Enumeration
Type: int32
Valid Enum Values
  • Unknown: 0
  • Creator: 1
  • Search: 2
  • Invite: 3
  • Friend: 4
  • Encounter: 5
  • Public: 6

FireteamFinder.DestinyFireteamFinderApplication

Type: object
Object Properties
applicationId
Type: int64
revision
Type: int32
state
Type: int32
referralToken
Type: int64
applicationType
Type: int32
listingId
Type: int64
createdDateTime
Type: date-time

FireteamFinder.DestinyFireteamFinderApplicationState

Enumeration
Type: int32
Valid Enum Values
  • Unknown: 0
  • WaitingForApplicants: 1
  • WaitingForLobbyOwner: 2
  • Accepted: 3
  • Rejected: 4
  • Deleted: 5
  • Expired: 6

FireteamFinder.DestinyFireteamFinderPlayerId

Type: object
Object Properties
membershipId
Type: int64
membershipType
Type: int32
characterId
Type: int64

FireteamFinder.DestinyFireteamFinderApplicantSet

Type: object
Object Properties
applicants
Type: array

FireteamFinder.DestinyFireteamFinderListing

Type: object
Object Properties
listingId
Type: int64
revision
Type: int32
availableSlots
Type: int32
lobbyId
Type: int64
lobbyState
Type: int32
createdDateTime
Type: date-time

FireteamFinder.DestinyFireteamFinderLobbySettings

Type: object
Object Properties
maxPlayerCount
Type: int32
onlinePlayersOnly
Type: boolean
privacyScope
Type: int32
scheduledDateTime
Type: date-time
clanId
Type: int64
listingValues
activityGraphHash
Mapped to Definition
Type: uint32
activityHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition

FireteamFinder.DestinyFireteamFinderLobbyPrivacyScope

Enumeration
Type: int32
Valid Enum Values
  • Unknown: 0
  • Open: 1
  • Applications: 2
  • Clan: 3
  • Friends: 4

FireteamFinder.DestinyFireteamFinderListingValue

Type: object
Object Properties
valueType
Type: uint32
values
Type: array
Array Contents: uint32

Destiny.Definitions.FireteamFinder.DestinyFireteamFinderActivityGraphDefinition

Mobile Manifest Entity
Mapped to Mobile Manifest Table: FireteamFinderActivityGraphs
Type: object
Object Properties
isPlayerElectedDifficultyNode
Type: boolean
parentHash
Nullable Mapped to Definition
Type: uint32
children
Mapped to Definition
Type: array
Array Contents: uint32
selfAndAllDescendantHashes
Mapped to Definition
Type: array
Array Contents: uint32
relatedActivitySetHashes
Mapped to Definition
Type: array
Array Contents: uint32
specificActivitySetHash
Nullable Mapped to Definition
Type: uint32
relatedActivityHashes
Mapped to Definition
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
relatedDirectorNodes
relatedInteractableActivities
relatedLocationHashes
Mapped to Definition
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyLocationDefinition
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.FireteamFinder.DestinyActivityGraphReference

Type: object
Object Properties
activityGraphHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Director.DestinyActivityGraphDefinition

Destiny.Definitions.FireteamFinder.DestinyFireteamFinderActivitySetDefinition

Mobile Manifest Entity
Mapped to Mobile Manifest Table: FireteamFinderActivitySets
Type: object
Object Properties
maximumPartySize
Type: int32
optionHashes
Mapped to Definition
Type: array
Array Contents: uint32
labelHashes
Mapped to Definition
Type: array
Array Contents: uint32
activityGraphHashes
Mapped to Definition
Type: array
Array Contents: uint32
activityHashes
Mapped to Definition
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.FireteamFinder.DestinyFireteamFinderOptionDefinition

Mobile Manifest Entity
Mapped to Mobile Manifest Table: FireteamFinderOptions
Type: object
Object Properties
descendingSortPriority
Type: int32
groupHash
Mapped to Definition
Type: uint32
codeOptionType
Type: int32
availability
Type: int32
visibility
Type: int32
uiDisplayStyle
Type: string
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.FireteamFinderCodeOptionType

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • ApplicationOnly: 1
  • OnlineOnly: 2
  • PlayerCount: 3
  • Title: 4
  • Tags: 5
  • FinderActivityGraph: 6
  • MicrophoneRequired: 7

Destiny.FireteamFinderOptionAvailability

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • CreateListingBuilder: 1
  • SearchListingBuilder: 2
  • ListingViewer: 4
  • LobbyViewer: 8

Destiny.FireteamFinderOptionVisibility

Enumeration
Type: int32
Valid Enum Values
  • Always: 0
  • ShowWhenChangedFromDefault: 1

Destiny.Definitions.FireteamFinder.DestinyFireteamFinderOptionSettingsControl

Type: object
Object Properties
type
Type: int32
minSelectedItems
Type: int32
maxSelectedItems
Type: int32

Destiny.FireteamFinderOptionControlType

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • ValueCollection: 1
  • RadioButton: 2

Destiny.FireteamFinderOptionSearchFilterType

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • All: 1
  • Any: 2
  • InRangeInclusive: 3
  • InRangeExclusive: 4
  • GreaterThan: 5
  • GreaterThanOrEqualTo: 6
  • LessThan: 7
  • LessThanOrEqualTo: 8

Destiny.Definitions.FireteamFinder.DestinyFireteamFinderOptionValues

Type: object
Object Properties
optionalFormatString
Type: string
displayFormatType
Type: int32
type
Type: int32

Destiny.FireteamFinderOptionDisplayFormat

Enumeration
Type: int32
Valid Enum Values
  • Text: 0
  • Integer: 1
  • Bool: 2
  • FormatString: 3

Destiny.FireteamFinderOptionValueProviderType

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Values: 1
  • PlayerCount: 2
  • FireteamFinderLabels: 3
  • FireteamFinderActivityGraph: 4

Destiny.Definitions.FireteamFinder.DestinyFireteamFinderOptionValueDefinition

Type: object
Object Properties
value
Type: uint32
flags
Type: int32

Destiny.FireteamFinderOptionValueFlags

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • CreateListingDefaultValue: 1
  • SearchFilterDefaultValue: 2

Destiny.Definitions.FireteamFinder.DestinyFireteamFinderOptionGroupDefinition

Mobile Manifest Entity
Mapped to Mobile Manifest Table: FireteamFinderOptionGroups
Type: object
Object Properties
descendingSortPriority
Type: int32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.FireteamFinder.DestinyFireteamFinderLabelDefinition

Mobile Manifest Entity
Mapped to Mobile Manifest Table: FireteamFinderLabels
Type: object
Object Properties
descendingSortPriority
Type: int32
groupHash
Mapped to Definition
Type: uint32
allowInFields
Type: int32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.FireteamFinderLabelFieldType

Enumeration
Type: int32
Valid Enum Values
  • Title: 0
  • Label: 1

Destiny.Definitions.FireteamFinder.DestinyFireteamFinderLabelGroupDefinition

Mobile Manifest Entity
Mapped to Mobile Manifest Table: FireteamFinderLabelGroups
Type: object
Object Properties
descendingSortPriority
Type: int32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

FireteamFinder.DestinyFireteamFinderLobbyState

Enumeration
Type: int32
Valid Enum Values
  • Unknown: 0
  • Inactive: 1
  • Active: 2
  • Expired: 3
  • Closed: 4
  • Canceled: 5
  • Deleted: 6

FireteamFinder.DestinyFireteamFinderBulkGetListingStatusResponse

Type: object
Object Properties
listingStatus

FireteamFinder.DestinyFireteamFinderListingStatus

Type: object
Object Properties
listingId
Type: int64
listingRevision
Type: int32
availableSlots
Type: int32

FireteamFinder.DestinyFireteamFinderLobbyListingReference

Type: object
Object Properties
lobbyId
Type: int64
listingId
Type: int64

FireteamFinder.DestinyFireteamFinderGetApplicationResponse

Type: object
Object Properties
applicationId
Type: int64
revision
Type: int32
state
Type: int32
referralToken
Type: int64
applicationType
Type: int32
listingId
Type: int64
createdDateTime
Type: date-time

FireteamFinder.DestinyFireteamFinderGetListingApplicationsResponse

Type: object
Object Properties
applications
pageSize
Type: int32
nextPageToken
Type: string

FireteamFinder.DestinyFireteamFinderLobbyResponse

Type: object
Object Properties
lobbyId
Type: int64
revision
Type: int32
state
Type: int32
players
listingId
Type: int64
createdDateTime
Type: date-time

FireteamFinder.DestinyFireteamFinderLobbyPlayer

Type: object
Object Properties
referralToken
Type: int64
state
Type: int32
offerId
Type: int64

FireteamFinder.DestinyFireteamFinderPlayerReadinessState

Enumeration
Type: int32
Valid Enum Values
  • Unknown: 0
  • Reserved: 1
  • Disconnected: 2
  • InLobbyUnready: 3
  • InLobbyReady: 4
  • Summoned: 5

FireteamFinder.DestinyFireteamFinderGetPlayerLobbiesResponse

Type: object
Object Properties
lobbies
All available lobbies that this player has created or is a member of.
Type: array
pageSize
The number of results requested.
Type: int32
nextPageToken
A string token required to get the next page of results. This will be null or empty if there are no more results.
Type: string

FireteamFinder.DestinyFireteamFinderGetPlayerApplicationsResponse

Type: object
Object Properties
applications
All applications that this player has sent.
Type: array
nextPageToken
String token to request next page of results.
Type: string

FireteamFinder.DestinyFireteamFinderGetPlayerOffersResponse

Type: object
Object Properties
offers
All offers that this player has recieved.
Type: array

FireteamFinder.DestinyFireteamFinderOffer

Type: object
Object Properties
offerId
Type: int64
lobbyId
Type: int64
revision
Type: int32
state
Type: int32
applicationId
Type: int64
createdDateTime
Type: date-time

FireteamFinder.DestinyFireteamFinderOfferState

Enumeration
Type: int32
Valid Enum Values
  • Unknown: 0
  • Pending: 1
  • Accepted: 2
  • Rejected: 3
  • Deleted: 4
  • Expired: 5

FireteamFinder.DestinyFireteamFinderGetCharacterActivityAccessResponse

Type: object
Object Properties
fireteamFinderActivityGraphStates
Mapped to Definition
A map of fireteam finder activity graph hashes to visibility and availability states.
Type: object
Dictionary Key Type: uint32

FireteamFinder.DestinyFireteamFinderActivityGraphState

Type: object
Object Properties
isVisible
Indicates if this fireteam finder activity graph node is visible for this character.
Type: boolean
isAvailable
Indicates if this fireteam finder activity graph node is available to select for this character.
Type: boolean

FireteamFinder.DestinyFireteamFinderGetLobbyOffersResponse

Type: object
Object Properties
offers
Type: array
pageToken
Type: string

FireteamFinder.DestinyFireteamFinderHostLobbyResponse

Type: object
Object Properties
lobbyId
Type: int64
listingId
Type: int64
applicationId
Type: int64
offerId
Type: int64

FireteamFinder.DestinyFireteamFinderHostLobbyRequest

Type: object
Object Properties
maxPlayerCount
Type: int32
onlinePlayersOnly
Type: boolean
privacyScope
Type: int32
scheduledDateTime
Type: date-time
clanId
Type: int64
listingValues
activityGraphHash
Mapped to Definition
Type: uint32
activityHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition

FireteamFinder.DestinyFireteamFinderJoinLobbyRequest

Type: object
Object Properties
lobbyId
Type: int64
offerId
Type: int64

FireteamFinder.DestinyFireteamFinderKickPlayerRequest

Type: object
Object Properties
targetMembershipType
Type: int32
targetCharacterId
Type: int64

FireteamFinder.DestinyFireteamFinderRespondToApplicationResponse

Type: object
Object Properties
applicationId
Type: int64
applicationRevision
Type: int32

FireteamFinder.DestinyFireteamFinderRespondToApplicationRequest

Type: object
Object Properties
accepted
Type: boolean

FireteamFinder.DestinyFireteamFinderRespondToAuthenticationResponse

Type: object
Object Properties
applicationId
Type: int64
applicationRevision
Type: int32

FireteamFinder.DestinyFireteamFinderRespondToAuthenticationRequest

Type: object
Object Properties
confirmed
Type: boolean

FireteamFinder.DestinyFireteamFinderRespondToOfferResponse

Type: object
Object Properties
offerId
Type: int64
revision
Type: int32
state
Type: int32

FireteamFinder.DestinyFireteamFinderRespondToOfferRequest

Type: object
Object Properties
accepted
Type: boolean

FireteamFinder.DestinyFireteamFinderSearchListingsByClanResponse

Type: object
Object Properties
listings
Type: array
pageToken
Type: string

FireteamFinder.DestinyFireteamFinderSearchListingsByClanRequest

Type: object
Object Properties
pageSize
Type: int32
pageToken
Type: string
lobbyState
Type: int32

FireteamFinder.DestinyFireteamFinderSearchListingsByFiltersResponse

Type: object
Object Properties
listings
Type: array
pageToken
Type: string

FireteamFinder.DestinyFireteamFinderSearchListingsByFiltersRequest

Type: object
Object Properties
filters
pageSize
Type: int32
pageToken
Type: string
lobbyState
Type: int32

FireteamFinder.DestinyFireteamFinderListingFilter

Type: object
Object Properties
rangeType
Type: integer
matchType
Type: integer

FireteamFinder.DestinyFireteamFinderListingFilterRangeType

Enumeration
Type: integer
Valid Enum Values
  • Unknown: 0
  • All: 1
  • Any: 2
  • InRangeInclusive: 3
  • InRangeExclusive: 4
  • GreaterThan: 5
  • GreaterThanOrEqualTo: 6
  • LessThan: 7
  • LessThanOrEqualTo: 8

FireteamFinder.DestinyFireteamFinderListingFilterMatchType

Enumeration
Type: integer
Valid Enum Values
  • Unknown: 0
  • MustNot: 1
  • Should: 2
  • Filter: 3

Social.Friends.BungieFriendListResponse

Type: object
Object Properties
friends
Type: array
Array Contents: Social.Friends.BungieFriend

Social.Friends.BungieFriend

Type: object
Object Properties
lastSeenAsMembershipId
Type: int64
lastSeenAsBungieMembershipType
Type: int32
bungieGlobalDisplayName
Type: string
bungieGlobalDisplayNameCode
Nullable
Type: int16
onlineStatus
Type: int32
onlineTitle
Type: int32
relationship
Type: int32
bungieNetUser

Social.Friends.PresenceStatus

Enumeration
Type: int32
Valid Enum Values
  • OfflineOrUnknown: 0
  • Online: 1

Social.Friends.PresenceOnlineStateFlags

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Destiny1: 1
  • Destiny2: 2

Social.Friends.FriendRelationshipState

Enumeration
Type: int32
Valid Enum Values
  • Unknown: 0
  • Friend: 1
  • IncomingRequest: 2
  • OutgoingRequest: 3

Social.Friends.BungieFriendRequestListResponse

Type: object
Object Properties
incomingRequests
Type: array
Array Contents: Social.Friends.BungieFriend
outgoingRequests
Type: array
Array Contents: Social.Friends.BungieFriend

Social.Friends.PlatformFriendType

Enumeration
Type: int32
Valid Enum Values
  • Unknown: 0
  • Xbox: 1
  • PSN: 2
  • Steam: 3
  • Egs: 4

Social.Friends.PlatformFriendResponse

Type: object
Object Properties
itemsPerPage
Type: int32
currentPage
Type: int32
hasMore
Type: boolean
platformFriends
Type: array

Social.Friends.PlatformFriend

Type: object
Object Properties
platformDisplayName
Type: string
friendPlatform
Type: int32
destinyMembershipId
Nullable
Type: int64
destinyMembershipType
Nullable Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • TigerXbox: 1
  • TigerPsn: 2
  • TigerSteam: 3
  • TigerBlizzard: 4
  • TigerStadia: 5
  • TigerEgs: 6
  • TigerDemon: 10
  • BungieNext: 254
  • All: -1
    "All" is only valid for searching capabilities: you need to pass the actual matching BungieMembershipType for any query where you pass a known membershipId.
bungieNetMembershipId
Nullable
Type: int64
bungieGlobalDisplayName
Type: string
bungieGlobalDisplayNameCode
Nullable
Type: int16

Common.Models.CoreSettingsConfiguration

Type: object
Object Properties
environment
Type: string
systems
Type: object
Dictionary Contents: Common.Models.CoreSystem
Dictionary Key Type: string
ignoreReasons
Type: array
Array Contents: Common.Models.CoreSetting
forumCategories
Type: array
Array Contents: Common.Models.CoreSetting
groupAvatars
Type: array
Array Contents: Common.Models.CoreSetting
defaultGroupTheme
destinyMembershipTypes
Type: array
Array Contents: Common.Models.CoreSetting
recruitmentPlatformTags
Type: array
Array Contents: Common.Models.CoreSetting
recruitmentMiscTags
Type: array
Array Contents: Common.Models.CoreSetting
recruitmentActivities
Type: array
Array Contents: Common.Models.CoreSetting
userContentLocales
Type: array
Array Contents: Common.Models.CoreSetting
systemContentLocales
Type: array
Array Contents: Common.Models.CoreSetting
clanBannerDecals
Type: array
Array Contents: Common.Models.CoreSetting
clanBannerDecalColors
Type: array
Array Contents: Common.Models.CoreSetting
clanBannerGonfalons
Type: array
Array Contents: Common.Models.CoreSetting
clanBannerGonfalonColors
Type: array
Array Contents: Common.Models.CoreSetting
clanBannerGonfalonDetails
Type: array
Array Contents: Common.Models.CoreSetting
clanBannerGonfalonDetailColors
Type: array
Array Contents: Common.Models.CoreSetting
clanBannerStandards
Type: array
Array Contents: Common.Models.CoreSetting
destiny2CoreSettings
emailSettings
fireteamActivities
Type: array
Array Contents: Common.Models.CoreSetting

Common.Models.CoreSystem

Type: object
Object Properties
enabled
Type: boolean
parameters
Type: object
Dictionary Contents: string
Dictionary Key Type: string

Common.Models.CoreSetting

Type: object
Object Properties
identifier
Type: string
isDefault
Type: boolean
displayName
Type: string
summary
Type: string
imagePath
Type: string
childSettings
Type: array
Array Contents: Common.Models.CoreSetting

Common.Models.Destiny2CoreSettings

Type: object
Object Properties
collectionRootNode
Mapped to Definition
Type: uint32
badgesRootNode
Mapped to Definition
Type: uint32
recordsRootNode
Mapped to Definition
Type: uint32
medalsRootNode
Mapped to Definition
Type: uint32
metricsRootNode
Mapped to Definition
Type: uint32
activeTriumphsRootNodeHash
Mapped to Definition
Type: uint32
activeSealsRootNodeHash
Mapped to Definition
Type: uint32
legacyTriumphsRootNodeHash
Mapped to Definition
Type: uint32
legacySealsRootNodeHash
Mapped to Definition
Type: uint32
medalsRootNodeHash
Mapped to Definition
Type: uint32
exoticCatalystsRootNodeHash
Mapped to Definition
Type: uint32
loreRootNodeHash
Mapped to Definition
Type: uint32
craftingRootNodeHash
Mapped to Definition
Type: uint32
loadoutConstantsHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Loadouts.DestinyLoadoutConstantsDefinition
guardianRankConstantsHash
Mapped to Definition
Type: uint32
fireteamFinderConstantsHash
Mapped to Definition
Type: uint32
guardianRanksRootNodeHash
Mapped to Definition
Type: uint32
currentRankProgressionHashes
Mapped to Definition
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyProgressionDefinition
insertPlugFreeProtectedPlugItemHashes
Mapped to Definition
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
insertPlugFreeBlockedSocketTypeHashes
Mapped to Definition
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Sockets.DestinySocketTypeDefinition
enabledFireteamFinderActivityGraphHashes
Mapped to Definition
Type: array
Array Contents: uint32
undiscoveredCollectibleImage
Type: string
ammoTypeHeavyIcon
Type: string
ammoTypeSpecialIcon
Type: string
ammoTypePrimaryIcon
Type: string
currentSeasonalArtifactHash
Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorDefinition
currentSeasonHash
Nullable Mapped to Definition
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Seasons.DestinySeasonDefinition
seasonalChallengesPresentationNodeHash
Nullable Mapped to Definition
Type: uint32
futureSeasonHashes
Mapped to Definition
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Seasons.DestinySeasonDefinition
pastSeasonHashes
Mapped to Definition
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Seasons.DestinySeasonDefinition

Destiny.Definitions.Loadouts.DestinyLoadoutConstantsDefinition

Mobile Manifest Entity
Mapped to Mobile Manifest Table: LoadoutConstants
Type: object
Object Properties
whiteIconImagePath
This is the same icon as the one in the display properties, offered here as well with a more descriptive name.
Type: string
blackIconImagePath
This is a color-inverted version of the whiteIconImagePath.
Type: string
loadoutCountPerCharacter
The maximum number of loadouts available to each character. The loadouts component API response can return fewer loadouts than this, as more loadouts are unlocked by reaching higher Guardian Ranks.
Type: int32
loadoutPreviewFilterOutSocketCategoryHashes
Mapped to Definition
A list of the socket category hashes to be filtered out of loadout item preview displays.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Sockets.DestinySocketCategoryDefinition
loadoutPreviewFilterOutSocketTypeHashes
Mapped to Definition
A list of the socket type hashes to be filtered out of loadout item preview displays.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Sockets.DestinySocketTypeDefinition
loadoutNameHashes
Mapped to Definition
A list of the loadout name hashes in index order, for convenience.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Loadouts.DestinyLoadoutNameDefinition
loadoutIconHashes
Mapped to Definition
A list of the loadout icon hashes in index order, for convenience.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Loadouts.DestinyLoadoutIconDefinition
loadoutColorHashes
Mapped to Definition
A list of the loadout color hashes in index order, for convenience.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Loadouts.DestinyLoadoutColorDefinition
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.GuardianRanks.DestinyGuardianRankConstantsDefinition

Mobile Manifest Entity
Mapped to Mobile Manifest Table: GuardianRankConstants
Type: object
Object Properties
rankCount
Type: int32
guardianRankHashes
Mapped to Definition
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.GuardianRanks.DestinyGuardianRankDefinition
rootNodeHash
Mapped to Definition
Type: uint32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.GuardianRanks.DestinyGuardianRankIconBackgroundsDefinition

Type: object
Object Properties
backgroundEmptyBorderedImagePath
Type: string
backgroundEmptyBlueGradientBorderedImagePath
Type: string
backgroundFilledBlueBorderedImagePath
Type: string
backgroundFilledBlueGradientBorderedImagePath
Type: string
backgroundFilledBlueLowAlphaImagePath
Type: string
backgroundFilledBlueMediumAlphaImagePath
Type: string
backgroundFilledGrayMediumAlphaBorderedImagePath
Type: string
backgroundFilledGrayHeavyAlphaBorderedImagePath
Type: string
backgroundFilledWhiteMediumAlphaImagePath
Type: string
backgroundFilledWhiteImagePath
Type: string
backgroundPlateWhiteImagePath
Type: string
backgroundPlateBlackImagePath
Type: string
backgroundPlateBlackAlphaImagePath
Type: string

Destiny.Definitions.FireteamFinder.DestinyFireteamFinderConstantsDefinition

Mobile Manifest Entity
Mapped to Mobile Manifest Table: FireteamFinderConstants
Type: object
Object Properties
fireteamFinderActivityGraphRootCategoryHashes
Mapped to Definition
Type: array
Array Contents: uint32
allFireteamFinderActivityHashes
Mapped to Definition
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyActivityDefinition
guardianOathTenets
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.

When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

User.EmailSettings

The set of all email subscription/opt-in settings and definitions.
Type: object
Object Properties
optInDefinitions
Keyed by the name identifier of the opt-in definition.
Type: object
Dictionary Contents: User.EmailOptInDefinition
Dictionary Key Type: string
subscriptionDefinitions
Keyed by the name identifier of the Subscription definition.
Type: object
Dictionary Contents: User.EmailSubscriptionDefinition
Dictionary Key Type: string
views
Keyed by the name identifier of the View definition.
Type: object
Dictionary Contents: User.EmailViewDefinition
Dictionary Key Type: string

User.EmailOptInDefinition

Defines a single opt-in category: a wide-scoped permission to send emails for the subject related to the opt-in.
Type: object
Object Properties
name
The unique identifier for this opt-in category.
Type: string
value
The flag value for this opt-in category. For historical reasons, this is defined as a flags enum.
Type: int64
setByDefault
If true, this opt-in setting should be set by default in situations where accounts are created without explicit choices about what they're opting into.
Type: boolean
dependentSubscriptions
Information about the dependent subscriptions for this opt-in.
Type: array

User.OptInFlags

Enumeration
Type: int64
Valid Enum Values
  • None: 0
  • Newsletter: 1
  • System: 2
  • Marketing: 4
  • UserResearch: 8
  • CustomerService: 16
  • Social: 32
  • PlayTests: 64
  • PlayTestsLocal: 128
  • Careers: 256

User.EmailSubscriptionDefinition

Defines a single subscription: permission to send emails for a specific, focused subject (generally timeboxed, such as for a specific release of a product or feature).
Type: object
Object Properties
name
The unique identifier for this subscription.
Type: string
localization
A dictionary of localized text for the EMail Opt-in setting, keyed by the locale.
Type: object
Dictionary Key Type: string
value
The bitflag value for this subscription. Should be a unique power of two value.
Type: int64

User.EMailSettingLocalization

Localized text relevant to a given EMail setting in a given localization.
Type: object
Object Properties
title
Type: string
description
Type: string

User.EMailSettingSubscriptionLocalization

Localized text relevant to a given EMail setting in a given localization. Extra settings specifically for subscriptions.
Type: object
Object Properties
unknownUserDescription
Type: string
registeredUserDescription
Type: string
unregisteredUserDescription
Type: string
unknownUserActionText
Type: string
knownUserActionText
Type: string
title
Type: string
description
Type: string

User.EmailViewDefinition

Represents a data-driven view for Email settings. Web/Mobile UI can use this data to show new EMail settings consistently without further manual work.
Type: object
Object Properties
name
The identifier for this view.
Type: string
viewSettings
The ordered list of settings to show in this view.
Type: array

User.EmailViewDefinitionSetting

Type: object
Object Properties
name
The identifier for this UI Setting, which can be used to relate it to custom strings or other data as desired.
Type: string
localization
A dictionary of localized text for the EMail setting, keyed by the locale.
Type: object
Dictionary Contents: User.EMailSettingLocalization
Dictionary Key Type: string
setByDefault
If true, this setting should be set by default if the user hasn't chosen whether it's set or cleared yet.
Type: boolean
optInAggregateValue
The OptInFlags value to set or clear if this setting is set or cleared in the UI. It is the aggregate of all underlying opt-in flags related to this setting.
Type: int64
subscriptions
The subscriptions to show as children of this setting, if any.
Type: array

GlobalAlert

Type: object
Object Properties
AlertKey
Type: string
AlertHtml
Type: string
AlertTimestamp
Type: date-time
AlertLink
Type: string
AlertLevel
Type: int32
AlertType
Type: int32
StreamInfo
See: StreamInfo

GlobalAlertLevel

Enumeration
Type: int32
Valid Enum Values
  • Unknown: 0
  • Blue: 1
  • Yellow: 2
  • Red: 3

GlobalAlertType

Enumeration
Type: int32
Valid Enum Values
  • GlobalAlert: 0
  • StreamingAlert: 1

StreamInfo

Type: object
Object Properties
ChannelName
Type: string