Licensing API
Introduction
The Netify Licensing API provides integrators and vendors with a comprehensive interface to create, manage, and lifecycle licenses for Netify Agents and plugins deployed across endpoints. With this API, you can programmatically issue new licenses, renew and retire licenses as devices are decommissioned.
Authentication
To access the Licensing API, 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.
Endpoints
The common hostname for the licensing API endpoint is https://agents.netify.ai. A summary of requests is provided in the table below.
| METHOD | API Endpoint | Action |
|---|---|---|
| GET | https://agents.netify.ai/api/v2/integrator/licenses | List licenses |
| POST | https://agents.netify.ai/api/v2/integrator/licenses | Create a new license |
| GET | https://agents.netify.ai/api/v2/integrator/licenses/{serial} | View a license |
| POST | https://agents.netify.ai/api/v2/integrator/licenses/{serial}/renew | Extend expiry of a license |
| DELETE | https://agents.netify.ai/api/v2/integrator/licenses/{serial} | Delete a license |
List all Licenses
Provides a list of all licenses created with the API key provided in the header.
Headers
x-api-key string
Parameters
format string
Specifies whether to format the license as a license object or in JSON format suitable for deployment to an endpoint.
netifydJSON encoded license suitable for use with the Netify agent - if unspecified, this option is the defaultobjectObject representation of a license - useful for performing sync/lifecycle management operations
Examples
# Netify Agent (JSON) format
curl -H "x-api-key: {api_key}" \
--get "https://agents.netify.ai/api/v2/integrator/licenses"
# Object format
curl -H "x-api-key: {api_key}" \
--get "https://agents.netify.ai/api/v2/integrator/licenses?format=object"
Create
Create a new license.
Headers
x-api-key string
Content-Type string application/json
Parameters
format string
Described here
issued_to string | Required
The name of the individual or organization the license is being issued to.
expire_at string
The requested expiry date for the license, formatted as YYYY-MM-DD.
duration_days string
As an alternative to specifying the expiry date, this parameter request a license expiry date duration_days from the current date.
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.duid string
A unique device identifier that restricts the license to a specific hardware endpoint. This parameter may not be optional if your API key is not permitted to create licenses that are scoped in this way.
description string
An optional description to add to the license generated.
notes string
An optional note to add to the license generated.
renewable boolean
An optional boolean flag to allow or deny whether this license can be extended in the future. Requires API key entitlement to do so. Default is true if your API key has renewal entitlement, false otherwise.
transferable boolean
An optional boolean flag to request the removal of standard legal clause that indicates a license is non-transferable. Requires API key entitlement to do so. Default is true if your API has transferable omission entitlment, false oetherwise.
entitlements array | Required
The entitlements the license is to provide access to.
| Keyword | Description |
|---|---|
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 (Netify 5.2 and later only). |
Examples
curl -H "x-api-key: {api_key}" \
-H "Content-Type: application/json" \
-X POST "https://agents.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"
]
}'
View
Look up a license by serial number.
Headers
x-api-key string
Parameters
format string
Described here
Examples
# Netify Agent (JSON) format
curl -H "x-api-key: {api_key}" \
--get "https://agents.netify.ai/api/v2/integrator/licenses/2025-7546-23742565"
# Object format
curl -H "x-api-key: {api_key}" \
--get "https://agents.netify.ai/api/v2/integrator/licenses/2025-7546-23742565?format=object"
Renew
Renew a license.
Headers
x-api-key string
Parameters
expire_at string
The requested expiry date for the license, formatted as YYYY-MM-DD.
duration_days string
As an alternative to specifying the expiry date, this parameter request a license expiry date duration_days from the current date.
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.Examples
# By date
curl -H "x-api-key: {api_key}" \
-H "Content-Type: application/json" \
-X POST "https://agents.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://agents.netify.ai/api/v2/integrator/licenses/2025-7546-23742565" \
--data '{
"duration_days": 30
}'
Delete
Delete a license.
Headers
x-api-key string
curl -H "x-api-key: {api_key}" \
-X DELETE "https://agents.netify.ai/api/v2/integrator/licenses/2025-7546-23742565"
Response Codes and Format
Standard HTTP response codes are sent by the API.
| 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 |