4 Ways to Import Subscriptions into Shadowrocket: Subscribe, Add Server, QR Code, and Clipboard

Learn how to add a subscription in Config, enter server details with Add Server, scan a QR code, or import a link from the clipboard—and which formats each method supports.

In this guide

If you already have a service provider and subscription details, first identify whether you have a server subscription, a configuration file URL, or a link for a single server. This guide covers Subscribe, Add Server, QR code scanning, and clipboard import, and explains the difference between configuration subscriptions in Config and server subscriptions in Home. After importing, check the update result, Global Routing, and Connectivity Test.

1. Tell Subscription URLs, Configuration Files, and Share Links Apart

Shadowrocket’s import options are four ways to add existing details—not four different connection protocols. Scanning a QR code doesn’t mean it contains a subscription, and recognizing a link on the clipboard doesn’t mean it will create an automatically updated server list. What happens next depends on the link’s contents and the type you choose when saving it.

Pay particular attention to where each item belongs: Home stores servers and server subscriptions, while Config manages rule configuration files. Subscribe on the Config page is for managing configuration subscriptions. Don’t treat a server-list URL as a rule configuration file just because it starts with HTTPS. If your provider identifies an address as a server subscription, choose Subscribe from Home’s add menu.

What you haveHow to identify itWhere to add it
Server subscriptionUsually an HTTPS URL that returns a server listHome → + → Type → Subscribe
Rule configuration subscriptionRemote content contains rules, policies, or other configuration textConfig → Subscribe
Server detailsAddress, port, protocol, and credentials provided separatelyHome → + → Add Server form
Single-server share linkCommon prefixes include ss://, vmess://, vless://, and trojan://Scan a QR code or import from the clipboard

The URLs below are examples for identifying formats only; they can’t be used to connect. A token in a real subscription may grant access, so don’t share the full URL in public screenshots, chats, or support posts. This guide assumes you already have a service provider and subscription details. We don’t provide, sell, or recommend servers or subscriptions.

https://example.com/sub?token=xxxx

2. Subscribe: Save Server and Configuration Subscriptions Separately

To keep a server list up to date, save the original subscription URL with Subscribe instead of manually adding every share link returned by an update. You can then refresh the same subscription later. A subscription name is only a label; it doesn’t replace the URL. Keep all query parameters intact—don’t remove a token or alter any characters.

  1. Check your details

    Make sure your existing details are labeled as a server subscription, then copy the full URL. If you have a web login URL, get the subscription URL from your service’s management page instead of copying the browser’s address bar.

  2. Open the add screen

    Go to Home → + in the top-right corner. In the Add Server form, open Type and select Subscribe. This saves a server subscription, not a rule configuration file in Config.

  3. Enter the URL and save

    Paste the address into URL and use Remarks to label its source or purpose, then save. Check the beginning, end, and query parameters to make sure you haven’t included quotation marks, line breaks, or explanatory text.

  4. Refresh the list

    Return to Home and pull down to refresh. Wait for the subscription to load, then check whether the server list appears. If it’s still empty, review the update error before creating the same subscription again.

If you have a rule configuration file URL, go to Config → Subscribe to manage configuration subscriptions and add its URL there. After updating, confirm which configuration is selected. Saving a remote URL doesn’t add servers to Home or switch Global Routing to Config. A configuration containing rules such as DOMAIN-SUFFIX, IP-CIDR, or FINAL is a different item from a subscription that returns server share links.

Check what the URL returns before choosing where to add it. A server subscription provides a list of servers; a configuration in Config determines how requests are handled. They can be used together, but neither replaces the other.

3. Add Server: Enter Existing Server Details Manually

Use Add Server when you have a single set of server details but no subscription URL. Go to Home → + → Type and select the relevant protocol. The fields differ for Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and WireGuard; an address and port alone aren’t enough to configure every protocol. Choosing the wrong Type may still let you save the form, but that doesn’t make the connection details valid.

After saving, return to Home and check the server entry’s name and type, then select it to test. A manually added server won’t update automatically if the original service changes its details. Edit the entry if the address, port, or credentials change. To make troubleshooting easier, avoid changing rule configuration and DNS settings at the same time as your first manual setup.

4. QR Code and Clipboard: Check the Link Before Saving

Scanning a QR code or using the clipboard saves typing, not verification. A QR code may contain a single-server share link, a subscription URL, or an ordinary web address. Review the detected content and confirm the import type before saving. Only complete, supported data can be correctly converted into a server or subscription entry.

Scan a QR code

  1. Open the scanner from Home and grant camera access when prompted. Hold the existing QR code fully within the frame; don’t crop its edges.
  2. If the QR code is saved in your photo library, use the image recognition option in the scanner to select the original image. Blurry or heavily compressed screenshots may not scan correctly.
  3. Review the detected protocol, address, and name before saving. If the result is only a web address, the server hasn’t been imported yet.

