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.
netifyd
JSON encoded license suitable for use with the Netify agent - if unspecified, this option is the defaultobject
Object 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.target_uid
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.
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 |