# Subscription Records Export

This endpoint enables you to retrieve all subscriptions data managed by Zotlo. It enables you to view active, inactive, or canceled subscriptions on the platform using various filters such as date range, package, and country. The endpoint allows you to fetch large volumes of subscription data efficiently and manage your reporting and operational workflows smoothly.

The service operates with the **GET** method.

<table data-header-hidden><thead><tr><th width="99.640625"></th><th></th></tr></thead><tbody><tr><td>Method</td><td><h4>  <mark style="color:green;background-color:$primary;"><code>GET</code></mark></h4></td></tr><tr><td>URL</td><td><pre data-overflow="wrap" data-full-width="false"><code>https://api.zotlo.com/v1/reports/activity/subscription
</code></pre></td></tr></tbody></table>

## **Request Parameters**

<table><thead><tr><th width="176.16015625">Field</th><th width="115.48828125">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>limit</code></td><td>Optional</td><td>Number of records to return in a single page. Default: <code>25</code>. Maximum: <code>100</code>.</td></tr><tr><td><code>country</code></td><td>Optional</td><td>Filters subscriptions by user country (2-letter ISO code, e.g. <code>UK</code>, <code>US</code>).</td></tr><tr><td><code>package_id</code></td><td>Optional</td><td>Filters subscriptions by the associated <code>packageId</code>.</td></tr><tr><td><code>start_date</code></td><td>Optional</td><td>Lists subscriptions created <strong>on or after</strong> this date. Format: <code>YYYY-MM-DD</code></td></tr><tr><td><code>end_date</code></td><td>Optional</td><td>Lists subscriptions created <strong>on or before</strong> this date. Format: <code>YYYY-MM-DD</code>.</td></tr><tr><td><code>before</code></td><td>Optional</td><td>Cursor token to fetch the <strong>previous</strong> page. Use the value returned under <code>paging.cursors.previous</code> from the last response.</td></tr><tr><td><code>after</code></td><td>Optional</td><td>Cursor token to fetch the <strong>next</strong> page. Use the value returned under <code>paging.cursors.next</code> from the last response.</td></tr></tbody></table>

## **Sample Request**

{% code overflow="wrap" %}

```js
GET https://api.zotlo.com/v1/reports/activity/subscription?limit=50?&start_date=2025-11-01&end_date=2025-11-30 HTTP/1.1
AccessKey: ••••••
AccessSecret: ••••••
Content-Type: application/json
ApplicationId: •
Language: ••
```

{% endcode %}

{% hint style="info" %}
You can find your **AccessKey** and **AccessSecret** in the Zotlo Panel under **Developer Tools → API Keys**

Sending **ApplicationId** is optional.
{% endhint %}

## Successful Response

{% code overflow="wrap" %}

