What you need
- A ReturnGO account with access to Settings → Integrations → API
- Your ReturnGO API key
- Your shop name, the store identifier ReturnGO uses to scope API calls
ReturnGO authenticates with both values, not just the key. A ReturnGO API key is scoped to the account, and ReturnGO’s own docs note that the same key works for every store on that account, so the key alone cannot say which store to read. The shop name is part of the credential rather than optional configuration.
How to connect
SourceMedium connects to ReturnGO with a ReturnGO API key. You create the key in ReturnGO, then enter it in SourceMedium along with your shop name.You connect data sources yourself in SourceMedium. Sign in to your SourceMedium account, open your store, then in the Data sources section click Connect data source and choose the platform. You need an Editor or Admin role on the store. If you have view-only access, ask an admin or editor on your team to connect it.Once it is connected, what happens next covers first-sync timing and what each connection status means.
1
Create an API key in ReturnGO
In ReturnGO, go to Settings → Integrations → API and add an API key. Copy it before leaving the page. See ReturnGO’s guide: ReturnGO API Overview.
2
Find your shop name
This is the store identifier ReturnGO uses to scope API calls, normally your permanent
.myshopify.com domain (for example, your-store.myshopify.com). Do not include https://.If your account uses multiple return portals, ReturnGO accepts a shopname@portalname form (for example, your-store.myshopify.com@Warranty_Portal). Use it when you need a specific portal. Given only the shop name, ReturnGO reads the first portal on the account.3
Add your ReturnGO details in SourceMedium
Find ReturnGO in the connector picker and click Connect, then enter:
- API key: the key you just created
- Shop name: the value from the previous step
4
Confirm it is connected
SourceMedium checks the details with ReturnGO before saving them, so a wrong key or shop name is rejected on the spot. If they are rejected, see the troubleshooting notes below before rotating the key. The connection reads Awaiting first data until the first sync lands, then Connected.
SourceMedium only ever reads from your connected platforms. It does not create, change, or delete anything, so create the key with read-only access wherever the platform offers it. Treat it like a password: keep it confidential and avoid sharing it over email or in spreadsheets. If the credential is rotated or revoked, follow this guide’s connection method to update SourceMedium.
What data syncs
SourceMedium syncs returns at the return-event grain, along with their line items and shipments, plus ReturnGO transactions. Data can include return status and resolution, return reasons, refund, store credit, and exchange economics, and return timing. Once ReturnGO returns land for a store, SourceMedium uses ReturnGO for returns instead of Shopify’s, so nothing is double-counted. Where it lands in the warehouse: fct_returns, the returns table shared with Loop Returns and Shopify.What to expect on the first sync
SourceMedium fills history in over successive scheduled runs rather than one bulk load, keeping well inside that daily budget. A store with roughly 1,800 historical returns typically takes two to three days to catch up. Each run resumes exactly where the last one stopped. Because of this, do not compare row counts to your ReturnGO totals during the first few days. The useful signal is that the numbers keep climbing between runs. Once caught up, only changed returns are read, and the daily cost drops sharply. If the daily budget is exhausted, SourceMedium pauses until ReturnGO’s limit resets and resumes automatically. That is expected behavior, not a failed sync.Troubleshooting
- Credentials rejected when connecting? Check the shop name before the key. The most common cause is a key that is valid but not entitled to the store named in the shop name field. Rotating or recreating the API key does not fix that, because the key is not the problem. Confirm the shop name matches a store on the same ReturnGO account, with no
https://prefix or trailing slash. - Returns missing for one portal? A shop name without a portal reads the first portal on the account. Use the
shopname@portalnameform to target a specific one. - Sync looks stalled partway through history? See the note above. Early catch-up is paced against ReturnGO’s daily limit by design.
- Counts look low against the ReturnGO dashboard? ReturnGO restates returns as they progress, so recently opened returns can still be changing state. Compare on a settled date range.
- Another store on the same ReturnGO account syncing slowly? All stores on one ReturnGO account share the same 2,000 calls per day. Connecting several at once makes each take longer to catch up.

