---
title: "Everything the modules hold about one person, as JSON (access request, GDPR Art. 15)"
method: POST
path: "/projects/{projectId}/business/privacy/export"
tags: ["Business"]
---

# Everything the modules hold about one person, as JSON (access request, GDPR Art. 15)

`POST /projects/{projectId}/business/privacy/export`

## Request

- Base URL: `https://hostingsurge.com/api/v1`
- URL: `https://hostingsurge.com/api/v1/projects/{projectId}/business/privacy/export`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `__Host-hs_session`

## Path parameters

- `projectId` string, uuid, required

## Request body

- object
  - `email` string, email, required

## Response `200`

Export

- object
  - `email` string, required
  - `exportedAt` string, required: ISO-8601 timestamp
  - `submissions` object[], required
    - `id` string, uuid, required
    - `formId` string, uuid, required
    - `data` object, required
    - `email` string, nullable, required
    - `pageUrl` string, nullable, required
    - `read` boolean, required
    - `createdAt` string, required: ISO-8601 timestamp
    - `formName` string, required
  - `subscribers` object[], required
    - `id` string, uuid, required
    - `listId` string, uuid, required
    - `email` string, required
    - `name` string, nullable, required
    - `status` 'pending' | 'subscribed' | 'unsubscribed', required
    - `source` 'form' | 'dashboard' | 'api', required
    - `createdAt` string, required: ISO-8601 timestamp
    - `confirmedAt` string, nullable, required: ISO-8601 timestamp
    - `unsubscribedAt` string, nullable, required: ISO-8601 timestamp
    - `listName` string, required
  - `bookings` object[], required
    - `id` string, uuid, required
    - `serviceId` string, uuid, required
    - `serviceName` string, required
    - `startsAt` string, required: ISO-8601 timestamp
    - `endsAt` string, required: ISO-8601 timestamp
    - `name` string, required
    - `email` string, required
    - `phone` string, nullable, required
    - `notes` string, nullable, required
    - `timezone` string, required
    - `status` 'confirmed' | 'cancelled', required
    - `cancelledBy` 'customer' | 'owner' | 'null', nullable, required
    - `createdAt` string, required: ISO-8601 timestamp
    - `cancelledAt` string, nullable, required: ISO-8601 timestamp
  - `shopOrders` object[], required
    - `id` string, uuid, required
    - `number` string, required
    - `status` 'pending' | 'awaiting_payment' | 'paid' | 'fulfilled' | 'partially_refunded' | 'refunded' | 'canceled', required
    - `test` boolean, required: Paid through the test gateway: no money moved
    - `currency` string, required
    - `email` string, required
    - `phone` string, nullable, required
    - `customerName` string, nullable, required
    - `customerId` string, uuid, nullable, required
    - `company` string, nullable, required
    - `buyerVatNumber` string, nullable, required
    - `shippingAddress` object, nullable, required
      - `name` string
      - `company` string
      - `line1` string, required
      - `line2` string
      - `postalCode` string, required
      - `city` string, required
      - `region` string
      - `country` string, required
    - `billingAddress` object, nullable, required
      - `name` string
      - `company` string
      - `line1` string, required
      - `line2` string
      - `postalCode` string, required
      - `city` string, required
      - `region` string
      - `country` string, required
    - `lines` object[], required
      - `variantId` string, required
      - `productId` string, required
      - `productSlug` string, required
      - `title` string, required
      - `variantTitle` string, required
      - `sku` string, nullable, required
      - `image` string, nullable, required
      - `quantity` integer, required
      - `unitPriceMinor` integer, required: Minor units of the shop currency (öre, cents)
      - `discountMinor` integer, required: Minor units of the shop currency (öre, cents)
      - `totalMinor` integer, required: What the line costs the buyer (with VAT when it applies)
      - `netMinor` integer, required: Minor units of the shop currency (öre, cents)
      - `vatMinor` integer, required: Minor units of the shop currency (öre, cents)
      - `rateBps` integer, required
      - `taxClass` 'standard' | 'reduced1' | 'reduced2' | 'zero', required
    - `shipping` object, nullable, required
      - `rateId` string, required
      - `name` string, required
      - `kind` 'flat' | 'free_over' | 'weight' | 'pickup', required
      - `priceMinor` integer, required: Minor units of the shop currency (öre, cents)
    - `discount` object, nullable, required
      - `code` string, required
      - `kind` 'percent' | 'fixed' | 'free_shipping', required
    - `subtotalMinor` integer, required: Minor units of the shop currency (öre, cents)
    - `discountMinor` integer, required: Minor units of the shop currency (öre, cents)
    - `shippingMinor` integer, required: Minor units of the shop currency (öre, cents)
    - `vatMinor` integer, required: Minor units of the shop currency (öre, cents)
    - `totalMinor` integer, required: Minor units of the shop currency (öre, cents)
    - `refundedMinor` integer, required: Minor units of the shop currency (öre, cents)
    - `pricesIncludeVat` boolean, required
    - `vatRegime` 'domestic' | 'distance_seller_rates' | 'distance_destination_rates' | 'reverse_charge' | 'export', required
    - `vatNote` 'reverse_charge' | 'export' | 'null', nullable, required
    - `vatBreakdown` object[], required
      - `rateBps` integer, required
      - `netMinor` integer, required: Minor units of the shop currency (öre, cents)
      - `vatMinor` integer, required: Minor units of the shop currency (öre, cents)
      - `grossMinor` integer, required: Minor units of the shop currency (öre, cents)
    - `paymentProvider` 'stripe_connect' | 'manual' | 'test', required
    - `paymentMethod` 'stripe' | 'bank_transfer' | 'swish' | 'pickup' | 'invoice' | 'test', required
    - `paymentReference` string, nullable, required
    - `tracking` object[], required
      - `carrier` string, nullable, required
      - `number` string, required
      - `url` string, uri, nullable, required
      - `addedAt` string, required: ISO-8601 timestamp
    - `note` string, nullable, required
    - `language` string, required
    - `needsAttention` boolean, required: Paid after its reservation ran out and not enough stock was left: contact the customer
    - `reservedUntil` string, nullable, required: ISO-8601 timestamp
    - `paidAt` string, nullable, required: ISO-8601 timestamp
    - `fulfilledAt` string, nullable, required: ISO-8601 timestamp
    - `canceledAt` string, nullable, required: ISO-8601 timestamp
    - `createdAt` string, required: ISO-8601 timestamp
    - `events` object[]
      - `id` string, uuid, required
      - `kind` 'created' | 'payment_started' | 'paid' | 'fulfilled' | 'tracking' | 'refunded' | 'canceled' | 'expired' | 'email_sent' | 'email_failed' | 'note' | 'stock_short' | 'restocked', required
      - `actor` 'customer' | 'owner' | 'system' | 'stripe' | 'ai', required
      - `message` string, nullable, required
      - `details` object, required
      - `createdAt` string, required: ISO-8601 timestamp
  - `shopCustomer` object, nullable, required
    - `email` string, required
    - `name` string, nullable, required
    - `phone` string, nullable, required
    - `addresses` object[], required
      - `name` string
      - `company` string
      - `line1` string, required
      - `line2` string
      - `postalCode` string, required
      - `city` string, required
      - `region` string
      - `country` string, required
    - `createdAt` string, required: ISO-8601 timestamp
    - `lastLoginAt` string, nullable, required: ISO-8601 timestamp

## Other responses

- `400`: Invalid request (code invalid_request)
- `401`: Missing or invalid session/token (code unauthorized)
- `402`: A module limit was reached (code limit_reached)
- `403`: Authenticated but not permitted (code forbidden)
- `404`: Not found or not visible to the caller (code not_found)
- `409`: Not possible in the current state (code conflict)
- `429`: Too many requests (code rate_limited)
- `501`: Not available on this server (code not_configured)
- `503`: Stripe or the mail service did not answer (code provider_unavailable)

---

[API](https://skmtc.dev/hostingsurge/apis/hostingsurge-platform-api.md) · [All operations](https://skmtc.dev/hostingsurge/apis/hostingsurge-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hostingsurge/apis/hostingsurge-platform-api/revisions/4d08337cdff1?raw)
