valorant-api-types
Version:
A collection of documented endpoints and return types for the unofficial Valorant API
1,775 lines • 73.9 kB
TypeScript
import { z } from 'zod';
export declare const matchDetailsEndpoint: {
readonly name: "Match Details";
readonly description: "Get the details of a match after it ends";
readonly queryName: "MatchDetails_FetchMatchDetails";
readonly category: "PVP Endpoints";
readonly type: "pd";
readonly suffix: "match-details/v1/matches/{matchID}";
readonly variables: Map<string, z.ZodString>;
readonly riotRequirements: {
readonly token: true;
readonly entitlement: true;
readonly clientVersion: true;
readonly clientPlatform: true;
};
readonly responses: {
readonly '200': z.ZodObject<{
matchInfo: z.ZodObject<{
matchId: z.ZodString;
mapId: z.ZodString;
gamePodId: z.ZodString;
gameLoopZone: z.ZodString;
gameServerAddress: z.ZodString;
gameVersion: z.ZodString;
gameLengthMillis: z.ZodNullable<z.ZodNumber>;
gameStartMillis: z.ZodNumber;
provisioningFlowID: z.ZodEnum<["Matchmaking", "CustomGame"]>;
isCompleted: z.ZodBoolean;
customGameName: z.ZodString;
forcePostProcessing: z.ZodBoolean;
queueID: z.ZodString;
gameMode: z.ZodString;
isRanked: z.ZodBoolean;
isMatchSampled: z.ZodBoolean;
seasonId: z.ZodString;
completionState: z.ZodEnum<["Surrendered", "Completed", "VoteDraw", ""]>;
platformType: z.ZodLiteral<"PC">;
premierMatchInfo: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
partyRRPenalties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
shouldMatchDisablePenalties: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
partyRRPenalties?: Record<string, number> | undefined;
platformType: "PC";
matchId: string;
mapId: string;
gamePodId: string;
gameLoopZone: string;
gameServerAddress: string;
gameVersion: string;
gameLengthMillis: number | null;
gameStartMillis: number;
provisioningFlowID: "Matchmaking" | "CustomGame";
isCompleted: boolean;
customGameName: string;
forcePostProcessing: boolean;
queueID: string;
gameMode: string;
isRanked: boolean;
isMatchSampled: boolean;
seasonId: string;
completionState: "" | "Surrendered" | "Completed" | "VoteDraw";
premierMatchInfo: {};
shouldMatchDisablePenalties: boolean;
}, {
partyRRPenalties?: Record<string, number> | undefined;
platformType: "PC";
matchId: string;
mapId: string;
gamePodId: string;
gameLoopZone: string;
gameServerAddress: string;
gameVersion: string;
gameLengthMillis: number | null;
gameStartMillis: number;
provisioningFlowID: "Matchmaking" | "CustomGame";
isCompleted: boolean;
customGameName: string;
forcePostProcessing: boolean;
queueID: string;
gameMode: string;
isRanked: boolean;
isMatchSampled: boolean;
seasonId: string;
completionState: "" | "Surrendered" | "Completed" | "VoteDraw";
premierMatchInfo: {};
shouldMatchDisablePenalties: boolean;
}>;
players: z.ZodArray<z.ZodObject<{
subject: z.ZodString;
gameName: z.ZodString;
tagLine: z.ZodString;
platformInfo: z.ZodObject<{
platformType: z.ZodLiteral<"PC">;
platformOS: z.ZodLiteral<"Windows">;
platformOSVersion: z.ZodString;
platformChipset: z.ZodLiteral<"Unknown">;
}, "strip", z.ZodTypeAny, {
platformType: "PC";
platformOS: "Windows";
platformOSVersion: string;
platformChipset: "Unknown";
}, {
platformType: "PC";
platformOS: "Windows";
platformOSVersion: string;
platformChipset: "Unknown";
}>;
teamId: z.ZodUnion<[z.ZodEnum<["Blue", "Red"]>, z.ZodString]>;
partyId: z.ZodString;
characterId: z.ZodString;
stats: z.ZodNullable<z.ZodObject<{
score: z.ZodNumber;
roundsPlayed: z.ZodNumber;
kills: z.ZodNumber;
deaths: z.ZodNumber;
assists: z.ZodNumber;
playtimeMillis: z.ZodNumber;
abilityCasts: z.ZodOptional<z.ZodNullable<z.ZodObject<{
grenadeCasts: z.ZodNumber;
ability1Casts: z.ZodNumber;
ability2Casts: z.ZodNumber;
ultimateCasts: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
grenadeCasts: number;
ability1Casts: number;
ability2Casts: number;
ultimateCasts: number;
}, {
grenadeCasts: number;
ability1Casts: number;
ability2Casts: number;
ultimateCasts: number;
}>>>;
}, "strip", z.ZodTypeAny, {
abilityCasts?: {
grenadeCasts: number;
ability1Casts: number;
ability2Casts: number;
ultimateCasts: number;
} | null | undefined;
score: number;
roundsPlayed: number;
kills: number;
deaths: number;
assists: number;
playtimeMillis: number;
}, {
abilityCasts?: {
grenadeCasts: number;
ability1Casts: number;
ability2Casts: number;
ultimateCasts: number;
} | null | undefined;
score: number;
roundsPlayed: number;
kills: number;
deaths: number;
assists: number;
playtimeMillis: number;
}>>;
roundDamage: z.ZodNullable<z.ZodArray<z.ZodObject<{
round: z.ZodNumber;
receiver: z.ZodString;
damage: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
round: number;
receiver: string;
damage: number;
}, {
round: number;
receiver: string;
damage: number;
}>, "many">>;
competitiveTier: z.ZodNumber;
isObserver: z.ZodBoolean;
playerCard: z.ZodString;
playerTitle: z.ZodString;
preferredLevelBorder: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>>;
accountLevel: z.ZodNumber;
sessionPlaytimeMinutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
xpModifications: z.ZodOptional<z.ZodArray<z.ZodObject<{
Value: z.ZodNumber;
ID: z.ZodString;
}, "strip", z.ZodTypeAny, {
ID: string;
Value: number;
}, {
ID: string;
Value: number;
}>, "many">>;
behaviorFactors: z.ZodOptional<z.ZodObject<{
afkRounds: z.ZodNumber;
collisions: z.ZodOptional<z.ZodNumber>;
commsRatingRecovery: z.ZodNumber;
damageParticipationOutgoing: z.ZodNumber;
friendlyFireIncoming: z.ZodOptional<z.ZodNumber>;
friendlyFireOutgoing: z.ZodOptional<z.ZodNumber>;
mouseMovement: z.ZodOptional<z.ZodNumber>;
stayedInSpawnRounds: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
collisions?: number | undefined;
friendlyFireIncoming?: number | undefined;
friendlyFireOutgoing?: number | undefined;
mouseMovement?: number | undefined;
stayedInSpawnRounds?: number | undefined;
afkRounds: number;
commsRatingRecovery: number;
damageParticipationOutgoing: number;
}, {
collisions?: number | undefined;
friendlyFireIncoming?: number | undefined;
friendlyFireOutgoing?: number | undefined;
mouseMovement?: number | undefined;
stayedInSpawnRounds?: number | undefined;
afkRounds: number;
commsRatingRecovery: number;
damageParticipationOutgoing: number;
}>>;
newPlayerExperienceDetails: z.ZodOptional<z.ZodObject<{
basicMovement: z.ZodObject<{
idleTimeMillis: z.ZodLiteral<0>;
objectiveCompleteTimeMillis: z.ZodLiteral<0>;
}, "strip", z.ZodTypeAny, {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
}, {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
}>;
basicGunSkill: z.ZodObject<{
idleTimeMillis: z.ZodLiteral<0>;
objectiveCompleteTimeMillis: z.ZodLiteral<0>;
}, "strip", z.ZodTypeAny, {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
}, {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
}>;
adaptiveBots: z.ZodObject<z.extendShape<{
adaptiveBotAverageDurationMillisAllAttempts: z.ZodLiteral<0>;
adaptiveBotAverageDurationMillisFirstAttempt: z.ZodLiteral<0>;
killDetailsFirstAttempt: z.ZodNull;
}, {
idleTimeMillis: z.ZodLiteral<0>;
objectiveCompleteTimeMillis: z.ZodLiteral<0>;
}>, "strip", z.ZodTypeAny, {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
adaptiveBotAverageDurationMillisAllAttempts: 0;
adaptiveBotAverageDurationMillisFirstAttempt: 0;
killDetailsFirstAttempt: null;
}, {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
adaptiveBotAverageDurationMillisAllAttempts: 0;
adaptiveBotAverageDurationMillisFirstAttempt: 0;
killDetailsFirstAttempt: null;
}>;
ability: z.ZodObject<{
idleTimeMillis: z.ZodLiteral<0>;
objectiveCompleteTimeMillis: z.ZodLiteral<0>;
}, "strip", z.ZodTypeAny, {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
}, {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
}>;
bombPlant: z.ZodObject<{
idleTimeMillis: z.ZodLiteral<0>;
objectiveCompleteTimeMillis: z.ZodLiteral<0>;
}, "strip", z.ZodTypeAny, {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
}, {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
}>;
defendBombSite: z.ZodObject<z.extendShape<{
success: z.ZodLiteral<false>;
}, {
idleTimeMillis: z.ZodLiteral<0>;
objectiveCompleteTimeMillis: z.ZodLiteral<0>;
}>, "strip", z.ZodTypeAny, {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
success: false;
}, {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
success: false;
}>;
settingStatus: z.ZodObject<{
isMouseSensitivityDefault: z.ZodBoolean;
isCrosshairDefault: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
isMouseSensitivityDefault: boolean;
isCrosshairDefault: boolean;
}, {
isMouseSensitivityDefault: boolean;
isCrosshairDefault: boolean;
}>;
versionString: z.ZodLiteral<"">;
}, "strip", z.ZodTypeAny, {
basicMovement: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
basicGunSkill: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
adaptiveBots: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
adaptiveBotAverageDurationMillisAllAttempts: 0;
adaptiveBotAverageDurationMillisFirstAttempt: 0;
killDetailsFirstAttempt: null;
};
ability: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
bombPlant: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
defendBombSite: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
success: false;
};
settingStatus: {
isMouseSensitivityDefault: boolean;
isCrosshairDefault: boolean;
};
versionString: "";
}, {
basicMovement: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
basicGunSkill: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
adaptiveBots: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
adaptiveBotAverageDurationMillisAllAttempts: 0;
adaptiveBotAverageDurationMillisFirstAttempt: 0;
killDetailsFirstAttempt: null;
};
ability: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
bombPlant: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
defendBombSite: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
success: false;
};
settingStatus: {
isMouseSensitivityDefault: boolean;
isCrosshairDefault: boolean;
};
versionString: "";
}>>;
}, "strip", z.ZodTypeAny, {
preferredLevelBorder?: string | undefined;
sessionPlaytimeMinutes?: number | null | undefined;
xpModifications?: {
ID: string;
Value: number;
}[] | undefined;
behaviorFactors?: {
collisions?: number | undefined;
friendlyFireIncoming?: number | undefined;
friendlyFireOutgoing?: number | undefined;
mouseMovement?: number | undefined;
stayedInSpawnRounds?: number | undefined;
afkRounds: number;
commsRatingRecovery: number;
damageParticipationOutgoing: number;
} | undefined;
newPlayerExperienceDetails?: {
basicMovement: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
basicGunSkill: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
adaptiveBots: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
adaptiveBotAverageDurationMillisAllAttempts: 0;
adaptiveBotAverageDurationMillisFirstAttempt: 0;
killDetailsFirstAttempt: null;
};
ability: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
bombPlant: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
defendBombSite: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
success: false;
};
settingStatus: {
isMouseSensitivityDefault: boolean;
isCrosshairDefault: boolean;
};
versionString: "";
} | undefined;
subject: string;
gameName: string;
tagLine: string;
platformInfo: {
platformType: "PC";
platformOS: "Windows";
platformOSVersion: string;
platformChipset: "Unknown";
};
teamId: string;
partyId: string;
characterId: string;
stats: {
abilityCasts?: {
grenadeCasts: number;
ability1Casts: number;
ability2Casts: number;
ultimateCasts: number;
} | null | undefined;
score: number;
roundsPlayed: number;
kills: number;
deaths: number;
assists: number;
playtimeMillis: number;
} | null;
roundDamage: {
round: number;
receiver: string;
damage: number;
}[] | null;
competitiveTier: number;
isObserver: boolean;
playerCard: string;
playerTitle: string;
accountLevel: number;
}, {
preferredLevelBorder?: string | undefined;
sessionPlaytimeMinutes?: number | null | undefined;
xpModifications?: {
ID: string;
Value: number;
}[] | undefined;
behaviorFactors?: {
collisions?: number | undefined;
friendlyFireIncoming?: number | undefined;
friendlyFireOutgoing?: number | undefined;
mouseMovement?: number | undefined;
stayedInSpawnRounds?: number | undefined;
afkRounds: number;
commsRatingRecovery: number;
damageParticipationOutgoing: number;
} | undefined;
newPlayerExperienceDetails?: {
basicMovement: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
basicGunSkill: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
adaptiveBots: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
adaptiveBotAverageDurationMillisAllAttempts: 0;
adaptiveBotAverageDurationMillisFirstAttempt: 0;
killDetailsFirstAttempt: null;
};
ability: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
bombPlant: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
defendBombSite: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
success: false;
};
settingStatus: {
isMouseSensitivityDefault: boolean;
isCrosshairDefault: boolean;
};
versionString: "";
} | undefined;
subject: string;
gameName: string;
tagLine: string;
platformInfo: {
platformType: "PC";
platformOS: "Windows";
platformOSVersion: string;
platformChipset: "Unknown";
};
teamId: string;
partyId: string;
characterId: string;
stats: {
abilityCasts?: {
grenadeCasts: number;
ability1Casts: number;
ability2Casts: number;
ultimateCasts: number;
} | null | undefined;
score: number;
roundsPlayed: number;
kills: number;
deaths: number;
assists: number;
playtimeMillis: number;
} | null;
roundDamage: {
round: number;
receiver: string;
damage: number;
}[] | null;
competitiveTier: number;
isObserver: boolean;
playerCard: string;
playerTitle: string;
accountLevel: number;
}>, "many">;
bots: z.ZodArray<z.ZodUnknown, "many">;
coaches: z.ZodArray<z.ZodObject<{
subject: z.ZodString;
teamId: z.ZodEnum<["Blue", "Red"]>;
}, "strip", z.ZodTypeAny, {
subject: string;
teamId: "Blue" | "Red";
}, {
subject: string;
teamId: "Blue" | "Red";
}>, "many">;
teams: z.ZodNullable<z.ZodArray<z.ZodObject<{
teamId: z.ZodUnion<[z.ZodEnum<["Blue", "Red"]>, z.ZodString]>;
won: z.ZodBoolean;
roundsPlayed: z.ZodNumber;
roundsWon: z.ZodNumber;
numPoints: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
teamId: string;
roundsPlayed: number;
won: boolean;
roundsWon: number;
numPoints: number;
}, {
teamId: string;
roundsPlayed: number;
won: boolean;
roundsWon: number;
numPoints: number;
}>, "many">>;
roundResults: z.ZodNullable<z.ZodArray<z.ZodObject<{
roundNum: z.ZodNumber;
roundResult: z.ZodEnum<["Eliminated", "Bomb detonated", "Bomb defused", "Surrendered", "Round timer expired"]>;
roundCeremony: z.ZodEnum<["CeremonyDefault", "CeremonyTeamAce", "CeremonyFlawless", "CeremonyCloser", "CeremonyClutch", "CeremonyThrifty", "CeremonyAce", ""]>;
winningTeam: z.ZodUnion<[z.ZodEnum<["Blue", "Red"]>, z.ZodString]>;
bombPlanter: z.ZodOptional<z.ZodString>;
bombDefuser: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["Blue", "Red"]>, z.ZodString]>>;
plantRoundTime: z.ZodOptional<z.ZodNumber>;
plantPlayerLocations: z.ZodNullable<z.ZodArray<z.ZodObject<{
subject: z.ZodString;
viewRadians: z.ZodNumber;
location: z.ZodObject<{
x: z.ZodNumber;
y: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
x: number;
y: number;
}, {
x: number;
y: number;
}>;
}, "strip", z.ZodTypeAny, {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}, {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}>, "many">>;
plantLocation: z.ZodObject<{
x: z.ZodNumber;
y: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
x: number;
y: number;
}, {
x: number;
y: number;
}>;
plantSite: z.ZodEnum<["A", "B", "C", ""]>;
defuseRoundTime: z.ZodOptional<z.ZodNumber>;
defusePlayerLocations: z.ZodNullable<z.ZodArray<z.ZodObject<{
subject: z.ZodString;
viewRadians: z.ZodNumber;
location: z.ZodObject<{
x: z.ZodNumber;
y: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
x: number;
y: number;
}, {
x: number;
y: number;
}>;
}, "strip", z.ZodTypeAny, {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}, {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}>, "many">>;
defuseLocation: z.ZodObject<{
x: z.ZodNumber;
y: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
x: number;
y: number;
}, {
x: number;
y: number;
}>;
playerStats: z.ZodArray<z.ZodObject<{
subject: z.ZodString;
kills: z.ZodArray<z.ZodObject<{
gameTime: z.ZodNumber;
roundTime: z.ZodNumber;
killer: z.ZodString;
victim: z.ZodString;
victimLocation: z.ZodObject<{
x: z.ZodNumber;
y: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
x: number;
y: number;
}, {
x: number;
y: number;
}>;
assistants: z.ZodArray<z.ZodString, "many">;
playerLocations: z.ZodArray<z.ZodObject<{
subject: z.ZodString;
viewRadians: z.ZodNumber;
location: z.ZodObject<{
x: z.ZodNumber;
y: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
x: number;
y: number;
}, {
x: number;
y: number;
}>;
}, "strip", z.ZodTypeAny, {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}, {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}>, "many">;
finishingDamage: z.ZodObject<{
damageType: z.ZodEnum<["Weapon", "Bomb", "Ability", "Fall", "Melee", "Invalid", ""]>;
damageItem: z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodEnum<["Ultimate", "Ability1", "Ability2", "GrenadeAbility", "Primary"]>]>, z.ZodLiteral<"">]>;
isSecondaryFireMode: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
damageType: "" | "Weapon" | "Bomb" | "Ability" | "Fall" | "Melee" | "Invalid";
damageItem: string;
isSecondaryFireMode: boolean;
}, {
damageType: "" | "Weapon" | "Bomb" | "Ability" | "Fall" | "Melee" | "Invalid";
damageItem: string;
isSecondaryFireMode: boolean;
}>;
}, "strip", z.ZodTypeAny, {
gameTime: number;
roundTime: number;
killer: string;
victim: string;
victimLocation: {
x: number;
y: number;
};
assistants: string[];
playerLocations: {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}[];
finishingDamage: {
damageType: "" | "Weapon" | "Bomb" | "Ability" | "Fall" | "Melee" | "Invalid";
damageItem: string;
isSecondaryFireMode: boolean;
};
}, {
gameTime: number;
roundTime: number;
killer: string;
victim: string;
victimLocation: {
x: number;
y: number;
};
assistants: string[];
playerLocations: {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}[];
finishingDamage: {
damageType: "" | "Weapon" | "Bomb" | "Ability" | "Fall" | "Melee" | "Invalid";
damageItem: string;
isSecondaryFireMode: boolean;
};
}>, "many">;
damage: z.ZodArray<z.ZodObject<{
receiver: z.ZodString;
damage: z.ZodNumber;
legshots: z.ZodNumber;
bodyshots: z.ZodNumber;
headshots: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
receiver: string;
damage: number;
legshots: number;
bodyshots: number;
headshots: number;
}, {
receiver: string;
damage: number;
legshots: number;
bodyshots: number;
headshots: number;
}>, "many">;
score: z.ZodNumber;
economy: z.ZodObject<{
loadoutValue: z.ZodNumber;
weapon: z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>;
armor: z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>;
remaining: z.ZodNumber;
spent: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
loadoutValue: number;
weapon: string;
armor: string;
remaining: number;
spent: number;
}, {
loadoutValue: number;
weapon: string;
armor: string;
remaining: number;
spent: number;
}>;
ability: z.ZodObject<{
grenadeEffects: z.ZodNull;
ability1Effects: z.ZodNull;
ability2Effects: z.ZodNull;
ultimateEffects: z.ZodNull;
}, "strip", z.ZodTypeAny, {
grenadeEffects: null;
ability1Effects: null;
ability2Effects: null;
ultimateEffects: null;
}, {
grenadeEffects: null;
ability1Effects: null;
ability2Effects: null;
ultimateEffects: null;
}>;
wasAfk: z.ZodBoolean;
wasPenalized: z.ZodBoolean;
stayedInSpawn: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
subject: string;
score: number;
kills: {
gameTime: number;
roundTime: number;
killer: string;
victim: string;
victimLocation: {
x: number;
y: number;
};
assistants: string[];
playerLocations: {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}[];
finishingDamage: {
damageType: "" | "Weapon" | "Bomb" | "Ability" | "Fall" | "Melee" | "Invalid";
damageItem: string;
isSecondaryFireMode: boolean;
};
}[];
damage: {
receiver: string;
damage: number;
legshots: number;
bodyshots: number;
headshots: number;
}[];
ability: {
grenadeEffects: null;
ability1Effects: null;
ability2Effects: null;
ultimateEffects: null;
};
economy: {
loadoutValue: number;
weapon: string;
armor: string;
remaining: number;
spent: number;
};
wasAfk: boolean;
wasPenalized: boolean;
stayedInSpawn: boolean;
}, {
subject: string;
score: number;
kills: {
gameTime: number;
roundTime: number;
killer: string;
victim: string;
victimLocation: {
x: number;
y: number;
};
assistants: string[];
playerLocations: {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}[];
finishingDamage: {
damageType: "" | "Weapon" | "Bomb" | "Ability" | "Fall" | "Melee" | "Invalid";
damageItem: string;
isSecondaryFireMode: boolean;
};
}[];
damage: {
receiver: string;
damage: number;
legshots: number;
bodyshots: number;
headshots: number;
}[];
ability: {
grenadeEffects: null;
ability1Effects: null;
ability2Effects: null;
ultimateEffects: null;
};
economy: {
loadoutValue: number;
weapon: string;
armor: string;
remaining: number;
spent: number;
};
wasAfk: boolean;
wasPenalized: boolean;
stayedInSpawn: boolean;
}>, "many">;
roundResultCode: z.ZodEnum<["Elimination", "Detonate", "Defuse", "Surrendered", ""]>;
playerEconomies: z.ZodNullable<z.ZodArray<z.ZodObject<z.extendShape<{
subject: z.ZodString;
}, {
loadoutValue: z.ZodNumber;
weapon: z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>;
armor: z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>;
remaining: z.ZodNumber;
spent: z.ZodNumber;
}>, "strip", z.ZodTypeAny, {
subject: string;
loadoutValue: number;
weapon: string;
armor: string;
remaining: number;
spent: number;
}, {
subject: string;
loadoutValue: number;
weapon: string;
armor: string;
remaining: number;
spent: number;
}>, "many">>;
playerScores: z.ZodNullable<z.ZodArray<z.ZodObject<{
subject: z.ZodString;
score: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
subject: string;
score: number;
}, {
subject: string;
score: number;
}>, "many">>;
}, "strip", z.ZodTypeAny, {
bombPlanter?: string | undefined;
bombDefuser?: string | undefined;
plantRoundTime?: number | undefined;
defuseRoundTime?: number | undefined;
roundNum: number;
roundResult: "Surrendered" | "Eliminated" | "Bomb detonated" | "Bomb defused" | "Round timer expired";
roundCeremony: "" | "CeremonyDefault" | "CeremonyTeamAce" | "CeremonyFlawless" | "CeremonyCloser" | "CeremonyClutch" | "CeremonyThrifty" | "CeremonyAce";
winningTeam: string;
plantPlayerLocations: {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}[] | null;
plantLocation: {
x: number;
y: number;
};
plantSite: "" | "A" | "B" | "C";
defusePlayerLocations: {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}[] | null;
defuseLocation: {
x: number;
y: number;
};
playerStats: {
subject: string;
score: number;
kills: {
gameTime: number;
roundTime: number;
killer: string;
victim: string;
victimLocation: {
x: number;
y: number;
};
assistants: string[];
playerLocations: {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}[];
finishingDamage: {
damageType: "" | "Weapon" | "Bomb" | "Ability" | "Fall" | "Melee" | "Invalid";
damageItem: string;
isSecondaryFireMode: boolean;
};
}[];
damage: {
receiver: string;
damage: number;
legshots: number;
bodyshots: number;
headshots: number;
}[];
ability: {
grenadeEffects: null;
ability1Effects: null;
ability2Effects: null;
ultimateEffects: null;
};
economy: {
loadoutValue: number;
weapon: string;
armor: string;
remaining: number;
spent: number;
};
wasAfk: boolean;
wasPenalized: boolean;
stayedInSpawn: boolean;
}[];
roundResultCode: "" | "Surrendered" | "Elimination" | "Detonate" | "Defuse";
playerEconomies: {
subject: string;
loadoutValue: number;
weapon: string;
armor: string;
remaining: number;
spent: number;
}[] | null;
playerScores: {
subject: string;
score: number;
}[] | null;
}, {
bombPlanter?: string | undefined;
bombDefuser?: string | undefined;
plantRoundTime?: number | undefined;
defuseRoundTime?: number | undefined;
roundNum: number;
roundResult: "Surrendered" | "Eliminated" | "Bomb detonated" | "Bomb defused" | "Round timer expired";
roundCeremony: "" | "CeremonyDefault" | "CeremonyTeamAce" | "CeremonyFlawless" | "CeremonyCloser" | "CeremonyClutch" | "CeremonyThrifty" | "CeremonyAce";
winningTeam: string;
plantPlayerLocations: {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}[] | null;
plantLocation: {
x: number;
y: number;
};
plantSite: "" | "A" | "B" | "C";
defusePlayerLocations: {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}[] | null;
defuseLocation: {
x: number;
y: number;
};
playerStats: {
subject: string;
score: number;
kills: {
gameTime: number;
roundTime: number;
killer: string;
victim: string;
victimLocation: {
x: number;
y: number;
};
assistants: string[];
playerLocations: {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}[];
finishingDamage: {
damageType: "" | "Weapon" | "Bomb" | "Ability" | "Fall" | "Melee" | "Invalid";
damageItem: string;
isSecondaryFireMode: boolean;
};
}[];
damage: {
receiver: string;
damage: number;
legshots: number;
bodyshots: number;
headshots: number;
}[];
ability: {
grenadeEffects: null;
ability1Effects: null;
ability2Effects: null;
ultimateEffects: null;
};
economy: {
loadoutValue: number;
weapon: string;
armor: string;
remaining: number;
spent: number;
};
wasAfk: boolean;
wasPenalized: boolean;
stayedInSpawn: boolean;
}[];
roundResultCode: "" | "Surrendered" | "Elimination" | "Detonate" | "Defuse";
playerEconomies: {
subject: string;
loadoutValue: number;
weapon: string;
armor: string;
remaining: number;
spent: number;
}[] | null;
playerScores: {
subject: string;
score: number;
}[] | null;
}>, "many">>;
kills: z.ZodNullable<z.ZodArray<z.ZodObject<z.extendShape<{
gameTime: z.ZodNumber;
roundTime: z.ZodNumber;
killer: z.ZodString;
victim: z.ZodString;
victimLocation: z.ZodObject<{
x: z.ZodNumber;
y: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
x: number;
y: number;
}, {
x: number;
y: number;
}>;
assistants: z.ZodArray<z.ZodString, "many">;
playerLocations: z.ZodArray<z.ZodObject<{
subject: z.ZodString;
viewRadians: z.ZodNumber;
location: z.ZodObject<{
x: z.ZodNumber;
y: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
x: number;
y: number;
}, {
x: number;
y: number;
}>;
}, "strip", z.ZodTypeAny, {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}, {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}>, "many">;
finishingDamage: z.ZodObject<{
damageType: z.ZodEnum<["Weapon", "Bomb", "Ability", "Fall", "Melee", "Invalid", ""]>;
damageItem: z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodEnum<["Ultimate", "Ability1", "Ability2", "GrenadeAbility", "Primary"]>]>, z.ZodLiteral<"">]>;
isSecondaryFireMode: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
damageType: "" | "Weapon" | "Bomb" | "Ability" | "Fall" | "Melee" | "Invalid";
damageItem: string;
isSecondaryFireMode: boolean;
}, {
damageType: "" | "Weapon" | "Bomb" | "Ability" | "Fall" | "Melee" | "Invalid";
damageItem: string;
isSecondaryFireMode: boolean;
}>;
}, {
round: z.ZodNumber;
}>, "strip", z.ZodTypeAny, {
gameTime: number;
roundTime: number;
killer: string;
victim: string;
victimLocation: {
x: number;
y: number;
};
assistants: string[];
playerLocations: {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}[];
finishingDamage: {
damageType: "" | "Weapon" | "Bomb" | "Ability" | "Fall" | "Melee" | "Invalid";
damageItem: string;
isSecondaryFireMode: boolean;
};
round: number;
}, {
gameTime: number;
roundTime: number;
killer: string;
victim: string;
victimLocation: {
x: number;
y: number;
};
assistants: string[];
playerLocations: {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}[];
finishingDamage: {
damageType: "" | "Weapon" | "Bomb" | "Ability" | "Fall" | "Melee" | "Invalid";
damageItem: string;
isSecondaryFireMode: boolean;
};
round: number;
}>, "many">>;
}, "strip", z.ZodTypeAny, {
matchInfo: {
partyRRPenalties?: Record<string, number> | undefined;
platformType: "PC";
matchId: string;
mapId: string;
gamePodId: string;
gameLoopZone: string;
gameServerAddress: string;
gameVersion: string;
gameLengthMillis: number | null;
gameStartMillis: number;
provisioningFlowID: "Matchmaking" | "CustomGame";
isCompleted: boolean;
customGameName: string;
forcePostProcessing: boolean;
queueID: string;
gameMode: string;
isRanked: boolean;
isMatchSampled: boolean;
seasonId: string;
completionState: "" | "Surrendered" | "Completed" | "VoteDraw";
premierMatchInfo: {};
shouldMatchDisablePenalties: boolean;
};
players: {
preferredLevelBorder?: string | undefined;
sessionPlaytimeMinutes?: number | null | undefined;
xpModifications?: {
ID: string;
Value: number;
}[] | undefined;
behaviorFactors?: {
collisions?: number | undefined;
friendlyFireIncoming?: number | undefined;
friendlyFireOutgoing?: number | undefined;
mouseMovement?: number | undefined;
stayedInSpawnRounds?: number | undefined;
afkRounds: number;
commsRatingRecovery: number;
damageParticipationOutgoing: number;
} | undefined;
newPlayerExperienceDetails?: {
basicMovement: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
basicGunSkill: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
adaptiveBots: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
adaptiveBotAverageDurationMillisAllAttempts: 0;
adaptiveBotAverageDurationMillisFirstAttempt: 0;
killDetailsFirstAttempt: null;
};
ability: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
bombPlant: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
defendBombSite: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
success: false;
};
settingStatus: {
isMouseSensitivityDefault: boolean;
isCrosshairDefault: boolean;
};
versionString: "";
} | undefined;
subject: string;
gameName: string;
tagLine: string;
platformInfo: {
platformType: "PC";
platformOS: "Windows";
platformOSVersion: string;
platformChipset: "Unknown";
};
teamId: string;
partyId: string;
characterId: string;
stats: {
abilityCasts?: {
grenadeCasts: number;
ability1Casts: number;
ability2Casts: number;
ultimateCasts: number;
} | null | undefined;
score: number;
roundsPlayed: number;
kills: number;
deaths: number;
assists: number;
playtimeMillis: number;
} | null;
roundDamage: {
round: number;
receiver: string;
damage: number;
}[] | null;
competitiveTier: number;
isObserver: boolean;
playerCard: string;
playerTitle: string;
accountLevel: number;
}[];
kills: {
gameTime: number;
roundTime: number;
killer: string;
victim: string;
victimLocation: {
x: number;
y: number;
};
assistants: string[];
playerLocations: {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}[];
finishingDamage: {
damageType: "" | "Weapon" | "Bomb" | "Ability" | "Fall" | "Melee" | "Invalid";
damageItem: string;
isSecondaryFireMode: boolean;
};
round: number;
}[] | null;
bots: unknown[];
coaches: {
subject: string;
teamId: "Blue" | "Red";
}[];
teams: {
teamId: string;
roundsPlayed: number;
won: boolean;
roundsWon: number;
numPoints: number;
}[] | null;
roundResults: {
bombPlanter?: string | undefined;
bombDefuser?: string | undefined;
plantRoundTime?: number | undefined;
defuseRoundTime?: number | undefined;
roundNum: number;
roundResult: "Surrendered" | "Eliminated" | "Bomb detonated" | "Bomb defused" | "Round timer expired";
roundCeremony: "" | "CeremonyDefault" | "CeremonyTeamAce" | "CeremonyFlawless" | "CeremonyCloser" | "CeremonyClutch" | "CeremonyThrifty" | "CeremonyAce";
winningTeam: string;
plantPlayerLocations: {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}[] | null;
plantLocation: {
x: number;
y: number;
};
plantSite: "" | "A" | "B" | "C";
defusePlayerLocations: {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}[] | null;
defuseLocation: {
x: number;
y: number;
};
playerStats: {
subject: string;
score: number;
kills: {
gameTime: number;
roundTime: number;
killer: string;
victim: string;
victimLocation: {
x: number;
y: number;
};
assistants: string[];
playerLocations: {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}[];
finishingDamage: {
damageType: "" | "Weapon" | "Bomb" | "Ability" | "Fall" | "Melee" | "Invalid";
damageItem: string;
isSecondaryFireMode: boolean;
};
}[];
damage: {
receiver: string;
damage: number;
legshots: number;
bodyshots: number;
headshots: number;
}[];
ability: {
grenadeEffects: null;
ability1Effects: null;
ability2Effects: null;
ultimateEffects: null;
};
economy: {
loadoutValue: number;
weapon: string;
armor: string;
remaining: number;
spent: number;
};
wasAfk: boolean;
wasPenalized: boolean;
stayedInSpawn: boolean;
}[];
roundResultCode: "" | "Surrendered" | "Elimination" | "Detonate" | "Defuse";
playerEconomies: {
subject: string;
loadoutValue: number;
weapon: string;
armor: string;
remaining: number;
spent: number;
}[] | null;
playerScores: {
subject: string;
score: number;
}[] | null;
}[] | null;
}, {
matchInfo: {
partyRRPenalties?: Record<string, number> | undefined;
platformType: "PC";
matchId: string;
mapId: string;
gamePodId: string;
gameLoopZone: string;
gameServerAddress: string;
gameVersion: string;
gameLengthMillis: number | null;
gameStartMillis: number;
provisioningFlowID: "Matchmaking" | "CustomGame";
isCompleted: boolean;
customGameName: string;
forcePostProcessing: boolean;
queueID: string;
gameMode: string;
isRanked: boolean;
isMatchSampled: boolean;
seasonId: string;
completionState: "" | "Surrendered" | "Completed" | "VoteDraw";
premierMatchInfo: {};
shouldMatchDisablePenalties: boolean;
};
players: {
preferredLevelBorder?: string | undefined;
sessionPlaytimeMinutes?: number | null | undefined;
xpModifications?: {
ID: string;
Value: number;
}[] | undefined;
behaviorFactors?: {
collisions?: number | undefined;
friendlyFireIncoming?: number | undefined;
friendlyFireOutgoing?: number | undefined;
mouseMovement?: number | undefined;
stayedInSpawnRounds?: number | undefined;
afkRounds: number;
commsRatingRecovery: number;
damageParticipationOutgoing: number;
} | undefined;
newPlayerExperienceDetails?: {
basicMovement: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
basicGunSkill: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
adaptiveBots: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
adaptiveBotAverageDurationMillisAllAttempts: 0;
adaptiveBotAverageDurationMillisFirstAttempt: 0;
killDetailsFirstAttempt: null;
};
ability: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
bombPlant: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
};
defendBombSite: {
idleTimeMillis: 0;
objectiveCompleteTimeMillis: 0;
success: false;
};
settingStatus: {
isMouseSensitivityDefault: boolean;
isCrosshairDefault: boolean;
};
versionString: "";
} | undefined;
subject: string;
gameName: string;
tagLine: string;
platformInfo: {
platformType: "PC";
platformOS: "Windows";
platformOSVersion: string;
platformChipset: "Unknown";
};
teamId: string;
partyId: string;
characterId: string;
stats: {
abilityCasts?: {
grenadeCasts: number;
ability1Casts: number;
ability2Casts: number;
ultimateCasts: number;
} | null | undefined;
score: number;
roundsPlayed: number;
kills: number;
deaths: number;
assists: number;
playtimeMillis: number;
} | null;
roundDamage: {
round: number;
receiver: string;
damage: number;
}[] | null;
competitiveTier: number;
isObserver: boolean;
playerCard: string;
playerTitle: string;
accountLevel: number;
}[];
kills: {
gameTime: number;
roundTime: number;
killer: string;
victim: string;
victimLocation: {
x: number;
y: number;
};
assistants: string[];
playerLocations: {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}[];
finishingDamage: {
damageType: "" | "Weapon" | "Bomb" | "Ability" | "Fall" | "Melee" | "Invalid";
damageItem: string;
isSecondaryFireMode: boolean;
};
round: number;
}[] | null;
bots: unknown[];
coaches: {
subject: string;
teamId: "Blue" | "Red";
}[];
teams: {
teamId: string;
roundsPlayed: number;
won: boolean;
roundsWon: number;
numPoints: number;
}[] | null;
roundResults: {
bombPlanter?: string | undefined;
bombDefuser?: string | undefined;
plantRoundTime?: number | undefined;
defuseRoundTime?: number | undefined;
roundNum: number;
roundResult: "Surrendered" | "Eliminated" | "Bomb detonated" | "Bomb defused" | "Round timer expired";
roundCeremony: "" | "CeremonyDefault" | "CeremonyTeamAce" | "CeremonyFlawless" | "CeremonyCloser" | "CeremonyClutch" | "CeremonyThrifty" | "CeremonyAce";
winningTeam: string;
plantPlayerLocations: {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}[] | null;
plantLocation: {
x: number;
y: number;
};
plantSite: "" | "A" | "B" | "C";
defusePlayerLocations: {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}[] | null;
defuseLocation: {
x: number;
y: number;
};
playerStats: {
subject: string;
score: number;
kills: {
gameTime: number;
roundTime: number;
killer: string;
victim: string;
victimLocation: {
x: number;
y: number;
};
assistants: string[];
playerLocations: {
subject: string;
viewRadians: number;
location: {
x: number;
y: number;
};
}[];
finishingDamage: {
damageType: "" | "Weapon" | "Bomb" | "Ability" | "Fall" | "Melee" | "Invalid";
damageItem: string;
isSecondaryFireMode: boolean;
};
}[];
damage: {
receiver: string;
damage: number;
legshots: number;
bodyshots: number;
headshots: number;
}[];
ability: {
grenadeEffects: null;
ability1Effects: null;
ability2Effects: null;
ultimateEffects: null;
};
economy: {
loadoutValue: number;
weapon: string;
armor: string;
remaining: number;
spent: number;
};
wasAfk: boolean;
wasPenalized: boolean;
stayedInSpawn: boolean;
}[];
roundResultCode: "" | "Surrendered" | "Elimination" | "Detonate" | "Defuse";
playerEconomies: {
subject: string;
loadoutValue: number;
weapon: string;
armor: string;
remaining: number;
spent: number;
}[] | null;
playerScores: {
subject: string;
score: number;
}[] | null;
}[] | null;
}>;
};
};
export type MatchDetailsResponse = z.infer<typeof matchDetailsEndpoint.responses['200']>;