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
DetailedErrorTrace
Type: string

App.GetBungieApplications

App

Verb: GET

Path: /App/FirstParty/

Get list of applications created by Bungie.

Response

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

User.GetBungieNetUserById

User

Verb: GET

Path: /User/GetBungieNetUserById/{id}/

Loads a bungienet user by membership id.

Path Parameters

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

Response

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

User.GetAvailableThemes

User

Verb: GET

Path: /User/GetAvailableThemes/

Returns a list of all available user themes.

Response

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

User.GetMembershipDataById

User

Verb: GET

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

Returns a list of accounts associated with the supplied membership ID and membership type. This will include all linked accounts (even when hidden) if supplied credentials permit it.

Path Parameters

  • membershipId
    The membership ID of the target user.
    Type: int64
  • membershipType
    Type of the supplied membership ID.

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
DetailedErrorTrace
Type: string

User.GetMembershipDataForCurrentUser

User

Verb: GET

Path: /User/GetMembershipsForCurrentUser/

Returns a list of accounts associated with signed in user. This is useful for OAuth implementations that do not give you access to the token response.

Required Scope(s)

  • oauth2: ReadBasicUserProfile

Response

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

Content.GetContentType

Content

Verb: GET

Path: /Content/GetContentType/{type}/

Gets an object describing a particular variant of content.

Path Parameters

  • type
    Type: string

Response

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

Content.GetContentById

Content

Verb: GET

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

Returns a content item referenced by id

Path Parameters

  • id
    Type: int64
  • locale
    Type: string

Querystring Parameters

  • head
    false
    Type: boolean

Response

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

Content.GetContentByTagAndType

Content

Verb: GET

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

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

Path Parameters

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

Querystring Parameters

  • head
    Not used.
    Type: boolean

Response

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

Content.SearchContentWithText

Content

Verb: GET

Path: /Content/Search/{locale}/

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

Path Parameters

  • locale
    Type: string

Querystring Parameters

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

Response

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

Content.SearchContentByTagAndType

Content

Verb: GET

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

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

Path Parameters

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

Querystring Parameters

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

Response

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

Forum.GetTopicsPaged

Forum

Verb: GET

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

Get topics from any forum.

Path Parameters

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
DetailedErrorTrace
Type: string

Forum.GetCoreTopicsPaged

Forum

Verb: GET

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

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

Path Parameters

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
DetailedErrorTrace
Type: string

Forum.GetPostsThreadedPaged

Forum

Verb: GET

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

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

Path Parameters

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

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
DetailedErrorTrace
Type: string

Forum.GetPostsThreadedPagedFromChild

Forum

Verb: GET

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

Returns a thread of posts starting at the topicId of the input childPostId, optionally returning replies to those posts as well as the original parent.

Path Parameters

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

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
DetailedErrorTrace
Type: string

Forum.GetPostAndParent

Forum

Verb: GET

Path: /Forum/GetPostAndParent/{childPostId}/

Returns the post specified and its immediate parent.

Path Parameters

  • childPostId
    Type: int64

Querystring Parameters

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

Response

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

Forum.GetPostAndParentAwaitingApproval

Forum

Verb: GET

Path: /Forum/GetPostAndParentAwaitingApproval/{childPostId}/

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

Path Parameters

  • childPostId
    Type: int64

Querystring Parameters

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

Response

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

Forum.GetTopicForContent

Forum

Verb: GET

Path: /Forum/GetTopicForContent/{contentId}/

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

Path Parameters

  • contentId
    Type: int64

Response

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

Forum.GetForumTagSuggestions

Forum

Verb: GET

Path: /Forum/GetForumTagSuggestions/

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

Querystring Parameters

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

Response

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

Forum.GetPoll

Forum

Verb: GET

Path: /Forum/Poll/{topicId}/

Gets the specified forum poll.

Path Parameters

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

Response

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

Forum.GetRecruitmentThreadSummaries

Forum

