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 default
  • object 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.

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.
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).
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.
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.

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.
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

Next Steps

Technical Support

Haven't found the answers you're looking for?

Contact Us