ArenyzeDocs
Rainbow Six Siege API

Rainbow Six Siege

Operators, weapons, maps, seasons and ranks, player profiles and full stats, leaderboards, match replays and the r6-data.js SDK — the data behind r6.arenyze.com.

Base URLhttps://public-api.arenyze.com/r6/api

Get started1 section

The R6 API provides access to Rainbow Six Siege game data including operators, weapons, maps, player statistics, and more. All endpoints return JSON data and support various query parameters for filtering results.

Base URL

https://public-api.arenyze.com/r6/api Every Rainbow Six Siege endpoint lives under the /r6/api prefix. Match replay endpoints are served by the website itself (https://r6.arenyze.com) and are documented with their full URL.

Game data8 sections

Operators

#

Get information about Rainbow Six Siege operators including their stats, biographical data, and abilities.

GET/r6/api/operators

Query Parameters

namestring
Filter by operator name
realnamestring
Filter by real name
birthplacestring
Filter by birthplace
rolesstring
Filter by role (Attacker/Defender)
sidestring
Filter by side
healthnumber
Filter by minimum health

Example Request

JavaScript
fetch('https://public-api.arenyze.com/r6/api/operators?name=ash&roles=attacker', {
    headers: {
        'api-key': 'YOUR_API_KEY'
    }
})
  .then(response => response.json())
  .then(data => console.log(data));

Example Response

ResponseJSON
[
  {
    "name": "Ash",
    "safename": "ash",
    "realname": "Eliza Cohen",
    "birthplace": "Jerusalem, Israel",
    "age": "33",
    "date_of_birth": "December 24, 1983",
    "season_introduced": "Release",
    "health": 100,
    "speed": "3",
    "unit": "FBI SWAT",
    "country_code": "us",
    "roles": "Attacker",
    "side": "ATK",
    "icon_url": "https://example.com/ash.png"
  }
]
Try it

Weapons

#

Access information about weapons available in Rainbow Six Siege.

GET/r6/api/weapons

Query Parameters

namestring
Filter by weapon name

Example Request

JavaScript
fetch('https://public-api.arenyze.com/r6/api/weapons?name=R4-C', {
    headers: {
        'api-key': 'YOUR_API_KEY'
    }
})
  .then(response => response.json())
  .then(data => console.log(data));
Try it

Maps

#

Get information about Rainbow Six Siege maps including location, release date, and available playlists.

GET/r6/api/maps

Query Parameters

namestring
Filter by map name
locationstring
Filter by location
playlistsstring
Filter by available playlists
releaseDatestring
Filter by release date

Example Response

ResponseJSON
[
  {
    "name": "Oregon",
    "location": "Oregon, USA",
    "releaseDate": "2015-12-01",
    "playlists": "Ranked, Casual, Unranked",
    "mapReworked": "Y5S3"
  }
]
Try it

Seasons

#

Information about Rainbow Six Siege seasons including operators, maps, and release dates.

GET/r6/api/seasons

Query Parameters

namestring
Filter by season name
codestring
Filter by season code (e.g., Y8S4)
mapstring
Filter by season map
operatorsstring
Filter by operators introduced
Try it

Ranks

#

Get ranking system information for different seasons of Rainbow Six Siege.

GET/r6/api/ranks

Query Parameters

versionstringrequired
Rank version (v1, v2, v3, v4, v5, v6, v7)
namestring
Filter by rank name
min_mmrnumber
Filter by minimum MMR
max_mmrnumber
Filter by maximum MMR

Example Request

JavaScript
fetch('https://public-api.arenyze.com/r6/api/ranks?version=v6&name=diamond', {
    headers: {
        'api-key': 'YOUR_API_KEY'
    }
})
  .then(response => response.json())
  .then(data => console.log(data));
Try it

Universal Skins

#

Access universal weapon skins available in Rainbow Six Siege.

GET/r6/api/universalSkins

Query Parameters

namestring
Filter by skin name
Try it

Charms

#

Get information about weapon charms in Rainbow Six Siege.

