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: |
Line 12: |
Line 12: |
| {environment}: "dp1", "lp1", "sp1", "dd1", "jd1", "sd1", "td1" or "xd1". | | {environment}: "dp1", "lp1", "sp1", "dd1", "jd1", "sd1", "td1" or "xd1". |
| {serverset}: "eshop" (online shop), "d4c" (content delivery) or "dragons" (online membership). | | {serverset}: "eshop" (online shop), "d4c" (content delivery) or "dragons" (online membership). |
| + | {host}: "nintendo.net" (global cdn), "n.nintendoswitch.cn" (chinese cdn). |
| | | |
| === Servers === | | === Servers === |
Line 27: |
Line 28: |
| * [6.0.0+] "dragons.hac.%.dragons.nintendo.net" | | * [6.0.0+] "dragons.hac.%.dragons.nintendo.net" |
| * [6.0.0+] "dragonst.hac.%.dragons.nintendo.net" | | * [6.0.0+] "dragonst.hac.%.dragons.nintendo.net" |
− | * [6.0.0+] "tigers.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 59: |
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 97: |
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 106: |
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 111: |
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 140: |
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" | | * "nncs1-%.n.n.srv.nintendo.net" |
| * "nncs2-%.n.n.srv.nintendo.net" | | * "nncs2-%.n.n.srv.nintendo.net" |
Line 192: |
Line 205: |
| ==== permission ==== | | ==== permission ==== |
| [[OLSC_services|OLSC]] repair service survey request. | | [[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 207: |
Line 231: |
| * "bcat-topics-%.cdn.nintendo.net" | | * "bcat-topics-%.cdn.nintendo.net" |
| * "bcat-list-%.cdn.nintendo.net" | | * "bcat-list-%.cdn.nintendo.net" |
| + | * "bcat-data-%.cdn.nintendo.net" |
| + | * "bcat-web-%.cdn.nintendo.net" |
| * "app.%.five.nintendo.net" | | * "app.%.five.nintendo.net" |
| * [6.0.0+] "scsi-policy-%.cdn.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 218: |
Line 248: |
| * "problems.dragons.nintendo.net" | | * "problems.dragons.nintendo.net" |
| * "moon.nintendo.com" | | * "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 ==== | | ==== service-status ==== |