```json
{
  "meta": {
    "requestId": "5896c0267514-REQ-6924662e5718a",
    "httpStatus": 200
  },
  "result": {
    "data": [
      {
        "id": 343,
        "platform": "ios",
        "startDate": "2025-11-10 08:27:37",
        "expireDate": "2025-11-10 08:28:08",
        "subscriberId": "3a33eb5d-3e4b-4875-916f-7e9fb5867f3f",
        "productId": "web_premium",
        "originalTransactionId": "29d557b4-2563-497b-ad1f-677ac6910b81",
        "lastTransactionId": "29d557b4-2563-497b-ad1f-677ac6910b81",
        "lastTrandactionDate": "2025-11-10 08:27:37",
        "status": "passive",
        "subscriptionType": "paid",
        "currency": "USD",
        "price": "20.00",
        "trialPrice": "0.00",
        "country": "US",
        "language": "EN",
        "teamId": 1,
        "providerId": 13,
        "period": 1,
        "trialPeriod": 0,
        "renewalDate": "2025-12-10 08:27:37",
        "appId": 1,
        "cancellationDate": "2025-11-10 08:28:08",
        "cancellationReason": "{\"reason\":\"\",\"user\":\"API: \"}",
        "cancellationCode": "CU00002",
        "mobilePhone": "+905555555555",
        "email": "johndoe@example.com",
        "jsonPayload": "{\"forceWebhook\":true,\"subscriberIpAddress\":\"0.0.0.0\"}",
        "quantity": 1,
        "pendingQuantity": 0,
        "periodType": "month",
        "trialPeriodType": "day",
        "packageCountry": "TR",
        "freezeEndDate": null
      },
      {
        "id": 342,
        "platform": "ios",
        "startDate": "2025-11-10 08:19:29",
        "expireDate": "2025-11-10 08:26:59",
        "subscriberId": "8aa4de92-a86d-4330-bb3c-6995a5f837ed",
        "productId": "web_premium",
        "originalTransactionId": "6edc57b0-86a1-4ba7-bf9a-81d05afbf505",
        "lastTransactionId": "6edc57b0-86a1-4ba7-bf9a-81d05afbf505",
        "lastTrandactionDate": "2025-11-10 08:19:29",
        "status": "passive",
        "subscriptionType": "paid",
        "currency": "USD",
        "price": "20.00",
        "trialPrice": "0.00",
        "country": "US",
        "language": "EN",
        "teamId": 1,
        "providerId": 13,
        "period": 1,
        "trialPeriod": 0,
        "renewalDate": "2025-12-10 08:19:29",
        "appId": 1,
        "cancellationDate": "2025-11-10 08:26:59",
        "cancellationReason": "{\"reason\":\"\",\"user\":\"API: \"}",
        "cancellationCode": "CU00002",
        "mobilePhone": "+905555555555",
        "email": "johndoe@example.com",
        "jsonPayload": "{\"forceWebhook\":true,\"subscriberIpAddress\":\"0.0.0.0\"}",
        "quantity": 1,
        "pendingQuantity": 0,
        "periodType": "month",
        "trialPeriodType": "day",
        "packageCountry": "US",
        "freezeEndDate": null
      }
    ],
    "paging": {
      "cursors": {
        "previous": null,
        "next": "ExxyYaIVgzdwKWb7tuUf8WlwMlFSZmcxYVpiem5iWE93NW9EZkMrYk9oSE9tVEYrUlV4TUZMV2Y2ZG9VOEhucFdaSHRxNXVFaEdwYS90Z2lXRnpweEtzcG1WbG04THBLMGtJMWlmL2NKdjFneDJZZE5mNEIyVTNwQWlFSFV4ZU9wL2gyRUc0N2JYdjc0SEwxOVZwVGU4MUV3VUM2UFJCbWt0Y0tacUpjVFliRWg3eEoySVhWSEF2RDJIdkE2S3M4dCtiekZlMGJkZFFpblIxZU4vWE1hZmErTzJRSmdVNFBnbHFDQ28ya2hDMVJ5ZTJpU1ZyWGNLbGxrK009"
      },
      "previous": "https://local-api.zotlo.com:39443/v1/reports/activity/subscription",
      "next": "https://local-api.zotlo.com:39443/v1/reports/activity/subscription?after=ExxyYaIVgzdwKWb7tuUf8WlwMlFSZmcxYVpiem5iWE93NW9EZkMrYk9oSE9tVEYrUlV4TUZMV2Y2ZG9VOEhucFdaSHRxNXVFaEdwYS90Z2lXRnpweEtzcG1WbG04THBLMGtJMWlmL2NKdjFneDJZZE5mNEIyVTNwQWlFSFV4ZU9wL2gyRUc0N2JYdjc0SEwxOVZwVGU4MUV3VUM2UFJCbWt0Y0tacUpjVFliRWg3eEoySVhWSEF2RDJIdkE2S3M4dCtiekZlMGJkZFFpblIxZU4vWE1hZmErTzJRSmdVNFBnbHFDQ28ya2hDMVJ5ZTJpU1ZyWGNLbGxrK009"
    }
  }
}
```

{% endcode %}

## Key **Response Fields**

<table><thead><tr><th width="194.51953125">Field</th><th>Description</th></tr></thead><tbody><tr><td>meta.requestId</td><td>Unique ID generated by Zotlo for this request (useful for debugging and support).</td></tr><tr><td>meta.httpStatus</td><td>HTTP status code for the response (e.g. <code>200</code>).</td></tr><tr><td>result.data</td><td>Array of subscription records returned for this page.</td></tr><tr><td>result.paging.cursors.previous</td><td>Cursor token to fetch the previous page. Send this value as <code>before</code> in the next request.</td></tr><tr><td>result.paging.cursors.next</td><td>Cursor token to fetch the next page. Send this value as <code>after</code> in the next request.</td></tr><tr><td>result.paging.previous</td><td>Full URL for the previous page request (helper link).</td></tr><tr><td>result.paging.next</td><td>Full URL for the next page request (helper link).</td></tr></tbody></table>

## **Failed Response**

All failed responses follow the same standard error format.\
(See: [**Error Handling**](https://docs.zotlo.com/integrating-zotlo/api-reference/error-handling))