GET/r6/api/charms

Query Parameters

namestring
Filter by charm name
collectionstring
Filter by collection
raritystring
Filter by rarity
availabilitystring
Filter by availability
seasonstring
Filter by season
Try it

Attachments

#

Access weapon attachment information including styles and availability.

GET/r6/api/attachment

Query Parameters

namestring
Filter by attachment name
stylestring
Filter by style
raritystring
Filter by rarity
Try it

Player stats6 sections

Profile V2

#

Load the complete player page with one request. The response bundles account information, current boards, ban status, season segments and rank-points history. Operator statistics remain lazy and are available from the dedicated V2 Operators endpoint.

GET/r6/api/v2/profile

Query Parameters

nameOnPlatformstringrequired
Player username.
platformTypestringrequired
Uplay, psn or xbl.
platform_familiesstringoptional
Inferred from platformType when omitted.

Example Request

JavaScript
fetch('https://public-api.arenyze.com/r6/api/v2/profile?nameOnPlatform=PlayerName&platformType=uplay', {
  headers: { 'api-key': 'YOUR_API_KEY' }
})
  .then(response => response.json())
  .then(data => console.log(data));

Example Response

ResponseJSON
{
  "player": {
    "nameOnPlatform": "PlayerName",
    "platformType": "uplay",
    "platformFamilies": "pc"
  },
  "stats": {
    "platform_families_full_profiles": []
  },
  "account": {
    "level": 312,
    "xp": 0,
    "profilePicture": "https://avatars.ubisoft.com/PLAYER_ID/default_146_146.png",
    "profiles": [{ "platformType": "uplay", "nameOnPlatform": "PlayerName" }]
  },
  "banned": { "isBanned": false, "banAlerts": [] },
  "seasons": { "data": { "platformInfo": {}, "metadata": {}, "segments": [] } },
  "history": { "data": { "history": { "data": [] } } },
  "meta": { "included": ["stats", "account", "banned", "seasons", "history"], "partial": false, "errors": {} }
}
Try it

Full Stats V2

#

Return operator statistics, playlist boards, season segments and total hours in one filtered response. Use this endpoint when the complete statistics dataset is needed immediately.

GET/r6/api/v2/fullstats

Query Parameters

nameOnPlatformstringrequired
Player username.
platformTypestringrequired
Uplay, psn or xbl.
seasonYearstringoptional
Season code such as Y11S3, or all.
modesstringoptional
Ranked, standard, casual or all.

Example Request

JavaScript
fetch('https://public-api.arenyze.com/r6/api/v2/fullstats?nameOnPlatform=PlayerName&platformType=uplay&seasonYear=Y11S3&modes=ranked', {
  headers: { 'api-key': 'YOUR_API_KEY' }
})
  .then(response => response.json())
  .then(data => console.log(data));

Example Response

ResponseJSON
{
  "player": { "nameOnPlatform": "PlayerName", "platformType": "uplay" },
  "filters": { "seasonYear": "Y11S3", "modes": "ranked" },
  "fullStats": {
    "seasonYear": "Y11S3",
    "seasonNumber": 43,
    "sessionType": "ranked",
    "operators": [],
    "platform_families_full_profiles": [],
    "data": { "segments": [] },
    "totalsHoursPlayed": { "hours": 124, "totalMs": 446400000, "segmentsCounted": 1 }
  }
}
Try it

Operators V2

#

Get player statistics grouped by operator. This endpoint has its own season and playlist filters and is designed to be loaded only when operator details are needed.

GET/r6/api/v2/operators

Query Parameters

nameOnPlatformstringrequired
Player username.
platformTypestringrequired
Uplay, psn or xbl.
seasonYearstringoptional
Y8S1 through Y11S4, or all.
modesstringoptional
All, ranked, standard, quick-match, dual-front or siege-cup.

Example Request