Verb: POST

Path: /Forum/Recruit/Summaries/

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

Request Body

Type: array
Array Contents: int64

Response

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

GroupV2.GetAvailableAvatars

GroupV2

Verb: GET

Path: /GroupV2/GetAvailableAvatars/

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

Response

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

GroupV2.GetAvailableThemes

GroupV2

Verb: GET

Path: /GroupV2/GetAvailableThemes/

Returns a list of all available group themes.

Response

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

GroupV2.GetUserClanInviteSetting

GroupV2

Verb: GET

Path: /GroupV2/GetUserClanInviteSetting/{mType}/

Gets the state of the user's clan invite preferences for a particular membership type - true if they wish to be invited to clans, false otherwise.

Required Scope(s)

  • oauth2: ReadUserData

Path Parameters

  • mType
    The Destiny membership type of the account we wish to access settings.

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
DetailedErrorTrace
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
DetailedErrorTrace
Type: string

GroupV2.GetRecommendedGroups

GroupV2

Verb: POST

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

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

Required Scope(s)

  • oauth2: ReadGroups

Path Parameters

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
DetailedErrorTrace
Type: string

GroupV2.GroupSearch

GroupV2

Verb: POST

Path: /GroupV2/Search/

Search for Groups.

Request Body

Response

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

GroupV2.GetGroup

GroupV2

Verb: GET

Path: /GroupV2/{groupId}/

Get information about a specific group of the given ID.

Path Parameters

  • groupId
    Requested group's id.
    Type: int64

Response

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

GroupV2.GetGroupByName

GroupV2

Verb: GET

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

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

Path Parameters

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

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
DetailedErrorTrace
Type: string

GroupV2.GetGroupOptionalConversations

GroupV2

Verb: GET

Path: /GroupV2/{groupId}/OptionalConversations/

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

Path Parameters

  • groupId
    Requested group's id.
    Type: int64

Response

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

GroupV2.EditGroup

GroupV2

Verb: POST

Path: /GroupV2/{groupId}/Edit/

Edit an existing group. You must have suitable permissions in the group to perform this operation. This latest revision will only edit the fields you pass in - pass null for properties you want to leave unaltered.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

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

Request Body

Response

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

GroupV2.EditClanBanner

GroupV2

Verb: POST

Path: /GroupV2/{groupId}/EditClanBanner/

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

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

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

Request Body

Response

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

GroupV2.EditFounderOptions

GroupV2

Verb: POST

Path: /GroupV2/{groupId}/EditFounderOptions/

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

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

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

Response

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

GroupV2.AddOptionalConversation

GroupV2

Verb: POST

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

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

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

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

Response

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

GroupV2.EditOptionalConversation

GroupV2

Verb: POST

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

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

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

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

Response

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

GroupV2.GetMembersOfGroup

GroupV2

Verb: GET

Path: /GroupV2/{groupId}/Members/

Get the list of members in a given group.

Path Parameters

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

Querystring Parameters

  • memberType
    Filter out other member types. Use None for all members.
  • 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
DetailedErrorTrace
Type: string

GroupV2.GetAdminsAndFounderOfGroup

GroupV2

Verb: GET

Path: /GroupV2/{groupId}/AdminsAndFounder/

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

Path Parameters

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

Response

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

GroupV2.EditGroupMembership

GroupV2

Verb: POST

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

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

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    ID of the group to which the member belongs.
    Type: int64
  • membershipId
    Membership ID to modify.
    Type: int64
  • membershipType
    Membership type of the provide membership ID.
  • 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
DetailedErrorTrace
Type: string

GroupV2.KickMember

GroupV2

Verb: POST

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

Kick a member from the given group, forcing them to reapply if they wish to re-join the group. You must have suitable permissions in the group to perform this operation.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    Group ID to kick the user from.
    Type: int64
  • membershipId
    Membership ID to kick.
    Type: int64
  • membershipType
    Membership type of the provided membership ID.

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
DetailedErrorTrace
Type: string

