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.
  • MoveEquipDestinyItems
    Move or equip Destiny items
  • ReadDestinyInventoryAndVault
    Read Destiny Inventory and Vault contents.
  • 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.
  • ReadAndApplyTokens
    Read offer history and claim and apply tokens for the user.

Contents - Endpoints (Grouped by Tag)

GroupV2

Destiny2

Contents - Entities

Endpoints

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

User.GetUserAliases

User

Verb: GET

Path: /User/GetUserAliases/{id}/

Loads aliases of a bungienet 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
Type: array
Array Contents: User.Models.UserAlias
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

User.SearchUsers

User

Verb: GET

Path: /User/SearchUsers/

Returns a list of possible users based on the search string

Querystring Parameters

  • q
    The search string.
    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
Array Contents: User.GeneralUser
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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.

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

User.GetPartnerships

User

Verb: GET

Path: /User/{membershipId}/Partnerships/

Returns a user's linked Partnerships.

Path Parameters

  • membershipId
    The ID of the member for whom partnerships should be returned.
    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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

Forum.GetTopicsPaged

Forum

Verb: GET

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

Get topics from any forum.

Path Parameters

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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: uint64
  • replySize
    Type: int32
  • rootThreadMode
    Type: boolean
  • sortMode

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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: uint64
  • page
    Type: int32
  • pageSize
    Type: int32
  • replySize
    Type: int32
  • rootThreadMode
    Type: boolean
  • sortMode

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

Forum.GetPostAndParent

Forum

Verb: GET

Path: /Forum/GetPostAndParent/{childPostId}/

Returns the post specified and its immediate parent.

Path Parameters

  • childPostId
    Type: uint64

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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: uint64

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

Forum.JoinFireteamThread

Forum

Verb: POST

Path: /Forum/Recruit/Join/{topicId}/

Allows a user to slot themselves into a recruitment thread fireteam slot. Returns the new state of the fireteam.

Required Scope(s)

  • oauth2: WriteGroups
  • oauth2: BnetWrite

Path Parameters

  • topicId
    The post id of the recruitment topic you wish to join.
    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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

Forum.LeaveFireteamThread

Forum

Verb: POST

Path: /Forum/Recruit/Leave/{topicId}/

Allows a user to remove themselves from a recruitment thread fireteam slot. Returns the new state of the fireteam.

Required Scope(s)

  • oauth2: WriteGroups
  • oauth2: BnetWrite

Path Parameters

  • topicId
    The post id of the recruitment topic you wish 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

Forum.KickBanFireteamApplicant

Forum

Verb: POST

Path: /Forum/Recruit/KickBan/{topicId}/{targetMembershipId}/

Allows a recruitment thread owner to kick a join user from the fireteam. Returns the new state of the fireteam.

Required Scope(s)

  • oauth2: WriteGroups
  • oauth2: BnetWrite

Path Parameters

  • targetMembershipId
    The id of the user you wish to kick.
    Type: int64
  • topicId
    The post id of the recruitment topic you wish to join.
    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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

Forum.ApproveFireteamThread

Forum

Verb: POST

Path: /Forum/Recruit/Approve/{topicId}/

Allows the owner of a fireteam thread to approve all joined members and start a private message conversation with them.

Required Scope(s)

  • oauth2: WriteGroups
  • oauth2: BnetWrite

Path Parameters

  • topicId
    The post id of the recruitment topic to approve.
    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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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.

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

GroupV2.SetUserClanInviteSetting

GroupV2

Verb: POST

Path: /GroupV2/SetUserClanInviteSetting/{mType}/{allowInvites}/

Sets the state of the user's clan invite preferences - true if they wish to be invited to clans, false otherwise.

Required Scope(s)

  • oauth2: EditUserData

Path Parameters

  • allowInvites
    True to allow invites of this user to clans, false otherwise.
    Type: boolean
  • mType
    The Destiny membership type of linked account we are manipulating.

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
    The date range of activity of groups for which we should search. Is that proper grammar I don't know
  • groupType
    The type of group to get.

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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.

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

GroupV2.CreateGroup

GroupV2

Verb: POST

Path: /GroupV2/Create/

Create a new group.

Required Scope(s)

  • oauth2: BnetWrite

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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.
  • 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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.
  • memberType
    New membertype for the specified member.

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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.

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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.

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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.

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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.

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

GroupV2.RequestGroupMembership

GroupV2

Verb: POST

Path: /GroupV2/{groupId}/Members/Apply/{membershipType}/

Request permission to join the given group.

Required Scope(s)

  • oauth2: BnetWrite

Path Parameters

  • groupId
    ID of the group you would like to join.
    Type: int64
  • membershipType
    MembershipType of the account to use when joining.

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

GroupV2.RescindGroupMembership

GroupV2

Verb: POST

Path: /GroupV2/{groupId}/Members/Rescind/{membershipType}/

Rescind your application to join the given group or leave the group if you are already a member..

Required Scope(s)

  • oauth2: BnetWrite

Path Parameters

  • groupId
    ID of the group.
    Type: int64
  • membershipType
    MembershipType of the account to leave.

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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.

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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.

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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.

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

