Our Licensing APIs are designed to interact with the Members Account licensing system allowing you to get, activate, and transfer Iguana licenses programmatically, providing you have access and licenses available to do so.
License Activation
The following steps provide an example license activation workflow calling the Iguana license APIs using curl commands:
Get the Iguana ID of your target Iguana instance
...
Expand |
---|
title | Option A: Use the iguana --id command line flag (requires IguanaX v10.1.101) |
---|
|
The Iguana ID can be obtained using the command line --id flag. If you need to target a unique working directory, you can optionally use --id --working_dir <working_directory> to point to a specific Iguana working directory and return the Iguana ID. Windows: Code Block |
---|
iguana --id --working_dir "C:\ProgramData\IguanaX" |
Linux: *optionally add the --working_dir flag |
Expand |
---|
title | Option B: Use the IguanaX API to get license details, including the Iguana ID |
---|
|
Use your Iguana instance IP address and port: https://127.0.0.1:7654 Authenticate GET /session/login
To call the IguanaX APIs you must first login and get a session cookie from the response header to authenticate your subsequent requests. Parameters: Response Header: Code Block |
---|
| Content-Length: 128
Set-Cookie: IguanaSession-jYQGeQWk97ylKuP8AmEiad=z7WR4Xwzk51hXMP2e3WeZa; path=/; HttpOnly; SameSite=Strict |
Example curl command calling the /session/login API and parsing to retrieve Iguana session cookie the response header Set-Cookie to authenticate the next API call: Should look similar to: IguanaSession-jYQGeQWk97ylKuP8AmEiad=z7WR4Xwzk51hXMP2e3WeZa Code Block |
---|
IguanaCookie=`curl -i -k -X GET "http://127.0.0.1:7654/session/login?username=<user>&password=<pass>" | grep -i 'Set-Cookie: ' | awk '{print $2}' | sed 's/;$//'` |
Get License details POST /license/get
This API method returns a JSON object containing the Iguana ID along with other license information. To authenticate, the obtained Cookie is provided in the header of the request. Response: Code Block |
---|
| {
"data": {
"iguana_id": "THSWPRHMUXTT7MRR",
"license": {
"component_limit": 500,
"expiry": "0",
"license_status": "License ok",
"message_rate_limit": 0,
"search_limit": 365
},
"license_message": "To modify or extend your license, contact the iNTERFACEWARE Sales Office."
},
"success": true
} |
Example curl command calling the /license/get API and parsing to retrieve the Iguana ID: Code Block |
---|
IguanaID=`curl -k --header "Cookie: $IguanaCookie" -X POST "http://127.0.0.1:7654/license/get" | jq -r '.data.iguana_id'` |
|
Call the Members Account Licensing APIs to register your Iguana ID to generate a license code
Expand |
---|
title | 1 - Get an authentication token |
---|
|
Members Account Licensing API base URL: https://my.interfaceware.com Get an Authentication Token POST /api This API method returns a JSON object containing a session token which will be used with the subsequent license API calls. Parameters: username: Your Members Account username string password: Your Members Account password string method: The API method session.login string
Response: Code Block |
---|
| {
"data": {
"Token": "277DBB66C802BE3287207FFE120595EC",
"Info": {
"Permissions": {
"LicenseTransfer": true,
"TemporaryLicense": true,
"LicenseRead": true,
"FinancialRead": false,
"LicenseWrite": true
},
"CompanyName": "Richard Wang - Client "
}
},
"status": "ok"
} |
Example curl command calling the API and parsing the Token from the response: Code Block |
---|
| IguanaToken=`curl -k -X POST "https://my.interfaceware.com/api?username=$InterfacewareUser<InterfacewareUser>&password=$InterfacewarePassword<InterfacewarePassword>&method=session.login" | jq -r '.data.Token'` |
|
Expand |
---|
title | 2 - Get a list of entitlements (license types) and choose the license type to activate |
---|
|
Members Account Licensing API base URL: https://my.interfaceware.com Get a List of Entitlements GET /api This API method returns a JSON object containing a list of license types and select the ID for the type you want to activate. Parameters: product: The product you want licenses for - IguanaX string token: Your authentication token string (from the first call) method: The API method license.listentitlements string
Response: Code Block |
---|
| {
"data": [
{
"entitlements_total": "3",
"name": "IguanaX Dev",
"num_components": "50",
"id": "1",
"entitlements_used": "1",
"license_expiry": "0",
"log_search": "365"
},
{
"entitlements_total": "3",
"name": "IguanaX Test",
"num_components": "50",
"id": "2",
"entitlements_used": "1",
"license_expiry": "0",
"log_search": "365"
},
{
"entitlements_total": "3",
"name": "Iguana X Prod",
"num_components": "50",
"id": "3",
"entitlements_used": "1",
"license_expiry": "0",
"log_search": "365"
},
],
"status": "ok"
} |
Example curl command calling the API and parsing the selected license entitlement id from the response: Code Block |
---|
| LicenseName="IguanaX Test" #change to name of license type to activate
EntitlementID=`curl -k -X POST "https://my.interfaceware.com/api?method=license.listentitlements&product=IguanaX&token=$IguanaToken<IguanaToken>" | jq -r --arg name "$LicenseName" '.data[] | select(.name==$name) | .id'` |
|
Expand |
---|
title | 3 - Register your Iguana ID to activate a license code |
---|
|
Members Account Licensing API base URL: https://my.interfaceware.com Register your Iguana IDto Activate a License Code POST /api This API method returns a JSON object containing the license description and activated license code. Parameters: product: The product you want licenses for - IguanaX string token: Your authentication token string (from the first call) method: The API method license.activate string description: A description to pair with the license (test, prod, etc.) string entitlementid: The ID of the license you want to activate string instanceid: The Iguana ID of the instance that you want to apply the license to string
Response: Code Block |
---|
| {
"data": {
"description": "Test",
"code": "4492A1B5CDA25D79DFCC5DC3GHS4448B9D8A3CCC98",
"license_expiry": "2025-08-13",
"name": "IguanaX Test",
"instanceid": "THSWPRHMUXTT7MRR",
"log_search": 365,
"num_components": 50
},
"status": "ok" |
Example curl command calling the API and parsing the license code from the response: Code Block |
---|
| IguanaLicenseCode=`curl -k -X POST "https://my.interfaceware.com/api?method=license.activate&product=IguanaX&token=$IguanaToken<IguanaToken>&description=IguanaLicense&entitlementid=$EntitlementID<EntitlementID>&instanceid=<IguanaID>" | jq -r '.data.code'` |
|
...
Expand |
---|
title | Option A: On the command line, write the license code to the IguanaLicense File |
---|
|
Windows: Code Block |
---|
| echo %IguanaLicenseCode%$IguanaLicenseCode > C:\ProgramData\IguanaX\IguanaLicense; |
Linux: Code Block |
---|
| echo $IguanaLicenseCode > /home/iguanauser/.IguanaX/IguanaLicense; |
|
Expand |
---|
title | Option B: Use the IguanaX API to apply the license code to the target Iguana instance |
---|
|
Use your Iguana instance IP address and port: https://127.0.0.1:7654 Authenticate GET /session/login
To call the IguanaX APIs you must first login and get a session cookie from the response header to authenticate your subsequent requests. Parameters: Response Header: Code Block |
---|
| Content-Length: 128
Set-Cookie: IguanaSession-jYQGeQWk97ylKuP8AmEiad=z7WR4Xwzk51hXMP2e3WeZa; path=/; HttpOnly; SameSite=Strict |
Example curl command calling the /session/login API and parsing to retrieve Iguana session cookie the response header Set-Cookie to authenticate the next API call: Should look similar to: IguanaSession-jYQGeQWk97ylKuP8AmEiad=z7WR4Xwzk51hXMP2e3WeZa Code Block |
---|
| IguanaCookie=`curl -i -k -X GET "http://127.0.0.1:7654/session/login?username=<user>&password=<pass>" | grep -i 'Set-Cookie: ' | awk '{print $2}' | sed 's/;$//'` |
Apply the license codePOST /license/set
This API method applies the registered license code to the Iguana instance and returns a JSON object containing the request success or failure. To authenticate, the obtained Cookie is provided in the header of the request. Parameters: Response: Code Block |
---|
| {
"data": {},
"success": true
} |
Example curl command calling the /license/set API to apply the license code and activate the Iguana instance: Code Block |
---|
| IguanaID=`curl -k --header "Cookie: $IguanaCookie" -X POST "http://127.0.0.1:7654/license/set?license=<LicenseCode>" |
|
License Transfer
Expand |
---|
See step 1 above in Activate a License for how to get the Iguana ID. |
...