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 1 Inventory and Vault contents. For Destiny 2, this scope is needed to read anything regarded as private. This is the only scope a Destiny 2 app needs for read operations against Destiny 2 data such as inventory, vault, currency, vendors, milestones, progression, etc.
  • ReadUserData
    Read user data such as who they are web notifications, clan/group memberships, recent activity, muted users.
  • EditUserData
    Edit user data such as preferred language, status, motto, avatar selection and theme.
  • ReadDestinyVendorsAndAdvisors
    Access vendor and advisor data specific to a user. OBSOLETE. This scope is only used on the Destiny 1 API.
  • ReadAndApplyTokens
    Read offer history and claim and apply tokens for the user.
  • AdvancedWriteActions
    Can perform actions that will result in a prompt to the user via the Destiny app.

Contents - Endpoints (Grouped by Tag)

GroupV2

Destiny2

Contents - Entities

Endpoints

App.GetApplicationApiUsage

App

Verb: GET

Path: /App/ApiUsage/{applicationId}/

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

Required Scope(s)

  • oauth2: ReadUserData

Path Parameters

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

Querystring Parameters

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

Response

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

App.GetBungieApplications

App

Verb: GET

Path: /App/FirstParty/

Get list of applications created by Bungie.

Response

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

User.GetBungieNetUserById

User

Verb: GET

Path: /User/GetBungieNetUserById/{id}/

Loads a bungienet user by membership id.

Path Parameters

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

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
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: int64
  • 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: int64
  • 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: int64

Querystring Parameters

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

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
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: int64

Querystring Parameters

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

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
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

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

Destiny2

Verb: GET

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

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

Path Parameters

  • characterId
    The Destiny Character ID of the character for whom we're getting vendor info.
    Type: int64
  • destinyMembershipId
    Destiny membership ID of another user. You may be denied.
    Type: int64
  • membershipType
    A valid non-BungieNet membership type.

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 all requested vendors.
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.GetVendor

Destiny2

Verb: GET

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

Get the details of a specific Vendor.

Path Parameters

  • characterId
    The Destiny Character ID of the character for whom we're getting vendor info.
    Type: int64
  • destinyMembershipId
    Destiny membership ID of another user. You may be denied.
    Type: int64
  • membershipType
    A valid non-BungieNet membership type.
  • 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.PullFromPostmaster

Destiny2

Verb: POST

Path: /Destiny2/Actions/Items/PullFromPostmaster/

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

Required Scope(s)

  • oauth2: MoveEquipDestinyItems

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int32
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. Request must include proof of permission for 'InsertPlugs' from the account owner.

Required Scope(s)

  • oauth2: AdvancedWriteActions

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
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.ReportOffensivePostGameCarnageReportPlayer

Destiny2

Verb: POST

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

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

Required Scope(s)

  • oauth2: BnetWrite

Path Parameters

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

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
Response
Type: int32
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

Destiny2

Verb: GET

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

Gets a page list of Destiny items.

Path Parameters

  • searchTerm
    The string to use when searching for Destiny entities.
    Type: string
  • type
    The type of entity for whom you would like results. These correspond to the entity's definition contract name. For instance, if you are looking for items, this property should be 'DestinyInventoryItemDefinition'.
    Type: string

Querystring Parameters

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

Response

The results of a search for Destiny content. This will be improved on over time, I've been doing some experimenting to see what might be useful.
Content Type: application/json
Type: object
Object Properties
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string

Destiny2.GetHistoricalStats

Destiny2

Verb: GET

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

Gets historical stats for indicated character.

Path Parameters

  • characterId
    The id of the character to retrieve. You can omit this character ID or set it to 0 to get aggregate stats across all characters.
    Type: int64
  • destinyMembershipId
    The Destiny membershipId of the user to retrieve.
    Type: int64
  • membershipType
    A valid non-BungieNet membership type.

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

Destiny2

Verb: GET

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

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

Path Parameters

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

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

Destiny2

Verb: GET

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

Gets activity history stats for indicated character.

Path Parameters

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

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

Destiny2

Verb: GET

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

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

Path Parameters

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

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

Destiny2

Verb: GET

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

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

Path Parameters

  • characterId
    The specific character whose activities should be returned.
    Type: int64
  • destinyMembershipId
    The Destiny membershipId of the user to retrieve.
    Type: int64
  • membershipType
    A valid non-BungieNet membership type.

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

