Licenses

/licenses

Authenticate a license.

GET https://example.com/api/v1/licenses/auth

Authenticates and verifies a license. If auto-creation is enabled for the product, a license will be automatically generated with the provided connection (platform and value) as needed. Authentication includes checking the product name, server and IP limitations, and blacklists.

Query Parameters

Name
Type
Description

key

String

The license key. Required if auto-creation is disabled for the product (automatically generated otherwise).

product*

String

The name of the license's product.

connectionPlatform

String

The name of the platform of the

connectionValue. Required if auto-creation is enabled

for the product.

connectionValue

String

The value of the connection with

connectionPlatform. Required if auto-creation is enabled for the product.

server*

String

The unique identifier of the server using this license.

ip

String

The IP address of the server using this license. If not provided, the IP address of the client making the request will be used. If your Sentinel server is under a proxy, you should provide a value so that the proxy's IP address is not inadvertently used.

License authenticated.

Search for a license with a connection.

GET https://example.com/api/v1/licenses/search

Finds licenses with the provided connection platform and value (ex. Discord ID or email address).

If a product is provided, either one license or null will be returned (since every connection must be unique for a single product).

If no product is provided, a list of found licenses will be returned.

Query Parameters

Name
Type
Description

product

String

The name of the product. If provided, one license or null will be returned. If not provided, a list of found licenses will be returned.

plaform*

String

The name of the connected platform.

value*

String

The value for the connected platform.

With Product License found with the provided product and connection.

{
    "timestamp": 1685491433290,
    "status": "OK",
    "type": "SUCCESS",
    "message": "License found with the provided product and connection.",
    "result": {
        "license": {
            "key": "EQPDQNOU5A6PPSICTNSVGJV6SK",
            "product": {
                "name": "Product1",
                "defaultMaxServers": 3,
                "defaultMaxIps": 3,
                "autoCreateLicenses": false
            },
            "issuer": "Admin",
            "createdAt": "2023-04-09T16:52:26.067",
            "expiration": null,
            "maxServers": 3,
            "maxIps": 3,
            "blacklist": null,
            "note": null,
            "connections": {
                "Email": "contact@demeng.dev"
            },
            "subUsers": [
                {
                    "platform": "Discord",
                    "value": "345969862289522698"
                }
            ],
            "servers": {},
            "ips": {}
        }
    }
}

Without Product Licenses found with the provided connection.

{
    "timestamp": 1685491433290,
    "status": "OK",
    "type": "SUCCESS",
    "message": "Licenses found with the provided connection.",
    "result": {
        "licenses": [
            {
                "key": "EQPDQNOU5A6PPSICTNSVGJV6SK",
                "product": {
                    "name": "Product1",
                    "defaultMaxServers": 3,
                    "defaultMaxIps": 3,
                    "autoCreateLicenses": false
                },
                "issuer": "Admin",
                "createdAt": "2023-04-09T16:52:26.067",
                "expiration": null,
                "maxServers": 3,
                "maxIps": 3,
                "blacklist": null,
                "note": null,
                "connections": {
                    "Email": "contact@demeng.dev"
                },
                "subUsers": [
                    {
                        "platform": "Discord",
                        "value": "345969862289522698"
                    }
                ],
                "servers": {},
                "ips": {}
            }
        ]
    }
}

Create a new license.

POST https://example.com/api/v1/licenses

Creates a new license.

Request Body

Name
Type
Description

LicenseCreateData*

Object

License created.

{
    "timestamp": 1685491433290,
    "status": "OK",
    "type": "SUCCESS",
    "message": "License created.",
    "result": {
        "license": {
            "key": "EQPDQNOU5A6PPSICTNSVGJV6SK",
            "product": {
                "name": "Product1",
                "defaultMaxServers": 3,
                "defaultMaxIps": 3,
                "autoCreateLicenses": false
            },
            "issuer": "Admin",
            "createdAt": "2023-04-09T16:52:26.067",
            "expiration": null,
            "maxServers": 3,
            "maxIps": 3,
            "blacklist": null,
            "note": null,
            "connections": {
                "Email": "contact@demeng.dev"
            },
            "subUsers": [],
            "servers": {},
            "ips": {}
        }
    }
}

