xsapi-node is a TypeScript wrapper for the Xbox Services RESTful API, this package includes methods for interacting with user settings, achievements, presence, multiplayer activity, social interactions, and club activities.
const { Client } = require("xsapi-node");
const prismarineAuth = require("prismarine-auth");
const authflow = new prismarineAuth.Authflow("asd", "./profiles", {
"authTitle": prismarineAuth.Titles.MinecraftNintendoSwitch,
"flow": "live"
});
authflow.getXboxToken().then(async (token) => {
const client = new Client(token);
client.users.getSettings([token.userXUID], ["ModernGamertag", "Gamerscore", "Bio"]).then(i => console.log(i)).catch(console.error);
})getSettings(XUIDs: XUID[], options: UserSettings[]): Fetches settings for multiple users specified by their XUIDs.getAchievements(XUID: XUID, options: AchievementOptions = {})Fetches achievements for a specific user.getXUID(username: string)Fetches the xuid of the for the specified user.getAchievementTitleHistory(XUID: XUID, options?: { skipItems?: number, continuationToken?: string, maxItems?: number })Fetches the achivement title history for the specified user.
getCurrentPresence(): Fetches the current presence of the user.getBatchUserPresence(XUIDs: string[]): Fetches the presence of multiple users.getCurrentGroupPresence(level: levels): Fetches the presence of groups at different levels.updateTitlePresence(xuid: string, id: string, placement: string, state: string): Updates the presence of a title.removeTitlePresence(xuid: string, titleId: string, deviceId?: string, deviceType?: string): Removes the presence of a title.getGroupPresence(xuid: string, level: levels): Fetches the presence of a group.getGroupBroadcastingPresence(xuid: string, level: levels): Fetches the broadcasting presence of a group.getGroupBroadcastingCount(xuid: string, level: string = 'title'): Fetches the count of broadcasting in a group.
getMultiplayerActivity(titleId: number, XUID: XUID): Fetches multiplayer activity for a specific user and title.updateMultiplayerActivity(titleId: number, XUID: XUID, activity: UpdateMultiplayerActivity): Updates multiplayer activity for a specific user and title.deleteMultiplayerActivity(titleId: number, XUID: XUID, sequenceNumber: string): Deletes multiplayer activity for a specific user and title.
getFollowers(XUID: XUID, options: { view: ("All" | "Favorite" | "LegacyXboxLiveFriends"), maxItems: number, startIndex: number }): Fetches followers of a user.getFollowersAsUser(userXUID: XUID, targetXUID: XUID): Fetches followers as a user.getFollowersXUIDs(XUID: XUID, XUIDS: string[]): Fetches XUIDs of followers.getFriends(XUID: XUID, options: { view: ("All" | "Favorite" | "LegacyXboxLiveFriends"), maxItems: number, startIndex: number }): Fetches friends of a user.getViewAsUser(viewingXUID: XUID): Fetches the view as a user.
getChat(clubId: string, amount: number): Fetches chat messages from a club.getClub(clubId: string): Fetches club details.getFeed(clubId: string, amount: number): Fetches the feed of a club.findClub(xuid: string): Finds a club by XUID.sendFeed(message: string, titleId: number, target: "all" | "club", type: "text" | "image" | "video"): Sends a feed message.