# /entitlements/catalog/{id}/availability - Add a commercial availability rule **POST /entitlements/catalog/{id}/availability** 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. ## Servers - Backend API server (port 8080): https://api.your-domain.com/api (Backend API server (port 8080)) - Collect API server (port 8081): https://collect.your-domain.com/api (Collect API server (port 8081)) ## Authentication methods - Bearer auth ## Parameters ### Path parameters - **id** (string) Catalog id ### Body: application/json (object) - **org_role** (string) Hierarchy role to unlock the item for (mutually exclusive with organization_id) - **organization_id** (string) Specific organization to unlock the item for (mutually exclusive with org_role) ## Responses ### 201 Availability rule created successfully #### Body: application/json (object) - **code** (integer) - **message** (string) - **data** (object) One commercial unlock for a catalog item: the add-on can be bought or self-activated by a whole hierarchy role OR by one specific organization (exactly one of the two is set). A catalog item without any rule is available to everyone. Availability rules do not affect /auth enforcement on collect. ### 400 Both or neither of org_role/organization_id set, or invalid org_role (must be distributor, reseller or customer) #### Body: application/json (object) - **code** (integer) HTTP error code - **message** (string) Error message - **data** (object) ### 401 Unauthorized - invalid or missing token #### Body: application/json (object) - **code** (integer) - **message** (string) - **data** (object | null) ### 403 Forbidden - insufficient permissions #### Body: application/json (object) - **code** (integer) - **message** (string) - **data** (object | null) ### 404 Resource not found #### Body: application/json (object) - **code** (integer) HTTP error code - **message** (string) Error message - **data** (object) ### 409 Availability rule already exists #### Body: application/json (object) - **code** (integer) - **message** (string) - **data** (object | null) ### 500 Internal server error #### Body: application/json (object) - **code** (integer) - **message** (string) - **data** (object | null) [Powered by Bump.sh](https://bump.sh)