# How do I bulk-export Skio subscriber and consent data before switching to a different subscription app?

Reviewed by Martin Dejnicki, Director of SEO & AI Search · facts verified October 9, 2026 · canonical: https://deploi.ca/shopify/faq/skio-bulk-export-subscriber-consent-data

## Short answer

Skio exports subscriber data four ways: dashboard spreadsheets, a GraphQL interface (2,000 requests a minute per key), a bulk export interface added 27 January 2026, and a BigQuery dataset ([Skio Help Center](https://help.skio.com/docs/exports-guide), [Skio developer docs](https://code.skio.com/#rate-limits), [Skio changelog](https://skio.com/changelog/public-rest-api), October 2026). None carries marketing consent, so take that from Shopify, which keeps it on the customer record ([Shopify developer docs](https://shopify.dev/docs/api/admin-graphql/latest/mutations/customerEmailMarketingConsentUpdate), October 2026).

- **Dashboard export:** Subscriptions, orders and audit logs. Tools, then Data Export, emailed as CSV files; the created-at and next-billing-date filters default to the past month (October 2026) ([Skio Help Center, Data Exports Guide](https://help.skio.com/docs/exports-guide))
- **GraphQL rate limit:** 2,000 requests a minute per API token. Queries also stop at 4 nested levels and 100 nodes per request (October 2026) ([Skio developer docs, Skio API Reference: Rate limits](https://code.skio.com/#rate-limits))
- **Bulk export interface:** Added 27 January 2026. Cursor-based endpoints for orders, subscriptions, storefront users and products, up to 1,000 records a page (October 2026) ([Skio changelog, Public REST API](https://skio.com/changelog/public-rest-api); [Skio developer docs, Public REST API 1.0.0](https://code.skio.com/rest-api/))
- **Marketing consent:** On the Shopify customer record. Shopify records state, opt-in level, and when and where consent was given; Skio's API holds only a SkioSMS transactional opt-in flag (October 2026) ([Shopify developer docs, customerEmailMarketingConsentUpdate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/customerEmailMarketingConsentUpdate); [Shopify developer docs, customerSmsMarketingConsentUpdate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/customerSmsMarketingConsentUpdate); [Skio developer docs, Skio API Reference: StorefrontUser](https://code.skio.com/#definition-StorefrontUser))

## Deploi's call

Export everything Skio holds before you give notice, and take marketing consent from Shopify, not Skio. Better still, run the export on day one of the contract, because an export you have never tested is an assumption. The moment you need it is the moment you are least able to wait on a support queue.

**CUSTOMIZE: Run the exports yourself, before notice, when**

- You are switching apps: export subscriptions, orders and audit logs from the dashboard with the date filters cleared ([Skio Help Center](https://help.skio.com/docs/exports-guide), October 2026).
- Your subscriber base is large: use the bulk export interface Skio added for merchants who hit GraphQL limits ([Skio changelog](https://skio.com/changelog/public-rest-api), October 2026).
- You use SkioSMS: pull each customer's transactional opt-in flag and message log through the API (application programming interface) or BigQuery ([Skio developer docs](https://code.skio.com/#definition-StorefrontUser), October 2026).
- Your analysts work in BigQuery: copy Skio's dataset into a Google Cloud project you own ([Skio Help Center](https://help.skio.com/docs/copying-bigquery-dataset-into-own-gcp-project), October 2026).

**WAIT: Do not cancel Skio until**

- Row counts reconcile, because the subscriptions file has one row per subscription line ([Skio Help Center](https://help.skio.com/docs/exports-guide), October 2026).
- The next app's import has been tested against the export.
- Every subscriber's marketing consent has been checked in Shopify, not in Skio.

## Which ways can you bulk-export subscriber data from Skio?

Skio gives you four ways to bulk-export subscriber data, from the simplest to the most complete. Use them in this order, before [the next migration puts subscribers at risk](https://deploi.ca/shopify/faq/skio-migration-subscriber-loss-risk-mid-replatform).

1. **The dashboard export.** In Skio, Tools then Data Export emails CSV (comma-separated values) files of subscriptions, orders or audit-log events ([Skio Help Center](https://help.skio.com/docs/exports-guide), October 2026). Its created-at and next-billing-date filters default to the past month, so widen them or you will export a month and mistake it for your whole subscriber base.
1. **The GraphQL API (application programming interface).** Generate a key under API & Integrations, then API ([Skio Help Center](https://help.skio.com/docs/using-the-skio-api), October 2026). Queries stop at 4 nested levels and 100 nodes per request, and each token gets 2,000 requests a minute ([Skio developer docs](https://code.skio.com/#rate-limits), October 2026).
1. **The bulk export interface, added 27 January 2026.** Cursor-based endpoints export orders, subscriptions, storefront users and products, filtered by date range or ID, for merchants who hit GraphQL limits or timeouts ([Skio changelog](https://skio.com/changelog/public-rest-api), October 2026).
1. **The BigQuery integration.** Skio loads everything its GraphQL API exposes into BigQuery as raw tables, refreshed every 24 hours by default. Skio says most merchants pay under $5 a month in Google Cloud query costs ([Skio Help Center](https://help.skio.com/docs/bigquery-integration), October 2026).

## What do Skio's exports carry, and what do they miss?

Skio's exports carry your subscriptions and orders, with one counting trap and two gaps. In the dashboard's subscriptions file, each row is one subscription line, not one subscription ([Skio Help Center](https://help.skio.com/docs/exports-guide), October 2026). A subscriber on a three-product box produces three rows, so a naive row count inflates the base. Recharge counts every product as its own subscription, so Recharge and Skio totals differ by design too ([Skio Help Center](https://help.skio.com/docs/data-migration-an-overview), October 2026).

The same file carries each line's per-unit price, the field that [grandfathered prices depend on in the next app](https://deploi.ca/shopify/faq/grandfathered-subscription-pricing-migration). The bulk export's subscription records include cancel-flow sessions with the reason each subscriber gave ([Skio developer docs](https://code.skio.com/rest-api/), October 2026), so your churn reasons survive the switch.

What no Skio export gives you:

- **Usable cards.** Skio's API (application programming interface) lists each customer's payment method details, such as brand, last digits and expiry ([Skio developer docs](https://code.skio.com/#definition-PaymentMethod), October 2026). The card itself stays with your payment processor: Skio says the payment data is stored there, not in Skio's database ([Skio Help Center](https://help.skio.com/docs/data-migration-an-overview), October 2026).
- **Settings.** Portal customizations, churn-save rules and dunning configuration are settings, and vendor imports do not carry them ([Deploi Build vs. Buy](https://deploi.ca/shopify/build-vs-buy/subscription-platform-migration), October 2026). Screenshot them or write them down as a spec.

## Where does consent data live, and how do you export it?

Consent data lives in two places, and only one of them is Skio's. Email and text-message (SMS) marketing consent sits on the Shopify customer record. Shopify records the marketing state, the opt-in level, and when and where consent was given or withdrawn, for email ([Shopify developer docs](https://shopify.dev/docs/api/admin-graphql/latest/mutations/customerEmailMarketingConsentUpdate)) and for SMS ([Shopify developer docs](https://shopify.dev/docs/api/admin-graphql/latest/mutations/customerSmsMarketingConsentUpdate), October 2026). Shopify's customer spreadsheet carries only yes-or-no Accepts Email, SMS and WhatsApp Marketing columns ([Shopify Help Center](https://help.shopify.com/en/manual/customers/import-export-customers), October 2026). So pull consent dates through the API (application programming interface) if you need an audit trail.

The Skio side is SkioSMS, Skio's own text messaging. SkioSMS opts subscribers in to transactional texts automatically, and they can opt out at any time by replying stop or cancel ([Skio Help Center](https://help.skio.com/docs/2-way-subscription-management), October 2026). Skio's GraphQL schema carries a per-customer `smsTransactionalOptIn` flag and a log of every SkioSMS message ([Skio developer docs](https://code.skio.com/#definition-StorefrontUser), October 2026). The dashboard's audit-log export lists SkioSMS interaction events but no consent or opt-out event ([Skio Help Center](https://help.skio.com/docs/exports-guide), October 2026), so take that flag through the API or BigQuery before you leave.

## What has to happen before you give notice?

Everything has to be exported and checked before you give notice, because an export you have never tested is an assumption.

1. **Copy the BigQuery dataset into a Google Cloud project you own.** Skio's pages describe it two ways. The integration page says the data lands "in your own BigQuery data warehouse" ([Skio Help Center](https://help.skio.com/docs/bigquery-integration), October 2026). The copying guide says Skio delivers it into a dataset inside Skio's Google Cloud project with read-only access ([Skio Help Center](https://help.skio.com/docs/copying-bigquery-dataset-into-own-gcp-project), October 2026). Either way, a copy in your own project is the one that survives cancellation.
1. **Clear the export filters and reconcile the counts** against Skio's active and inactive totals.
1. **Export the payment-method and SkioSMS history.** The audit log's payment-method events and the GraphQL message log show who was asked to update a card or replied to a text.
1. **Check every subscriber's marketing consent in Shopify** before the next app starts sending.

Assume access ends when the app is uninstalled; that is our caution, not a documented Skio policy. Then [map the integration onto the next app](https://deploi.ca/shopify/faq/subscription-integration-mapping-recharge-skio-loop).

## Deploi's point of view

**What we've seen.** The line-versus-subscription row count is a reporting error we keep finding in migration planning decks. The other is treating the audit log as optional, when it is the only dashboard export that carries the text-message and payment-method event history.

**Where we disagree.** The category treats data portability as a procurement checkbox, satisfied by the words "full data export" in a sales deck. Portability is a property of the specific fields you need on the day you leave. Payment tokens are the ones that matter, and they sit with your payment processor, not with the app.

**What this page adds.** The four export paths and their documented limits, what each one misses, and where consent really lives: marketing consent on the Shopify customer record, the SkioSMS opt-in flag in Skio's API.

## When this answer changes

- Skio changes its export types, its GraphQL limits or its bulk export interface.
- Skio adds a consent or opt-out field to its dashboard or bulk exports.
- Skio changes where its BigQuery dataset lives or who can read it.
- Recharge publishes the combined Recharge and Skio roadmap, which could change Skio's export tools.
- Shopify adds consent dates to its customer spreadsheet export.

## Sources

1. [Skio Help Center, Data Exports Guide](https://help.skio.com/docs/exports-guide), checked October 9, 2026
2. [Skio Help Center, Using the Skio API](https://help.skio.com/docs/using-the-skio-api), checked October 9, 2026
3. [Skio developer docs, Skio API Reference: Rate limits](https://code.skio.com/#rate-limits), checked October 9, 2026
4. [Skio developer docs, Skio API Reference: PaymentMethod](https://code.skio.com/#definition-PaymentMethod), checked October 9, 2026
5. [Skio developer docs, Skio API Reference: StorefrontUser](https://code.skio.com/#definition-StorefrontUser), checked October 9, 2026
6. [Skio changelog, Public REST API](https://skio.com/changelog/public-rest-api), checked October 9, 2026
7. [Skio Help Center, BigQuery Integration](https://help.skio.com/docs/bigquery-integration), checked October 9, 2026
8. [Shopify developer docs, customerEmailMarketingConsentUpdate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/customerEmailMarketingConsentUpdate), checked October 9, 2026
9. [Shopify developer docs, customerSmsMarketingConsentUpdate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/customerSmsMarketingConsentUpdate), checked October 9, 2026
10. [Skio Help Center, Data Migration: An Overview](https://help.skio.com/docs/data-migration-an-overview), checked October 9, 2026
11. [Skio Help Center, Copying your Skio BigQuery dataset into your own GCP project](https://help.skio.com/docs/copying-bigquery-dataset-into-own-gcp-project), checked October 9, 2026
12. [Shopify Help Center, Importing and exporting customer lists](https://help.shopify.com/en/manual/customers/import-export-customers), checked October 9, 2026
13. [Skio Help Center, Two-Way SMS Subscription Management](https://help.skio.com/docs/2-way-subscription-management), checked October 9, 2026
14. [Skio developer docs, Public REST API 1.0.0](https://code.skio.com/rest-api/), checked October 9, 2026
15. [Deploi Build vs. Buy, Recharge Alternatives: Build or Buy the Subscription Migration?](https://deploi.ca/shopify/build-vs-buy/subscription-platform-migration), checked October 9, 2026, Deploi research
