---
title: "Generate subscription report"
method: POST
path: "/data/v1/subscription"
tags: ["Data"]
---

# Generate subscription report

`POST /data/v1/subscription`

Generates a subscription report.

You can apply filters on date range, country name, product name, and product path. For each filtered variable, you can define the columns you want to include in your report and how to group results.

## Request body

- GenerateSubscriptionReportRequest — Request body schema to generate a subscription report, including filtering criteria, columns, grouping, pagination, and notification options.
  - `filter` object — Filtering criteria for the subscription report, including date ranges, product filters, country codes, and segments.
    - `startDate` string, date — Start date (YYYY-MM-DD) for the reporting range.
    - `endDate` string, date — End date (YYYY-MM-DD) for the reporting range.
    - `syncDate` string, date — Last update reference date (YYYY-MM-DD).
    - `countryISO` string[] — List of 2-letter country codes to filter the report by.
    - `productNames` string[] — List of product names to filter the report by.
    - `productPaths` string[] — List of product paths to filter the report by.
    - `segments` string[] — List of segment identifiers to filter the report by.
  - `reportColumns` string[] — Columns to include in the subscription report: | Column | Description | |----------------------------|-----------------------------------------------------------------------------------------------------------------| | `activations` | Number of activations in the selected period. | | `arr` | Cumulative Annual Run Rate until endDate. | | `average_mrr` | Cumulative Average MRR until endDate. | | `buyer_email` | Buyer’s email address. | | `buyer_id` | Unique ID for the buyer. | | `cancellations` | Number of cancellations in the selected period. | | `chargeback_true_false` | `true` if the order was charged back, `false` if successful. | | `churn_type` | Churn type if canceled. | | `company_id` | Seller's unique ID. | | `company_name` | Seller's name. | | `country_iso` | 2-letter ISO country code. | | `country_name` | English country name. | | `coupon` | The coupon code used. | | `customer_churn` | Subscriber loss over prior 30 days / active customers 30 days ago. | | `discount` | Discount amount. | | `driving_offer_type` | e.g., cross-sell, upsell, bundle, addon, etc. | | `driving_product_path` | Parent product path. | | `lifetime_value` | Average MRR / customer churn. | | `mrr` | Cumulative Monthly Recurring Revenue until endDate. | | `mrr_decrease` | MRR decrease. | | `mrr_downgrade` | MRR from downgrades in the selected period. | | `mrr_growth_rate` | (current MRR - MRR 30 days ago) / (MRR 30 days ago). | | `mrr_increase` | MRR increase in the selected period. | | `mrr_paused` | MRR from pauses in the selected period. | | `mrr_resumed` | MRR from resumes in the selected period. | | `mrr_upgrade` | MRR from upgrades in the selected period. | | `new_subscribers` | Number of new subscribers in the selected period. | | `occurred_date` | Date of the subscription. | | `order_id` | Order ID. | | `product_display_name` | Display name of the product. | | `product_id` | Internal product ID. | | `product_name` | Product name. | | `product_path` | Primary key for the product. | | `purchase_type` | `first` or `recurring` (renewal). | | `return_true_false` | `true` if returned, `false` otherwise. | | `revenue_churn` | (MRR decrease) / (MRR 30 days ago). | | `segment` | Group label for a product/country set. | | `store_id` | ID of the store. | | `store_name` | Name of the store. | | `subscriber_loss` | Subscribers lost in the selected period. | | `subscribers` | Cumulative subscribers until endDate. | | `subscription_id` | Unique subscription identifier. | | `subscription_period` | Length of the subscription. | | `subscription_period_end` | End date of the subscription period. | | `subscription_period_start` | Start date of the subscription period. | | `subscription_quantity` | Subscription units from order creation. | | `subscription_start_date` | The subscription’s start date. | | `subscription_status` | The subscription status. | | `subscription_true_false` | `true` if subscription product, `false` for a one-time product. | | `subscriptions` | Cumulative subscriptions until endDate. | | `sync_date` | The last sync date for the data. | | `transaction_currency` | Currency of the order. | | `transaction_date` | Date of the order. | | `transaction_day` | Day-month of the transaction. | | `transaction_month` | Month of the transaction. | | `transaction_time_utc` | UTC time of the transaction. | | `transaction_year` | Year of the transaction. |
  - `groupBy` string[] — Fields used to group or aggregate the data: | Field | Description | |----------------------------|------------------------------------------------| | `buyer_email` | Buyer’s email address. | | `buyer_id` | Unique ID for the buyer’s orders. | | `company_id` | The seller’s unique ID. | | `company_name` | The seller’s name. | | `country_iso` | 2-letter ISO country code. | | `country_name` | English name for the country. | | `coupon` | The coupon code used. | | `chargeback_true_false` | `true` if order charged back, `false` if not. | | `churn_type` | Churn type when canceled. | | `discount` | The discount amount. | | `driving_offer_type` | e.g., cross-sell, upsell, addon, etc. | | `driving_product_path` | The parent product path. | | `occurred_date` | The date of the subscription. | | `order_id` | The order ID. | | `product_display_name` | Display name of the product. | | `product_id` | Internal product ID. | | `product_name` | Product name. | | `product_path` | Primary product path. | | `purchase_type` | `first` or `recurring` (renewal). | | `return_true_false` | `true` if returned, `false` otherwise. | | `segment` | Groups products/countries with shared traits. | | `store_id` | The store’s ID. | | `store_name` | The store’s name. | | `subscription_id` | Unique subscription identifier. | | `subscription_period` | The subscription length. | | `subscription_period_end` | End date of the subscription period. | | `subscription_period_start`| Start date of the subscription period. | | `subscription_start_date` | The subscription start date. | | `subscription_status` | The subscription status. | | `subscription_true_false` | `true` if subscription product, `false` if not.| | `sync_date` | Last sync date. | | `transaction_currency` | The currency of the order. | | `transaction_date` | The date of the order. | | `transaction_day` | Day-month of the subscription transaction. | | `transaction_month` | Month of the transaction. | | `transaction_year` | Year of the transaction. |
  - `pageCount` integer — Number of records to return per page.
  - `pageNumber` integer — Specifies the page number of results to be returned.
  - `async` boolean — Indicates if the report generation was requested asynchronously.
  - `notificationEmails` string[] — List of emails to notify upon job completion.