GroupV2.BanMember

GroupV2

Verb: POST

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

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

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    Group ID that has the member to ban.
    Type: int64
  • membershipId
    Membership ID of the member to ban from the group.
    Type: int64
  • membershipType
    Membership type of the provided membership ID.

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
DetailedErrorTrace
Type: string

GroupV2.UnbanMember

GroupV2

Verb: POST

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

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

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    Type: int64
  • membershipId
    Membership ID of the member to unban from the group
    Type: int64
  • membershipType
    Membership type of the provided membership ID.

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
DetailedErrorTrace
Type: string

GroupV2.GetBannedMembersOfGroup

GroupV2

Verb: GET

Path: /GroupV2/{groupId}/Banned/

Get the list of banned members in a given group. Only accessible to group Admins and above. Not applicable to all groups. Check group features.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

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

Response

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

GroupV2.AbdicateFoundership

GroupV2

Verb: POST

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

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

Path Parameters

  • founderIdNew
    The new founder for this group. Must already be a group admin.
    Type: int64
  • groupId
    The target group id.
    Type: int64
  • membershipType
    Membership type of the provided founderIdNew.

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
DetailedErrorTrace
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
DetailedErrorTrace
Type: string

GroupV2.GetPendingMemberships

GroupV2

Verb: GET

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

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

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

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

Response

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

GroupV2.GetInvitedIndividuals

GroupV2

Verb: GET

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

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

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

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

Response

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

GroupV2.ApproveAllPending

GroupV2

Verb: POST

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

Approve all of the pending users for the given group.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    ID of the group.
    Type: int64

Response

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

GroupV2.DenyAllPending

GroupV2

Verb: POST

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

Deny all of the pending users for the given group.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    ID of the group.
    Type: int64

Response

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

GroupV2.ApprovePendingForList

GroupV2

Verb: POST

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

Approve all of the pending users for the given group.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    ID of the group.
    Type: int64

Response

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

GroupV2.ApprovePending

GroupV2

Verb: POST

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

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

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    ID of the group.
    Type: int64
  • membershipId
    The membership id being approved.
    Type: int64
  • membershipType
    Membership type of the supplied membership ID.

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
DetailedErrorTrace
Type: string

GroupV2.DenyPendingForList

GroupV2

Verb: POST

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

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

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    ID of the group.
    Type: int64

Response

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

GroupV2.GetGroupsForMember

GroupV2

Verb: GET

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

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

Path Parameters

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
DetailedErrorTrace
Type: string

GroupV2.GetPotentialGroupsForMember

GroupV2

Verb: GET

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

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

Path Parameters

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
DetailedErrorTrace
Type: string

GroupV2.IndividualGroupInvite

GroupV2

Verb: POST

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

Invite a user to join this group.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    ID of the group you would like to join.
    Type: int64
  • membershipId
    Membership id of the account being invited.
    Type: int64
  • membershipType
    MembershipType of the account being invited.

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
DetailedErrorTrace
Type: string

GroupV2.IndividualGroupInviteCancel

GroupV2

Verb: POST

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

Cancels a pending invitation to join a group.

Required Scope(s)

  • oauth2: AdminGroups

Path Parameters

  • groupId
    ID of the group you would like to join.
    Type: int64
  • membershipId
    Membership id of the account being cancelled.
    Type: int64
  • membershipType
    MembershipType of the account being cancelled.

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
DetailedErrorTrace
Type: string

Destiny2.GetDestinyManifest

Destiny2

Verb: GET

Path: /Destiny2/Manifest/

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

Response

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

Destiny2.GetDestinyEntityDefinition

Destiny2

Verb: GET

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

Returns the static definition of an entity of the given Type and hash identifier. Examine the API Documentation for the Type Names of entities that have their own definitions. Note that the return type will always *inherit from* DestinyDefinition, but the specific type returned will be the requested entity type if it can be found. Please don't use this as a chatty alternative to the Manifest database if you require large sets of data, but for simple and one-off accesses this should be handy.

