Skip to main content
GET
/
player
/
{membershipId}
/
history
Get Player Activity History
curl --request GET \
  --url https://api.example.com/player/{membershipId}/history
{
  "membershipId": "<string>",
  "nextCursor": "<string>",
  "activities": [
    {
      "instanceId": "<string>",
      "hash": 123,
      "completed": true,
      "flawless": true,
      "fresh": true,
      "playerCount": 123,
      "skullHashes": [
        {}
      ],
      "score": 123,
      "dateStarted": "<string>",
      "dateCompleted": "<string>",
      "season": 123,
      "duration": 123,
      "platformType": 123,
      "activityId": 123,
      "versionId": 123,
      "isDayOne": true,
      "isContest": true,
      "isWeekOne": true,
      "isBlacklisted": true,
      "player": {
        "completed": true,
        "isFirstClear": true,
        "sherpas": 123,
        "timePlayedSeconds": 123
      }
    }
  ]
}
Get a player’s activity history with cursor-based pagination. This endpoint replaces the deprecated /activities endpoint.
This endpoint requires authentication if the player has a private profile.

Path Parameters

membershipId
string
required
The Destiny membership ID of the player (int64 format).

Query Parameters

count
integer
default:"2000"
Number of activities to return. Minimum 10, maximum 5000.
The first request (without cursor) may return fewer than the requested count for performance optimization.
cursor
string
Date cursor for pagination (ISO 8601 format). Omit this parameter for the first request.Use the nextCursor value from the previous response for subsequent requests.

Response

membershipId
string
The player’s Destiny membership ID.
nextCursor
string
ISO 8601 timestamp to use as cursor for the next page. null if no more activities exist.
activities
array
Array of raid instances the player participated in.

Example Request

First Page

curl -X GET "https://api.raidhub.io/player/4611686018488107374/history?count=100" \
  -H "X-API-Key: your_api_key_here"

Subsequent Pages

curl -X GET "https://api.raidhub.io/player/4611686018488107374/history?count=100&cursor=2021-05-01T00:00:00.000Z" \
  -H "X-API-Key: your_api_key_here"

Example Response

{
  "minted": "2026-03-03T12:34:56.789Z",
  "success": true,
  "response": {
    "membershipId": "4611686018488107374",
    "nextCursor": "2021-04-15T18:30:00.000Z",
    "activities": [
      {
        "instanceId": "12345678901234567",
        "hash": 3881495763,
        "completed": true,
        "flawless": false,
        "fresh": true,
        "playerCount": 6,
        "skullHashes": [],
        "score": 0,
        "dateStarted": "2021-05-01T18:00:00.000Z",
        "dateCompleted": "2021-05-01T19:30:00.000Z",
        "season": 14,
        "duration": 5400,
        "platformType": 3,
        "activityId": 9,
        "versionId": 1,
        "isDayOne": false,
        "isContest": false,
        "isWeekOne": false,
        "isBlacklisted": false,
        "player": {
          "completed": true,
          "isFirstClear": false,
          "sherpas": 2,
          "timePlayedSeconds": 5400
        }
      }
    ]
  }
}

Error Responses

PlayerNotFoundError (404)

{
  "minted": "2026-03-03T12:34:56.789Z",
  "success": false,
  "code": "PlayerNotFoundError",
  "error": {
    "membershipId": "4611686018488107374"
  }
}

PlayerPrivateProfileError (403)

{
  "minted": "2026-03-03T12:34:56.789Z",
  "success": false,
  "code": "PlayerPrivateProfileError",
  "error": {
    "membershipId": "4611686018488107374"
  }
}

Pagination Best Practices

  1. First request: Omit the cursor parameter
  2. Check for more data: If nextCursor is not null, more activities exist
  3. Subsequent requests: Use nextCursor value as the cursor parameter
  4. Stop condition: When nextCursor is null, you’ve reached the end

Caching Behavior

  • First page (no cursor): Cached for 30 seconds
  • Subsequent pages (with cursor): Cached for 24 hours
The first page caching is shorter to ensure recent activity appears quickly, while historical pages are cached longer since they don’t change.

Use Cases

  • Activity feed: Display recent raid completions
  • Progress tracking: Monitor player activity over time
  • Stats calculation: Analyze completion rates and trends
  • Sherpa tracking: Count first-time clears helped
  • Historical analysis: Review past raid performance

Build docs developers (and LLMs) love