Licensing API

The Netify Licensing API provides integrators and vendors with a comprehensive interface to create, renew, and retire licenses for Netify Agents and plugins deployed across endpoints. With this API, you can programmatically issue new licenses, renew existing ones, and retire licenses as devices are decommissioned.

Please contact us about obtaining an API key.

Endpoint Summary

The following endpoints provide information on the license system supported by the Netify Agent:

Method Action
GET List licenses
POST Create a new license
GET View a license
POST Extend expiry of a license
DELETE Delete a license

Authentication

To access these endpoints, an API key must be passed in the x-api-key parameter in the request headers. Please contact us for details about acquiring an API key.

Response Codes and Format

Standard HTTP response codes are sent by the API, along with the following status attributes (if available):

  • status_code: a status code number
  • status_message: a human-readable status message
  • status_fields: an array of validation errors (if any)

Response Payload - Status Information

{
   "status_code": 0,
   "status_message": "Success.",
   "data": ...
}

Additionally, the API sends standard HTTP response codes.

Code Response
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
405 Method Not Allowed
409 Conflict
422 Validation Error
429 Too Many Requests
500 Server Error

License Attributes

The license can be returned in one of two formats. Select the format with the format parameter in the API request. The details of the object format are provided below.

object
Structured license metadata intended for API responses and deployment integrations.
netifyd
Netify Agent specific license format.

version

string
The license version format.

serial

string
The serial number of the license.

issued_to

string
The name of the individual or organization the license is being issued to.

renewable

boolean
License renewable flag.

transferable

boolean
License transferable flag.

signature

string
The cryptographic signature of the license.

entitlements

object
The list of active entitlements

expire_at

object
The date and time the license expires.

created_at

object
The date and time the license was created.

License Object - JSON Example

{
    "version": "1.0",
    "serial": "2026-3638-61034042",
    "issued_to": "Toronto Office",
    "renewable": true,
    "transferable": false,
    "signature": "LHhbWkp+32...",
    "entitlements": [
      "netify-proc-aggregator",
      "netify-proc-dev-discovery",
      "netify-proc-flow-actions",
      "netify-sink-mqtt",
      "netify-sink-sqlite",
      "netify-proc-intel",
      "application-signatures"
    ],
    "expire_at": {
      "unix_time": 1780012800,
      "date": "2026-05-29 00:00:00"
    },
    "created_at": {
      "unix_time": 1774830914,
      "date": "2026-03-30 00:35:14"
    }
}

License List Endpoint

GET
https://hub.netify.ai/api/v2/integrator/licenses
Returns a list of all licenses created with the API key provided in the header.

Headers

x-api-key

string
Required API key passed in the request header.

Query Parameters

format

string
Specifies response format.
Options:
object netifyd

Attributes

Provides a list of licenses for the format specified in API request. See license attributes for details.

Examples

Terminal - Netify
×
# Netify Agent (JSON) format
curl -H "x-api-key: {api_key}" \
--get "https://hub.netify.ai/api/v2/integrator/licenses"

# Object format
curl -H "x-api-key: {api_key}" \
--get "https://hub.netify.ai/api/v2/integrator/licenses?format=object"

License Create Endpoint

POST
https://hub.netify.ai/api/v2/integrator/licenses
Creates a new license.

Headers

x-api-key

string
Required API key passed in the request header.

Content-Type

string
Content type - set to application/json.

Body Parameters

issued_to

string
Required. The name of the individual or organization the license is being issued to.

expire_at

string
Optional. Requested expiry date formatted as YYYY-MM-DD.

duration_days

integer
Optional. Alternative to expire_at; requests an expiry date duration_days from the current date.

duid

string
Optional. Unique device identifier used to restrict the license to a specific hardware endpoint.

description

string
Optional description to add to the generated license.

notes

string
Optional note to add to the generated license.

renewable

boolean
Optional. Allows or denies future renewal. Requires API key entitlement. Default is entitlement-dependent.

transferable

boolean
Optional. Requests omission of the standard non-transferable legal clause. Requires API key entitlement.

entitlements

array
Required. The entitlements the license should provide access to.

If neither expire_at nor duration_days is provided, the default will be the maximum allowable license term as permitted by the API key - this ranges from 7 days to 12 months.

Entitlements
netify-proc-aggregator
The Netify aggregator plugin
netify-proc-flow-actions
The Netify flow actions plugin.
netify-proc-dev-discovery
The Netify device discovery plugin.
netify-proc-python
The Netify Python binding plugin.
netify-proc-lua
The Netify Lua binding plugin.
netify-proc-intel
The Netify Intel plugin (pending release).
netify-sink-mqtt
The Netify message queue (MQTT) plugin.
netify-sink-ubus
The Netify ubus plugin.
application-signatures
The Netify commercial application signatures updates.

Please note that an API key may be given access to one or more of these entitlements by your eGloo account representative. If you receive an error that permission has been denied, contact us to discuss a modification to your API key capabilities.

Example

Terminal - Netify
×
curl -H "x-api-key: {api_key}" \
     -H "Content-Type: application/json" \
     -X POST "https://hub.netify.ai/api/v2/integrator/licenses" \
     --data '{
        "issued_to": "Acme Inc.",
        "expire_at": "2025-10-13",
        "description": "Flow Actions Policy Control",
        "entitlements": [
            "netify-proc-flow-actions"
        ]
    }'

License View Endpoint

GET
https://hub.netify.ai/api/v2/integrator/licenses/{serial}
Returns a license by serial number.

Headers

x-api-key

string
Required API key passed in the request header.

Path Parameters

serial

string
The serial number of the license.

Query Parameters

format

string
Specifies response format.
Options:
object netifyd

Examples

Terminal - Netify
×
# Netify Agent (JSON) format
curl -H "x-api-key: {api_key}" \
    --get "https://hub.netify.ai/api/v2/integrator/licenses/2025-7546-23742565"

# Object format
curl -H "x-api-key: {api_key}" \
    --get "https://hub.netify.ai/api/v2/integrator/licenses/2025-7546-23742565?format=object"

License Renew Endpoint

POST
https://hub.netify.ai/api/v2/integrator/licenses/{serial}/renew
Extends the expiry of an existing license.

Headers

x-api-key

string
Required API key passed in the request header.

Content-Type

string
Content type - set to application/json.

Body Parameters

expire_at

string
Optional. Requested expiry date formatted as YYYY-MM-DD.

duration_days

integer
Optional. Alternative to expire_at; requests an expiry date duration_days from the current date.

If neither expire_at nor duration_days is provided, the default will be the maximum allowable license term as permitted by the API key - this ranges from 7 days to 12 months.

Example

Terminal - Netify
×
# By date
curl -H "x-api-key: {api_key}" \
     -H "Content-Type: application/json" \
     -X POST "https://hub.netify.ai/api/v2/integrator/licenses/2025-7546-23742565" \
     --data '{
         "expire_at": "2025-10-13"
     }'

# By duration
curl -H "x-api-key: {api_key}" \
     -H "Content-Type: application/json" \
     -X POST "https://hub.netify.ai/api/v2/integrator/licenses/2025-7546-23742565" \
     --data '{
         "duration_days": 30
     }'

License Delete Endpoint

DELETE
https://hub.netify.ai/api/v2/integrator/licenses/{serial}
Deletes a license.

Headers

x-api-key

string
Required API key passed in the request header.

Path Parameters

serial

string
The serial number of the license.

Example

Terminal - Netify
×
curl -H "x-api-key: {api_key}" \
    -X DELETE "https://hub.netify.ai/api/v2/integrator/licenses/2025-7546-23742565"