Download OpenAPI specification:Download
The Semi-public API for RaidHub
The RaidHub manifest provides definitions for all activities and versions in the RaidHub database.
{- "minted": "2019-08-24T14:15:22Z",
- "success": true,
- "response": {
- "hashes": {
- "property1": {
- "activityId": 0,
- "versionId": 0
}, - "property2": {
- "activityId": 0,
- "versionId": 0
}
}, - "activityDefinitions": {
- "property1": {
- "id": 9,
- "name": "Vault of Glass",
- "path": "vaultofglass",
- "isSunset": false,
- "isRaid": true,
- "releaseDate": "2021-05-22T00:00:00.000Z",
- "dayOneEnd": "2021-05-23T00:00:00.000Z",
- "contestEnd": "2021-05-23T00:00:00.000Z",
- "weekOneEnd": "2021-05-25T00:00:00.000Z",
- "milestoneHash": 1888320892
}, - "property2": {
- "id": 9,
- "name": "Vault of Glass",
- "path": "vaultofglass",
- "isSunset": false,
- "isRaid": true,
- "releaseDate": "2021-05-22T00:00:00.000Z",
- "dayOneEnd": "2021-05-23T00:00:00.000Z",
- "contestEnd": "2021-05-23T00:00:00.000Z",
- "weekOneEnd": "2021-05-25T00:00:00.000Z",
- "milestoneHash": 1888320892
}
}, - "versionDefinitions": {
- "property1": {
- "id": 1,
- "name": "Standard",
- "path": "normal",
- "associatedActivityId": null,
- "isChallengeMode": false
}, - "property2": {
- "id": 1,
- "name": "Standard",
- "path": "normal",
- "associatedActivityId": null,
- "isChallengeMode": false
}
}, - "listedRaidIds": [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0
], - "sunsetRaidIds": [
- 0
], - "prestigeRaidIds": [
- 0,
- 0,
- 0
], - "masterRaidIds": [
- 0,
- 0,
- 0,
- 0,
- 0
], - "contestRaidIds": [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0
], - "resprisedRaidIds": [
- 0,
- 0,
- 0
], - "resprisedChallengeVersionIds": [
- 0,
- 0,
- 0
], - "pantheonIds": [
- 0
], - "versionsForActivity": {
- "property1": [
- 0
], - "property2": [
- 0
]
}
}
}
{- "minted": "2019-08-24T14:15:22Z",
- "success": true,
- "response": {
- "AtlasPGCR": {
- "status": "Crawling",
- "medianSecondsBehindNow": 0,
- "estimatedCatchUpTimestamp": "2019-08-24T14:15:22Z",
- "latestActivity": {
- "dateCompleted": "2019-08-24T14:15:22Z",
- "instanceId": "string"
}
}
}
}
Search for players in the RaidHub database by Bungie name or platform display name. Players who have not attempted a raid may not appear in the search results. Results are ordered by a combination of the number of raid completions and last played date.
count | integer [ 1 .. 50 ] Default: 20 |
query required | string [ 1 .. 40 ] characters |
membershipType | integer Default: -1 Enum: 0 1 2 3 4 5 6 -1 Filter by Destiny membership type. Defaults to -1 (all). Note that the membership type of an account is determined by the platform the was first created on |
global | boolean Default: true Search by bungie name. Defaults to true. Set this parameter to false to search by platform display name instead |
{- "minted": "2019-08-24T14:15:22Z",
- "success": true,
- "response": {
- "params": {
- "count": 0,
- "query": "string"
}, - "results": [
- {
- "bungieGlobalDisplayName": "Newo",
- "bungieGlobalDisplayNameCode": "9010",
- "membershipId": "4611686018488107374",
- "displayName": "xx_newo_xx",
- "iconPath": "/common/destiny2_content/icons/93844c8b76ea80683a880479e3506980.jpg",
- "membershipType": 3,
- "lastSeen": "2021-05-01T00:00:00.000Z",
- "isPrivate": false
}
]
}
}
Get a player's activity history. This endpoint uses date cursors to paginate through a player's activity history.
The first request should not include a cursor. Subsequent requests should include the nextCursor
value from the previous response. Note that the first request may not return the full number of activities requested
in order to optimize performance. Subsequent requests will return the full number of activities requested.
membershipId required | string^\d+n?$ |
count | integer [ 10 .. 5000 ] Default: 2000 |
cursor | string <date-time> |
{- "minted": "2019-08-24T14:15:22Z",
- "success": true,
- "response": {
- "membershipId": "string",
- "nextCursor": "2019-08-24T14:15:22Z",
- "activities": [
- {
- "instanceId": "string",
- "hash": 0,
- "activityId": 0,
- "versionId": 0,
- "completed": true,
- "flawless": true,
- "fresh": true,
- "playerCount": 0,
- "score": 0,
- "dateStarted": "2019-08-24T14:15:22Z",
- "dateCompleted": "2019-08-24T14:15:22Z",
- "season": 0,
- "duration": 0,
- "platformType": 0,
- "isDayOne": true,
- "isContest": true,
- "isWeekOne": true,
- "player": {
- "completed": true,
- "isFirstClear": true,
- "sherpas": 0,
- "timePlayedSeconds": 0
}
}
]
}
}
An extremely low-cost API call. Get basic information Bungie information about a player. The information is not guaranteed to be fully up-to-date, however, it should be accurate enough for most use cases where you only have the membershipId available.
membershipId required | string^\d+n?$ |
{- "minted": "2019-08-24T14:15:22Z",
- "success": true,
- "response": {
- "bungieGlobalDisplayName": "Newo",
- "bungieGlobalDisplayNameCode": "9010",
- "membershipId": "4611686018488107374",
- "displayName": "xx_newo_xx",
- "iconPath": "/common/destiny2_content/icons/93844c8b76ea80683a880479e3506980.jpg",
- "membershipType": 3,
- "lastSeen": "2021-05-01T00:00:00.000Z",
- "isPrivate": false
}
}
Get a player's profile information. This includes global stats, activity stats, and world first entries. This is used to hydrate the RaidHub profile page
membershipId required | string^\d+n?$ |
{- "minted": "2019-08-24T14:15:22Z",
- "success": true,
- "response": {
- "playerInfo": {
- "bungieGlobalDisplayName": "Newo",
- "bungieGlobalDisplayNameCode": "9010",
- "membershipId": "4611686018488107374",
- "displayName": "xx_newo_xx",
- "iconPath": "/common/destiny2_content/icons/93844c8b76ea80683a880479e3506980.jpg",
- "membershipType": 3,
- "lastSeen": "2021-05-01T00:00:00.000Z",
- "isPrivate": false
}, - "stats": {
- "global": {
- "clears": {
- "rank": 0,
- "value": 0
}, - "freshClears": {
- "rank": 0,
- "value": 0
}, - "sherpas": {
- "rank": 0,
- "value": 0
}, - "sumOfBest": {
- "rank": 0,
- "value": 0
}
}, - "activity": {
- "property1": {
- "activityId": 0,
- "freshClears": 0,
- "clears": 0,
- "sherpas": 0,
- "fastestInstance": {
- "instanceId": "string",
- "hash": 0,
- "activityId": 0,
- "versionId": 0,
- "completed": true,
- "flawless": true,
- "fresh": true,
- "playerCount": 0,
- "score": 0,
- "dateStarted": "2019-08-24T14:15:22Z",
- "dateCompleted": "2019-08-24T14:15:22Z",
- "season": 0,
- "duration": 0,
- "platformType": 0,
- "isDayOne": true,
- "isContest": true,
- "isWeekOne": true
}
}, - "property2": {
- "activityId": 0,
- "freshClears": 0,
- "clears": 0,
- "sherpas": 0,
- "fastestInstance": {
- "instanceId": "string",
- "hash": 0,
- "activityId": 0,
- "versionId": 0,
- "completed": true,
- "flawless": true,
- "fresh": true,
- "playerCount": 0,
- "score": 0,
- "dateStarted": "2019-08-24T14:15:22Z",
- "dateCompleted": "2019-08-24T14:15:22Z",
- "season": 0,
- "duration": 0,
- "platformType": 0,
- "isDayOne": true,
- "isContest": true,
- "isWeekOne": true
}
}
}
}, - "worldFirstEntries": {
- "property1": {
- "activityId": 0,
- "instanceId": "string",
- "timeAfterLaunch": 0,
- "rank": 0,
- "isDayOne": true,
- "isContest": true,
- "isWeekOne": true,
- "isChallengeMode": true
}, - "property2": {
- "activityId": 0,
- "instanceId": "string",
- "timeAfterLaunch": 0,
- "rank": 0,
- "isDayOne": true,
- "isContest": true,
- "isWeekOne": true,
- "isChallengeMode": true
}
}
}
}
Get a list of a player's top 100 teammates.
membershipId required | string^\d+n?$ |
{- "minted": "2019-08-24T14:15:22Z",
- "success": true,
- "response": [
- {
- "estimatedTimePlayedSeconds": 0,
- "clears": 0,
- "instanceCount": 0,
- "playerInfo": {
- "bungieGlobalDisplayName": "Newo",
- "bungieGlobalDisplayNameCode": "9010",
- "membershipId": "4611686018488107374",
- "displayName": "xx_newo_xx",
- "iconPath": "/common/destiny2_content/icons/93844c8b76ea80683a880479e3506980.jpg",
- "membershipType": 3,
- "lastSeen": "2021-05-01T00:00:00.000Z",
- "isPrivate": false
}
}
]
}
Find a set of instances based on the query parameters. Some parameters will not work together, such as providing a season outside the range of the min/max season. Requires authentication.
membershipId required | string^\d+n?$ |
membershipIds | Array of strings <= 6 items Default: [] A comma-separated list of up to 6 membershipIds the must be present in the instance. You do not need to include the target membershipId from the path parameter in this list. |
activityId | integer > 0 |
versionId | integer > 0 |
completed | boolean |
fresh | boolean |
flawless | boolean |
playerCount | integer > 0 |
minPlayerCount | integer > 0 |
maxPlayerCount | integer > 0 |
minDurationSeconds | integer or null >= 0 |
maxDurationSeconds | integer or null >= 0 |
season | integer > 0 |
minSeason | integer > 0 |
maxSeason | integer > 0 |
minDate | string <date-time> |
maxDate | string <date-time> |
{- "minted": "2019-08-24T14:15:22Z",
- "success": true,
- "response": [
- {
- "instanceId": "string",
- "hash": 0,
- "activityId": 0,
- "versionId": 0,
- "completed": true,
- "flawless": true,
- "fresh": true,
- "playerCount": 0,
- "score": 0,
- "dateStarted": "2019-08-24T14:15:22Z",
- "dateCompleted": "2019-08-24T14:15:22Z",
- "season": 0,
- "duration": 0,
- "platformType": 0,
- "isDayOne": true,
- "isContest": true,
- "isWeekOne": true,
- "players": [
- {
- "bungieGlobalDisplayName": "Newo",
- "bungieGlobalDisplayNameCode": "9010",
- "membershipId": "4611686018488107374",
- "displayName": "xx_newo_xx",
- "iconPath": "/common/destiny2_content/icons/93844c8b76ea80683a880479e3506980.jpg",
- "membershipType": 3,
- "lastSeen": "2021-05-01T00:00:00.000Z",
- "isPrivate": false
}
]
}
]
}
This endpoint replaces the PGCR endpoint. It returns an object with a shape more aligned with how RaidHub displays PGCRs.
instanceId required | string^\d+n?$ |
{- "minted": "2019-08-24T14:15:22Z",
- "success": true,
- "response": {
- "instanceId": "string",
- "hash": 0,
- "activityId": 0,
- "versionId": 0,
- "completed": true,
- "flawless": true,
- "fresh": true,
- "playerCount": 0,
- "score": 0,
- "dateStarted": "2019-08-24T14:15:22Z",
- "dateCompleted": "2019-08-24T14:15:22Z",
- "season": 0,
- "duration": 0,
- "platformType": 0,
- "isDayOne": true,
- "isContest": true,
- "isWeekOne": true,
- "leaderboardRank": 0,
- "metadata": {
- "activityName": "string",
- "versionName": "string",
- "isRaid": true
}, - "players": [
- {
- "completed": true,
- "isFirstClear": true,
- "sherpas": 0,
- "timePlayedSeconds": 0,
- "playerInfo": {
- "bungieGlobalDisplayName": "Newo",
- "bungieGlobalDisplayNameCode": "9010",
- "membershipId": "4611686018488107374",
- "displayName": "xx_newo_xx",
- "iconPath": "/common/destiny2_content/icons/93844c8b76ea80683a880479e3506980.jpg",
- "membershipType": 3,
- "lastSeen": "2021-05-01T00:00:00.000Z",
- "isPrivate": false
}, - "characters": [
- {
- "characterId": "string",
- "classHash": 0,
- "emblemHash": 0,
- "completed": true,
- "timePlayedSeconds": 0,
- "startSeconds": 0,
- "score": 0,
- "kills": 0,
- "deaths": 0,
- "assists": 0,
- "precisionKills": 0,
- "superKills": 0,
- "grenadeKills": 0,
- "meleeKills": 0,
- "weapons": [
- {
- "weaponHash": 0,
- "kills": 0,
- "precisionKills": 0
}
]
}
]
}
]
}
}
Individual leaderboards across all raids
category required | string Enum: "clears" "freshClears" "sherpas" "speedrun" "powerRankings" |
count | integer [ 10 .. 100 ] Default: 50 |
search | string^\d+n?$ |
page | integer > 0 Default: 1 Page number of leaderboard data. Ignored if |
{- "minted": "2019-08-24T14:15:22Z",
- "success": true,
- "response": {
- "type": "team",
- "format": "duration",
- "page": 0,
- "count": 0,
- "entries": [
- {
- "position": 0,
- "rank": 0,
- "value": 0,
- "instanceId": "string",
- "players": [
- {
- "bungieGlobalDisplayName": "Newo",
- "bungieGlobalDisplayNameCode": "9010",
- "membershipId": "4611686018488107374",
- "displayName": "xx_newo_xx",
- "iconPath": "/common/destiny2_content/icons/93844c8b76ea80683a880479e3506980.jpg",
- "membershipType": 3,
- "lastSeen": "2021-05-01T00:00:00.000Z",
- "isPrivate": false
}
]
}
]
}
}
Individual leaderboards for a specific raid
raid required | string |
category required | string Enum: "clears" "freshClears" "sherpas" |
count | integer [ 10 .. 100 ] Default: 50 |
search | string^\d+n?$ |
page | integer > 0 Default: 1 Page number of leaderboard data. Ignored if |
{- "minted": "2019-08-24T14:15:22Z",
- "success": true,
- "response": {
- "type": "team",
- "format": "duration",
- "page": 0,
- "count": 0,
- "entries": [
- {
- "position": 0,
- "rank": 0,
- "value": 0,
- "instanceId": "string",
- "players": [
- {
- "bungieGlobalDisplayName": "Newo",
- "bungieGlobalDisplayNameCode": "9010",
- "membershipId": "4611686018488107374",
- "displayName": "xx_newo_xx",
- "iconPath": "/common/destiny2_content/icons/93844c8b76ea80683a880479e3506980.jpg",
- "membershipType": 3,
- "lastSeen": "2021-05-01T00:00:00.000Z",
- "isPrivate": false
}
]
}
]
}
}
Individual leaderboards for a specific pantheon version
version required | string |
category required | string Enum: "clears" "freshClears" "score" |
count | integer [ 10 .. 100 ] Default: 50 |
search | string^\d+n?$ |
page | integer > 0 Default: 1 Page number of leaderboard data. Ignored if |
{- "minted": "2019-08-24T14:15:22Z",
- "success": true,
- "response": {
- "type": "team",
- "format": "duration",
- "page": 0,
- "count": 0,
- "entries": [
- {
- "position": 0,
- "rank": 0,
- "value": 0,
- "instanceId": "string",
- "players": [
- {
- "bungieGlobalDisplayName": "Newo",
- "bungieGlobalDisplayNameCode": "9010",
- "membershipId": "4611686018488107374",
- "displayName": "xx_newo_xx",
- "iconPath": "/common/destiny2_content/icons/93844c8b76ea80683a880479e3506980.jpg",
- "membershipType": 3,
- "lastSeen": "2021-05-01T00:00:00.000Z",
- "isPrivate": false
}
]
}
]
}
}
Ranking of the first 1000 completions of each activity version. Use the /contest endpoint instead to get the full rankings for the duration of the contest.
activity required | string |
version required | string |
count | integer [ 10 .. 100 ] Default: 50 |
search | string^\d+n?$ |
page | integer > 0 Default: 1 Page number of leaderboard data. Ignored if |
{- "minted": "2019-08-24T14:15:22Z",
- "success": true,
- "response": {
- "type": "team",
- "format": "duration",
- "page": 0,
- "count": 0,
- "entries": [
- {
- "position": 0,
- "rank": 0,
- "value": 0,
- "instanceId": "string",
- "players": [
- {
- "bungieGlobalDisplayName": "Newo",
- "bungieGlobalDisplayNameCode": "9010",
- "membershipId": "4611686018488107374",
- "displayName": "xx_newo_xx",
- "iconPath": "/common/destiny2_content/icons/93844c8b76ea80683a880479e3506980.jpg",
- "membershipType": 3,
- "lastSeen": "2021-05-01T00:00:00.000Z",
- "isPrivate": false
}
]
}
]
}
}
Ranking of all teams which completed the official contest version of the raid during the contest period.
raid required | string |
count | integer [ 10 .. 100 ] Default: 50 |
search | string^\d+n?$ |
page | integer > 0 Default: 1 Page number of leaderboard data. Ignored if |
{- "minted": "2019-08-24T14:15:22Z",
- "success": true,
- "response": {
- "type": "team",
- "format": "duration",
- "page": 0,
- "count": 0,
- "entries": [
- {
- "position": 0,
- "rank": 0,
- "value": 0,
- "instanceId": "string",
- "players": [
- {
- "bungieGlobalDisplayName": "Newo",
- "bungieGlobalDisplayNameCode": "9010",
- "membershipId": "4611686018488107374",
- "displayName": "xx_newo_xx",
- "iconPath": "/common/destiny2_content/icons/93844c8b76ea80683a880479e3506980.jpg",
- "membershipType": 3,
- "lastSeen": "2021-05-01T00:00:00.000Z",
- "isPrivate": false
}
]
}
]
}
}
Get a page of the clan leaderboard based on query parameters
count | integer [ 10 .. 100 ] Default: 50 |
page | integer > 0 Default: 1 |
column | string Default: "weighted_contest_score" Enum: "clears" "average_clears" "fresh_clears" "average_fresh_clears" "sherpas" "average_sherpas" "time_played_seconds" "average_time_played_seconds" "total_contest_score" "weighted_contest_score" |
{- "minted": "2019-08-24T14:15:22Z",
- "success": true,
- "response": [
- {
- "clan": {
- "groupId": "string",
- "name": "string",
- "callSign": "string",
- "motto": "string",
- "clanBannerData": {
- "decalId": 0,
- "decalColorId": 0,
- "decalBackgroundColorId": 0,
- "gonfalonId": 0,
- "gonfalonColorId": 0,
- "gonfalonDetailId": 0,
- "gonfalonDetailColorId": 0
}, - "lastUpdated": "2019-08-24T14:15:22Z",
- "knownMemberCount": 0
}, - "clears": 0,
- "averageClears": 0,
- "freshClears": 0,
- "averageFreshClears": 0,
- "sherpas": 0,
- "averageSherpas": 0,
- "timePlayedSeconds": 0,
- "averageTimePlayedSeconds": 0,
- "totalContestScore": 0,
- "weightedContestScore": 0
}
]
}
Get a raw post game carnage report by instanceId. This is essentially the raw data from the Bungie API, with a few fields trimmed off. It should be a subset of the data returned by the Bungie API. Useful if you need to access PGCRs when Bungie's API is down.
instanceId required | string^\d+n?$ |
{- "minted": "2019-08-24T14:15:22Z",
- "success": true,
- "response": {
- "period": "2019-08-24T14:15:22Z",
- "startingPhaseIndex": 0,
- "activityWasStartedFromBeginning": true,
- "activityDetails": {
- "directorActivityHash": 0,
- "instanceId": "string",
- "mode": 0,
- "modes": [
- 0
], - "membershipType": 0
}, - "entries": [
- {
- "player": {
- "destinyUserInfo": {
- "iconPath": "string",
- "crossSaveOverride": 0,
- "applicableMembershipTypes": [
- 0
], - "membershipType": 0,
- "membershipId": "string",
- "displayName": "string",
- "bungieGlobalDisplayName": "string",
- "bungieGlobalDisplayNameCode": 0
}, - "characterClass": "string",
- "classHash": 0,
- "raceHash": 0,
- "genderHash": 0,
- "characterLevel": 0,
- "lightLevel": 0,
- "emblemHash": 0
}, - "characterId": "string",
- "values": {
- "property1": {
- "basic": {
- "value": 0,
- "displayValue": "string"
}
}, - "property2": {
- "basic": {
- "value": 0,
- "displayValue": "string"
}
}
}, - "extended": {
- "weapons": [
- {
- "referenceId": 0,
- "values": {
- "property1": {
- "basic": {
- "value": null,
- "displayValue": null
}
}, - "property2": {
- "basic": {
- "value": null,
- "displayValue": null
}
}
}
}
], - "values": {
- "property1": {
- "basic": {
- "value": 0,
- "displayValue": "string"
}
}, - "property2": {
- "basic": {
- "value": 0,
- "displayValue": "string"
}
}
}
}
}
]
}
}
Get the stats for a clan. Data updates weekly.
groupId required | string^\d+n?$ |
{- "minted": "2019-08-24T14:15:22Z",
- "success": true,
- "response": {
- "aggregateStats": {
- "clears": 0,
- "averageClears": 0,
- "freshClears": 0,
- "averageFreshClears": 0,
- "sherpas": 0,
- "averageSherpas": 0,
- "timePlayedSeconds": 0,
- "averageTimePlayedSeconds": 0,
- "totalContestScore": 0,
- "weightedContestScore": 0,
- "clearsRank": 0,
- "freshClearsRank": 0,
- "sherpasRank": 0,
- "timePlayedSecondsRank": 0,
- "totalContestScoreRank": 0,
- "weightedContestScoreRank": 0
}, - "members": [
- {
- "playerInfo": {
- "bungieGlobalDisplayName": "Newo",
- "bungieGlobalDisplayNameCode": "9010",
- "membershipId": "4611686018488107374",
- "displayName": "xx_newo_xx",
- "iconPath": "/common/destiny2_content/icons/93844c8b76ea80683a880479e3506980.jpg",
- "membershipType": 3,
- "lastSeen": "2021-05-01T00:00:00.000Z",
- "isPrivate": false
}, - "stats": {
- "clears": 0,
- "freshClears": 0,
- "sherpas": 0,
- "totalTimePlayedSeconds": 0,
- "contestScore": 0
}
}
]
}
}
Wet the top weapons in each slot over the past 168 hours (7 days)
sort | string Default: "usage" Enum: "usage" "kills" |
count | integer or null [ 0 .. 100 ] Default: 25 The number of weapons to return per slot |
{- "minted": "2019-08-24T14:15:22Z",
- "success": true,
- "response": {
- "energy": [
- {
- "hash": 0,
- "totalUsage": 0,
- "totalKills": 0,
- "totalPrecisionKills": 0
}
], - "kinetic": [
- {
- "hash": 0,
- "totalUsage": 0,
- "totalKills": 0,
- "totalPrecisionKills": 0
}
], - "power": [
- {
- "hash": 0,
- "totalUsage": 0,
- "totalKills": 0,
- "totalPrecisionKills": 0
}
]
}
}
Get the daily player population by raid
{- "minted": "2019-08-24T14:15:22Z",
- "success": true,
- "response": [
- {
- "hour": "2019-08-24T14:15:22Z",
- "population": {
- "property1": 0,
- "property2": 0
}
}
]
}
Run a query against the database
query required | string |
type required | string Enum: "SELECT" "EXPLAIN" |
ignoreCost | boolean Default: false |
{- "query": "string",
- "type": "SELECT",
- "ignoreCost": false
}
{- "minted": "2019-08-24T14:15:22Z",
- "success": true,
- "response": {
- "type": "SELECT",
- "data": [
- {
- "property1": null,
- "property2": null
}
]
}
}