List all licenses.

GET https://example.com/api/v1/licenses/list

Lists all licenses for a given product. Responses are paginated.

Query Parameters

Name
Type
Description

product*

String

The name of the product.

page

Integer

The page index. The first page has the index 0. Default is 0.

size

Integer

The maximum number of licenses per page. Default is 100.

X licenses retrieved for page Y out of Z.

{
    "timestamp": 1717792943754,
    "status": "OK",
    "type": "SUCCESS",
    "message": "5 licenses retrieved for page 1 out of 8.",
    "result": {
        "page": {
            "content": [
                {
                    "key": "OZQVU-193Z4-KU8G1-C4BP6-RKIPY",
                    "product": {
                        "name": "Test",
                        "logo": null,
                        "description": null,
                        "defaultMaxServers": 1,
                        "defaultMaxIps": 1,
                        "autoCreateLicenses": true
                    },
                    "issuer": "Admin",
                    "createdAt": "2024-05-20T17:44:41.736",
                    "expiration": null,
                    "maxServers": 1,
                    "maxIps": 1,
                    "blacklist": null,
                    "note": "Hello world!",
                    "connections": {
                        "Email": "contact@demeng.dev"
                    },
                    "subUsers": [
                        {
                            "platform": "Discord",
                            "value": "345969862289522698"
                        }
                    ],
                    "servers": {
                        "ExampleHWID": "2024-06-06T23:23:02.467"
                    },
                    "ips": {
                        "ExampleIP": "2024-06-06T23:23:02.467"
                    }
                },
                {
                    "key": "5B1FL-VW9PK-PD90J-86KD4-RC2OQ",
                    "product": {
                        "name": "Test",
                        "logo": null,
                        "description": null,
                        "defaultMaxServers": 1,
                        "defaultMaxIps": 1,
                        "autoCreateLicenses": true
                    },
                    "issuer": "Admin",
                    "createdAt": "2024-05-20T17:44:47.811",
                    "expiration": null,
                    "maxServers": 1,
                    "maxIps": 1000,
                    "blacklist": null,
                    "note": "Hello world!",
                    "connections": {},
                    "subUsers": [],
                    "servers": {},
                    "ips": {}
                },
                {
                    "key": "70Q9S-73D14-SG5J9-BR51J-0P9C0",
                    "product": {
                        "name": "Test",
                        "logo": null,
                        "description": null,
                        "defaultMaxServers": 1,
                        "defaultMaxIps": 1,
                        "autoCreateLicenses": true
                    },
                    "issuer": "Admin",
                    "createdAt": "2024-05-20T17:44:49.217",
                    "expiration": null,
                    "maxServers": 1,
                    "maxIps": 1000,
                    "blacklist": null,
                    "note": "Hello world!",
                    "connections": {},
                    "subUsers": [],
                    "servers": {},
                    "ips": {}
                },
                {
                    "key": "XM1C4-LL1WF-BWX8Y-9LMQG-XZUYS",
                    "product": {
                        "name": "Test",
                        "logo": null,
                        "description": null,
                        "defaultMaxServers": 1,
                        "defaultMaxIps": 1,
                        "autoCreateLicenses": true
                    },
                    "issuer": "Admin",
                    "createdAt": "2024-05-20T17:44:49.89",
                    "expiration": null,
                    "maxServers": 1,
                    "maxIps": 1000,
                    "blacklist": null,
                    "note": "Hello world!",
                    "connections": {},
                    "subUsers": [],
                    "servers": {},
                    "ips": {}
                },
                {
                    "key": "5UTE1-KJGPY-Z8BXR-H88AU-GD6AS",
                    "product": {
                        "name": "Test",
                        "logo": null,
                        "description": null,
                        "defaultMaxServers": 1,
                        "defaultMaxIps": 1,
                        "autoCreateLicenses": true
                    },
                    "issuer": "Admin",
                    "createdAt": "2024-05-20T17:46:02.355",
                    "expiration": null,
                    "maxServers": 1,
                    "maxIps": 1000,
                    "blacklist": null,
                    "note": "Hello world!",
                    "connections": {},
                    "subUsers": [],
                    "servers": {},
                    "ips": {}
                }
            ],
            "page": {
                "size": 5,
                "number": 0,
                "totalElements": 38,
                "totalPages": 8
            }
        }
    }
}