Import from the clipboard

  1. Copy the complete share link without surrounding descriptions, numbering, or ellipses. Keep all encoded characters and query parameters intact.
  2. Return to Shadowrocket and confirm the clipboard import when prompted. If iOS asks for permission to paste, allow access for this paste. If no prompt appears, go back to the add screen and paste the link manually into the appropriate field.
  3. If you copied an HTTPS server subscription URL, save it explicitly via Home → + → Type → Subscribe → URL. Don’t rely on an ordinary web address being recognized as a subscription automatically.

ss://, vmess://, vless://, and trojan:// are common prefixes that can help identify share-link formats, but links with the same prefix may still use different transport settings. Hysteria2 details may use hysteria2:// or hy2://; recognition also depends on the link’s fields and client support. WireGuard is commonly provided as configuration details containing fields such as keys, Address, AllowedIPs, and Endpoint. Don’t assume arbitrary configuration text can be imported as a single-line link.

“Imported” only confirms that the details were saved. To verify them, select the entry, check its settings, run Connectivity Test, and test an actual request. Seeing the entry name appear isn’t enough.

5. Use Global Routing to Verify Requests

Importing doesn’t determine how each request is routed. Select the server you want to test in Home and run Connectivity Test, then check Global Routing. Test results reflect only the method and destination used; a latency reading for one entry doesn’t prove that every site or protocol will work.

Config

Config

Requests are matched against the rules in the current configuration. Rules such as DOMAIN-SUFFIX, GEOIP, and IP-CIDR, together with the final policy in FINAL, determine how requests are handled. The configuration must be checked and enabled first.

Best for: Resuming normal use with your existing routing rules

Proxy

Routes requests intercepted by the client through the proxy. This can temporarily reduce the effect of rule-based routing during tests, but it won’t fix incorrect passwords, UUIDs, TLS settings, or transport parameters.

Best for: Confirming the selected server works before troubleshooting rules separately

Direct

Routes requests directly. When Direct is selected, a website loading doesn’t mean the selected server was used, so it doesn’t confirm that a server in the subscription is working.

Best for: Comparing against a direct connection on your local network

Scene

Uses the routing behavior set for the selected scene. Check the scene’s conditions and associated settings first. Scene isn’t an option for automatically fixing import problems.

Best for: Using settings for a scene you’ve already configured

Bottom line: Test importing and routing separately

First confirm that the selected server can complete the intended request under Proxy, then switch back to Config and check the rules. If the result changes when you switch modes, inspect the matched rule and final policy in the current configuration instead of immediately recreating the subscription.

The first time you connect, follow the system prompt to allow Shadowrocket to add a VPN configuration. Settings → On Demand manages conditional connection behavior; it doesn’t import servers or update subscriptions. For initial troubleshooting, connect manually to check the current status. Set up On Demand separately after verifying your details and rules.

6. Subscription Updates and Common Import Problems

Updating a subscription fetches its remote content again. Changes to server names or the number of servers don’t necessarily indicate a client error; first compare the results with the latest details from your service. Entries you manually changed within a subscription may also be replaced by remote content on a later update. Save important manual configurations separately and distinguish them from subscription-managed entries.

Saved successfully, but why is Home still empty?

First check whether you saved a server subscription in Config by mistake. Save it in Home → + → Type → Subscribe, then return to Home and pull down to refresh. If you see a parsing error, check whether the URL returns server details rather than a login page, error page, or rule configuration text.

The update timed out. Should I delete and re-add it?

First check the complete URL and your current network. If you already have a working server, connect before updating. If the subscription URL must be accessed through a proxy, check Settings → Subscribe → Update via Proxy. This setting can’t create a connection path when you have no working connection; if timeouts continue, check whether the URL is accessible.

There’s a link on the clipboard, but no import prompt. Why?

Copy the link again as a single line, without other text, and check that its protocol prefix is present and the messaging app hasn’t truncated it. If the system restricts clipboard access, check Shadowrocket’s paste permission. For an HTTPS subscription URL, paste it directly into the URL field under Subscribe instead of relying on automatic detection.

Can I still use a manually added entry after updating?

An independent Add Server entry is managed separately from a server subscription; whether it still connects depends on whether its original details remain valid. Check whether the selected entry is the old manually added one or the new subscription entry, then verify its address, port, and credentials. Matching Remarks labels don’t mean they’re the same entry.

Does buying the app include a subscription?

Buying the app doesn’t include a service plan. Shadowrocket is a paid app for Apple platforms, available exclusively on the App Store. Users must obtain their own details for import. System requirements for iPhone, iPad, and other compatible Apple devices are listed on the App Store page.

When asking for help, include the steps you took, the selected Type, any error message, and whether Connectivity Test completed. Hide sensitive information such as subscription tokens, passwords, UUIDs, and keys; don’t post the full URL. Record the details in this order: data type → where it was saved → update result → connection test → routing mode. This is usually more useful for troubleshooting than simply saying “I imported it, but it doesn’t work.”

Verify the official App Store listing