Your stream.
Their record.
Use confirmed Five Five Six stats in your overlays, bots, and community tools. Read-only API access requires an approved developer key. This is accumulated player history, not live match telemetry.
Sign in with Discord and request an API key · Administrator: review API requests
Describe your project, wait for approval, then create your key in the account portal. Keys are shown once. Send yours in Authorization: Bearer YOUR_KEY or X-API-Key: YOUR_KEY. Replacing a key immediately revokes the previous one.
One endpoint. Every public player.
GET https://556vr.com/api/v1/players.json
Authorization: Bearer YOUR_KEY
The response contains a players array. Find players by their 17-digit Steam ID string; names can change. This v1 endpoint returns the full snapshot: player selection, searching, and mode selection happen in your code. Query parameters do not filter it. Opening the feed without a key returns HTTP 401.
Each player has id, name, totals, weapons, maps, and modes. Top-level stats combine Free-for-All, Defuse, and Explore. modes.ffa, modes.defuse, modes.explore, and modes.coop each contain their own totals, weapons, and maps. Co-op NPC kills never enter the top-level PvP totals.
Co-op includes solo and multiplayer rounds. modes.coop.difficulties contains easy, medium, hard, and invincible, each with totals, weapons, and maps. Co-op totals also include soloRounds and multiplayerRounds, based on participation at round start. Solo results come from one authenticated participant; multiplayer results require the existing agreement threshold.
JavaScript / browser overlays
The optional helper downloads the snapshot and selects one player locally. It shares concurrent requests and caches successful fetches for one minute. Use this inside your overlay's JavaScript module:
import { createStatsClient } from
"https://556vr.com/api/v1/client.js";
const { getPlayer } = createStatsClient(
"https://556vr.com/api/v1/players.json",
{ apiKey: privateKeyFromLocalSettings }
);
const result = await getPlayer("YOUR_17_DIGIT_STEAM_ID");
// Optional: getPlayer(id, { mode: "ffa" })
// Co-op: getPlayer(id, { mode: "coop", difficulty: "hard" })
// Modes: all (default), ffa, defuse, explore.
if (!result.player) {
// No confirmed stats for this player yet.
} else if (result.isStale) {
// Show a "stats delayed" indicator.
} else {
const p = result.player;
const kdr = p.totals.kdrInfinite ? "∞" :
p.totals.kdr === null ? "—" : p.totals.kdr.toFixed(2);
// Use textContent, not innerHTML, for player/map/weapon names.
document.querySelector("#player-name").textContent = p.name;
document.querySelector("#kills").textContent = p.totals.kills;
document.querySelector("#kdr").textContent = kdr;
}
// Poll about once every 300 seconds, not every frame.
This helper is for a private local overlay or trusted runtime. Supply privateKeyFromLocalSettings from your own private configuration. For a public website, keep the key on your backend and serve the needed results from there. Never embed a key in shared JavaScript or a URL. Cross-origin requests support the authentication headers above; cookies are not used by the data API.
PowerShell / stream automation
$url = 'https://556vr.com/api/v1/players.json'
$data = Invoke-RestMethod -Uri $url -Headers @{ 'X-API-Key' = $env:FIVEFIVESIX_API_KEY }
$player = $data.players | Where-Object id -EQ 'YOUR_17_DIGIT_STEAM_ID'
$player.totals
$player.weapons
$player.maps
$player.modes.ffa.totals
Fields & calculations
| Record | Fields |
|---|---|
| Player totals & each map | kills, deaths, kdr, kdrInfinite, revives, teamkills, rounds, objectiveWins, defuses |
| Each weapon | id, kills, shots, successfulShots, damageMilli, damage, accuracyPercent |
| Each map's identity | id, name — group by stable ID, not display name. |
| Snapshot metadata | schemaVersion, generatedAt, refreshSeconds, staleAfterSeconds |
generatedAtis backend Unix time in seconds (UTC). The publisher runs every five minutes; caching can delay visibility further. Treat data older thanstaleAfterSeconds(900) as delayed. The helper computesisStaleusing your device clock.kdris kills divided by deaths, ornullwhen deaths are zero.kdrInfinitedistinguishes positive kills / zero deaths from 0 / 0. Ratios are rounded to six decimal places.accuracyPercentis 100 × successful shots / shots, ornullwith no shots. Raw counters are summed before calculating accuracy. Grenades count throws and successful throws, not individual victims.damageis enemy health damage;damageMilliretains the integer source units (divide by 1000).objectiveWinsmeans FFA last-player-standing wins. Bombdefusesremain separate; Explore has no objective wins.- Overall player totals come from the lifetime player record, not a sum of maps. Older rounds can lack map data. Mode weapon/map totals remain separately available; weapon-by-map cross-breakdowns are not part of v1.
Handle missing or delayed data
A missing player is absent from the array; the helper returns player: null. No confirmed rounds yet is not the same as an outage. An empty dataset is valid. Missing mode records have zero counters and empty weapon/map arrays.
On timeout, a non-200 response, or an unsupported schema, the helper throws. Catch errors, keep your last known values with an unavailable/delayed label, and retry with backoff. Do not turn a failed request into zero stats. Preserve timestamps and tolerate new optional fields within v1.
Use GET or HEAD with your API key. CORS preflight OPTIONS requests are supported. Missing or invalid keys return 401; revoked keys or banned accounts return 403; unknown endpoints return 404; quota limits return 429 with a Retry-After header. Each account is limited to 120 calls per minute and 10,000 per UTC day, including all its rotated keys. Poll about every five minutes and share the snapshot across players. API responses are not shared-cacheable so revocations take effect on the next request.
Your account page shows current-key usage and last access. Administrators can review requests, revoke keys or ban API accounts. Public stats pages remain viewable. Read the API privacy notice.
Reports, moderation records, private Steam metadata, unconfirmed scores, and gameplay credentials are not exposed. This API cannot submit scores, change stats, or authenticate players.