JavaScript
fetch('https://public-api.arenyze.com/r6/api/v2/operators?nameOnPlatform=PlayerName&platformType=uplay&seasonYear=Y11S3&modes=ranked', {
  headers: { 'api-key': 'YOUR_API_KEY' }
})
  .then(response => response.json())
  .then(data => console.log(data));

Example Response

ResponseJSON
{
  "player": { "nameOnPlatform": "PlayerName", "platformType": "uplay" },
  "filters": { "seasonYear": "Y11S3", "modes": "ranked" },
  "operators": {
    "seasonYear": "Y11S3",
    "seasonNumber": 43,
    "platformType": "uplay",
    "sessionType": "ranked",
    "operators": [
      { "operator": "Twitch", "side": "Attacker", "roundsPlayed": 47, "kd": 1.08, "kills": 38, "deaths": 35 }
    ]
  }
}
Try it

Leaderboard V2

#

Get the ranked leaderboard in pages of 100 entries. The response includes the selected platform and page alongside the entries.

GET/r6/api/v2/leaderboard

Query Parameters

pagenumberoptional
Page from 1 to 50. Default: 1.
platformstringoptional
Pc, psn or xbl. Default: pc.

Example Request

JavaScript
fetch('https://public-api.arenyze.com/r6/api/v2/leaderboard?page=1&platform=pc', {
  headers: { 'api-key': 'YOUR_API_KEY' }
})
  .then(response => response.json())
  .then(data => console.log(data));

Example Response

ResponseJSON
{
  "platform": "pc",
  "page": 1,
  "entries": [
    { "id": "player-id", "kd": 2.02, "matchesPlayed": 179, "rankPoints": 5032, "position": 1 }
  ]
}
Try it

Game Stats V2

#

Get global Rainbow Six Siege population data, including Steam concurrent players and estimated cross-platform distribution. This endpoint does not require query parameters.

GET/r6/api/v2/gamestats

Example Request

JavaScript
fetch('https://public-api.arenyze.com/r6/api/v2/gamestats', {
  headers: { 'api-key': 'YOUR_API_KEY' }
})
  .then(response => response.json())
  .then(data => console.log(data));

Example Response

ResponseJSON
{
  "steam": { "concurrent": 72000, "estimate": 72000 },
  "crossPlatform": {
    "totalRegistered": 100000000,
    "monthlyActive": 15150000,
    "trendsEstimate": 181701,
    "platforms": { "pc": 6817500, "playstation": 5302500, "xbox": 3030000 }
  },
  "ubisoft": { "onlineEstimate": 126700 },
  "lastUpdated": "2026-08-10T18:00:00.000Z"
}
Try it

Twitch Stats V2

#

Get viewer, channel, watch-time and follower statistics for the Rainbow Six Siege Twitch category. This endpoint does not require query parameters.

GET/r6/api/v2/twitchstats

Example Request

JavaScript
fetch('https://public-api.arenyze.com/r6/api/v2/twitchstats', {
  headers: { 'api-key': 'YOUR_API_KEY' }
})
  .then(response => response.json())
  .then(data => console.log(data));

Example Response

ResponseJSON
{
  "liveViewers": { "current": 4868, "peak": 33505 },
  "channels": { "live": 2100, "total": 15000 },
  "watchTime": { "last7Days": 817970, "last30Days": 3500000 },
  "category": { "followers": 19300000, "rank": 16, "newFollowers30Days": 16954 },
  "lastUpdated": "2026-08-10T18:00:00.000Z"
}
Try it

Account1 section

Account & Usage

#

Access information about your own R6 Arenyze account and monthly API usage using your API key. These endpoints return the same data you see in the dashboard overview and profile sections.

GET/r6/api/me/usage

Returns a monthly summary of your API consumption for the API key used in the api-key header. The structure matches the usage cards and charts on your dashboard.

Headers

api-keystring
Your API key generated from the dashboard.

Example Request

JavaScript
fetch('https://public-api.arenyze.com/r6/api/me/usage', {
    headers: {
        'api-key': 'YOUR_API_KEY'
    }
})
  .then(response => response.json())
  .then(data => console.log(data));

