psn-api
A JavaScript library that lets you get trophy, user, and game data from the PlayStation Network.
Documentation: Get Started
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.
-
In your web browser, visit https://www.playstation.com/, click the "Sign In" button, and log in with a PSN account.
-
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.
- You can now obtain an authentication token using your NPSSO with the following function calls from this package.
const myNpsso = "<64 character token>";
const accessCode = await exchangeNpssoForCode(myNpsso);
const authorization = await exchangeCodeForAccessToken(accessCode);
- 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);
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
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