Destiny2.AwaInitializeRequest

Destiny2

Verb: POST

Path: /Destiny2/Awa/Initialize/

Initialize a request to perform an advanced write action.

Required Scope(s)

  • oauth2: AdvancedWriteActions

Response

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

Destiny2.AwaProvideAuthorizationResult

Destiny2

Verb: POST

Path: /Destiny2/Awa/AwaProvideAuthorizationResult/

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

Response

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

Destiny2.AwaGetActionToken

Destiny2

Verb: GET

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

Returns the action token if user approves the request.

Required Scope(s)

  • oauth2: AdvancedWriteActions

Path Parameters

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

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
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

Fireteam.GetActivePrivateClanFireteamCount

Fireteam

Verb: GET

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

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

Required Scope(s)

  • oauth2: ReadGroups

Path Parameters

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

Response

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

Fireteam.GetAvailableClanFireteams

Fireteam

Verb: GET

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

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

Required Scope(s)

  • oauth2: ReadGroups

Path Parameters

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

Fireteam.SearchPublicAvailableClanFireteams

Fireteam

Verb: GET

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

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

Required Scope(s)

  • oauth2: ReadGroups

Path Parameters

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

Fireteam.GetMyClanFireteams

Fireteam

Verb: GET

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

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

Required Scope(s)

  • oauth2: ReadGroups

Path Parameters

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

Querystring Parameters

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

Response

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

Fireteam.GetClanFireteam

Fireteam

Verb: GET

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

Gets a specific clan fireteam.

Required Scope(s)

  • oauth2: ReadGroups

Path Parameters

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

Response

Look at the Response property for more information about the nature of this response
Content Type: application/json
Type: object
Object Properties
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 1 Inventory and Vault contents. For Destiny 2, this scope is needed to read anything regarded as private. This is the only scope a Destiny 2 app needs for read operations against Destiny 2 data such as inventory, vault, currency, vendors, milestones, progression, etc.
  • ReadUserData: 128
    Read user data such as who they are web notifications, clan/group memberships, recent activity, muted users.
  • EditUserData: 256
    Edit user data such as preferred language, status, motto, avatar selection and theme.
  • ReadDestinyVendorsAndAdvisors: 512
    Access vendor and advisor data specific to a user. OBSOLETE. This scope is only used on the Destiny 1 API.
  • ReadAndApplyTokens: 1024
    Read offer history and claim and apply tokens for the user.
  • AdvancedWriteActions: 2048
    Can perform actions that will result in a prompt to the user via the Destiny app.

Applications.ApiUsage

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

Dates.DateRange

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

Applications.Series

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

Applications.Datapoint

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

Applications.Application

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

Applications.OAuthApplicationType

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

Applications.ApplicationStatus

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

Applications.ApplicationDeveloper

Type: object
Object Properties
apiEulaVersion
Type: int32
user

Applications.DeveloperRole

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

User.UserMembership

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

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

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

Config.UserTheme

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

User.UserMembershipData

Type: object
Object Properties
destinyMemberships
this allows you to see destiny memberships that are visible and linked to this account (regardless of whether or not they have characters on the world server)
Type: array
Array Contents: User.UserInfoCard
bungieNetUser

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
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
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
icon
If this progression step has a specific icon related to it, this is the icon to show.
Type: string

Destiny.DestinyProgressionStepDisplayEffect

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

Destiny.DestinyItemQuantity