/licenses/{key}

Get a license.

GET https://example.com/api/v1/licenses/{key}

Gets the details of the license with the key.

Path Parameters

Name
Type
Description

key*

String

The license key.

License found with the provided key.

{
    "timestamp": 1685491433290,
    "status": "OK",
    "type": "SUCCESS",
    "message": "License with the specified key was found.",
    "result": {
        "license": {
            "key": "ZQHMY-PFC6O-RNPL1-XY9ZU-P98US",
            "product": {
                "name": "Test",
                "logo": null,
                "description": null,
                "defaultMaxServers": 1,
                "defaultMaxIps": 1,
                "autoCreateLicenses": true
            },
            "issuer": "Admin",
            "createdAt": "2024-06-25T15:28:05.697",
            "expiration": null,
            "maxServers": 1,
            "maxIps": 1000,
            "blacklist": null,
            "note": "Hello world!",
            "connections": {
                "BuiltByBit": "134740"
            },
            "subUsers": [
                {
                    "platform": "Discord",
                    "value": "345969862289522698"
                }
            ],
            "servers": {
                "Test1": "2024-06-25T15:29:23.883",
                "Test3": "2024-06-25T15:29:23.883",
                "Test2": "2024-06-25T15:29:23.883"
            },
            "ips": {
                "Test1": "2024-06-25T15:29:27.1337816",
                "Test3": "2024-06-25T15:29:27.1337816",
                "Test2": "2024-06-25T15:29:27.1337816"
            }
        }
    }
}

Delete a license.

DELETE https://example.com/api/v1/licenses/{key}

Deletes the license with the key.

Path Parameters

Name
Type
Description

key*

String

The license key.

License deleted.

Update a license.

PATCH https://example.com/api/v1/licenses/{key}

Updates an existing license with new data.

Data provided will completely override the values in the license. This means specifying connections, servers, or ips will replace the existing data instead of adding on to it. If you want to add on to the existing data, use /connections, /servers, or /ips. Any values not provided or null will not be modified in the license. This means setting blacklistReason to null does not not remove a blacklist. To remove a blacklist, use /blacklist.

Path Parameters

Name
Type
Description

key*

String

The license key.

Request Body

Name
Type
Description

LicensePatchData*

Object

License updated.

{
    "timestamp": 1685491433290,
    "status": "OK",
    "type": "SUCCESS",
    "message": "License updated.",
    "result": {
        "license": {
            "key": "EQPDQNOU5A6PPSICTNSVGJV6SK",
            "product": {
                "name": "Product1",
                "defaultMaxServers": 3,
                "defaultMaxIps": 3,
                "autoCreateLicenses": false
            },
            "issuer": "Admin",
            "createdAt": "2023-04-09T16:52:26.067",
            "expiration": null,
            "maxServers": 3,
            "maxIps": 3,
            "blacklist": null,
            "note": null,
            "connections": {
                "Email": "contact@demeng.dev"
            },
            "subUsers": [
                {
                    "platform": "Discord",
                    "value": "345969862289522698"
                }
            ],
            "servers": {},
            "ips": {}
        }
    }
}

/licenses/{key}/connections

Add/update connections.

PUT https://example.com/api/v1/licenses/{key}/connections