Path Parameters

  • entityType
    The type of entity for whom you would like results. These correspond to the entity's definition contract name. For instance, if you are looking for items, this property should be 'DestinyInventoryItemDefinition'. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is tentatively in final form, but there may be bugs that prevent desirable operation.
    Type: string
  • hashIdentifier
    The hash identifier for the specific Entity you want returned.
    Type: uint32

Response

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

Destiny2.GetLinkedProfiles

Destiny2

Verb: GET

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

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

Path Parameters

  • membershipId
    The ID of the membership whose linked Destiny accounts you want returned. Make sure your membership ID matches its Membership Type: don't pass us a PSN membership ID and the XBox membership type, it's not going to work!
    Type: int64
  • membershipType
    The type for the membership whose linked Destiny accounts you want returned.

Response

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

Destiny2.GetProfile

Destiny2

Verb: GET

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

Returns Destiny Profile information for the supplied membership.

Path Parameters

  • destinyMembershipId
    Destiny membership ID.
    Type: int64
  • membershipType
    A valid non-BungieNet membership type.

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
DetailedErrorTrace
Type: string

Destiny2.GetCharacter

Destiny2

Verb: GET

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

Returns character information for the supplied character.

Path Parameters

  • characterId
    ID of the character.
    Type: int64
  • destinyMembershipId
    Destiny membership ID.
    Type: int64
  • membershipType
    A valid non-BungieNet membership type.

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
DetailedErrorTrace
Type: string

Destiny2.GetClanWeeklyRewardState

Destiny2

Verb: GET

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

Returns information on the weekly clan rewards and if the clan has earned them or not. Note that this will always report rewards as not redeemed.

Path Parameters

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

Response

Represents a runtime instance of a user's milestone status. Live Milestone data should be combined with DestinyMilestoneDefinition data to show the user a picture of what is available for them to do in the game, and their status in regards to said "things to do." Consider it a big, wonky to-do list, or Advisors 3.0 for those who remember the Destiny 1 API.
Content Type: application/json
Type: object
Object Properties
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetItem

Destiny2

Verb: GET

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

Retrieve the details of an instanced Destiny Item. An instanced Destiny item is one with an ItemInstanceId. Non-instanced items, such as materials, have no useful instance-specific details and thus are not queryable here.

Path Parameters

  • destinyMembershipId
    The membership ID of the destiny profile.
    Type: int64
  • itemInstanceId
    The Instance ID of the destiny item.
    Type: int64
  • membershipType
    A valid non-BungieNet membership type.

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
DetailedErrorTrace
Type: string

Destiny2.GetVendors

Destiny2

Verb: GET

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

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

Path Parameters

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

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
DetailedErrorTrace
Type: string

Destiny2.GetVendor

Destiny2

Verb: GET

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

Get the details of a specific Vendor.

Path Parameters

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

Destiny2.GetPostGameCarnageReport

Destiny2

Verb: GET

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

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

Path Parameters

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

Response

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

Destiny2.ReportOffensivePostGameCarnageReportPlayer

Destiny2

Verb: POST

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

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

Required Scope(s)

  • oauth2: BnetWrite

Path Parameters

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

Response

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

Destiny2.GetHistoricalStatsDefinition

Destiny2

Verb: GET

Path: /Destiny2/Stats/Definition/

Gets historical stats definitions.

Response

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

Destiny2.GetClanLeaderboards

Preview - Not Ready for Release Destiny2 Preview

Verb: GET

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

Gets leaderboards with the signed in user's friends and the supplied destinyMembershipId as the focus. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.

Path Parameters

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

Querystring Parameters

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

Response

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

Destiny2.GetClanAggregateStats

Preview - Not Ready for Release Destiny2 Preview

Verb: GET

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

Gets aggregated stats for a clan using the same categories as the clan leaderboards. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.