Example Response

ResponseJSON
{
  "plan": "pro",
  "limit": 100000,
  "usage": {
    "total_calls": 12345,
    "maps_calls": 1200,
    "operators_calls": 3400,
    "weapons_calls": 850,
    "skins_calls": 650,
    "ranks_calls": 900,
    "seasons_calls": 500,
    "stats_calls": 3200,
    "search_calls": 345,
    "servicestatus_calls": 50,
    "attachment_calls": 120,
    "charms_calls": 130,
    "debug_calls": 0,
    "last_seen_at": "2025-10-15T22:39:38.636Z"
  }
}
Try it

Match replays1 section

Match Replay

#

Upload Rainbow Six Siege .rec replay files (one or multiple rounds from the same match) and retrieve the normalized replay payload later. These endpoints require an API key.

POST/api/replays/api/upload

Upload one or more .rec files using multipart/form-data. You can upload up to 20 files per request, and all files must belong to the same matchID.

Headers

api-keystring
Your API key generated from the dashboard. (Recommended)
Authorizationstring
Bearer token format: Bearer YOUR_API_KEY.

Form Data Parameters

replayFilesfile
One .rec file. Repeat the same key multiple times to upload multiple files (multi-round).

Example Request (cURL)

curl -X POST "https://r6.arenyze.com/api/replays/api/upload" \ -H "api-key: YOUR_API_KEY" \ -F "replayFiles=@/path/to/Round1.rec" \ -F "replayFiles=@/path/to/Round2.rec" Example Request (JavaScript) const form = new FormData(); form.append('replayFiles', file1); form.append('replayFiles', file2); const res = await fetch('https://r6.arenyze.com/api/replays/api/upload', { method: 'POST', headers: { 'api-key': 'YOUR_API_KEY' }, body: form }); const data = await res.json(); console.log(data); Example Response { "matchID": "8f2c1b4e-....", "rounds": [ { "header": { "...": "..." }, "analysis": { "...": "..." }, "matchFeedback": [], "locationUpdates": [], "positions": [], "roundDuration": 0, "runtimeAnalysis": { "frameCount": 0, "bucketCount": 0, "markerCount": 0, "recordCounts": {} }, "parserEngine": "r6-arenyze-parser", "parserVersion": "1.0.0" } ], "match": { "match_id": "....", "replay_match_id": "8f2c1b4e-....", "title": "....", "map": "....", "mode": "....", "match_type": "....", "rounds_count": 2, "blue_score": 1, "orange_score": 1 }, "quota": { "plan": "free", "limit": 20, "used": 3, "remaining": 17 } } GET /api/replays/api/matches/:matchId Retrieve a saved replay match (normalized payload) by its matchId which corresponds to the replay_match_id (the matchID value found inside the replay files).

Path Parameters

matchIdstring
The replay match identifier (replay_match_id / replay matchID).

Example Request

JavaScript
fetch('https://r6.arenyze.com/api/replays/api/matches/8f2c1b4e-....', {
  headers: { 'api-key': 'YOUR_API_KEY' }
})
  .then(response => response.json())
  .then(data => console.log(data));

Example Response

ResponseJSON
{
  "match": {
    "match_id": "....",
    "replay_match_id": "8f2c1b4e-....",
    "title": "....",
    "map": "....",
    "mode": "....",
    "match_type": "....",
    "rounds_count": 2,
    "blue_score": 1,
    "orange_score": 1
  },
  "matchID": "8f2c1b4e-....",
  "rounds": [
    {
      "header": { "...": "..." },
      "analysis": { "...": "..." },
      "matchFeedback": [],
      "locationUpdates": [],
      "positions": [],
      "roundDuration": 0,
      "runtimeAnalysis": { "frameCount": 0, "bucketCount": 0, "markerCount": 0, "recordCounts": {} }
    }
  ]
}

Utilities2 sections

Service Status

#

Get real-time Rainbow Six Siege server status information.

GET/r6/api/servicestatus

No parameters required. Returns current server status for all platforms.

