How to Add a Subscription to Shadowrocket: A Beginner's Guide

New to Shadowrocket and not sure where to enter your subscription URL? Follow this beginner-friendly walkthrough to add a subscription from the Configuration…

At a glance

This beginner’s guide explains how to add a subscription URL you already have to Shadowrocket, check whether its server entries were imported, and select a server from Home. It also shows how to distinguish a saved subscription from an imported server list and a working connection. If the list is empty or an update fails, use the checks below to narrow down the cause without repeatedly changing unrelated settings.

Before you add a subscription

A subscription URL is a link that Shadowrocket can use to request server configuration from the provider you already use. This guide assumes you have permission to use that subscription and have received its URL or another import method directly from your provider. It does not provide, sell, or recommend subscriptions, servers, or related services.

Buying Shadowrocket does not include a network service plan. Shadowrocket is a closed-source commercial app available on Apple platforms through the App Store. To verify the app, check that the product page identifies the developer as Shadow Launch Technology Limited and shows app ID 932747118. Price, system requirements, and purchase availability depend on the App Store listing. If you still need the app, see how to get the app.

1 URL
Use the complete subscription URL supplied for your own account
Home
Add a subscription, view its entries, and select a server
3 checks
Saved subscription, visible server entries, and connection status are separate

Before proceeding, copy the URL exactly as provided. A subscription link may contain a long token or other private information, so treat it like a credential: do not post it publicly, include it in screenshots, or send it to someone who does not need access. If you are unsure whether a link is current, ask your own provider to confirm it rather than changing the address yourself.

Add the subscription URL

Use the subscription option rather than entering the URL into an individual server field. The labels below identify the relevant controls; the exact screen layout can vary slightly by app or system version. Keep the original URL available until you have confirmed that the subscription has been saved and its entries are visible.

  1. Open Home

    Launch Shadowrocket and go to Home. Tap the + button to open the add options. If you are already editing a server, go back first so you do not put a subscription URL into an address or password field.

  2. Choose Subscribe

    Open the Type selector and choose Subscribe. This tells Shadowrocket that the value you are adding is a subscription link, not the address of one manually configured server.

  3. Enter the URL

    Paste your complete subscription URL into the URL field. Check the beginning and end of the text, and make sure the clipboard did not omit characters or add a space. Do not shorten, decode, or edit a token just because the link looks long.

  4. Save the entry

    Save the subscription and return to Home. Confirm that the subscription appears in the list. At this point, you have confirmed that the entry was saved; you have not yet confirmed that its server configuration was retrieved successfully.

  5. Update and verify

    Run an update for the subscription and wait for the request to finish. Then expand or inspect its group on Home. Look for individual server entries and check whether an error appeared. Avoid starting several updates in a row while the first request is still running.

If the provider supplied a QR code or another import option rather than a URL, follow the import method they specified. Do not assume that a copied label, account name, or website address is itself a subscription URL. When in doubt, ask your provider which exact value should be imported and whether it is still active.

Confirm the import and select a server

After an update, check the contents of the subscription group rather than relying on its title. A successful result should show individual server entries. If the group is present but contains no entries, the URL may have been saved while the request or parsing step failed. If entries appear, select one before testing the connection.

Two checks, two different outcomes

Subscription check
  • Confirm the subscription is saved on Home.
  • Update it and look for individual server entries.
  • If the list is empty, investigate the URL or update result.
Connection check
  • Select one visible server entry.
  • Review Global Routing and connect.
  • If testing fails, investigate connectivity separately from import.

An update verifies that configuration was retrieved; it does not certify that a server can connect to every destination.

Keep these checks separate when troubleshooting. If no server entries appear, changing Global Routing will not repair the subscription request. If entries are visible but a connection test fails, repeatedly adding the same URL is unlikely to solve a network, server, or routing problem. Change one relevant variable at a time and note the result.

Troubleshoot an empty list or failed update

Start with the exact outcome shown by Shadowrocket. A saved group with no entries, a timeout during update, and a visible entry that cannot connect are different symptoms. Avoid deleting the subscription immediately: keeping the existing entry makes it easier to compare the URL and update result, and prevents accidentally losing a link you may need to verify.

“I saved the subscription, but there are no servers. What should I check?”

On Home, run an update for the subscription and wait for its result. Check that the saved URL is complete and belongs to the intended subscription. If the request still returns no entries, ask your own provider whether the link is active and whether its response is compatible with the import method you used.

“The subscription update times out. Is the URL definitely wrong?”

No. A timeout can also indicate that the current network cannot reach the URL or that the provider is not responding. Check that ordinary network access is available, then retry once. If the app offers a subscription request-routing option, review it under Settings → Subscribe; change it only when appropriate for your network, then update again.

“The list has servers, but none connects. Should I add the URL again?”

First confirm that you selected an individual entry on Home, check Global Routing, and respond to any system VPN prompt. Then run Connectivity Test. If the import succeeded but the test fails, record the result and check the server details or service status with your own provider instead of repeatedly importing the same subscription.

“Can I share my subscription URL to get help?”

Treat the URL as private because it may grant access to your account configuration. Do not post it in a public forum or include it in an unredacted screenshot. When asking for support, describe the screen, the action you took, and the error text while concealing the full link and any credentials.

After the first import

Once the server entries are visible, keep the subscription entry so you can update it when its configuration changes. An update may change the available entries or their connection details. After refreshing, revisit Home and confirm that the server you want is still present and selected; do not rely on a previous selection if the list has changed.

Subscription updates and configuration-file changes are separate tasks. A subscription update retrieves server entries; it does not necessarily change routing rules in Config. If a server is selected but particular traffic behaves unexpectedly, check the active routing setup and the current Global Routing choice rather than assuming the subscription import failed.

For a clean first test, use a simple sequence: confirm the subscription is saved, update it, verify that entries appear, select one entry, review routing, connect, and run Connectivity Test. If a step fails, return to that step and investigate its specific result. This makes it easier to tell whether the issue is an incomplete URL, an unsuccessful update, an unselected server, or a connection problem.

Verify Shadowrocket on the App Store