Four Ways to Import a Subscription into Shadowrocket: Subscribe, Add Server, QR Code, and Clipboard

Learn how to add a subscription with Subscribe, enter details manually with Add Server, scan a QR code, or import a link from the clipboard. Includes supported formats and subscription update steps.

At a Glance

This guide is for users who already have a subscription or connection details from their own provider. First, distinguish server subscriptions added with Subscribe from rule configurations managed in Config. Then choose the right method: paste a subscription, enter details with Add Server, scan a QR code, or import from the clipboard. Finally, check the update result and Global Routing. QR codes and the clipboard are just input methods; successful import depends on the content format.

Before You Import: Server Subscriptions vs. Config Files

After opening Shadowrocket, check existing servers in Home, then open Config to view the current rule configuration. Home manages connectable servers and subscription groups; Config manages rule configuration files. Both can retrieve content from a URL, but a URL starting with https:// does not tell you what it is for.

When looking for Subscribe in Config, first check what the link actually returns. Import a server list with Subscribe; manage a configuration file containing routing rules in Config. To add a server subscription, tap “+” in the upper-right corner of Home, open Add Server, and set Type to Subscribe. The remote configuration option in Config is not for server subscriptions.

What you haveWhere to add itWhat to check
Server subscription URLHome → + → Type → SubscribeA subscription group and server entries appear in Home
Details for a single serverHome → + → Add ServerA manually added entry appears in Home
Protocol-sharing QR codeHome → QR scannerThe detected type and details appear
Protocol-sharing textCopy it, then import from the clipboardAn add prompt or parsed entry appears
Rule configuration file URLRemote configuration in ConfigThe file appears in Config; it is not a server subscription

Before proceeding, make sure the details come from your own provider. Shadowrocket is a closed-source, paid app for iPhone and iPad, available exclusively through the App Store. Buying the app does not include a connection subscription or connection details. Check the App Store page for system requirements.

Method 1: Add and Update a Subscription with Subscribe

Open the add form from Home, set Type to Subscribe, paste the complete subscription URL into URL, and enter a name you can recognize. The saved subscription retains its source URL and retrieves the server list from that address when updated, making this method suitable when your provider changes server details over time.

  1. Copy the complete URL

    Copy the subscription URL from your provider’s own website, including any query parameters after ?. Make sure there are no spaces, line breaks, or punctuation added at either end.

  2. Choose the subscription type

    Go to Home → +, open the Add Server form, tap Type, and select Subscribe. Don’t leave a different protocol type selected from a previous entry.

  3. Paste and save

    Paste the complete URL into URL, add a recognizable note, and save. Once the initial fetch finishes, return to Home and check that servers appear under the subscription group.

  4. Check the update

    Pull down on the subscription list in Home to refresh it and check whether the subscription updates. If an error appears, keep the existing entry and check the URL, network, and provider status first. Don’t repeatedly delete and recreate it.

A subscription URL might look like https://example.com/sub?token=xxxx; this is a dummy value that cannot connect. A real URL’s token may grant access to the subscription. If you share a screenshot, hide the entire URL, not just the note.

Method 2: Enter Details Manually with Add Server

Go to Home → + to open Add Server, select Type, then fill in the fields using the details provided by your provider. The selected type determines which fields are needed: the password and encryption method for Shadowsocks, identity details for VMess or VLESS, and the password and TLS settings for Trojan are not interchangeable. Don’t infer other fields from the protocol name when the required details aren’t provided.

Basic connection details

Type
Select the protocol shown in the provided details
Address
Enter the server hostname or IP address, without a webpage path
Port
Enter the provided port, such as 443; not all services use 443
Password
Enter a password only if the selected protocol requires one

Don’t paste the full subscription URL into Address or guess the port from how the URL looks.

Check additional parameters

TLS
Enable as required by the server; the port number alone doesn’t determine this
SNI
Use the TLS server name specified by your provider
Host
Fill this in only when required by the transport configuration
Path
Keep the full path provided by your provider, including its capitalization

Address, SNI, and Host serve different purposes. Don’t swap them just because their values look similar.

After saving, select the entry in Home and try connecting. If the basic details are correct but the TLS handshake fails, check the server name, certificate, and device time. Disabling certificate verification is not a general fix. WireGuard also requires keys and Peer configuration, so a standard password form does not apply; Hysteria2 and other types likewise need their own complete parameters.

Methods 3 and 4: Scan a QR Code or Import from the Clipboard

Open the QR scanner from Home, point the camera at a protocol-sharing QR code you already have, and allow camera access if prompted. After it’s scanned, check Type, Address, and Port before saving. A QR code may contain a server-sharing link or just a webpage URL; scanning a webpage does not mean you have a connectable server configuration.