Used in a number of Destiny contracts to return data about an item stack and its quantity. Can optionally return an itemInstanceId if the item is instanced - in which case, the quantity returned will be 1. If it's not... uh, let me know okay? Thanks.
Type: object
Object Properties
itemHash
Mapped to Definition
The hash identifier for the item in question. Use it to look up the item's DestinyInventoryItemDefinition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
itemInstanceId
Nullable
If this quantity is referring to a specific instance of an item, this will have the item's instance ID. Normally, this will be null.
Type: int64
quantity
The amount of the item needed/available depending on the context of where DestinyItemQuantity is being used.
Type: int32

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
uiItemDisplayStyle
A string identifier that the game's UI uses to determine how the item should be rendered in inventory screens and the like. This could really be anything - at the moment, we don't have the time to really breakdown and maintain all the possible strings this could be, partly because new ones could be added ad hoc. But if you want to use it to dictate your own UI, or look for items with a certain display style, go for it!
Type: string
itemTypeAndTierDisplayName
It became a common enough pattern in our UI to show Item Type and Tier combined into a single localized string that I'm just going to go ahead and start pre-creating these for items.
Type: string
displaySource
In theory, it is a localized string telling you about how you can find the item. I really wish this was more consistent. Many times, it has nothing. Sometimes, it's instead a more narrative-forward description of the item. Which is cool, and I wish all properties had that data, but it should really be its own property.
Type: string
tooltipStyle
An identifier that the game UI uses to determine what type of tooltip to show for the item. These have no corresponding definitions that BNet can link to: so it'll be up to you to interpret and display your UI differently according to these styles (or ignore it).
Type: string
action
If the item can be "used", this block will be non-null, and will have data related to the action performed when using the item. (Guess what? 99% of the time, this action is "dismantle". Shocker)
Type: object
inventory
If this item can exist in an inventory, this block will be non-null. In practice, every item that currently exists has one of these blocks. But note that it is not necessarily guaranteed.
Type: object
setData
If this item is a quest, this block will be non-null. In practice, I wish I had called this the Quest block, but at the time it wasn't clear to me whether it would end up being used for purposes other than quests. It will contain data about the steps in the quest, and mechanics we can use for displaying and tracking the quest.
Type: object
stats
If this item can have stats (such as a weapon, armor, or vehicle), this block will be non-null and populated with the stats found on the item.
Type: object
emblemObjectiveHash
Nullable
If the item is an emblem that has a special Objective attached to it - for instance, if the emblem tracks PVP Kills, or what-have-you. This is a bit different from, for example, the Vanguard Kill Tracker mod, which pipes data into the "art channel". When I get some time, I would like to standardize these so you can get at the values they expose without having to care about what they're being used for and how they are wired up, but for now here's the raw data.
Type: uint32
equippingBlock
If this item can be equipped, this block will be non-null and will be populated with the conditions under which it can be equipped.
Type: object
translationBlock
If this item can be rendered, this block will be non-null and will be populated with rendering information.
Type: object
preview
If this item can be Used or Acquired to gain other items (for instance, how Eververse Boxes can be consumed to get items from the box), this block will be non-null and will give summary information for the items that can be acquired.
Type: object
quality
If this item can have a level or stats, this block will be non-null and will be populated with default quality (item level, "quality", and infusion) data. See the block for more details, there's often less upfront information in D2 so you'll want to be aware of how you use quality and item level on the definition level now.
Type: object
value
The conceptual "Value" of an item, if any was defined. See the DestinyItemValueBlockDefinition for more details.
Type: object
sourceData
If this item has a known source, this block will be non-null and populated with source information. Unfortunately, at this time we are not generating sources: that is some aggressively manual work which we didn't have time for, and I'm hoping to get back to at some point in the future.
Type: object
objectives
If this item has Objectives (extra tasks that can be accomplished related to the item... most frequently when the item is a Quest Step and the Objectives need to be completed to move on to the next Quest Step), this block will be non-null and the objectives defined herein.
Type: object
plug
If this item *is* a Plug, this will be non-null and the info defined herein. See DestinyItemPlugDefinition for more information.
Type: object
gearset
If this item has related items in a "Gear Set", this will be non-null and the relationships defined herein.
Type: object
sack
If this item is a "reward sack" that can be opened to provide other items, this will be non-null and the properties of the sack contained herein.
Type: object
sockets
If this item has any Sockets, this will be non-null and the individual sockets on the item will be defined herein.
Type: object
summary
Summary data about the item.
Type: object
talentGrid
If the item has a Talent Grid, this will be non-null and the properties of the grid defined herein. Note that, while many items still have talent grids, the only ones with meaningful Nodes still on them will be Subclass/"Build" items.
Type: object
investmentStats
If the item has stats, this block will be defined. It has the "raw" investment stats for the item. These investment stats don't take into account the ways that the items can spawn, nor do they take into account any Stat Group transformations. I have retained them for debugging purposes, but I do not know how useful people will find them.
Type: array
perks
If the item has any *intrinsic* Perks (Perks that it will provide regardless of Sockets, Talent Grid, and other transitory state), they will be defined here.
Type: array
loreHash
Nullable Mapped to Definition
If the item has any related Lore (DestinyLoreDefinition), this will be the hash identifier you can use to look up the lore definition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.Lore.DestinyLoreDefinition
summaryItemHash
Nullable Mapped to Definition
There are times when the game will show you a "summary/vague" version of an item - such as a description of its type represented as a DestinyInventoryItemDefinition - rather than display the item itself. This happens sometimes when summarizing possible rewards in a tooltip. This is the item displayed instead, if it exists.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
animations
If any animations were extracted from game content for this item, these will be the definitions of those animations.
Type: array
allowActions
BNet may forbid the execution of actions on this item via the API. If that is occurring, allowActions will be set to false.
Type: boolean
links
If we added any help or informational URLs about this item, these will be those links.
Type: array
Array Contents: Links.HyperlinkReference
doesPostmasterPullHaveSideEffects
The boolean will indicate to us (and you!) whether something *could* happen when you transfer this item from the Postmaster that might be considered a "destructive" action. It is not feasible currently to tell you (or ourelves!) in a consistent way whether this *will* actually cause a destructive action, so we are playing it safe: if it has the potential to do so, we will not allow it to be transferred from the Postmaster by default. You will need to check for this flag before transferring an item from the Postmaster, or else you'll end up receiving an error.
Type: boolean
nonTransferrable
The intrinsic transferability of an item. I hate that this boolean is negative - but there's a reason. Just because an item is intrinsically transferrable doesn't mean that it can be transferred, and we don't want to imply that this is the only source of that transferability.
Type: boolean
itemCategoryHashes
Mapped to Definition
BNet attempts to make a more formal definition of item "Categories", as defined by DestinyItemCategoryDefinition. This is a list of all Categories that we were able to algorithmically determine that this item is a member of. (for instance, that it's a "Weapon", that it's an "Auto Rifle", etc...) The algorithm for these is, unfortunately, volatile. If you believe you see a miscategorized item, please let us know on the Bungie API forums.
Type: array
Array Contents: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyItemCategoryDefinition
specialItemType
In Destiny 1, we identified some items as having particular categories that we'd like to know about for various internal logic purposes. These are defined in SpecialItemType, and while these days the itemCategoryHashes are the preferred way of identifying types, we have retained this enum for its convenience.
Type: 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
disablePrimaryStatDisplay
If true, the game won't show the "primary" stat on this item when you inspect it. NOTE: This is being manually mapped, because I happen to want it in a block that isn't going to directly create this derivative block.
Type: boolean
statGroupHash
Nullable Mapped to Definition
If the item's stats are meant to be modified by a DestinyStatGroupDefinition, this will be the identifier for that definition. If you are using live data or precomputed stats data on the DestinyInventoryItemDefinition.stats.stats property, you don't have to worry about statGroupHash and how it alters stats: the already altered stats are provided to you. But if you want to see how the sausage gets made, or perform computations yourself, this is valuable information.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyStatGroupDefinition
stats
Mapped to Definition
If you are looking for precomputed values for the stats on a weapon, this is where they are stored. Technically these are the "Display" stat values. Please see DestinyStatsDefinition for what Display Stat Values means, it's a very long story... but essentially these are the closest values BNet can get to the item stats that you see in-game. These stats are keyed by the DestinyStatDefinition's hash identifier for the stat that's found on the item.
Type: object
Dictionary Key Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyStatDefinition
hasDisplayableStats
A quick and lazy way to determine whether any stat other than the "primary" stat is actually visible on the item. Items often have stats that we return in case people find them useful, but they're not part of the "Stat Group" and thus we wouldn't display them in our UI. If this is False, then we're not going to display any of these stats other than the primary one.
Type: boolean
primaryBaseStatHash
Mapped to Definition
This stat is determined to be the "primary" stat, and can be looked up in the stats or any other stat collection related to the item. Use this hash to look up the stat's value using DestinyInventoryItemDefinition.stats.stats, and the renderable data for the primary stat in the related DestinyStatDefinition.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyStatDefinition

Destiny.Definitions.DestinyInventoryItemStatDefinition

Defines a specific stat value on an item, and the minimum/maximum range that we could compute for the item based on our heuristics for how the item might be generated. Not guaranteed to match real-world instances of the item, but should hopefully at least be close. If it's not close, let us know on the Bungie API forums.
Type: object
Object Properties
statHash
Mapped to Definition
The hash for the DestinyStatDefinition representing this stat.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyStatDefinition
value
This value represents the stat value assuming the minimum possible roll but accounting for any mandatory bonuses that should be applied to the stat on item creation. In Destiny 1, this was different from the "minimum" value because there were certain conditions where an item could be theoretically lower level/value than the initial roll. In Destiny 2, this is not possible unless Talent Grids begin to be used again for these purposes or some other system change occurs... thus in practice, value and minimum should be the same in Destiny 2. Good riddance.
Type: int32
minimum
The minimum possible value for this stat that we think the item can roll.
Type: int32
maximum
The maximum possible value for this stat that we think the item can roll. WARNING: In Destiny 1, this field was calculated using the potential stat rolls on the item's talent grid. In Destiny 2, items no longer have meaningful talent grids and instead have sockets: but the calculation of this field was never altered to adapt to this change. As such, this field should be considered deprecated until we can address this oversight.
Type: int32

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
statCategory
The category of the stat, according to the game.
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.DestinyStatAggregationType