Adds or updates the connections of a license.

Path Parameters

Name
Type
Description

key*

String

The license key.

Request Body

Name
Type
Description

Map<String, String>*

Object

A map of connections to add/update. The key must be the name of the platform, and the value is the connection value for the platform.

License updated.

{
    "timestamp": 1685491433290,
    "status": "OK",
    "type": "SUCCESS",
    "message": "License updated.",
    "result": {
        "license": {
            "key": "EQPDQNOU5A6PPSICTNSVGJV6SK",
            "product": {
                "name": "Product1",
                "defaultMaxServers": 3,
                "defaultMaxIps": 3,
                "autoCreateLicenses": false
            },
            "issuer": "Admin",
            "createdAt": "2023-04-09T16:52:26.067",
            "expiration": null,
            "maxServers": 3,
            "maxIps": 3,
            "blacklist": null,
            "note": null,
            "connections": {
                "BuiltByBit": "134740",
                "Email": "contact@demeng.dev"
            },
            "subUsers": [],
            "servers": {},
            "ips": {}
        }
    }
}

Remove connections.

DELETE https://example.com/api/v1/licenses/{key}/connections

Deletes connections of a license.

Path Parameters

Name
Type
Description

key*

String

The license key.

Query Parameters

Name
Type
Description

platforms*

String

The name of the connection platform to remove. To delete multiple connections, append this parameter multiple times or seperate values by commas.

License updated.

{
    "timestamp": 1685491433290,
    "status": "OK",
    "type": "SUCCESS",
    "message": "License updated.",
    "result": {
        "license": {
            "key": "EQPDQNOU5A6PPSICTNSVGJV6SK",
            "product": {
                "name": "Product1",
                "defaultMaxServers": 3,
                "defaultMaxIps": 3,
                "autoCreateLicenses": false
            },
            "issuer": "Admin",
            "createdAt": "2023-04-09T16:52:26.067",
            "expiration": null,
            "maxServers": 3,
            "maxIps": 3,
            "blacklist": null,
            "note": null,
            "connections": {
                "Email": "contact@demeng.dev"
            },
            "subUsers": [],
            "servers": {},
            "ips": {}
        }
    }
}

/licenses/{key}/sub-users

Add/update sub-users.

PUT https://example.com/api/v1/licenses/{key}/sub-users

Adds or updates the sub-users of a license.

Path Parameters

Name
Type
Description

key*

String

The license key.

Request Body

Name
Type
Description

Set<Map.Entry<String, String>>*

List

A list of objects containing two fields: "platform" and "value". The platform and value should correspond to that of the sub-user.

License updated.

{
    "timestamp": 1685491433290,
    "status": "OK",
    "type": "SUCCESS",
    "message": "License updated.",
    "result": {
        "license": {
            "key": "EQPDQNOU5A6PPSICTNSVGJV6SK",
            "product": {
                "name": "Product1",
                "defaultMaxServers": 3,
                "defaultMaxIps": 3,
                "autoCreateLicenses": false
            },
            "issuer": "Admin",
            "createdAt": "2023-04-09T16:52:26.067",
            "expiration": null,
            "maxServers": 3,
            "maxIps": 3,
            "blacklist": null,
            "note": null,
            "connections": {
                "BuiltByBit": "134740",
                "Email": "contact@demeng.dev"
            },
            "subUsers": [
                {
                    "platform": "Discord",
                    "value": "345969862289522698"
                }
            ],
            "servers": {},
            "ips": {}
        }
    }
}

Remove sub-users.

DELETE https://example.com/api/v1/licenses/{key}/sub-users

Deletes sub-users of a license.

Path Parameters

Name
Type
Description

key*

String

The license key.

Request Body

Name
Type
Description

Set<Map.Entry<String, String>>*

List

A list of objects containing two fields: "platform" and "value". The platform and value should correspond to that of the sub-user.

License updated.

