root@windowsed — boot
root@windowsed:~$ ./lab/collection

API Lab

Interactive playground for all image & data API routes.

POST/collection → image/png
Player Name
Language
English
Player Card + Expressions (optional)
Player Card
Title
Level
Expressions — sprays & flexes (up to 4)
Sidearms
Classic
Shorty
Frenzy
Ghost
Bandit
Sheriff
SMGs
Stinger
Spectre
Shotguns
Bucky
Judge
Rifles
Bulldog
Guardian
Phantom
Vandal
Sniper Rifles
Marshal
Outlaw
Operator
Machine Guns
Ares
Odin
Melee
Melee
code examples
// Loadout order — each array maps to these weapons by index (skin level / chroma UUID per slot):
//   Sidearms[0..5]     = Classic, Shorty, Frenzy, Ghost, Bandit, Sheriff
//   SMGs[0..1]         = Stinger, Spectre
//   Shotguns[0..1]     = Bucky, Judge
//   Rifles[0..3]       = Bulldog, Guardian, Phantom, Vandal
//   SniperRifles[0..2] = Marshal, Outlaw, Operator
//   MachineGuns[0..1]  = Ares, Odin
//   Melee[0]           = Melee
// Leave a slot empty ("") to fall back to that weapon's default skin.
// 
// Optional identity panel (adds a right-hand column):
//   card    = equipped player-card UUID
//   title   = equipped player-title UUID
//   level   = account level shown on the card
//   expressions = up to 4 expression UUIDs (spray or flex/totem) for the wheel

import axios from "axios";

const response = await axios.post(
  "https://windowsed.me/collection",
  {
  "playerName": "windowsed",
  "language": "en-US",
  "Sidearms": [],
  "SMGs": [],
  "Shotguns": [],
  "Rifles": [],
  "SniperRifles": [],
  "MachineGuns": [],
  "Melee": []
},
  { responseType: "arraybuffer" }
);

// response.data is a Buffer (Node.js) / ArrayBuffer (browser)
// Content-Type: image/png
request / response
{
  "playerName": "windowsed",
  "language": "en-US",
  "Sidearms": [],
  "SMGs": [],
  "Shotguns": [],
  "Rifles": [],
  "SniperRifles": [],
  "MachineGuns": [],
  "Melee": []
}