Example Response

ResponseJSON
[
  {
    "name": "PC",
    "status": "Online",
    "services": [
      "Game Services: Online",
      "Online Features: Online"
    ]
  },
  {
    "name": "PlayStation",
    "status": "Online",
    "services": [
      "Game Services: Online",
      "Online Features: Online"
    ]
  }
]
Try it

SDK: r6-data.js8 topics

Package NPM: r6-data.js

#

r6-data.js is a Rainbow Six Siege (R6) API wrapper for Node.js with full TypeScript support. It provides a high-level SDK to fetch player stats, ranks, operators, maps, seasons, cosmetics and utility data.

Landing page: R6-Data.js • NPM: r6-data.js • GitHub: mazeor9/r6-data.js

Installation

#

Install the package from NPM.

Shell
npm i r6-data.js

Initialization

#

The entire SDK is accessed through the R6Client instance.

const { R6Client } = require('r6-data.js'); const r6 = new R6Client({ apiKey: 'YOUR_API_KEY' }); TypeScript Support Typed params are available out of the box.

TypeScript
import { R6Client, AccountInfoParams } from 'r6-data.js';

const r6 = new R6Client({ apiKey: 'YOUR_API_KEY' });

const params: AccountInfoParams = {
  nameOnPlatform: 'PlayerName',
  platformType: 'uplay'
};

const accountInfo = await r6.players.getAccountInfo(params);

Example: Get Account Info

#

Retrieve player profile data from the official Rainbow Six Siege API.

JavaScript
const accountInfo = await r6.players.getAccountInfo({
  nameOnPlatform: 'PlayerName',
  platformType: 'uplay'
});

Example: Get Player Stats

#

Retrieve detailed gameplay statistics and optionally filter by mode (board).

JavaScript
const rankedStats = await r6.players.getPlayerStats({
  nameOnPlatform: 'PlayerName',
  platformType: 'uplay',
  platform_families: 'pc',
  board_id: 'ranked'
});

Example: Metadata Filters

#

Query game entities such as maps, operators, seasons, weapons, charms and more.

JavaScript
const mapsByPlaylist = await r6.game.getMaps({ playlists: 'ranked' });
const ash = await r6.game.getOperators({ name: 'Ash' });
const blackIce = await r6.game.getSeasons({ name: 'Black Ice' });

Example: Discord Webhook

#

Send Rainbow Six Siege player statistics to a Discord channel with rich embeds.

JavaScript
const playerStats = await r6.players.getPlayerStats({
  nameOnPlatform: 'PlayerName',
  platformType: 'uplay',
  platform_families: 'pc'
});

const webhookResult = await r6.webhooks.createDiscordR6Webhook(
  'https://discord.com/api/webhooks/YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN',
  playerStats,
  {
    playerName: 'PlayerName',
    title: 'Rainbow Six Siege Stats',
    message: 'Here are the latest R6 stats!',
    color: 0xF99E1A
  }
);

Methods

#

The SDK is organized in resources. Each method below includes a copy-paste example.

Base Setup

const { R6Client } = require('r6-data.js'); const r6 = new R6Client({ apiKey: process.env.R6DATA_API_KEY }); Players Resource (r6.players) METHOD r6.players.getAccountInfo(params) Retrieve player profile data.

const accountInfo = await r6.players.getAccountInfo({ nameOnPlatform: 'PlayerName', platformType: 'uplay' }); METHOD r6.players.getIsBanned(params) Check if a player is currently banned.

const banStatus = await r6.players.getIsBanned({ nameOnPlatform: 'PlayerName', platformType: 'uplay' }); METHOD r6.players.getPlayerStats(params) Retrieve detailed gameplay statistics (optionally filtered by board).

const rankedStats = await r6.players.getPlayerStats({ nameOnPlatform: 'PlayerName', platformType: 'uplay', platform_families: 'pc', board_id: 'ranked' }); METHOD r6.players.getPlayerComparisons(params) Compare statistics between multiple players.