Path Parameters

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

Querystring Parameters

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

Response

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

Destiny2.GetLeaderboards

Preview - Not Ready for Release Destiny2 Preview

Verb: GET

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

Gets leaderboards with the signed in user's friends and the supplied destinyMembershipId as the focus. PREVIEW: This endpoint has not yet been implemented. It is being returned for a preview of future functionality, and for public comment/suggestion/preparation.

Path Parameters

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

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
DetailedErrorTrace
Type: string

Destiny2.GetLeaderboardsForCharacter

Preview - Not Ready for Release Destiny2 Preview

Verb: GET

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

Gets leaderboards with the signed in user's friends and the supplied destinyMembershipId as the focus. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.

Path Parameters

  • characterId
    The specific character to build the leaderboard around for the provided Destiny Membership.
    Type: int64
  • destinyMembershipId
    The Destiny membershipId of the user to retrieve.
    Type: int64
  • membershipType
    A valid non-BungieNet membership type.

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
DetailedErrorTrace
Type: string

Destiny2.SearchDestinyEntities

Destiny2

Verb: GET

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

Gets a page list of Destiny items.

Path Parameters

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

Querystring Parameters

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

Response

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

Destiny2.GetHistoricalStats

Destiny2

Verb: GET

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

Gets historical stats for indicated character.

Path Parameters

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

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
DetailedErrorTrace
Type: string

Destiny2.GetHistoricalStatsForAccount

Destiny2

Verb: GET

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

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

Path Parameters

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

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
DetailedErrorTrace
Type: string

Destiny2.GetActivityHistory

Destiny2

Verb: GET

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

Gets activity history stats for indicated character.

Path Parameters

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

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
DetailedErrorTrace
Type: string

Destiny2.GetUniqueWeaponHistory

Destiny2

Verb: GET

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

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

Path Parameters

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

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
DetailedErrorTrace
Type: string

Destiny2.GetDestinyAggregateActivityStats

Destiny2

Verb: GET

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

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

Path Parameters

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

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
DetailedErrorTrace
Type: string

Destiny2.GetPublicMilestoneContent

Destiny2

Verb: GET

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

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

Path Parameters

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

Response

Represents localized, extended content related to Milestones. This is intentionally returned by a separate endpoint and not with Character-level Milestone data because we do not put localized data into standard Destiny responses, both for brevity of response and for caching purposes. If you really need this data, hit the Milestone Content endpoint.
Content Type: application/json
Type: object
Object Properties
ThrottleSeconds
Type: int32
ErrorStatus
Type: string
Message
Type: string
MessageData
Type: object
Dictionary Contents: string
Dictionary Key Type: string
DetailedErrorTrace
Type: string

Destiny2.GetPublicMilestones

Destiny2

Verb: GET

Path: /Destiny2/Milestones/

Gets public information about currently available Milestones.

Response

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

Destiny2.AwaInitializeRequest

Destiny2

Verb: POST

Path: /Destiny2/Awa/Initialize/

Initialize a request to perform an advanced write action.

Required Scope(s)

  • oauth2: AdvancedWriteActions

Response

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

Destiny2.AwaProvideAuthorizationResult

Destiny2

Verb: POST

Path: /Destiny2/Awa/AwaProvideAuthorizationResult/

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

Response

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

Destiny2.AwaGetActionToken

Destiny2

Verb: GET

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

Returns the action token if user approves the request.

Required Scope(s)

  • oauth2: AdvancedWriteActions

Path Parameters

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

Response

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

CommunityContent.GetCommunityContent

CommunityContent

Verb: GET

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

Returns community content.

Path Parameters

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
DetailedErrorTrace
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
DetailedErrorTrace
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
DetailedErrorTrace
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
DetailedErrorTrace
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
DetailedErrorTrace
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
DetailedErrorTrace
Type: string

Trending.GetTrendingCategories

Trending

Verb: GET

Path: /Trending/Categories/

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

Response

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