Enumeration
When a Stat (DestinyStatDefinition) is aggregated, this is the rules used for determining the level and formula used for aggregation. * CharacterAverage = apply a weighted average using the related DestinyStatGroupDefinition on the DestinyInventoryItemDefinition across the character's equipped items. See both of those definitions for details. * Character = don't aggregate: the stat should be located and used directly on the character. * Item = don't aggregate: the stat should be located and used directly on the item.
Type: int32
Valid Enum Values
  • CharacterAverage: 0
  • Character: 1
  • Item: 2

Destiny.DestinyStatCategory

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

Destiny.Definitions.DestinyStatGroupDefinition

Mobile Manifest Entity
When an inventory item (DestinyInventoryItemDefinition) has Stats (such as Attack Power), the item will refer to a Stat Group. This definition enumerates the properties used to transform the item's "Investment" stats into "Display" stats. See DestinyStatDefinition's documentation for information about the transformation of Stats, and the meaning of an Investment vs. a Display stat. If you don't want to do these calculations on your own, fear not: pulling live data from the BNet endpoints will return display stat values pre-computed and ready for you to use. I highly recommend this approach, saves a lot of time and also accounts for certain stat modifiers that can't easily be accounted for without live data (such as stat modifiers on Talent Grids and Socket Plugs)
Mapped to Mobile Manifest Table: StatGroups
Type: object
Object Properties
maximumValue
The maximum possible value that any stat in this group can be transformed into. This is used by stats that *don't* have scaledStats entries below, but that still need to be displayed as a progress bar, in which case this is used as the upper bound for said progress bar. (the lower bound is always 0)
Type: int32
uiPosition
This apparently indicates the position of the stats in the UI? I've returned it in case anyone can use it, but it's not of any use to us on BNet. Something's being lost in translation with this value.
Type: int32
scaledStats
Any stat that requires scaling to be transformed from an "Investment" stat to a "Display" stat will have an entry in this list. For more information on what those types of stats mean and the transformation process, see DestinyStatDefinition. In retrospect, I wouldn't mind if this was a dictionary keyed by the stat hash instead. But I'm going to leave it be because [[After Apple Picking]].
Type: array
overrides
The game has the ability to override, based on the stat group, what the localized text is that is displayed for Stats being shown on the item. Mercifully, no Stat Groups use this feature currently. If they start using them, we'll all need to start using them (and those of you who are more prudent than I am can go ahead and start pre-checking for this.)
Type: object
Dictionary Key Type: uint32
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally. When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyStatDisplayDefinition

Describes the way that an Item Stat (see DestinyStatDefinition) is transformed using the DestinyStatGroupDefinition related to that item. See both of the aforementioned definitions for more information about the stages of stat transformation. This represents the transformation of a stat into a "Display" stat (the closest value that BNet can get to the in-game display value of the stat)
Type: object
Object Properties
statHash
Mapped to Definition
The hash identifier for the stat being transformed into a Display stat. Use it to look up the DestinyStatDefinition, or key into a DestinyInventoryItemDefinition's stats property.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyStatDefinition
maximumValue
Regardless of the output of interpolation, this is the maximum possible value that the stat can be. It should also be used as the upper bound for displaying the stat as a progress bar (the minimum always being 0)
Type: int32
displayAsNumeric
If this is true, the stat should be displayed as a number. Otherwise, display it as a progress bar. Or, you know, do whatever you want. There's no displayAsNumeric police.
Type: boolean
displayInterpolation
The interpolation table representing how the Investment Stat is transformed into a Display Stat. See DestinyStatDefinition for a description of the stages of stat transformation.
Type: array

