npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@lamarcke/psn-api

v1.0.3

Published

A well-tested library that lets you get trophy, user, and game data from the PlayStation Network.

Downloads

263

Readme

Features

✅  Modular by design, and supports tree-shaking.
✅  Aligns with the community API documentation.
✅  Supports Node environments (14 and above).
✅  Supports browsers.
✅  Ships with TypeScript support and types.
✅  Small, <5Kb.

Documentation

Learn how to authenticate and start pulling data from the PlayStation Network on our documentation website.

Installation

Run the following command:

npm install psn-api

How to obtain an authentication token

To use any endpoint function in the API, you must first be authorized by PSN. Fortunately, this is a fairly straightforward process.

  1. In your web browser, visit https://www.playstation.com/, click the "Sign In" button, and log in with a PSN account.

  2. In the same browser (due to a persisted cookie), visit https://ca.account.sony.com/api/v1/ssocookie. You will see a JSON response that looks something like:

{ "npsso": "<64 character token>" }

Copy your NPSSO. Do not expose it anywhere publicly, it is equivalent to your password.

If you see an error response, try using different browser.

  1. You can now obtain an authentication token using your NPSSO with the following function calls from this package.
// This is the value you copied from the previous step.
const myNpsso = "<64 character token>";

// We'll exchange your NPSSO for a special access code.
const accessCode = await exchangeNpssoForCode(myNpsso);

// We can use the access code to get your access token and refresh token.
const authorization = await exchangeCodeForAccessToken(accessCode);
  1. You should now be all set to use any endpoint provided by this package. Each function requires as its first argument an object containing your access token. ex:
const authorization = await exchangeCodeForAccessToken(accessCode);

// This returns a list of all the games you've earned trophies for.
const userTitlesResponse = await getUserTitles(
  { accessToken: authorization.accessToken },
  "me"
);

API

Click the function names to open their complete docs on the docs site.

Authentication

Search

  • makeUniversalSearch() - Search the PSN API. This is a good way to find a user's accountId from their username.

Users

Trophies

  • getTitleTrophies() - Retrieve the individual trophy details of a single or all trophy groups for a title.
  • getTitleTrophyGroups() - Get a list of trophy groups (typically the base set and DLCs) for a title.
  • getUserTitles() - Retrieve a list of the titles associated with an account and a summary of trophies earned from them.
  • getUserTrophiesEarnedForTitle() - Retrieve the earned status of trophies for a user from either a single or all trophy groups in a title.
  • getUserTrophyGroupEarningsForTitle() - Get a summary of trophies earned for a user broken down by trophy group within a title.
  • getUserTrophyProfileSummary() - Retrieve an overall summary of the number of trophies earned for a user broken down by type.
  • getRecentlyPlayedGames() - Retrieve a list of recently played games for the user associated with the access token provided to this function.
  • getUserPlayedGames() - Retrieves a list of played games and playtime info (ordered by recency) associated with a user (either from token or external if privacy settings allow)

Examples

Projects Using psn-api

Prior Art

Disclaimer

This project is not intended to be used for spam or abuse. Please use this project to elevate the PlayStation Network experience, not damage it.

Contributors