Home docs switch Nintendo Accounts
Post

Nintendo Accounts

This server is responsible for Nintendo accounts. Nintendo accounts are created off-device, and are required to use Nintendo Switch online services, including the eShop. For more information on Nintendo accounts, check out Nintendo’s support page.

The API takes form-encoded requests and responds with json-encoding.

Website

The website can be visited in a web browser at https://accounts.nintendo.com. Static assets, such as css and javascript files are hosted on https://cdn.accounts.nintendo.com.

On this website, one can either create a Nintendo account directly, or create a Nintendo account from a Facebook, Google, Twitter or Apple account. A Nintendo account contains basic profile information, such as nickname and birthday, but also many more advanced features such as two-factor authentication and family groups.

Headers

HeaderDescription
Hostaccounts.nintendo.com
User-AgentUser agent
Accept*/*
Content-LengthContent length
Content-Typeapplication/x-www-form-urlencoded

User Agents

For browser requests made during authorization:

System VersionUser agent
13.1.0 - 13.2.1Mozilla/5.0 (Nintendo Switch; LoginApplet; Nintendo Switch) AppleWebKit/606.4 (KHTML, like Gecko) NF/6.0.1.19.3 NintendoBrowser/5.1.0.21761
15.0.1Mozilla/5.0 (Nintendo Switch; LoginApplet; Nintendo Switch) AppleWebKit/609.4 (KHTML, like Gecko) NF/6.0.2.21.5 NintendoBrowser/5.1.0.22497

For API requests made by the account sysmodule:

System VersionUser agent
9.0.0 - 9.2.0libcurl (nnAccount; 789f928b-138e-4b2f-afeb-1acae821d897; SDK 9.3.0.0; Add-on 9.3.0.0)
10.0.0 - 10.2.0libcurl (nnAccount; 789f928b-138e-4b2f-afeb-1acae821d897; SDK 10.4.0.0; Add-on 10.4.0.0)
11.0.0 - 11.0.1libcurl (nnAccount; 789f928b-138e-4b2f-afeb-1acae821d897; SDK 11.4.0.0; Add-on 11.4.0.0)
12.0.0 - 12.1.0libcurl (nnAccount; 789f928b-138e-4b2f-afeb-1acae821d897; SDK 12.3.0.0; Add-on 12.3.0.0)
13.0.0libcurl (nnAccount; 789f928b-138e-4b2f-afeb-1acae821d897; SDK 13.3.0.0; Add-on 13.3.0.0)
13.1.0 - 13.2.1libcurl (nnAccount; 789f928b-138e-4b2f-afeb-1acae821d897; SDK 13.4.0.0; Add-on 13.4.0.0)
14.0.0 - 14.1.2libcurl (nnAccount; 789f928b-138e-4b2f-afeb-1acae821d897; SDK 14.3.0.0; Add-on 14.3.0.0)
15.0.0 - 15.0.1libcurl (nnAccount; 789f928b-138e-4b2f-afeb-1acae821d897; SDK 15.3.0.0; Add-on 15.3.0.0)

Methods

accounts.nintendo.com:

MethodURL
GET/api/1.0.0/users/<id>/qrcode_param
GET/connect/1.0.0/authorize
POST/connect/1.0.0/api/token
GET/connect/1.0.0/authorize/supervisor_consent
GET/profile

api.accounts.nintendo.com:

MethodURL
GET/2.0.0/users/me

GET /connect/1.0.0/authorize

This method accepts OAuth 2 authorization requests. The following parameters may be provided in addition to standard OAuth parameters:

ParamDescription
themeregister, intro, email_authentication or simple_authenticate

The Switch always requests the scope nx.

POST /connect/1.0.0/api/token

This method accepts OAuth 2 token requests. The following parameters may be provided in addition to standard OAuth parameters:

ParamDescription
device_authentication_tokenDevice token

The Switch requests the scope openid offline napps urn:oauth:init-sso user user.birthday user.email user.links user.links[].id user.loginId user.screenName user.terms.

Known Client IDs

Client IDNameRedirect URI
6ffd70c434d303c8NxAccountnintendo://account.nx.sys
e56201e414c97a10NxShopnintendo://shop.nx.sys
57d3dbaa12cb06a9NxFriendsnintendo://friends.nx.sys
48d6d1f020427ad7NxELicensenintendo://e-license.nx.sys
f4e5f2f3e022208bNxLHubnintendo://lhub.nx.sys

Errors

On error, the server sends the following response:

FieldDescription
errorError name
error_descriptionError description
error_detailError details (optional)

Known Errors

/2.0.0/users/me and /api/1.0.0/users/<id>/qrcode_param:

NameDescription
invalid_token?
insufficient_scope?
under_maintenance?

/connect/1.0.0/api/token:

NameDetailDescription
invalid_request The request does not satisfy the schema
invalid_client Client authentication failed
invalid_grant ?
invalid_grantuser_deleted?
invalid_grantuser_banned?
invalid_grantuser_suspended?
invalid_grantuser_withdrawn?
invalid_grantuser_terms_agreement_required?
invalid_scope ?
invalid_scopescope_token_unknownThe requested scope is invalid
invalid_scopescope_token_prohibited?
invalid_scopescope_token_not_authorized?
unauthorized_client ?
unsupported_grant_type ?
server_error ?
under_maintenance ?

Others:

NameDetailDescription
unauthorized_client ?
access_denied ?
access_deniedid_token_hint_invalid?
access_denieduser_deleted?
invalid_scope ?
invalid_scopescope_token_unknown?
invalid_scopescope_token_prohibitedThe requested scope is not authorized
server_error ?
login_required ?
login_requireduser_not_logged_in?
login_requireduser_different_from_id_token_hint?
consent_required ?
interaction_required ?
interaction_requireduser_banned?
interaction_requireduser_suspended?
interaction_requireduser_terms_agreement_required?
under_maintenance ?
Contents