You can download your data at any time from Settings → Export your data, as JSON or CSV. The export is a zip archive built fresh for every request, in the same response; nothing is stored on our side for it. A year of order volume is typically a few megabytes.
This is also the page the deletion reminder emails link to: export within the retrieval period (at least 30 days after the agreement ends, including a trial that was never paid), or the data is gone. This page is the exhaustive list of exportable data that the switching clause of the Terms (section 11, EU Data Act Art. 25) refers to.
File list
Each tabular category produces one file, named <category>.json or <category>.csv depending on the requested format. account.json, connections.json and audit_log.json are always JSON (nested/small, not row-tabular). manifest.json is always present.
| File | Contents |
|---|---|
orders.{json,csv} | Every order (T-011 columns) |
order_lines.{json,csv} | Every line item |
ad_spend_daily.{json,csv} | Daily ad spend (the only spend source used in profit — T-052) |
ad_entities_status.{json,csv} | Ad/adset/campaign metadata Klirry has observed |
cost_settings.{json,csv} | Misc rate, payment fallback, classification thresholds |
cost_shipping.{json,csv} | Per-country shipping cost assumptions |
cost_payment_methods.{json,csv} | Per-method fee rate/fixed cost |
cost_products.{json,csv} | Per-SKU unit cost |
fixed_costs.{json,csv} | Monthly fixed cost line items |
decisions.{json,csv} | Decision-queue cards (keep / pause / scale / improve) history |
attribution_matches.{json,csv} | Per-order attribution verdict |
legal_acceptances.{json,csv} | Which version of the terms, privacy policy and DPA each user of your account accepted, and when |
benchmark_consents.{json,csv} | Empty: cross-store benchmarks are off and are not offered. The table stays in the export so the list is complete |
benchmark_segment_memberships.{json,csv} | Empty: cross-store benchmarks are off and are not offered |
product_events.{json,csv} | Klirry's own record of a few product milestones for your account (activation, connection added, first real number, decision acted on, export used, dashboard opened): ids, choices and counts only, empty unless Klirry turns product analytics on |
support_time_log.{json,csv} | Time the Klirry founder logged for support or concierge work on your account: minutes, a short note, who logged it and when |
site_signals.{json,csv} | Empty unless you connect Google Analytics 4: per day and UTM campaign, the sessions and purchases it saw (incomplete when visitors decline analytics consent, never part of your profit numbers) |
experiment_assignments.{json,csv} | Which variant of a Klirry product experiment your account was put in, and when (empty unless Klirry runs an experiment) |
notifications.{json,csv} | Your in-app notification feed (alert kind, the figures it carried, read time) per user |
subscriptions.{json,csv} | Your Klirry subscription: plan, interval, status, currency, period end, trial end, cancellation flag |
invoices.{json,csv} | The invoices Klirry sent you: Stripe invoice id, status, amounts in minor units with currency, period, paid time |
subscription_changes.{json,csv} | Your plan history: each change in what you pay per month (new, expansion, contraction, churn), with the currency and the monthly amount before and after, without VAT, in minor units |
tenant_referral_codes.{json,csv} | Your customer referral code and how many times your link was followed (a count; nobody is identified) |
tenant_referrals.{json,csv} | The signups that came through your referral link: status and dates only, never the other account's name or email |
referral_credits.{json,csv} | Your referral credits: side, currency, amount in minor units, status |
tenant_tax_info.{json,csv} | The VAT number and tax status you entered for your Klirry invoices, and its VIES check result |
survey_responses.{json,csv} | Your own answers to in-app surveys (kind, score, your comment, when it was shown and answered), per user |
onboarding_events.{json,csv} | Your own onboarding milestones (step name + timestamp, e.g. signup_started, first_number_shown) — no free text |
cost_review_status.{json,csv} | Which cost-wizard sections were signed off, when, and by which user id |
vat_rates_snapshot.{json,csv} | Global VAT rates, filtered to countries appearing in your orders — makes the export self-sufficient for recomputing VAT without calling Klirry again |
ad_spend_hourly.{json,csv} | Hourly ad spend shape data per campaign, ad set and ad (id, names, date, hour, spend) |
classification_snapshots.{json,csv} | The latest hourly classification of each ad set (class, impact per week, version, time) |
decision_log.{json,csv} | Your decision receipts: which entity, when you acted, the basis, the source and the later outcome |
tasks.{json,csv} | Your to-do items (title, due date, done time, source entity) |
payment_fees_actual.{json,csv} | Actual payment fees per charge (provider, charge reference, fee, currency, capture time, match method, source) |
shipping_cost_actual.{json,csv} | Actual shipping cost per carrier invoice line (carrier, keyed tracking hash, cost, currency, invoice reference, match method, import time) |
csv_import_batches.{json,csv} | Each file you imported (file name, row and error counts, status, errors, warnings, times) |
feedback.{json,csv} | The feedback messages you sent from inside Klirry (kind, message, context) |
notification_preferences.{json,csv} | Your notification settings per user (digest frequency, thresholds, quiet hours, timezone) |
email_log.{json,csv} | The service emails sent to your users (category, template, subject, address, delivery state, times) |
account.json | Tenant record + user list (email, role, timestamps — no password hash, no TOTP secret) |
connections.json | Connected platforms (kind, label, status — no credentials in any form) |
audit_log.json | Account activity log |
manifest.json | Export id, generation time, format, and per-file row count + byte size + sha256 |
Column dictionary
Every *_minor column is an integer minor unit of the sibling currency column — e.g. grossMinor: 19900, currency: "SEK" means 199.00 SEK. Never a float. Timestamps are ISO-8601 UTC. CSV files are RFC 4180 (comma delimiter, CRLF line endings, quoted fields where needed, header row always present even for zero rows).
| Column pattern | Meaning |
|---|---|
*Minor | Integer minor units of currency |
currency | ISO 4217 three-letter code |
country | ISO 3166-1 alpha-2 |
*At | ISO-8601 UTC timestamp |
id | Klirry's internal UUID for that row |
*Id (e.g. orderId, connectionId) | Foreign key to another file in the same export, by id |
Recomputing profit from an export
The export is enough to reproduce Klirry's per-order profit calculation offline: join orders to order_lines (cost via cost_products), apply the OSS VAT rate from vat_rates_snapshot for the order's country and orderedAt date, subtract the payment fee (cost_payment_methods, matched on orders.paymentMethod), the shipping cost (cost_shipping, matched on orders.country), and the packaging/misc rate from cost_settings. The exact formula is published at the methodology page — the export's column names match that page's variable names one-to-one.
Integrity
manifest.json lists every file's row count and a sha256 of its exact bytes inside the zip. To verify: unzip, compute sha256 of each file, compare to the manifest entry with the matching name.
Privacy
End-consumer PII was never collected in the first place — the export contains only the merchant's own business data. account.json and connections.json explicitly exclude password_hash, the TOTP secret, and platform credentials in every form.
Limits
- Owner role only.
- 3 downloads per tenant per 24 hours.
Bookkeeping VAT report (profit reports, bookkeeping_vat)
Separate from the data export above: a report you request under Reports, as CSV or XLSX, with the VAT you collected per month and country, laid out for an accountant. One row per calendar month, destination country, currency and VAT treatment in the range you chose. Only settled sales are counted (paid and partially refunded orders); cancelled, pending and fully refunded orders are not. A range that cuts a month reports only the days inside it. Amounts are in the currency of the order itself: no currency conversion is applied.
| Column | Meaning |
|---|---|
month | Calendar month of the order date (UTC), YYYY-MM |
country | Destination country, ISO 3166-1 alpha-2 |
currency | ISO 4217 code of every _minor value in the row |
vat_source | How the VAT figure was obtained: derived (calculated from the versioned VAT rate table), platform (reported by your store), none (non-VAT destination or no rate on file) |
vat_category | standard for derived rows, otherwise the same word as vat_source |
vat_rate_percent | The standard rate that applied on the order date, in percent (for example 24); empty unless vat_source is derived |
orders | Number of orders in the row |
gross_revenue_minor | Revenue including VAT, integer minor units |
vat_minor | VAT collected, integer minor units |
net_revenue_minor | gross_revenue_minor minus vat_minor, integer minor units |
The figures are the same per-order results the dashboard and the orders report use, summed; nothing is re-calculated for this report.