const comparison = await r6.players.getPlayerComparisons({ players: [ { nameOnPlatform: 'Player1', platformType: 'uplay' }, { nameOnPlatform: 'Player2', platformType: 'uplay' } ], platform_families: 'pc', board_id: 'ranked' }); METHOD r6.players.getSeasonalStats(params) Get rank points history and seasonal progression for a player.

const seasonalStats = await r6.players.getSeasonalStats({ nameOnPlatform: 'PlayerName', platformType: 'uplay' }); METHOD r6.players.getOperatorStats(params) Get detailed operator statistics for a player.

const operatorStats = await r6.players.getOperatorStats({ nameOnPlatform: 'PlayerName', platformType: 'uplay', seasonYear: 'Y9S4', modes: 'ranked' }); Game Resource (r6.game) METHOD r6.game.getGameStats() Real-time player count statistics across platforms.

const gameStats = await r6.game.getGameStats(); METHOD r6.game.getMaps(params?) Retrieve maps list and optionally filter by parameters.

const maps = await r6.game.getMaps(); const mapsByName = await r6.game.getMaps({ name: 'Bank' }); const mapsByPlaylist = await r6.game.getMaps({ playlists: 'ranked' }); METHOD r6.game.getOperators(params?) Retrieve operators list and optionally filter by parameters.

const operators = await r6.game.getOperators(); const ash = await r6.game.getOperators({ name: 'Ash' }); const recruit = await r6.game.getOperators({ safename: 'recruit' }); METHOD r6.game.getSeasons(params?) Retrieve seasons list and optionally filter by parameters.

const seasons = await r6.game.getSeasons(); const blackIce = await r6.game.getSeasons({ name: 'Black Ice' }); const byMap = await r6.game.getSeasons({ map: 'Yacht' }); METHOD r6.game.getWeapons(params?) Retrieve weapons list and optionally filter by parameters.

const weapons = await r6.game.getWeapons(); const weaponByName = await r6.game.getWeapons({ name: 'AK-12' }); METHOD r6.game.getCharms(params?) Retrieve charms list and optionally filter by parameters.

const charms = await r6.game.getCharms(); const charmByName = await r6.game.getCharms({ name: 'Pro League' }); METHOD r6.game.getUniversalSkins(params?) Retrieve universal weapon skins list and optionally filter by parameters.

const skins = await r6.game.getUniversalSkins(); const skinByName = await r6.game.getUniversalSkins({ name: 'Black Ice' }); METHOD r6.game.getAttachment(params?) Retrieve weapon attachments list and optionally filter by parameters.

const attachments = await r6.game.getAttachment(); const attachmentByName = await r6.game.getAttachment({ name: 'Holo' }); METHOD r6.game.getRanks(params) Retrieve rank images and MMR boundaries for a ranked system version.

const ranksV7 = await r6.game.getRanks({ version: 'v7' }); const filteredRanks = await r6.game.getRanks({ min_mmr: 2000, max_mmr: 2500, version: 'v7' }); METHOD r6.game.getSearchAll(query) Search across all R6 entities simultaneously.

const searchResults = await r6.game.getSearchAll('black ice'); METHOD r6.game.getServiceStatus() Retrieve the current status of Rainbow Six Siege game servers.

const status = await r6.game.getServiceStatus(); Webhooks Resource (r6.webhooks) METHOD r6.webhooks.createDiscordR6Webhook(webhookUrl, playerStats, options) Send player statistics to a Discord webhook as a rich embed.

JavaScript
const playerStats = await r6.players.getPlayerStats({
  nameOnPlatform: 'PlayerName',
  platformType: 'uplay',
  platform_families: 'pc'
});

const webhookResult = await r6.webhooks.createDiscordR6Webhook(
  'https://discord.com/api/webhooks/YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN',
  playerStats,
  {
    playerName: 'PlayerName',
    title: 'Rainbow Six Siege Stats',
    message: 'Here are the latest R6 stats!',
    color: 0xF99E1A
  }
);