Trending.GetTrendingCategory

Trending

Verb: GET

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

Returns paginated lists of trending items for a category.

Path Parameters

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

Response

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

Trending.GetTrendingEntryDetail

Trending

Verb: GET

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

Returns the detailed results for a specific trending entry. Note that trending entries are uniquely identified by a combination of *both* the TrendingEntryType *and* the identifier: the identifier alone is not guaranteed to be globally unique.

Path Parameters

  • identifier
    The identifier for the entity to be returned.
    Type: string
  • trendingEntryType
    The type of entity to be returned.

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
DetailedErrorTrace
Type: string

Fireteam.GetActivePrivateClanFireteamCount

Fireteam

Verb: GET

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

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

Required Scope(s)

  • oauth2: ReadGroups

Path Parameters

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

Response

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

Fireteam.GetAvailableClanFireteams

Fireteam

Verb: GET

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

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

Required Scope(s)

  • oauth2: ReadGroups

Path Parameters

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
DetailedErrorTrace
Type: string

Fireteam.SearchPublicAvailableClanFireteams

Fireteam

Verb: GET

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

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

Required Scope(s)

  • oauth2: ReadGroups

Path Parameters

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
DetailedErrorTrace
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
DetailedErrorTrace
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
DetailedErrorTrace
Type: string

.GetAvailableLocales


Verb: GET

Path: //GetAvailableLocales/

List of available localization cultures

Response

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

.GetCommonSettings


Verb: GET

Path: //Settings/

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

Response

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

.GetGlobalAlerts


Verb: GET

Path: //GlobalAlerts/

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

Querystring Parameters

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

Response

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

Entities

Applications.ApplicationScopes

Enumeration
Type: int64
Valid Enum Values
  • ReadBasicUserProfile: 1
    Read basic user profile information such as the user's handle, avatar icon, etc.
  • ReadGroups: 2
    Read Group/Clan Forums, Wall, and Members for groups and clans that the user has joined.
  • WriteGroups: 4
    Write Group/Clan Forums, Wall, and Members for groups and clans that the user has joined.
  • AdminGroups: 8
    Administer Group/Clan Forums, Wall, and Members for groups and clans that the user is a founder or an administrator.
  • BnetWrite: 16
    Create new groups, clans, and forum posts.
  • 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

Content.Models.ContentTypeDescription

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

Content.Models.ContentTypeProperty

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

Content.Models.ContentPropertyDataTypeEnum

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

Content.Models.ContentTypeDefaultValue

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

Content.Models.TagMetadataDefinition

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

Content.Models.TagMetadataItem

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

Content.Models.ContentPreview

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

Content.Models.ContentTypePropertySection

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

Content.ContentItemPublicContract

Type: object
Object Properties
contentId
Type: int64
cType
Type: string
cmsPath
Type: string
creationDate
Type: date-time
modifyDate
Type: date-time
allowComments
Type: boolean
hasAgeGate
Type: boolean
minimumAge
Type: int32
ratingImagePath
Type: string
author
autoEnglishPropertyFallback
Type: boolean
properties
Firehose content is really a collection of metadata and "properties", which are the potentially-but-not-strictly localizable data that comprises the meat of whatever content is being shown.

As Cole Porter would have crooned, "Anything Goes" with Firehose properties. They are most often strings, but they can theoretically be anything. They are JSON encoded, and could be JSON structures, simple strings, numbers etc... The Content Type of the item (cType) will describe the properties, and thus how they ought to be deserialized.
Type: object
Dictionary Contents: object
Dictionary Key Type: string
representations
Type: array
tags
Type: array
Array Contents: string
commentSummary

Content.ContentRepresentation

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

Content.CommentSummary

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

Queries.SearchResult

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

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

Either way, you should probably always only trust hasMore.

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

Queries.PagedQuery

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

SearchResultOfContentItemPublicContract

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

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

Either way, you should probably always only trust hasMore.

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

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

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