Interpolation.InterpolationPoint

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

Destiny.Definitions.DestinyStatOverrideDefinition

Stat Groups (DestinyStatGroupDefinition) has the ability to override the localized text associated with stats that are to be shown on the items with which they are associated. This defines a specific overridden stat. You could theoretically check these before rendering your stat UI, and for each stat that has an override show these displayProperties instead of those on the DestinyStatDefinition. Or you could be like us, and skip that for now because the game has yet to actually use this feature. But know that it's here, waiting for a resilliant young designer to take up the mantle and make us all look foolish by showing the wrong name for stats. Note that, if this gets used, the override will apply only to items using the overriding Stat Group. Other items will still show the default stat's name/description.
Type: object
Object Properties
statHash
Mapped to Definition
The hash identifier of the stat whose display properties are being overridden.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyStatDefinition
displayProperties
The display properties to show instead of the base DestinyStatDefinition display properties.
Type: object

Destiny.Definitions.DestinyEquippingBlockDefinition

Items that can be equipped define this block. It contains information we need to understand how and when the item can be equipped.
Type: object
Object Properties
gearsetItemHash
Nullable Mapped to Definition
If the item is part of a gearset, this is a reference to that gearset item.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
uniqueLabel
If defined, this is the label used to check if the item has other items of matching types already equipped. For instance, when you aren't allowed to equip more than one Exotic Weapon, that's because all exotic weapons have identical uniqueLabels and the game checks the to-be-equipped item's uniqueLabel vs. all other already equipped items (other than the item in the slot that's about to be occupied).
Type: string
uniqueLabelHash
The hash of that unique label. Does not point to a specific definition.
Type: uint32
equipmentSlotTypeHash
Mapped to Definition
An equipped item *must* be equipped in an Equipment Slot. This is the hash identifier of the DestinyEquipmentSlotDefinition into which it must be equipped.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyEquipmentSlotDefinition
attributes
These are custom attributes on the equippability of the item. For now, this can only be "equip on acquire", which would mean that the item will be automatically equipped as soon as you pick it up.
Type: 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

Mobile Manifest Entity
Characters can not only have Inventory buckets (containers of items that are generally matched by their type or functionality), they can also have Equipment Slots. The Equipment Slot is an indicator that the related bucket can have instanced items equipped on the character. For instance, the Primary Weapon bucket has an Equipment Slot that determines whether you can equip primary weapons, and holds the association between its slot and the inventory bucket from which it can have items equipped. An Equipment Slot must have a related Inventory Bucket, but not all inventory buckets must have Equipment Slots.
Mapped to Mobile Manifest Table: EquipmentSlots
Type: object
Object Properties
equipmentCategoryHash
These technically point to "Equipment Category Definitions". But don't get excited. There's nothing of significant value in those definitions, so I didn't bother to expose them. You can use the hash here to group equipment slots by common functionality, which serves the same purpose as if we had the Equipment Category definitions exposed.
Type: uint32
bucketTypeHash
Mapped to Definition
The inventory bucket that owns this equipment slot.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryBucketDefinition
applyCustomArtDyes
If True, equipped items should have their custom art dyes applied when rendering the item. Otherwise, custom art dyes on an item should be ignored if the item is equipped in this slot.
Type: boolean
artDyeChannels
The Art Dye Channels that apply to this equipment slot.
Type: array
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally. When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyArtDyeReference

Type: object
Object Properties
artDyeChannelHash
Type: uint32

Destiny.Definitions.DestinyItemTranslationBlockDefinition

