Single product detail
GET/products/:id
Returns the details of a specific product. If the product is not found OR is
hidden from the reseller (hidden=1) OR is not resellable (Rabisu Master resellable=0)
OR has no service type selected (service_type), the
SAME 404 product_not_found response is returned — the cases are not distinguished
to prevent inventory leakage between resellers.
config_options[].role (Rabisu Master module): Each config option group is
returned with a role field coming from mod_rabisu_master_configgroup_meta
(2 roles): resource (RAM/CPU/disk = upgradable), fixed (locked/fixed,
INCLUDING LOCATION — does not change on upgrade). A group with no record, or when the
master module is not installed, returns fixed (safe default). The legacy location
value is also treated as fixed (locked). The reseller module + upgrade guard consume this role.
config_options[].options[].stock_active (Rabisu Master module): Each
sub-option (e.g. a single location / OS version) is returned with a stock_active
bool field coming from mod_rabisu_master_configoption_stock. If false, that
sub-option is CLOSED for sale to resellers — the reseller module hides it in the
catalog, and if selected in an order, 409 config_option_out_of_stock is returned.
Sub-options with no record / when the master module is not installed are true.
INDEPENDENT of the WHMCS hidden flag (only closes reseller sales; Rabisu continues
its own sales).
Request
Responses
- 200
- 401
- 404
- 429
Product returned
Authentication failed
Product not found or hidden from the reseller
Per-minute limit exceeded
Response Headers
Seconds to wait before retrying after a 429 (RFC 7231 §7.1.3)
The per-minute limit defined for this key
Unix epoch of the start of the next window (UTC seconds)