Copy the complete sharing text from its source, return to Shadowrocket, and follow the clipboard detection or add prompt. If iOS asks for permission to paste, allow it after confirming the source. If no prompt appears, make sure you copied a plain-text link—not an image or title, or content truncated by a messaging app.

Prefix or formatWhat it indicatesWhat to check when importing
ss://Shadowsocks sharing linkKeep the complete encoded content, port, and additional parameters
vmess://VMess sharing linkDon’t truncate the encoded section or insert spaces
vless://VLESS sharing linkKeep the identity details and query parameters
trojan://Trojan sharing linkCheck the password, TLS server name, and transport parameters
https:// URLCould be a subscription, configuration file, or regular webpageCheck what it’s for before choosing Subscribe or Config

These prefixes help identify a format; they are not working connection examples. QR codes and the clipboard cannot turn arbitrary text into a valid configuration. Whether a link’s transport extensions are fully supported depends on the fields actually detected in the form. If fields are missing after import, check the source rather than guessing values.

  1. If scanning does nothing, check camera permissions, make sure the QR code is complete, and try reducing screen glare or improving image clarity.
  2. If clipboard detection does nothing, copy the original sharing text again and remove any explanatory text around the link, but don’t edit the link itself.
  3. If multiple entries appear for import, check each name and server address to make sure the same item hasn’t been imported more than once.

After Importing: Choose Global Routing and Test the Connection

Select the imported server in Home, then open Global Routing to check the current mode. Importing determines where to connect; Global Routing determines how requests handled by Shadowrocket are routed. If you have a valid rule configuration, you can select Config. If a rule refers to a policy name that doesn’t exist, check the configuration in Config instead of trying to fix it by repeatedly importing the subscription.

Config

Recommended

Requests are handled according to the active configuration’s rules. The destination depends on the matching rule and its policy; it isn’t necessarily a fixed setup where some domains use a proxy and everything else connects directly.

Best for: everyday use after checking the rules and policy names

Proxy

Routes traffic handled by the app into the tunnel and through the proxy path. Use this to check whether routing rules are causing differences in access.

Best for: briefly checking the difference between rule-based routing and the proxy path

Direct

Routes requests handled by the app directly. After switching to this mode, being able to open a webpage does not prove that the selected proxy server is working.

Best for: comparing direct access on your current network

When prompted on the first connection, allow Shadowrocket to add a VPN configuration. Then run Connectivity Test in Home and visit the services you need. Test results reflect the target and network conditions at that moment; they don’t verify every real-world request. If the test gets a response but a particular domain has access issues, see the connection troubleshooting guide to check DNS, rule matches, and TLS errors.

Troubleshooting Subscription Updates and Import Errors

Return to Home and identify which step failed before changing settings. A failed subscription fetch, a parsing error, and a failed server connection are different problems. If an earlier step hasn’t completed, changing SNI or Global Routing at a later stage usually won’t fix it.

Subscription updates keep timing out. What should I check first?

First, check whether an existing connection works in Home, then make sure the subscription URL is complete. If the subscription URL needs an existing proxy to be reached, check Update via Proxy under Settings → Subscribe. This option requires a working proxy path; it cannot establish the first connection by itself.

I got a 401 or 403 error. Should I import it again?

Check whether the token in the URL was truncated, then check your provider account for subscription access and whether the link has been reset. A 401 or 403 is an access status returned by the server. Repeatedly importing the same invalid URL usually won’t change the result.

The content was fetched, but no servers appeared. Why?

Check whether you copied an account webpage, login page, or rule configuration URL. If the response is a webpage rather than a recognizable server list, get the correct subscription URL from your own provider. Don’t paste webpage source into Add Server.

Why didn’t my manually added entry update with the subscription?

Check in Home whether the entry belongs to a subscription group. A manually added entry or a server imported from a single sharing link usually isn’t linked to subscription updates. Edit it manually or import the updated details from your provider.

The entries changed after an update. Should I reinstall the app?

First, check the subscription group and currently selected entry, then select a valid server again. The source may have changed the subscription content; reinstalling won’t fix incorrect details returned by the source. When troubleshooting, note the error text, the step where it occurred, and the network conditions. Hide passwords, keys, and subscription tokens.

Once you’ve finished troubleshooting, keep track of each configuration’s source and choose an update routine that works for you. A full subscription keeps server details in sync; manual entry gives you control over a single server; scanning and clipboard import reduce typing. You can use all four methods, but make sure you know whether each entry is still linked to a subscription source.

Official App Store listingCheck the developer and app ID