Changes

Line 6: Line 6:  
== CDN ==
 
== CDN ==
 
The URLs for content delivery network servers on the Switch usually follow this format:
 
The URLs for content delivery network servers on the Switch usually follow this format:
  {server_name}.hac.{environment}.{serverset}.nintendo.net
+
  {server_name}.hac.{environment}.{serverset}.{host}
    
Where:
 
Where:
 
  {server_name}: One of the registered server names.
 
  {server_name}: One of the registered server names.
 
  {environment}: "dp1", "lp1", "sp1", "dd1", "jd1", "sd1", "td1" or "xd1".
 
  {environment}: "dp1", "lp1", "sp1", "dd1", "jd1", "sd1", "td1" or "xd1".
  {serverset}: "eshop" (online shop) or "d4c" (content delivery).
+
  {serverset}: "eshop" (online shop), "d4c" (content delivery) or "dragons" (online membership).
 +
{host}: "nintendo.net" (global cdn), "n.nintendoswitch.cn" (chinese cdn).
    
=== Servers ===
 
=== Servers ===
Line 18: Line 19:  
* "[[#atum/atumn|atum.hac.%.d4c.nintendo.net]]"
 
* "[[#atum/atumn|atum.hac.%.d4c.nintendo.net]]"
 
* "[[#atum/atumn|atumn.hac.%.d4c.nintendo.net]]"
 
* "[[#atum/atumn|atumn.hac.%.d4c.nintendo.net]]"
 +
* "atumn-dummy.hac.%.d4c.nintendo.net"
 
* "[[#superfly|superfly.hac.%.d4c.nintendo.net]]"
 
* "[[#superfly|superfly.hac.%.d4c.nintendo.net]]"
 
* "bugyo.hac.%.eshop.nintendo.net"
 
* "bugyo.hac.%.eshop.nintendo.net"
Line 24: Line 26:  
* "[[#tagaya|tagaya.hac.%.eshop.nintendo.net]]"
 
* "[[#tagaya|tagaya.hac.%.eshop.nintendo.net]]"
 
* [5.0.0+] "[[#pearljam|pearljam.hac.%.eshop.nintendo.net]]"
 
* [5.0.0+] "[[#pearljam|pearljam.hac.%.eshop.nintendo.net]]"
 +
* [6.0.0+] "dragons.hac.%.dragons.nintendo.net"
 +
* [6.0.0+] "dragonst.hac.%.dragons.nintendo.net"
 +
* [6.0.0+] "[[#tigers|tigers.hac.%.dragons.nintendo.net]]"
 +
* [14.0.0+] "[[#veer|veer.hac.%%.d4c.nintendo.net]]"
    
==== sun ====
 
==== sun ====
Line 55: Line 61:  
CDN for system-titles.
 
CDN for system-titles.
   −
While "atumn" seems to be for system-titles and "atum" for eShop titles, the latter titles are accessible fine with atumn (with "/t/" for NCA-type0 at least).
+
"atumn" is for system-titles and "atum" is for eShop titles.
    
'a' is used when an input u8 is not 0x3, otherwise 's' is used. A seperate function using the ".../c/" URL is hard-coded to use 'c'. This appears to match 's' usage attempts: the only URL that returned actual data with 's' was with titleID 0100000000000816.
 
'a' is used when an input u8 is not 0x3, otherwise 's' is used. A seperate function using the ".../c/" URL is hard-coded to use 'c'. This appears to match 's' usage attempts: the only URL that returned actual data with 's' was with titleID 0100000000000816.
Line 93: Line 99:  
  [5.0.0+] "<nowiki>https://pearljam.hac.%.eshop.nintendo.net/sugar</nowiki>"
 
  [5.0.0+] "<nowiki>https://pearljam.hac.%.eshop.nintendo.net/sugar</nowiki>"
 
  [5.0.0+] "<nowiki>https://pearljam.hac.%.eshop.nintendo.net/civil</nowiki>"
 
  [5.0.0+] "<nowiki>https://pearljam.hac.%.eshop.nintendo.net/civil</nowiki>"
 +
 +
==== tigers ====
 +
Used for fetching common tickets for title updates.
 +
 +
==== veer ====
 +
URLs:
 +
"<nowiki>https://veer.hac.%%.d4c.nintendo.net/v3/policy.json?context=%s</nowiki>"
    
== Shop API ==
 
== Shop API ==
Line 102: Line 115:     
==== ecs ====
 
==== ecs ====
 +
These URL strings were removed from nim with [15.0.0+].
 +
 
URLs:
 
URLs:
 
  "<nowiki>https://ecs-%.hac.shop.nintendo.net/ecs/services/rest/AccountGetETickets</nowiki>"
 
  "<nowiki>https://ecs-%.hac.shop.nintendo.net/ecs/services/rest/AccountGetETickets</nowiki>"
Line 107: Line 122:     
==== ias ====
 
==== ias ====
 +
These URL strings were removed from nim with [15.0.0+].
 +
 
URLs:
 
URLs:
 
  "<nowiki>https://ias-%.hac.shop.nintendo.net/ias/services/rest/Register</nowiki>"
 
  "<nowiki>https://ias-%.hac.shop.nintendo.net/ias/services/rest/Register</nowiki>"
Line 136: Line 153:  
* "broker.%.npns.srv.nintendo.net"
 
* "broker.%.npns.srv.nintendo.net"
 
* "consumer.%.npns.srv.nintendo.net"
 