Destiny2.SearchDestinyPlayer

Destiny2

Verb: GET

Path: /Destiny2/SearchDestinyPlayer/{membershipType}/{displayName}/

Returns a list of Destiny memberships given a full Gamertag or PSN ID.

Path Parameters

  • displayName
    The full gamertag or PSN id of the player. Spaces and case are ignored.
    Type: string
  • membershipType
    A valid non-BungieNet membership type, or All.

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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.

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

Response

The response for GetDestinyProfile, with components for character and item-level data.
Content Type: application/json
Type: object
Object Properties
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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.

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

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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.

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

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

Destiny2.GetVendors

Preview - Not Ready for Release Destiny2 Preview

Verb: GET

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

Get currently available vendors. PREVIEW: This service is not yet active, but we are returning the planned schema of the endpoint for review, comment, and preparation for its eventual implementation.

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.

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

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

Destiny2.GetVendor

Preview - Not Ready for Release Destiny2 Preview

Verb: GET

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

Get the details of a specific Vendor. PREVIEW: This service is not yet active, but we are returning the planned schema of the endpoint for review, comment, and preparation for its eventual implementation.

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

Response

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

Destiny2.TransferItem

Destiny2

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

Destiny2.EquipItem

Destiny2

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

Destiny2.EquipItems

Destiny2

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

Destiny2.SetItemLockState

Destiny2

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

Destiny2.InsertSocketPlug

Preview - Not Ready for Release Destiny2 Preview

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. PREVIEW: This service is not yet active, but we are returning the planned schema of the endpoint for review, comment, and preparation for its eventual implementation.

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

Destiny2.ActivateTalentNode

Preview - Not Ready for Release Destiny2 Preview

Verb: POST

Path: /Destiny2/Actions/Items/ActivateTalentNode/

Activate a Talent Node. Chill out, everyone: we haven't decided yet whether this will be able to activate nodes with costs, but if we do it will require special scope permission for an application attempting to do so. You must have a valid Destiny Account, and either be in a social space, in orbit, or offline. PREVIEW: This service is not actually implemented yet, but we are returning the planned schema of the endpoint for review, comment, and preparation for its eventual implementation.

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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.

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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.

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

Destiny2.SearchDestinyEntities

Preview - Not Ready for Release Destiny2 Preview

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

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

Destiny2.GetHistoricalStats

Preview - Not Ready for Release Destiny2 Preview

Verb: GET

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

Gets historical stats for indicated character. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.

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.

Querystring Parameters

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

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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

Destiny2.GetHistoricalStatsForAccount

Preview - Not Ready for Release Destiny2 Preview

Verb: GET

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

Gets aggregate historical stats organized around each character for a given account. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.

Path Parameters

  • destinyMembershipId
    The Destiny membershipId of the user to retrieve.
    Type: int64
  • membershipType
    A valid non-BungieNet membership type.

Querystring Parameters

Response

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

Destiny2.GetActivityHistory

Preview - Not Ready for Release Destiny2 Preview

Verb: GET

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

Gets activity history stats for indicated character. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.

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.

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.
  • 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

Destiny2.GetUniqueWeaponHistory

Preview - Not Ready for Release Destiny2 Preview

Verb: GET

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

Gets details about unique weapon usage, including all exotic weapons. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.

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.

Response

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

Destiny2.GetDestinyAggregateActivityStats

Preview - Not Ready for Release Destiny2 Preview

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

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

CommunityContent.GetCommunityContent

CommunityContent

Verb: GET

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

Returns community content.

Path Parameters

Response

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

CommunityContent.GetCommunityLiveStatuses

CommunityContent

Verb: GET

Path: /CommunityContent/Live/All/{partnershipType}/{sort}/{page}/

Returns info about community members who are live streaming.

Path Parameters

Querystring Parameters

  • modeHash
    The hash of the Activity Mode for which streams should be retrieved. Don't pass it in or pass 0 to not filter by mode.
    Type: uint32
  • streamLocale
    The locale for streams you'd like to see. Don't pass this to fall back on your BNet locale. Pass 'ALL' to not filter by locale.
    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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

CommunityContent.GetCommunityLiveStatusesForClanmates

CommunityContent

Verb: GET

Path: /CommunityContent/Live/Clan/{partnershipType}/{sort}/{page}/

Returns info about community members who are live streaming in your clans.

Path Parameters

Response

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

CommunityContent.GetCommunityLiveStatusesForFriends

CommunityContent

Verb: GET

Path: /CommunityContent/Live/Friends/{partnershipType}/{sort}/{page}/

Returns info about community members who are live streaming among your friends.

Path Parameters

Response

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

CommunityContent.GetFeaturedCommunityLiveStatuses

CommunityContent

Verb: GET

Path: /CommunityContent/Live/Featured/{partnershipType}/{sort}/{page}/

Returns info about Featured live streams.

Path Parameters

Querystring Parameters

  • streamLocale
    The locale for streams you'd like to see. Don't pass this to fall back on your BNet locale. Pass 'ALL' to not filter by locale.
    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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