{
    "timestamp": 1685491433290,
    "status": "OK",
    "type": "SUCCESS",
    "message": "License updated.",
    "result": {
        "license": {
            "key": "EQPDQNOU5A6PPSICTNSVGJV6SK",
            "product": {
                "name": "Product1",
                "defaultMaxServers": 3,
                "defaultMaxIps": 3,
                "autoCreateLicenses": false
            },
            "issuer": "Admin",
            "createdAt": "2023-04-09T16:52:26.067",
            "expiration": null,
            "maxServers": 3,
            "maxIps": 3,
            "blacklist": null,
            "note": null,
            "connections": {
                "Email": "contact@demeng.dev"
            },
            "subUsers": [],
            "servers": {},
            "ips": {}
        }
    }
}

/licenses/{key}/blacklist

Update blacklist.

PUT https://example.com/api/v1/licenses/{key}/blacklist

Updates the reason and issue date for the blacklist of the license.

Path Parameters

Name
Type
Description

key*

String

The license key.

Query Parameters

Name
Type
Description

reason*

String

The new reason for the blacklist.

License updated.

{
    "timestamp": 1685491433290,
    "status": "OK",
    "type": "SUCCESS",
    "message": "License updated.",
    "result": {
        "license": {
            "key": "EQPDQNOU5A6PPSICTNSVGJV6SK",
            "product": {
                "name": "Product1",
                "defaultMaxServers": 3,
                "defaultMaxIps": 3,
                "autoCreateLicenses": false
            },
            "issuer": "Admin",
            "createdAt": "2023-04-09T16:52:26.067",
            "expiration": null,
            "maxServers": 3,
            "maxIps": 3,
            "blacklist": {
                "timestamp": "2023-04-09T16:59:01.158",
                "reason": "Leaking"
            },
            "note": null,
            "connections": {
                "BuiltByBit": "134740",
                "Email": "contact@demeng.dev"
            },
            "subUsers": [],
            "servers": {},
            "ips": {}
        }
    }
}

Remove blacklist.

DELETE https://example.com/api/v1/licenses/{key}/blacklist

Removes the blacklist of a license.

Path Parameters

Name
Type
Description

key*

String

The license key.

License updated.

{
    "timestamp": 1685491433290,
    "status": "OK",
    "type": "SUCCESS",
    "message": "License updated.",
    "result": {
        "license": {
            "key": "EQPDQNOU5A6PPSICTNSVGJV6SK",
            "product": {
                "name": "Product1",
                "defaultMaxServers": 3,
                "defaultMaxIps": 3,
                "autoCreateLicenses": false
            },
            "issuer": "Admin",
            "createdAt": "2023-04-09T16:52:26.067",
            "expiration": null,
            "maxServers": 3,
            "maxIps": 3,
            "blacklist": null,
            "note": null,
            "connections": {
                "BuiltByBit": "134740",
                "Email": "contact@demeng.dev"
            },
            "subUsers": [],
            "servers": {},
            "ips": {}
        }
    }
}

/licenses/{key}/servers

Add servers.

PUT https://example.com/api/v1/licenses/{key}/servers

Adds servers that have used the license.

Path Parameters

Name
Type
Description

key*

String

The license key.

Request Body

Name
Type
Description

List<String>*

Array

A list of server identifiers to add.

License updated.

{
    "timestamp": 1685491433290,
    "status": "OK",
    "type": "SUCCESS",
    "message": "License updated.",
    "result": {
        "license": {
            "key": "EQPDQNOU5A6PPSICTNSVGJV6SK",
            "product": {
                "name": "Product1",
                "defaultMaxServers": 3,
                "defaultMaxIps": 3,
                "autoCreateLicenses": false
            },
            "issuer": "Admin",
            "createdAt": "2023-04-09T16:52:26.067",
            "expiration": null,
            "maxServers": 3,
            "maxIps": 3,
            "blacklist": null,
            "note": null,
            "connections": {
                "BuiltByBit": "134740",
                "Email": "contact@demeng.dev"
            },
            "subUsers": [],
            "servers": {
                "Test1": "2023-04-09T16:59:33.076",
                "Test3": "2023-04-09T16:59:33.076",
                "Test2": "2023-04-09T16:59:33.076"
            },
            "ips": {}
        }
    }
}