* "consumer.%.npns.srv.nintendo.net"
* "receive-%.dg.srv.nintendo.net"
+
* "[[BCAT_services#Data_reporting|receive-%.dg.srv.nintendo.net]]"
* "receive-%.er.srv.nintendo.net"
+
* "[[Error_Upload_services|receive-%.er.srv.nintendo.net]]"
 +
* "nncs1-%.n.n.srv.nintendo.net"
 +
* "nncs2-%.n.n.srv.nintendo.net"
 +
* "g<game_server_id>-%.s.n.srv.nintendo.net"
 +
* [4.0.0+] "[[#migration|migration.%.scsi.srv.nintendo.net]]"
 +
* [6.0.0+] "[[#storage|storage.%.scsi.srv.nintendo.net]]"
 +
* [9.0.0+] "[[#storage|storage.%.sata.srv.nintendo.net]]"
 +
* [9.0.0+] "[[#permission|permission.%.sata.srv.nintendo.net]]"
    
==== aauth ====
 
==== aauth ====
Line 172: Line 196:     
<code><nowiki><?xml version="1.0"?><stream:stream to="app-a04.lp1.npns.srv.nintendo.net" xml:lang="en" version="1.0" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams"></nowiki></code>
 
<code><nowiki><?xml version="1.0"?><stream:stream to="app-a04.lp1.npns.srv.nintendo.net" xml:lang="en" version="1.0" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams"></nowiki></code>
 +
 +
==== migration ====
 +
[[Migration_services|Migration]] service storage.
 +
 +
==== storage ====
 +
[[OLSC_services|OLSC]] service (.scsi) and repair service (.sata) storage.
 +
 +
==== permission ====
 +
[[OLSC_services|OLSC]] repair service survey request.
 +
 +
  <nowiki>https://permission.%.sata.srv.nintendo.net/api/nx/v1/customer_operations</nowiki>
 +
  <nowiki>https://permission.%.sata.srv.nintendo.net/api/nx/v1/customer_operations?survey_request_id=%llu</nowiki>
 +
 
 +
  Request headers:
 +
  > User-Agent: libcurl (nnHttp; 789f928b-138e-4b2f-afeb-1acae821d897; SDK {x.x.x.x sdkver}; Add-on {x.x.x.x sdkver})
 +
  > Accept: */*
 +
  > X-Device-Token: {device-token from dauth for SATA}
 +
  > Content-Type: application/json
 +
 
 +
  Response (without survey_request_id): {"survey_requests":[]}
    
== Others ==
 
== Others ==
Line 179: Line 223:  
Account metadata:
 
Account metadata:
 
* "e0d67c509fb203858ebcb2fe3f88c2aa.baas.nintendo.com"
 
* "e0d67c509fb203858ebcb2fe3f88c2aa.baas.nintendo.com"
 +
* "accounts.nintendo.com"
 
* "api.accounts.nintendo.com"
 
* "api.accounts.nintendo.com"
 +
* "c-%.accounts.nintendo.com"
 +
* "capi.%.op2.nintendo.net"
   −
News and game content:
+
News, friends and game content:
 
* "bcat-topics-%.cdn.nintendo.net"
 
* "bcat-topics-%.cdn.nintendo.net"
 
* "bcat-list-%.cdn.nintendo.net"
 
* "bcat-list-%.cdn.nintendo.net"
* "service-status-%.cdn.nintendo.net"
+
* "bcat-data-%.cdn.nintendo.net"
* "g<game_server_id>-%.s.n.srv.nintendo.net"
+
* "bcat-web-%.cdn.nintendo.net"
 +
* "app.%.five.nintendo.net"
 +
* [6.0.0+] "scsi-policy-%.cdn.nintendo.net"
 +
 
 +
NSO webapplet [11.0.0+]:
 +
* "%.nso.nintendo.net"
 +
* "atum-img-%.cdn.nintendo.net"
    
Connection:
 
Connection:
Line 191: Line 244:  
* "nasc.nintendowifi.net"
 
* "nasc.nintendowifi.net"
   −
[[Error_applet]]:
+
Error and status:
* <nowiki>"https://Service-status-%.cdn.nintendo.net/service_status_hac.json"</nowiki>
+
* "[[#service-status|service-status-%.cdn.nintendo.net]]"
 +
* "problems.dragons.nintendo.net"
 +
* "moon.nintendo.com"
 +
 
 +
==== scsi-policy ====
 +
Used by [[OLSC_services|OLSC]] and [[Migration_services|migration]].
 +
 
 +
URLs:
 +
  <nowiki>"https://scsi-policy-%.cdn.nintendo.net/api/nx/v1/save_data_migration_policy/%016llx/%05u?dtoken="</nowiki>
 +
 
 +
* save_data_migration_policy: "%016llx" is the [[NCM_services#ApplicationId|ApplicationId]], "%05u" is version>>16 from [[NS_services#IApplicationVersionInterface|ns GetLaunchRequiredVersion]]. The value of dtoken is the dauth edge token for scsi. The request headers are: "User-Agent: libcurl (nnHttp;..." and "Accept: */*".
 +
** The response json is <code>{"save_data_migration": <str>}</code>, where <code><str></code> is "OK" or "NG" (other values trigger error).
 +
 
 +
==== service-status ====
 +
[[Error_applet|Error applet]] status.
 +
 
 +
URLs:
 +
"<nowiki>https://service-status-%.cdn.nintendo.net/service_status_hac.json</nowiki>"
    
= User-Agent =
 
= User-Agent =