CommunityContent.GetStreamingStatusForMember

CommunityContent

Verb: GET

Path: /CommunityContent/Live/Users/{partnershipType}/{membershipType}/{membershipId}/

Gets the Live Streaming status of a particular Account and Membership Type.

Path Parameters

  • membershipId
    The membershipId related to that type.
    Type: int64
  • membershipType
    The type of account for which info will be extracted.
  • partnershipType
    The type of partnership for which info will be extracted.

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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.

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key 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.
  • MoveEquipDestinyItems: 32
    Move or equip Destiny items
  • ReadDestinyInventoryAndVault: 64
    Read Destiny Inventory and Vault contents.
  • 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.
  • ReadAndApplyTokens: 1024
    Read offer history and claim and apply tokens for the user.

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

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

Ignores.IgnoreStatus

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

User.Models.UserAlias

Type: object
Object Properties
cachePrefix
Type: string

Config.UserTheme

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

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
  • TigerBlizzard: 4
  • 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.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: User.UserInfoCard
bungieNetUser

User.UserMembership

Very basic info about a user as returned by the Account server.
Type: object
Object Properties
membershipType
Type of the membership.
Type: object
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

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
membershipType
Type of the membership.
Type: object
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

Partnerships.PublicPartnershipDetail

All the partnership info that's fit to expose externally, if we care to do so.
Type: object
Object Properties
partnerType
identifier
Type: string
name
Type: string
icon
Type: string

Partnerships.PartnershipType

Enumeration
Representing external partners to which BNet users can link accounts, but that are not Account System credentials: partnerships that BNet uses exclusively for data.
Type: int32
Valid Enum Values
  • None: 0
  • Twitch: 1

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
thumbnail
Type: string
popularity
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

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

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

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

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
groupJoinInviteCount
Type: int32
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: BungieMembershipType
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: BungieMembershipType

GroupsV2.GroupV2

Type: object
Object Properties
groupId
Type: int64
name
Type: string
groupType
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
primaryAlliedGroupId
Type: int64
motto
Type: string
allowChat
Type: boolean
isDefaultPostPublic
Type: boolean
chatSecurity
locale
Type: string
avatarImageIndex
Type: int32
homepage
membershipOption
defaultPublicity
theme
Type: string
bannerPath
Type: string
avatarPath
Type: string
isAllianceOwner
Type: boolean
conversationId
Type: int64
enableInvitationMessagingForAdmins
Type: boolean
banExpireDate
Nullable
Type: date-time
features

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
membershipTypes
Type: array
Array Contents: BungieMembershipType
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: object
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: object

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: BungieMembershipType

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

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: object
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
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.
Type: string
hasIcon
Type: boolean

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

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

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
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
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
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
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
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
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: object
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: object
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: object
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: object
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: Destiny.DamageType
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: object
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
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.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.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: object

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: object
category
An enum value for what items can be found in the bucket. See the BucketCategory enum for more details.
Type: object
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: object
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

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
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.
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: object
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
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.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: object
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.Definitions.DestinyEquipmentSlotDefinition

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

This Block defines the rendering data associated with the item, if any.
Type: object
Object Properties
weaponPatternIdentifier
Type: string
weaponPatternHash
Type: uint32
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
Type: uint32
artArrangementHash
Type: uint32

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
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
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.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
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
vendorCategoryIdentifier
The identifier of the VendorCategoryDefinition for this vendor.
Type: string
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
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
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.
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

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
categoryId
The string identifier of the category.
Type: string
categoryHash
The hashed identifier for the category. (note that this is NOT pointing to a DestinyVendorCategoryDefinition, it's confusing but this is a sale item category in a vendor, not a categorization of vendors themselves)
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

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

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
identifier
A string identifier for the display category.
Type: string

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
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. BNet doesn't use this, but you can choose to.
Type: uint32
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: object
reply
The localized text for the reply.
Type: string
replyType
An enum indicating the type of reply being made.
Type: object

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

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: object

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.
Type: array
Array Contents: Destiny.DestinyItemQuantity
refundPolicy
If this item can be refunded, this is the policy for what will be refundd, how, and in what time period.
Type: object
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
The inventory bucket into which this item will be placed upon purchase.
Type: uint32
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: object
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: object

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.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.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
backgroundImagePath
The relative path to the background image, for use in a banner.
Type: string
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
rewardVendorPreviewCategoryHashes
For the faction reward vendor, the category hashes to be shown as reward previews.
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.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.
Type: string
infusionCategoryHash
The hash identifier for the infusion. It does not map to a Definition entity.
Type: 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

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: object

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

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
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.
Type: object
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
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.

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: object

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 weapons' 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: object
damageTypeHash
Nullable
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
perkGroups
An old holdover from the original Armory, this was an attempt to group perks by functionality. It is as yet unpopulated, and there will be quite a bit of work needed to restore it to its former working order.
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.DamageType

Enumeration
Type: int32
Valid Enum Values
  • None: 0
  • Kinetic: 1
  • Arc: 2
  • Thermal: 3
  • Void: 4
  • Raid: 5

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

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

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

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
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: object
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