Remove servers.

DELETE https://example.com/api/v1/licenses/{key}/servers

Deletes servers of a license.

Path Parameters

Name
Type
Description

key*

String

The license key.

Query Parameters

Name
Type
Description

servers*

String

The identifiers of servers to remove. To delete multiple servers, append this parameter multiple times or seperate values by commas.

License updated.

{
    "timestamp": 1685491433290,
    "status": "OK",
    "type": "SUCCESS",
    "message": "License updated.",
    "result": {
        "license": {
            "key": "EQPDQNOU5A6PPSICTNSVGJV6SK",
            "product": {
                "name": "Product1",
                "defaultMaxServers": 3,
                "defaultMaxIps": 3,
                "autoCreateLicenses": false
            },
            "issuer": "Admin",
            "createdAt": "2023-04-09T16:52:26.067",
            "expiration": null,
            "maxServers": 3,
            "maxIps": 3,
            "blacklist": null,
            "note": null,
            "connections": {
                "BuiltByBit": "134740",
                "Email": "contact@demeng.dev"
            },
            "subUsers": [],
            "servers": {},
            "ips": {}
        }
    }
}

/licenses/{key}/ips

Add IPs.

PUT https://example.com/api/v1/licenses/{key}/ips

Adds IPs that have used the license.

Path Parameters

Name
Type
Description

key*

String

The license key.

Request Body

Name
Type
Description

List<String>*

Array

A list of IP addresses to add.

License updated.

{
    "timestamp": 1685491433290,
    "status": "OK",
    "type": "SUCCESS",
    "message": "License updated.",
    "result": {
        "license": {
            "key": "EQPDQNOU5A6PPSICTNSVGJV6SK",
            "product": {
                "name": "Product1",
                "defaultMaxServers": 3,
                "defaultMaxIps": 3,
                "autoCreateLicenses": false
            },
            "issuer": "Admin",
            "createdAt": "2023-04-09T16:52:26.067",
            "expiration": null,
            "maxServers": 3,
            "maxIps": 3,
            "blacklist": null,
            "note": null,
            "connections": {
                "BuiltByBit": "134740",
                "Email": "contact@demeng.dev"
            },
            "subUsers": [],
            "servers": {},
            "ips": {
                "Test1": "2023-04-09T17:00:15.815",
                "Test3": "2023-04-09T17:00:15.815",
                "Test2": "2023-04-09T17:00:15.815"
            }
        }
    }
}

Remove IPs.

DELETE https://example.com/api/v1/licenses/{key}/ips

Deletes IPs of a license.

Path Parameters

Name
Type
Description

key*

String

The license key.

Query Parameters

Name
Type
Description

ips*

String

The IP addresses to remove. To delete multiple IPs, append this parameter multiple times or seperate values by commas.

License updated.

{
    "timestamp": 1685491433290,
    "status": "OK",
    "type": "SUCCESS",
    "message": "License updated.",
    "result": {
        "license": {
            "key": "EQPDQNOU5A6PPSICTNSVGJV6SK",
            "product": {
                "name": "Product1",
                "defaultMaxServers": 3,
                "defaultMaxIps": 3,
                "autoCreateLicenses": false
            },
            "issuer": "Admin",
            "createdAt": "2023-04-09T16:52:26.067",
            "expiration": null,
            "maxServers": 3,
            "maxIps": 3,
            "blacklist": null,
            "note": null,
            "connections": {
                "BuiltByBit": "134740",
                "Email": "contact@demeng.dev"
            },
            "subUsers": [],
            "servers": {},
            "ips": {}
        }
    }
}

Last updated