# API call to reset trial

**URL:** <https://forum.inductiveautomation.com/t/api-call-to-reset-trial/110074>\
**Category:** Ignition 8.3 Early Access\
**Created:** [August 21, 2025, 9:10pm UTC](https://forum.inductiveautomation.com/t/api-call-to-reset-trial/110074 "2025-08-21T21:10:12Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sahil\_Bendale](https://avatars.discourse-cdn.com/v4/letter/s/977dab/32.png) [@Sahil\_Bendale](https://forum.inductiveautomation.com/u/Sahil_Bendale)\
**Post date:** [August 21, 2025, 9:10pm UTC](https://forum.inductiveautomation.com/t/api-call-to-reset-trial/110074/1 "2025-08-21T21:10:12Z")

</div>

While testing API calls, I came across the “license-status\>Trial Information” API. I did the standard GET call for that and received the expected response

```python
{
    "licenseMode": "Trial",
    "trialState": "AllInDemo",
    "trialSecondsLeft": 4078,
    "expired": false,
    "emergency": false,
    "emergencySecondsLeft": 0,
    "development": false,
    "developmentSecondsLeft": 0
}

```

Once the trial had expired, I tried a POST instead of GET with the body as

```python
{
    "licenseMode": "Trial",
    "trialState": "AllInDemo",
    "trialSecondsLeft": 7200,
    "expired": false,
    "emergency": false,
    "emergencySecondsLeft": 0,
    "development": false,
    "developmentSecondsLeft": 0
}

```

To my surprise, the trial was reset.

If the trial has not expired and you try a POST, it responds with a 403 though, so you’ll have to wait till

```python
"trialSecondsLeft": 0

```

and

```python
"expired": true

```

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 21, 2025, 9:52pm UTC](https://forum.inductiveautomation.com/t/api-call-to-reset-trial/110074/2 "2025-08-21T21:52:05Z")

</div>

Huh. Surprised that worked. I'm pretty sure you aren't supposed to programmatically reset the trial.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [August 21, 2025, 11:16pm UTC](https://forum.inductiveautomation.com/t/api-call-to-reset-trial/110074/3 "2025-08-21T23:16:26Z")

</div>

Meh.  
By definition, if you do it from the web interface, you can do it (documented or not) from the web API. As long as it doesn't allow you to reset early, it's not really a jump around the licensing system. And you can do this from scripting (and have been able to for a long time) 🤷

---

<div class="post-metadata">

**Author:** ![kgamble](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kgamble/32/8019_2.png) [@kgamble](https://forum.inductiveautomation.com/u/kgamble)\
**Post date:** [August 25, 2025, 10:00am UTC](https://forum.inductiveautomation.com/t/api-call-to-reset-trial/110074/4 "2025-08-25T10:00:40Z")

</div>

> [@paul-griffith](#):
>
> By definition, if you do it from the web interface, you can do it (documented or not) from the web API.

So, in a non-binding opinion, do you think it would be frowned upon for third party designer VS Code extensions to implement a trial banner and reset mechanism for selected gateways? (Asking for a friend)

This has always been something I’ve questioned the legitimacy of…lol

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [August 25, 2025, 2:11pm UTC](https://forum.inductiveautomation.com/t/api-call-to-reset-trial/110074/5 "2025-08-25T14:11:32Z")

</div>

I am not a lawyer, this is not legal advice:

I would probably say it's 'frowned upon' to have a _reset_ button anywhere outside the gateway web UI (note we haven't added one to the designer in all this time) but I don't think there's much harm in a trial status banner (note we _have_ added one to the designer).