## Response `200`

OK

- union
  - PostSubscriptionSyncResponse
    - `report` object[]
      - `arr` number — Cumulative Annual Run Rate until the endDate selected.
      - `subscriptions` number — Cumulative number of subscriptions until the endDate selected.
      - `subscriber_loss` number — Subscribers lost in the selected period of time.
      - `customer_churn` number — Sum of subscriber loss over the prior 30 days divided by the active customers 30 days ago.
      - `subscribers` number — Cumulative number of subscribers until the endDate selected.
      - `mrr_growth_rate` number — (MRR for the current day - MRR 30 days ago)/ MRR 30 days ago.
      - `new_subscribers` number — New subscribers in the selected period of time.
      - `average_mrr` number — Cumulative Average Monthly Recurring Revenue until the endDate selected.
      - `mrr` number — Cumulative Monthly Recurring Revenue until the endDate selected.
      - `product_name` string — The product name.
      - `occurred_date` string, date — Date of the subscription.
      - `cancellations` integer — Number of cancellations in the selected period of time.
      - `revenue_churn` number — Sum of MRR decrease over the prior 30 days divided by the MRR 30 days ago.
      - `lifetime_value` number — The AVG MRR divided by the customer churn (percentage).
      - `mrr_decrease` number — MRR decrease in the selected period.
      - `mrr_increase` number — MRR increase in the selected period.
      - `site_id` string — An identifier for the store or site associated with the quote/report.
      - `country_name` string — The country name.
      - `activations` number — Number of activations in the selected period of time.
    - `request` object
      - `filter` object — Filter conditions that were applied to generate the report.
        - `startDate` string, date — Start date (YYYY-MM-DD) for the reporting range.
        - `endDate` string, date — End date (YYYY-MM-DD) for the reporting range.
        - `productNames` string[] — List of product names to filter the report by.
        - `countryNames` string[] — List of country names to filter the report by.
      - `reportColumns` string[] — Columns to include in the subscription report (if specified).
      - `pageCount` integer — Number of records to return per page.
      - `pageNumber` integer — Specifies the page number of results to be returned.
      - `async` boolean — Indicates if the report generation was requested asynchronously.
      - `notificationEmails` string[] — List of emails to notify upon job completion.
  - PostSubscriptionAsyncResponse
    - `id` string — Unique identifier for the asynchronous job generating the subscription report.
    - `name` string — Name assigned to the subscription report job.
    - `status` string — Current status of the asynchronous report generation (e.g., PROCESSING, COMPLETED, FAILED).
    - `request` object
      - `filter` object
        - `startDate` string, date — Start date (YYYY-MM-DD) for the reporting range.
        - `endDate` string, date — End date (YYYY-MM-DD) for the reporting range.
        - `productNames` string[] — List of product names to filter the report by.
        - `countryNames` string[] — List of country names to filter the report by.
      - `reportColumns` string[] — Columns to include in the subscription report (if specified).
      - `pageCount` integer — Number of records to return per page.
      - `pageNumber` integer — Specifies the page number of results to be returned.
      - `async` boolean — Indicates if the report generation was requested asynchronously.
      - `notificationEmails` string[] — List of emails to notify upon job completion.

## Other responses

- `400` — Bad Request

---

[API](https://skmtc.dev/fastspring/apis/fastspring-api-accounts.md) · [All operations](https://skmtc.dev/fastspring/apis/fastspring-api-accounts/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/fastspring/fastspring-api-accounts/revisions/ae2f0b97db3e/schema)
