# Get Subscription Status

This endpoint returns the most recent status of a subscription managed by Zotlo.

Use the **GET** method to query a subscriber. Both **subscriberId** and **packageId** parameters are required to retrieve the correct subscription record.

The response includes the subscription’s state, status, lifecycle dates, and related metadata.

<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/subscription/profile?subscriberId=SUBSCRIBER_ID&#x26;packageId=PACKAGE_ID&#x26;isSandbox=true|false
</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>subscriberId</code></td><td>Required</td><td>The email or phone number the user provided when starting the subscription.</td></tr><tr><td><code>packageId</code></td><td>Required</td><td>The ID of the package to query. A successful response is returned only if the user has a subscription for this package.</td></tr><tr><td><code>isSandbox</code></td><td>Required</td><td><p>Indicates whether the subscription was created in sandbox or live mode.Send:</p><ul><li><strong>true</strong> → sandbox</li><li><strong>false</strong> → live</li></ul></td></tr></tbody></table>

## **Sample Request**

{% code overflow="wrap" %}

```js
GET https://api.zotlo.com/v1/subscription/profile?subscriberId=SUB_ID&packageId=PACKAGE_ID HTTP/1.1
AccessKey: ••••••
AccessSecret: ••••••
Content-Type: application/json
ApplicationId: •
Language: en
```

{% 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

### **Active Subscription**

{% code overflow="wrap" %}

```json
{
  "meta": {
    "requestId": "6d2989e84793-REQ-5f32a82e299ff",
    "httpStatus": 200
  },
  "result": {
    "profile": {
      "status": "active",
      "realStatus": "active",
      "subscriberId": "test@mail.com",
      "subscriptionType": "paid",
      "startDate": "2020-08-10 21:57:25",
      "expireDate": "2020-09-09 21:57:25",
      "package": "zotlo-premium",
      "country": "TR",
      "phoneNumber": "+905555555555",
      "language": "tr",
      "originalTransactionId": "80397a95-742d-4c74-975e-f740d1909580",
      "cancellation": null,
      "customParameters": {
        "source": "Landing",
        "adjust": {
          "idfa": "A161AD92-7DC3-4B15-B14C-3AA65995AFCC"
        }
      },
      "renewalFetchCount": 0
    },
    "package": {
      "packageId": "zotlo-premium",
      "price": 3.99,
      "currency": "USD",
      "packageType": "subscription",
      "name": "Zotlo Premium"
    },
    "newPackage": null,
    "card": {
      "cardNumber": "411111******1111",
      "expireDate": "12/20"
    },
    "customer": {
      "id": 1,
      "createDate": "2020-05-13 12:57:36",
      "country": "TR",
      "firstname": "Test",
      "lastname": "Test",
      "email": "test@test.com"
    }
  }
}
```

{% endcode %}

### **Canceled Subscription**

{% code overflow="wrap" %}

```json
{
  "meta": {
    "requestId": "6d2989e84793-REQ-5f32a89037084",
    "httpStatus": 200
  },
  "result": {
    "profile": {
      "status": "active",
      "realStatus": "passive",
      "subscriberId": "313334342",
      "subscriptionType": "paid",
      "startDate": "2020-08-07 06:44:16",
      "expireDate": "2020-09-06 06:44:16",
      "package": "zotlo-premium",
      "country": "TR",
      "phoneNumber": "+905555555555",
      "language": "tr",
      "originalTransactionId": "51e8fd2a-5b28-4b9f-bfe3-5f752b09d3a3",
      "cancellation": {
        "date": "2020-08-07 06:46:00",
        "reason": "Not Interest",
        "code": "CU00001"
      },
      "customParameters": {
        "source": "Landing"
      }
    },
    "package": {
      "packageId": "zotlo-premium",
      "price": 2.99,
      "currency": "USD",
      "packageType": "subscription",
      "name": "Zotlo Premium"
    },
    "newPackage": null,
    "card": {
      "cardNumber": "411111******1111",
      "expireDate": "12/20"
    },
    "customer": {
      "id": 1,
      "createDate": "2020-05-13 12:57:36",
      "country": "TR",
      "firstname": "Test",
      "lastname": "Test",
      "email": "test@test.com"
    }
  }
}
```

{% endcode %}

## Key **Response Fields**

### **Subscription Fields**

<table><thead><tr><th width="193.19921875">Field</th><th>Description</th></tr></thead><tbody><tr><td>status</td><td>high-level subscription status delivered to your app. <code>active</code>, <code>grace</code>, <code>passive</code>.</td></tr><tr><td>realStatus</td><td>the system’s true internal status. Returns <code>passive</code> immediately after cancellation even if <code>status</code> remains <code>active</code> until expire_date.</td></tr><tr><td>subscriptionType</td><td><code>trial</code> (still in trial) or <code>paid</code> (charged at least once).</td></tr><tr><td>startDate</td><td>Subscription start date.</td></tr><tr><td>expireDate</td><td>Current billing end date.</td></tr><tr><td>package</td><td>Active package ID.</td></tr><tr><td>country</td><td>Subscriber’s country.</td></tr><tr><td>language</td><td>Subscriber’s language.</td></tr><tr><td>cancellation</td><td>Cancellation details if the user or system canceled the subscription. <code>null</code>if not canceled.</td></tr></tbody></table>

### Cancellation Details

<table><thead><tr><th width="193.19921875">Field</th><th>Description</th></tr></thead><tbody><tr><td>date</td><td>Cancellation timestamp.</td></tr><tr><td>reason</td><td>Reason text for cancellation.</td></tr><tr><td>code</td><td>Cancellation code (<code>CP00001</code>, <code>CU00001</code>, <code>CU00002</code>).</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))