This Block defines the rendering data associated with the item, if any.
Type: object
Object Properties
weaponPatternIdentifier
Type: string
weaponPatternHash
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
screenStyle
A string that the game UI uses as a hint for which detail screen to show for the item. You, too, can leverage this for your own custom screen detail views. Note, however, that these are arbitrarily defined by designers: there's no guarantees of a fixed, known number of these - so fall back to something reasonable if you don't recognize it.
Type: string
previewVendorHash
Mapped to Definition
If the preview data is derived from a fake "Preview" Vendor, this will be the hash identifier for the DestinyVendorDefinition of that fake vendor.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyVendorDefinition
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
vendorSubcategoryIdentifier
The identifier of the VendorCategoryDefinition for this vendor's subcategory.
Type: string
consolidateCategories
If TRUE, consolidate categories that only differ by trivial properties (such as having minor differences in name)
Type: boolean
actions
Describes "actions" that can be performed on a vendor. Currently, none of these exist. But theoretically a Vendor could let you interact with it by performing actions. We'll see what these end up looking like if they ever get used.
Type: array
categories
These are the headers for sections of items that the vendor is selling. When you see items organized by category in the header, it is these categories that it is showing. Well, technically not *exactly* these. On BNet, it doesn't make sense to have categories be "paged" as we do in Destiny, so we run some heuristics to attempt to aggregate pages of categories together. These are the categories post-concatenation, if the vendor had concatenation applied. If you want the pre-aggregated category data, use originalCategories.
Type: array
originalCategories
See the categories property for a description of categories and why originalCategories exists.
Type: array
displayCategories
Display Categories are different from "categories" in that these are specifically for visual grouping and display of categories in Vendor UI. The "categories" structure is for validation of the contained items, and can be categorized entirely separately from "Display Categories", there need be and often will be no meaningful relationship between the two.
Type: array
interactions
In addition to selling items, vendors can have "interactions": UI where you "talk" with the vendor and they offer you a reward, some item, or merely acknowledge via dialog that you did something cool.
Type: array
inventoryFlyouts
If the vendor shows you items from your own inventory - such as the Vault vendor does - this data describes the UI around showing those inventory buckets and which ones get shown.
Type: array
itemList
If the vendor sells items (or merely has a list of items to show like the "Sack" vendors do), this is the list of those items that the vendor can sell. From this list, only a subset will be available from the vendor at any given time, selected randomly and reset on the vendor's refresh interval. Note that a vendor can sell the same item multiple ways: for instance, nothing stops a vendor from selling you some specific weapon but using two different currencies, or the same weapon at multiple "item levels".
Type: array
services
BNet doesn't use this data yet, but it appears to be an optional list of flavor text about services that the Vendor can provide.
Type: array
acceptedItems
If the Vendor is actually a vehicle for the transferring of items (like the Vault and Postmaster vendors), this defines the list of source->destination buckets for transferring.
Type: array
returnWithVendorRequest
As many of you know, Vendor data has historically been pretty brutal on the BNet servers. In an effort to reduce this workload, only Vendors with this flag set will be returned on Vendor requests. This allows us to filter out Vendors that don't dynamic data that's particularly useful: things like "Preview/Sack" vendors, for example, that you can usually suss out the details for using just the definitions themselves.
Type: boolean
locations
A vendor can be at different places in the world depending on the game/character/account state. This is the list of possible locations for the vendor, along with conditions we use to determine which one is currently active.
Type: array
groups
A vendor can be a part of 0 or 1 "groups" at a time: a group being a collection of Vendors related by either location or function/purpose. It's used for our our Companion Vendor UI. Only one of these can be active for a Vendor at a time.
Type: array
hash
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally. When entities refer to each other in Destiny content, it is this hash that they are referring to.
Type: uint32
index
The index of the entity as it was found in the investment tables.
Type: int32
redacted
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
Type: boolean

Destiny.Definitions.DestinyVendorDisplayPropertiesDefinition

Type: object
Object Properties
largeIcon
I regret calling this a "large icon". It's more like a medium-sized image with a picture of the vendor's mug on it, trying their best to look cool. Not what one would call an icon.
Type: string
subtitle
Type: string
originalIcon
If we replaced the icon with something more glitzy, this is the original icon that the vendor had according to the game's content. It may be more lame and/or have less razzle-dazzle. But who am I to tell you which icon to use.
Type: string
requirementsDisplay
Vendors, in addition to expected display property data, may also show some "common requirements" as statically defined definition data. This might be when a vendor accepts a single type of currency, or when the currency is unique to the vendor and the designers wanted to show that currency when you interact with the vendor.
Type: array
smallTransparentIcon
This is the icon used in parts of the game UI such as the vendor's waypoint.
Type: string
mapIcon
This is the icon used in the map overview, when the vendor is located on the map.
Type: string
largeTransparentIcon
This is apparently the "Watermark". I am not certain offhand where this is actually used in the Game UI, but some people may find it useful.
Type: string
description
Type: string
name
Type: string
icon
Note that "icon" is sometimes misleading, and should be interpreted in the context of the entity. For instance, in Destiny 1 the DestinyRecordBookDefinition's icon was a big picture of a book. But usually, it will be a small square image that you can use as... well, an icon.
Type: string
hasIcon
Type: boolean

