Restrict who may buy/self-activate the add-on: unlock it for a whole hierarchy role OR one specific organization (exactly one of the two). By default (no rules) an add-on is available to everyone. Only the owner organization or a Super Admin can manage availability rules.
Responses
-
Availability rule created successfully
-
Both or neither of org_role/organization_id set, or invalid org_role (must be distributor, reseller or customer)
-
Unauthorized - invalid or missing token
-
Forbidden - insufficient permissions
-
Resource not found
-
Availability rule already exists
-
Internal server error
POST
/entitlements/catalog/{id}/availability
curl \
--request POST 'https://api.your-domain.com/api/entitlements/catalog/nsec-blacklist/availability' \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data '{"org_role":"reseller","organization_id":"akkbs6x2wo82"}'
Request examples
{
"org_role": "reseller",
"organization_id": "akkbs6x2wo82"
}
Response examples (201)
{
"code": 201,
"message": "availability rule created successfully",
"data": {
"id": "9f1b7c2e-4a3d-4a2b-8f6e-1c2d3e4f5a6b",
"entitlement": "nsec-blacklist",
"org_role": "reseller",
"organization_id": "akkbs6x2wo82",
"created_by": {
"user_id": "53h5zxpwu4vc",
"user_name": "Edoardo Super",
"organization_id": "lbswt1rxdhbz",
"organization_name": "Nethesis Italia",
"channel": "shop"
},
"created_at": "2026-07-01T10:00:00Z"
}
}
Response examples (400)
{
"code": 400,
"message": "validation failed",
"data": {
"type": "validation_error",
"errors": [
{
"key": "username",
"message": "required",
"value": "string"
}
]
}
}
Response examples (401)
{
"code": 401,
"message": "invalid token",
"data": {}
}
Response examples (403)
{
"code": 403,
"message": "insufficient permissions",
"data": {}
}
Response examples (404)
{
"code": 400,
"message": "validation failed",
"data": {
"type": "validation_error",
"errors": [
{
"key": "username",
"message": "required",
"value": "string"
}
]
}
}
Response examples (409)
{
"code": 409,
"message": "availability rule already exists",
"data": {}
}
Response examples (500)
{
"code": 500,
"message": "internal server error",
"data": {}
}