Need help with splatnet2statink?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

252 Stars 47 Forks 543 Commits 0 Opened issues


Takes battle data from the SplatNet 2 app and uploads it to

Services available


Need anything else?

Contributors list


splatnet2statink is a script that uploads battle data from the SplatNet 2 app ("Nintendo Switch Online") to, a site for recording, visualizing, and aggregating statistics from Splatoon and Splatoon 2.

(ja) 日本語版セットアップ手順はこちら

(zh) 中文版的安装说明在这里


$ python [-M [N]] [-r] [-s] [-t] [--salmon]


flag runs the script in monitoring mode, uploading new battle results as you play matches. The script checks for new battles every
seconds; if no
is provided, the script defaults to 300 (5 minutes).


flag uploads any recent battle records present on SplatNet 2 that haven't been uploaded to


flag blacks out other players' names on the scoreboard result image and doesn't send them to


flag sends battle data to as a dry run, without uploading, for testing/validation purposes.


flag updates your Salmon Run profile and allows you to upload jobs (shifts) worked.

Note: You can also execute the script via

on macOS and Linux. On Windows, use a backslash.

Example usage


python -M 900
from the command line launches the script in monitoring mode, checking for and uploading battles every 15 minutes.


python --salmon -r
uploads all recent Salmon Run jobs not already present on


  • [x] Full automation of SplatNet cookie generation/acquisition via user log-in
  • [x] Complete battle stats
    • [x] Gamemode, stage, weapon
    • [x] Result, final count/percent, turf inked
    • [x] Kills, deaths, assists, specials
    • [x] Rank, level & star emblems (★), X Rank & Power, weapon freshness
    • [x] Battle start & end times
    • [x] Ranked power level & League Power
    • [x] Splatfest support: Title, EXP, Power, Clout, Synergy Bonus, team nickname, win streak
    • [x] Species (Inkling or Octoling)
  • [x] Gear/ability recognition, gear & user profile image upload
  • [x] Monitoring for new battle results in real-time
  • [x] Scoreboard stats, player ranking & battle result image upload
  • [x] Salmon Run support – job details/stats & Grizzco Point Card
  • [x] Full support for all available game languages

Setup instructions

These instructions are meant to be accesssible and easy-to-follow for all users, and this is the recommended way to run the script. If you run into trouble, please reach out! However, an alternative simple version is also available.

  1. Download and install Python. On Windows, download the installer from the official website and check the option during setup to add it to your PATH. On macOS, install Homebrew and then run

    brew install python
  2. If you're on Windows, install Git (pre-installed on macOS).

  3. Download the script from the command line (macOS: Terminal; Windows: Command Prompt/PowerShell) by running

    git clone
  4. Navigate to the newly-created directory (

    cd splatnet2statink/
    ) and install the required Python libraries by running
    pip install -r requirements.txt
    . On Windows, you may have to use
    python -m pip
  5. Running the script for the first time will prompt you to enter your API key, which can be found in your profile settings. If you're using the app in a language other than English, you may enter your language code (locale) as well.

NOTE: Read the "Cookie generation" section below before proceeding.

  1. You will then be asked to navigate to a specific URL on, log in, and follow simple instructions to obtain your

    ; this will be used to generate an
    cookie. If you are opting against automatic cookie generation, enter "skip" for this step, at which point you will be asked to manually input your
    cookie instead (see the mitmproxy instructions).

    This cookie (used to access your SplatNet battle results) along with your API key and language will automatically be saved into

    for you. You're now ready to upload battles!

Have any questions, issues, or suggestions? Feel free to message me on Twitter or create an issue here.


Accessing SplatNet 2 from your browser

If you wish to access SplatNet 2 from your computer rather than via the phone app, navigate to (it should show a forbidden error). Use a cookie editor – such as EditThisCookie for Chrome – to change

to the value you obtained previously (automatically or via mitmproxy, stored as
), and refresh the page. If you only want to access SplatNet and don't have a API key, simply enter "skip" for this step during setup.

Splatoon 2 stage rotation information (including Salmon Run) and current SplatNet gear are viewable at

Cookie generation

For splatnet2statink to work, a cookie known as

is required to access SplatNet. This cookie may be obtained automatically, using the script, or manually via the app. Please read the following sections carefully to decide whether or not you want to use automatic cookie generation.


Automatic cookie generation involves making a secure request to two non-Nintendo servers with minimal, non-identifying information. We aim to be 100% transparent about this and provide in-depth information on security and privacy below. Users who feel uncomfortable with this may opt to manually acquire their cookie instead.

The v1.1.0 update to the Nintendo Switch Online app, released in September 2017, introduced the requirement of a message authentication code (known as

), thereby complicating the ability to generate cookies within the script. After figuring out the key previously used to generate
tokens, the calculation method was changed in September 2018's v1.4.1 update, heavily obfuscating the new process. As a workaround, an Android server was set up to emulate the app, specifically to generate

Generation now requires a hash value to further verify the authenticity of the request. The algorithm to calculate this, originally done within the app, is sensitive; to prevent sharing it publicly (i.e. distributing it in the script's source code), I've created a small API which generates a hash value given a valid input. This can be passed to the Android server to generate the corresponding

token, which is then used to retrieve an

Privacy statement: No identifying information is ever sent to the API server. Usernames and passwords are far removed from where the API comes into play and are never readable by anyone but you. Returned hash values are never logged or stored and do not contain meaningful information. It is not possible to use either sent or stored data to identify which account/user performed a request, to view any identifying information about a user, or to gain access to an account.

See the API documentation wiki page for more information.


Users who decide against automatic cookie generation via their computer may instead generate/retrieve

cookies from the SplatNet app.

In this case, users must obtain their cookie from their phone by intercepting their device's web traffic and inputting it into splatnet2statink when prompted (or manually adding it to

). Follow the mitmproxy instructions to obtain and configure your cookie manually. To opt to manually acquire your cookie, enter "skip" when prompted to enter the "Select this account" URL.



We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.