Destiny.Definitions.DestinyVendorRequirementDisplayEntryDefinition

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

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

Destiny.Definitions.DestinyVendorCategoryOverlayDefinition

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

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
displayCategoryHash
Type: uint32
displayInBanner
If true, this category should be displayed in the "Banner" section of the vendor's UI.
Type: boolean
progressionHash
Nullable Mapped to Definition
If it exists, this is the hash identifier of a DestinyProgressionDefinition that represents the progression to show on this display category. Specific categories can now have thier own distinct progression, apparently. So that's cool.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyProgressionDefinition
sortOrder
If this category sorts items in a nonstandard way, this will be the way we sort.
Type: object
displayStyleHash
Nullable
An indicator of how the category will be displayed in the UI. It's up to you to do something cool or interesting in response to this, or just to treat it as a normal category.
Type: uint32
displayStyleIdentifier
An indicator of how the category will be displayed in the UI. It's up to you to do something cool or interesting in response to this, or just to treat it as a normal category.
Type: string

Destiny.VendorDisplayCategorySortOrder

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

Destiny.Definitions.DestinyVendorInteractionDefinition

A Vendor Interaction is a dialog shown by the vendor other than sale items or transfer screens. The vendor is showing you something, and asking you to reply to it by choosing an option or reward.
Type: object
Object Properties
replies
The potential replies that the user can make to the interaction.
Type: array
vendorCategoryIndex
If >= 0, this is the category of sale items to show along with this interaction dialog.
Type: int32
questlineItemHash
Mapped to Definition
If this interaction dialog is about a quest, this is the questline related to the interaction. You can use this to show the quest overview, or even the character's status with the quest if you use it to find the character's current Quest Step by checking their inventory against this questlineItemHash's DestinyInventoryItemDefinition.setData.
Type: uint32
Mapped to Manifest Database Definition: Destiny.Definitions.DestinyInventoryItemDefinition
sackInteractionList
If this interaction is meant to show you sacks, this is the list of types of sacks to be shown. If empty, the interaction is not meant to show sacks.
Type: array
uiInteractionType
A UI hint for the behavior of the interaction screen. This is useful to determine what type of interaction is occurring, such as a prompt to receive a rank up reward or a prompt to choose a reward for completing a quest. The hash isn't as useful as the Enum in retrospect, well what can you do. Try using interactionType instead.
Type: uint32
interactionType
The enumerated version of the possible UI hints for vendor interactions, which is a little easier to grok than the hash found in uiInteractionType.
Type: object
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.VendorInteractionType

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

Destiny.Definitions.DestinyVendorInventoryFlyoutDefinition

The definition for an "inventory flyout": a UI screen where we show you part of an otherwise hidden vendor inventory: like the Vault inventory buckets.
Type: object
Object Properties
lockedDescription
If the flyout is locked, this is the reason why.
Type: string
displayProperties
The title and other common properties of the flyout.
Type: object
buckets
A list of inventory buckets and other metadata to show on the screen.
Type: array
flyoutId
An identifier for the flyout, in case anything else needs to refer to them.
Type: uint32
suppressNewness
If this is true, don't show any of the glistening "this is a new item" UI elements, like we show on the inventory items themselves in in-game UI.
Type: boolean

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. The somewhat crappy part about this is that, now that item quantity overrides have dynamic modifiers, this will not necessarily be statically true. If you were using this instead of live data, switch to using live data.
Type: array
refundPolicy
If this item can be refunded, this is the policy for what will be refundd, how, and in what time period.
Type: 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
exclusivity
If this item can only be purchased by a given platform, this indicates the platform to which it is restricted.
Type: object
isOffer
Nullable
If this sale can only be performed as the result of an offer check, this is true.
Type: boolean
isCrm
Nullable
If this sale can only be performed as the result of receiving a CRM offer, this is true.
Type: boolean
sortValue
*if* the category this item is in supports non-default sorting, this value should represent the sorting value to use, pre-processed and ready to go.
Type: int32