### GET /v2/bundles/registration/links Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Provides links and documentation on how to register servers with bundle licenses. This endpoint returns information about server registration procedures, client setup, and integration guides for different products in bundles. ```APIDOC ## GET /v2/bundles/registration/links ### Description Provides links and documentation on how to register servers with bundle licenses. This endpoint returns information about server registration procedures, client setup, and integration guides for different products in bundles. ### Method GET ### Endpoint /v2/bundles/registration/links ### Parameters #### Query Parameters None #### Path Parameters None ### Request Body None ### Response #### Success Response (200) - **registration_guides** (object) - Contains registration details for different products. - **cloudlinux** (object) - Registration details for CloudLinux OS. - **title** (string) - The title of the registration guide. - **description** (string) - A brief description of the guide. - **documentation_url** (string) - URL to the online documentation. - **installation_command** (string) - The command to register the server. - **imunify360** (object) - Registration details for Imunify360. - **title** (string) - The title of the registration guide. - **description** (string) - A brief description of the guide. - **documentation_url** (string) - URL to the online documentation. - **installation_command** (string) - The command to register the server. - **kernelcare** (object) - Registration details for KernelCare. - **title** (string) - The title of the registration guide. - **description** (string) - A brief description of the guide. - **documentation_url** (string) - URL to the online documentation. - **installation_command** (string) - The command to register the server. #### Error Response - **400 Bad Request**: Indicates a problem with the request parameters. - **409 Conflict**: Indicates a conflict, possibly with existing registration data. - **404 Not Found**: Indicates that the requested resource was not found. - **401 Unauthorized**: Indicates that the request lacks valid authentication credentials. - **403 Forbidden**: Indicates that the authenticated user does not have permission to perform the action. - **422 Unprocessable Entity**: Indicates that the request is valid but cannot be processed due to semantic errors. ### Response Example ```json { "registration_guides": { "cloudlinux": { "title": "CloudLinux OS Registration Guide", "description": "Complete guide for registering CloudLinux OS servers with bundle licenses", "documentation_url": "https://docs.cloudlinux.com/bundle-registration/cloudlinux/", "installation_command": "yum install rhn-setup && rhnreg_ks --activationkey= --serverUrl=" }, "imunify360": { "title": "Imunify360 Registration Guide", "description": "How to register Imunify360 with bundle licenses", "documentation_url": "https://docs.imunify360.com/bundle-registration/", "installation_command": "wget https://repo.imunify360.cloudlinux.com/defence360/imunify360-deploy.sh && bash imunify360-deploy.sh --key " }, "kernelcare": { "title": "KernelCare Registration Guide", "description": "KernelCare server registration with bundle licenses", "documentation_url": "https://docs.kernelcare.com/bundle-registration/", "installation_command": "curl -s https://repo.cloudlinux.com/kernelcare/kernelcare_install.sh | sudo KCARE_KEY= bash" } } } ``` ``` -------------------------------- ### GET /v2/bundles/registration/links Source: https://cln.cloudlinux.com/api/swagger-ui/index Returns server registration links and documentation for bundle licensing setup and configuration. ```APIDOC ## GET /v2/bundles/registration/links ### Description Returns server registration links and documentation for bundle licensing setup and configuration. ### Method GET ### Endpoint /v2/bundles/registration/links ### Parameters #### Query Parameters - **bundle** (string) - Optional - Specific bundle type for targeted links ### Request Example {} ### Response #### Success Response (200) - **registrationLinks** (object) - Server registration links - **documentation** (array) - Available documentation resources - **apiIntegrationInfo** (object) - API integration guidance #### Response Example { "registrationLinks": { "cloudlinux": "https://registration.cloudlinux.com/bundle/cloudlinux", "imunify360": "https://registration.cloudlinux.com/bundle/imunify360" }, "documentation": [ { "title": "Bundle Licensing Guide", "url": "https://docs.cloudlinux.com/bundle-licensing" } ], "apiIntegrationInfo": { "endpoint": "/v2/bundles/keys", "auth": "API key authentication required" } } ``` -------------------------------- ### License Permissions Configuration Example Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 JSON example showing how to configure license permissions for specific features with enabled, disabled, and unset states. Used for setting up feature access levels in license management systems. ```json { "4600": "ENABLED", "1101": "DISABLED", "1102": "UNSET" } ``` -------------------------------- ### Bundle License Key Response Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Complete response example for bundle license key information including both KEY and IPL license types. Shows all available fields for bundle license objects with production server example. ```json { "key": "BUNDLE-ABCD-EFGH-IJKL", "type": "KEY", "bundle_id": 1, "bundle_name": "CloudLinux + Imunify360", "usage_limit": 10, "note": "Production servers", "is_enabled": true, "created": "2024-01-15T10:00:00Z" } OR { "ip": "2001:db8::1", "type": "IPL", "bundle_id": 1, "bundle_name": "CloudLinux + Imunify360", "usage_limit": 1, "note": "Production servers", "is_enabled": true, "created": "2024-01-15T10:00:00Z" } ``` -------------------------------- ### List Bundle IP Licenses API Response Example (JSON) Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 An example of a successful response when listing bundle IP licenses. It includes details such as IP address, type, bundle ID, name, usage limit, notes, enabled status, and creation date. ```json [ { "ip": "2001:db8::1", "type": "IPL", "bundle_id": 1, "bundle_name": "CloudLinux + Imunify360", "usage_limit": 1, "note": "Production servers", "is_enabled": true, "created": "2024-01-15T10:00:00Z" } ] ``` -------------------------------- ### GET /v2/bundles/available Source: https://cln.cloudlinux.com/api/swagger-ui/index Returns a list of all available bundle products that can be licensed for the account. ```APIDOC ## GET /v2/bundles/available ### Description Returns a list of all available bundle products that can be licensed for the account. ### Method GET ### Endpoint /v2/bundles/available ### Parameters #### Query Parameters - **accountType** (string) - Optional - Filter by account type - **region** (string) - Optional - Filter by geographic region ### Request Example {} ### Response #### Success Response (200) - **availableBundles** (array) - List of available bundle configurations - **total** (integer) - Number of available bundles #### Response Example { "availableBundles": [ { "id": "cloudlinux_imunify", "name": "CloudLinux + Imunify Bundle", "products": ["cloudlinux", "imunify"], "description": "Combined CloudLinux and Imunify licensing", "quantity": "1-1000 servers", "pricing": "Contact sales" } ], "total": 3 } ``` -------------------------------- ### GET /v2/servers/bundle/{bundleId} Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Retrieves all servers associated with a specific bundle. Each server shows information about which products from the bundle are installed and their status. ```APIDOC ## GET /v2/servers/bundle/{bundleId} ### Description Retrieves all servers associated with a specific bundle. Each server shows information about which products from the bundle are installed and their status. ### Method GET ### Endpoint /v2/servers/bundle/{bundleId} ### Parameters #### Path Parameters - **bundleId** (integer) - Required - Bundle ID to get servers for #### Query Parameters - **page** (integer) - Optional - Page number (0-indexed) (default: 0) - **pageSize** (integer) - Optional - Page size (default: 100) - **sortingRequest** (array of strings) - Optional - Sorting criteria (field-direction) (default: ["id-desc"]) ### Response #### Success Response (200) - **response body** (string) - List of servers for the bundle retrieved successfully. #### Error Responses - **400** Bad Request - **401** Unauthorized access - **403** Forbidden - **404** Bundle not found - **409** Conflict - **422** Unprocessable Entity - **500** Internal Server Error ``` -------------------------------- ### GET /v2/features Source: https://cln.cloudlinux.com/api/swagger-ui/index Returns comprehensive list of all supported features across all products and services. ```APIDOC ## GET /v2/features ### Description Returns comprehensive list of all supported features across all products and services. ### Method GET ### Endpoint /v2/features ### Parameters #### Query Parameters - **product** (string) - Optional - Filter by specific product - **category** (string) - Optional - Filter by feature category ### Request Example {} ### Response #### Success Response (200) - **allFeatures** (object) - Complete feature list by product - **categories** (array) - Available feature categories #### Response Example { "allFeatures": { "cloudlinux": { "cloudlinux_os": "Core operating system features", "lve_manager": "LVE container management" }, "imunify360": { "imunify_email": "Email security features", "imunify_antivirus": "Antivirus protection" } }, "categories": ["security", "management", "monitoring"] } ``` -------------------------------- ### GET /v2/bundles/keys Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Manages bundle license keys for activation. For bundle licensing support, contact sales@cloudlinux.com. ```APIDOC ## GET /v2/bundles/keys ### Description License management endpoint for bundle activation keys ### Method GET ### Endpoint /v2/bundles/keys ### Response #### Success Response (200) - **licenseKeys** (array) - Bundle license keys #### Response Example { "example": "response body" } ``` -------------------------------- ### Error Response Example (JSON) Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 An example of a JSON error response from the API, typically returned for issues like internal server errors or validation failures. It contains a 'message' and 'details' field. ```json { "message": "Smth went wrong", "details": "Validation failed" } ``` -------------------------------- ### GET /v2/bundles/available Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Returns a list of bundle packages available for the customer account. Each bundle contains multiple products that can be licensed together with a single activation key. ```APIDOC ## GET /v2/bundles/available ### Description Get a list of available bundles ### Method GET ### Endpoint /v2/bundles/available ### Response #### Success Response (200) - **Array of BundlePackage** - List of available bundle packages #### Response Example { "example": "response body" } ``` -------------------------------- ### Server Management API Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Manage partner-linked servers, including listing, updating permissions, and soft-deleting records. Servers contain information about installed products. ```APIDOC ## GET /v2/servers ### Description Retrieves a list of servers linked to the partner account. ### Method GET ### Endpoint /v2/servers ### Parameters #### Query Parameters - **limit** (integer) - Optional - Maximum number of items to return. - **offset** (integer) - Optional - Number of items to skip before returning results. ### Response #### Success Response (200) - **servers** (array) - A list of servers. - **id** (string) - The server unique identifier. - **hostname** (string) - The server hostname. - **owner_id** (string) - The ID of the owner of the server. - **created_at** (string) - The timestamp when the server was created. #### Response Example ```json { "servers": [ { "id": "srv_12345abcde", "hostname": "server.example.com", "owner_id": "owner_67890fghij", "created_at": "2023-10-27T10:00:00Z" } ] } ``` ``` -------------------------------- ### GET /bundles/keys Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Retrieves a list of bundle license keys with detailed information for each key. ```APIDOC ## GET /bundles/keys ### Description Retrieves a list of bundle license keys. Returns detailed information for each key including type, usage limit, and status. ### Method GET ### Endpoint /bundles/keys ### Parameters #### Path Parameters _(none)_ #### Query Parameters _(none)_ #### Request Body _(none)_ ### Request Example _(no request body)_ ### Response #### Success Response (200) - **key** (string) - License key value - **type** (string) - Type of the key (e.g., KEY) - **bundle_id** (integer) - Identifier of the bundle - **bundle_name** (string) - Name of the bundle - **usage_limit** (integer) - Maximum number of servers allowed - **note** (string) - Optional note - **is_enabled** (boolean) - Whether the key is active - **created** (string) - Creation timestamp in ISO 8601 format #### Response Example { "key": "BUNDLE-ABCD-EFGH-IJKL", "type": "KEY", "bundle_id": 1, "bundle_name": "CloudLinux + Imunify360", "usage_limit": 10, "note": "Production servers", "is_enabled": true, "created": "2024-01-15T10:00:00Z" } ``` -------------------------------- ### GET /v2/features/account Source: https://cln.cloudlinux.com/api/swagger-ui/index Returns all supported feature type IDs for the account including available product features. ```APIDOC ## GET /v2/features/account ### Description Returns all supported feature type IDs for the account including available product features. ### Method GET ### Endpoint /v2/features/account ### Parameters #### Query Parameters - **accountId** (string) - Optional - Specific account ID ### Request Example {} ### Response #### Success Response (200) - **features** (array) - List of supported feature type IDs - **productFeatures** (object) - Feature availability by product #### Response Example { "features": [ "imunify_email", "cloudlinux_os", "lve_manager" ], "productFeatures": { "imunify360": ["imunify_email", "imunify_antivirus"], "cloudlinux": ["cloudlinux_os", "lve_manager"] } } ``` -------------------------------- ### GET /v2/bundles/licenses/servers Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Returns all bundle licenses associated with the account along with their servers. Each bundle license is grouped by activation key with its corresponding servers. ```APIDOC ## GET /v2/bundles/licenses/servers ### Description Return all Bundle licenses with servers associated with account. ### Method GET ### Endpoint /v2/bundles/licenses/servers ### Response #### Success Response (200) - **Array of LicenseServerFlatResponse** - List of bundle licenses with servers #### Response Example { "example": "response body" } ``` -------------------------------- ### GET /v2/cl/keys Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Lists all CloudLinux licenses for the authenticated reseller account filtered by product type. This endpoint is useful for retrieving specific license information. ```APIDOC ## GET /v2/cl/keys ### Description Lists all CloudLinux licenses for the authenticated reseller account filtered by product type. ### Method GET ### Endpoint /v2/cl/keys ### Parameters #### Query Parameters - **productType** (string) - Required - Product code to filter by. Example: "CLPLUS" #### Request Body None ### Request Example ```json { "example": "request body" } ``` ### Response #### Success Response (200) - **(object)** - *Refer to `#/components/schemas/KeyInfoResponse` for schema details.* #### Error Responses - **400** Bad Request #### Response Example (Success) ```json { "example": "response body" } ``` ``` -------------------------------- ### GET /v2/keys Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Retrieves a paginated list of license keys with optional filtering by product codes, license type, and search query. Supports sorting and pagination. ```APIDOC ## GET /v2/keys ### Description Retrieves a paginated list of license keys with optional filtering by product codes, license type, and search query. Supports sorting and pagination. ### Method GET ### Endpoint /v2/keys ### Parameters #### Query Parameters - **product** (array[string]) - Optional - Product codes - **type** (string) - Optional - License type filter (KEY, IPL) - **search** (string) - Optional - Search query - **page** (integer) - Optional - Page number (0-indexed), default: 0 - **pageSize** (integer) - Optional - Page size, default: 100 - **sort** (array[string]) - Optional - Sorting criteria, default: ["id-desc"] ### Response #### Success Response (200) - **description**: List of available product codes retrieved successfully. - **content**: application/json #### Error Responses - **400** - Bad Request - **401** - Unauthorized access - **403** - Forbidden - **404** - Not Found - **409** - Conflict - **422** - Unprocessable Entity - **500** - Internal Server Error #### Response Example (500) { "message": "Smth went wrong", "details": "Validation failed" } ``` -------------------------------- ### GET /v2/features Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Retrieves a list of all supported features within the CloudLinux ecosystem. This endpoint is useful for understanding available functionalities and their applicability to different products. ```APIDOC ## GET /v2/features ### Description Returns all supported features. ### Method GET ### Endpoint /v2/features ### Parameters #### Query Parameters None #### Request Body None ### Request Example None ### Response #### Success Response (200) - **feature_id** (integer) - The unique identifier for the feature. - **name** (string) - The name of the feature. - **applicable_product_ids** (array of integers) - A list of product IDs to which this feature is applicable. #### Response Example ```json [ { "feature_id": 4600, "name": "Imunify Email addon", "applicable_product_ids": [ 1, 2, 3 ] } ] ``` #### Error Responses - **400 Bad Request**: Returned for invalid requests. - **401 Unauthorized**: Returned if authentication fails. - **403 Forbidden**: Returned if the authenticated user lacks permission. - **404 Not Found**: Returned if the requested resource is not found. - **409 Conflict**: Returned if a conflict occurs during the request. - **422 Unprocessable Entity**: Returned for validation errors. - **500 Internal Server Error**: Returned for unexpected server errors. ``` -------------------------------- ### GET /v2/servers Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Retrieves a filtered and paginated list of servers managed by the partner. Supports filtering by product codes, license keys, registration dates, and other criteria. ```APIDOC ## GET /v2/servers ### Description Retrieves a filtered and paginated list of servers managed by the partner. Supports filtering by product codes, license keys, registration dates, and other criteria. Product codes can be extracted from /v2/keys/product-codes. ### Method GET ### Endpoint /v2/servers ### Parameters #### Query Parameters - **product** (array[string]) - Optional - Product codes to filter by. Example: ["CL", "KC"] - **key** (string) - Optional - License key to filter by. Example: "CL-123456" - **only-with-imunify-email** (boolean) - Optional - Filter only servers with Imunify email. Example: false - **with-cl6-cl7** (boolean) - Optional - Include CL6 and CL7 servers. Example: false - **registered_date_from** (string) - Optional - Filter servers registered from date (ISO-8601). Example: "2024-01-01T00:00:00Z" - **registered_date_to** (string) - Optional - Filter servers registered until date (ISO-8601). Example: "2024-12-31T23:59:59Z" - **search** (string) - Optional - Search text for hostname or IP. Example: "server.example.com" - **panel** (array[string]) - Optional - Control panel types to filter by. Example: ["cPanel", "Plesk"] - **page** (integer) - Optional - Page number (0-indexed). Default: 0 - **pageSize** (integer) - Optional - Page size. Default: 100 - **sortingRequest** (array[string]) - Optional - Sorting criteria (field-direction). Default: ["id-desc"] ### Response #### Success Response (200) - **servers** (array) - List of server objects. - **id** (integer) - Server ID. - **hostname** (string) - Server hostname. - **ip_address** (string) - Server IP address. - **product_code** (string) - Product code for the server. - **license_key** (string) - License key associated with the server. - **panel** (string) - Control panel type. - **registered_at** (string) - Registration date (ISO-8601). - **owner_email** (string) - Owner's email address. #### Error Response (400) - **message** (string) - Error message describing the issue. - **details** (string) - Additional details about the validation failure. ``` -------------------------------- ### GET /v2/servers/bundle/{bundleId} Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Verifies server requirements for a specific bundle. Use the same bundle key for all products in the bundle and ensure server meets minimum requirements for all bundle products. ```APIDOC ## GET /v2/servers/bundle/{bundleId} ### Description Server verification endpoint for bundle licensing ### Method GET ### Endpoint /v2/servers/bundle/{bundleId} ### Parameters #### Path Parameters - **bundleId** (string) - Required - The ID of the bundle to verify ### Response #### Success Response (200) - **verificationResult** (object) - Server verification status #### Response Example { "example": "response body" } ``` -------------------------------- ### Successful IP License Update Response - JSON Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Example response for a successful IP license update in CloudLinux API. Includes detailed license information and effective permissions. ```JSON { "ip": "192.168.1.100", "type": 1003, "hostname": "server1.example.com", "last_checkin": "2024-01-15T10:30:00Z", "els_allowed": true, "awp_premium_allowed": true, "awp_cdn_allowed": false, "created": "2024-01-01T00:00:00Z", "registered": true, "set_permissions": { "4600": "ENABLED", "AWP_PREMIUM": "ENABLED" }, "effective_permissions": { "4600": "ENABLED", "AWP_PREMIUM": "ENABLED" } } ``` ```JSON { "ip": "2001:db8::1", "type": 1003, "hostname": "server1.example.com", "last_checkin": "2024-01-15T10:30:00Z", "els_allowed": true, "awp_premium_allowed": true, "awp_cdn_allowed": false, "created": "2024-01-01T00:00:00Z", "registered": true, "set_permissions": { "4600": "ENABLED", "AWP_PREMIUM": "ENABLED" }, "effective_permissions": { "4600": "ENABLED", "AWP_PREMIUM": "ENABLED" } } ``` -------------------------------- ### Create Key License Request Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 JSON request for creating a new key-based license with product code and usage limit. Includes optional note field for license description and shows default usage limit value. ```json { "product_code": "CL", "note": "Used for internal testing", "usage_limit": 1 } ``` -------------------------------- ### GET /v2/keys/product-codes Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 This endpoint returns a list of available product codes that can be used to create licenses. Each code corresponds to products like CloudLinux, Imunify, KernelCare, or ELS, along with their descriptions. It is useful for discovering options before creating new licenses. ```APIDOC ## GET /v2/keys/product-codes ### Description Fetches available product codes for license creation, including descriptions for CloudLinux, Imunify, KernelCare, and ELS products. ### Method GET ### Endpoint /v2/keys/product-codes ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example No body required. ### Response #### Success Response (200) Returns a list of product codes with descriptions. #### Response Example [ { "code": 1001, "description": "CloudLinux OS" } ] #### Error Responses - **400 Bad Request**: Invalid request format. - **409 Conflict**: Request conflicts with current state. ``` -------------------------------- ### GET /api/feature-permissions Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Retrieves current feature permissions for a CloudLinux account. ```APIDOC ## GET /api/feature-permissions ### Description Retrieves current feature permissions for a CloudLinux account. ### Method GET ### Endpoint /api/feature-permissions ### Response #### Success Response (200) - Returns map of supported feature type IDs with their permissions #### Response Example { "4600": "ENABLED", "1101": "DISABLED", "1102": "UNSET" } #### Error Responses - 401 Unauthorized - 403 Forbidden - 404 Not Found - 500 Internal Server Error ``` -------------------------------- ### GET /v2/imunify/keys Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Retrieves all IM key licenses associated with the account. ```APIDOC ## GET /v2/imunify/keys ### Description Returns all IM key licenses associated with the account. ### Method GET ### Endpoint /v2/imunify/keys ### Parameters *No query or request body parameters are defined for this endpoint.* ### Request Example ```json { "example": "" } ``` ### Response #### Success Response (200) - **Array of KeyInfoResponse objects**: Each object contains details about an IM key license. #### Error Responses - **400** (Bad Request): Indicates a malformed request. - **401** (Unauthorized): Indicates unauthorized access. - **403** (Forbidden): Indicates forbidden access. - **404** (Not Found): Indicates no keys were found. - **409** (Conflict): Indicates a conflict. - **422** (Unprocessable Entity): Indicates an unprocessable entity. - **500** (Internal Server Error): Indicates an internal server error. #### Response Example (Success) ```json [ { "key": "EXAMPLE_KEY_1", "type": "IMUNIFY360", "product_id": "IMUNIFY360", "product_name": "Imunify360", "status": "active", "expire_date": "2024-12-31T23:59:59Z", "quantity": 1, "used": 0 }, { "key": "EXAMPLE_KEY_2", "type": "IMUNIFY360", "product_id": "IMUNIFY360", "product_name": "Imunify360", "status": "active", "expire_date": "2025-06-30T23:59:59Z", "quantity": 1, "used": 0 } ] ``` ``` -------------------------------- ### POST /websites/cln_cloudlinux_api/create Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Creates a new license key for the specified product. The license key can be used to register servers and manage their access to CloudLinux, Imunify, KernelCare, or ELS products. ```APIDOC ## POST /websites/cln_cloudlinux_api/create ### Description Creates a new license key for the specified product. The license key can be used to register servers and manage their access to CloudLinux, Imunify, KernelCare, or ELS products. ### Method POST ### Endpoint /websites/cln_cloudlinux_api/create ### Parameters #### Request Body - **product_code** (string) - Required - The code of the product for which the license is being created. - **usage_limit** (integer) - Optional - The maximum number of servers that can use this license key. - **expiration_date** (string) - Optional - The date when the license key expires in YYYY-MM-DD format. ### Request Example ```json { "product_code": "CL", "usage_limit": 10, "expiration_date": "2024-12-31" } ``` ### Response #### Success Response (200) - **license_key** (string) - The newly created license key. #### Response Example ```json { "license_key": "ABC123XYZ789" } ``` #### Error Responses - **400 Bad Request**: Invalid request data. Check product code and usage limit. - **401 Unauthorized**: Missing or invalid authentication token. - **403 Forbidden**: Insufficient permissions to perform this action. - **404 Not Found**: The requested resource was not found. - **409 Conflict**: A license with the same details already exists. - **422 Unprocessable Entity**: The request could not be processed due to semantic errors. ``` -------------------------------- ### POST /v2/bundle-licenses/key Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Creates a new bundle license key with specified usage limits and note. Requires product code and usage limit parameters. ```APIDOC ## POST /v2/bundle-licenses/key ### Description Creates a new bundle license key with the specified product code and usage limits. An optional note can be included. ### Method POST ### Endpoint /v2/bundle-licenses/key ### Request Body - **product_code** (string) - Required - Identifier of the product (e.g., 'CL', 'IM_1') - **usage_limit** (integer) - Required - Maximum number of activations (min: 1) - **note** (string) - Optional - Description for the license key ### Request Example { "product_code": "CL", "usage_limit": 10, "note": "Used for internal testing" } ### Response #### Success Response (200) - **key** (string) - The created license key - **bundle_id** (integer) - Bundle identifier - **bundle_name** (string) - Name of the bundle - **usage_limit** (integer) - Maximum number of servers - **note** (string) - Optional note - **is_enabled** (boolean) - License activation status - **created** (string) - Creation timestamp #### Response Example { "key": "BUNDLE-ABCD-EFGH-IJKL", "bundle_id": 1, "bundle_name": "CloudLinux + Imunify360", "usage_limit": 10, "note": "Used for internal testing", "is_enabled": true, "created": "2024-01-15T10:00:00Z" } ``` -------------------------------- ### Successful IPv6 License Creation Response Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Example of a successful response when an IPv6 license is created. It includes details of the created license, such as IP address, type, creation timestamp, and effective permissions. ```json { "ip" : "2001:db8::1", "type" : 1003, "hostname" : null, "last_checkin" : null, "els_allowed" : true, "awp_premium_allowed" : false, "awp_cdn_allowed" : false, "created" : "2024-01-15T10:00:00Z" } ``` -------------------------------- ### POST /v2/bundles/keys Source: https://cln.cloudlinux.com/api/swagger-ui/index Creates a new bundle license key for the specified products and configuration. ```APIDOC ## POST /v2/bundles/keys ### Description Creates a new bundle license key for the specified products and configuration. ### Method POST ### Endpoint /v2/bundles/keys ### Parameters #### Request Body - **products** (array) - Required - List of products to include in bundle - **quantity** (integer) - Required - Number of server licenses - **expiration** (string) - Optional - License expiration date - **notes** (string) - Optional - Additional notes or description ### Request Example { "products": ["cloudlinux", "imunify360"], "quantity": 10, "expiration": "2024-12-31T23:59:59Z", "notes": "Production environment licenses" } ### Response #### Success Response (201) - **key** (string) - Generated bundle license key - **products** (array) - Products included in bundle - **quantity** (integer) - Licensed server quantity - **status** (string) - Initial license status #### Response Example { "key": "bundle_key_456", "products": ["cloudlinux", "imunify360"], "quantity": 10, "status": "active", "created": "2023-06-15T10:30:00Z" } ``` -------------------------------- ### GET /v2/imunify/servers Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Retrieves all servers associated with an account. Optionally, filters servers by a provided key. ```APIDOC ## GET /v2/imunify/servers ### Description Returns all servers associated with the account. Optionally, returns all servers associated with the provided key. ### Method GET ### Endpoint /v2/imunify/servers ### Parameters #### Query Parameters - **key** (string) - Optional - Key to filter servers by. ### Response #### Success Response (200) - The response will contain a list of servers associated with the account or filtered by the provided key. The exact structure of the server object is not detailed here but is expected to be JSON. #### Response Example ```json { "servers": [ { "id": "server-123", "hostname": "server1.example.com", "ip_address": "192.168.1.100" }, { "id": "server-456", "hostname": "server2.example.com", "ip_address": "192.168.1.101" } ] } ``` #### Error Responses - **400**: Bad Request. - **409**: Conflict. ``` -------------------------------- ### GET /v2/cl/keys Source: https://cln.cloudlinux.com/api/swagger-ui/index Returns all key licenses associated with the account for CloudLinux products. This endpoint is deprecated. ```APIDOC ## GET /v2/cl/keys ### Description Returns all key licenses associated with the account for CloudLinux products. This endpoint is deprecated. ### Method GET ### Endpoint /v2/cl/keys ### Parameters #### Query Parameters - **status** (string) - Optional - Filter by license status ### Request Example {} ### Response #### Success Response (200) - **clnResponse** (object) - CloudLinux license response - **keys** (array) - Array of license keys #### Response Example { "clnResponse": { "status": "success", "message": "License keys retrieved" }, "keys": [ { "key": "cl_key_123", "product": "cloudlinux", "status": "active", "servers": 5 } ] } ``` -------------------------------- ### GET /v2/bundles/keys Source: https://cln.cloudlinux.com/api/swagger-ui/index Lists all bundle license keys associated with the account with pagination and filtering options. ```APIDOC ## GET /v2/bundles/keys ### Description Lists all bundle license keys associated with the account with pagination and filtering options. ### Method GET ### Endpoint /v2/bundles/keys ### Parameters #### Query Parameters - **limit** (integer) - Optional - Number of results per page - **offset** (integer) - Optional - Pagination offset - **status** (string) - Optional - Filter by license status - **product** (string) - Optional - Filter by product type ### Request Example {} ### Response #### Success Response (200) - **keys** (array) - Array of bundle license keys - **total** (integer) - Total number of keys - **limit** (integer) - Results limit - **offset** (integer) - Current offset #### Response Example { "keys": [ { "key": "bundle_key_123", "products": ["cloudlinux", "imunify"], "status": "active", "expires": "2024-01-01T00:00:00Z" } ], "total": 5, "limit": 50, "offset": 0 } ``` -------------------------------- ### Successful IPv4 License Creation Response Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Example of a successful response when an IPv4 license is created. It includes details of the created license, such as IP address, type, creation timestamp, and effective permissions. ```json { "ip" : "192.168.1.100", "type" : 1003, "hostname" : null, "last_checkin" : null, "els_allowed" : true, "awp_premium_allowed" : false, "awp_cdn_allowed" : false, "created" : "2024-01-15T10:00:00Z", "registered" : false, "set_permissions" : { "4600" : "ENABLED" }, "effective_permissions" : { "4600" : "ENABLED" } } ``` -------------------------------- ### GET /v2/bundles/ip-licenses/{ip} Source: https://cln.cloudlinux.com/api/swagger-ui/index Retrieves bundle IP license information for a specific IP address. ```APIDOC ## GET /v2/bundles/ip-licenses/{ip} ### Description Retrieves bundle IP license information for a specific IP address. ### Method GET ### Endpoint /v2/bundles/ip-licenses/{ip} ### Parameters #### Path Parameters - **ip** (string) - Required - IP address for license lookup ### Request Example {} ### Response #### Success Response (200) - **ipLicenseResponse** (object) - IP license details - **status** (string) - License status - **products** (array) - Licensed products for this IP #### Response Example { "ipLicenseResponse": { "ip": "192.168.1.100", "bundle": "cloudlinux_imunify", "status": "active" }, "products": ["cloudlinux", "imunify"], "status": "active" } ``` -------------------------------- ### GET /v2/bundles/keys/{key} Source: https://cln.cloudlinux.com/api/swagger-ui/index Retrieves a specific bundle license key with all associated details and metadata. ```APIDOC ## GET /v2/bundles/keys/{key} ### Description Retrieves a specific bundle license key with all associated details and metadata. ### Method GET ### Endpoint /v2/bundles/keys/{key} ### Parameters #### Path Parameters - **key** (string) - Required - Bundle license key identifier ### Request Example {} ### Response #### Success Response (200) - **licenseData** (object) - Bundle license key details - **keyInfo** (object) - Key information and status #### Response Example { "licenseData": { "key": "bundle_key_123", "products": ["cloudlinux", "imunify"], "status": "active" }, "keyInfo": { "created": "2023-01-01T00:00:00Z", "expires": "2024-01-01T00:00:00Z" } } ``` -------------------------------- ### POST /websites/cln_cloudlinux_api/createBundleIpLicense Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Creates a new IP license for a specified bundle. The license enables registration of one server per product within the bundle. ```APIDOC ## POST /websites/cln_cloudlinux_api/createBundleIpLicense ### Description Creates a new IP license for the specified bundle. The license will allow registration of one server per each product included in the bundle. ### Method POST ### Endpoint /websites/cln_cloudlinux_api/createBundleIpLicense ### Parameters #### Request Body - **bundle_id** (integer) - Required - The ID of the bundle for which to create the IP license. - **ip** (string) - Required - The IP address to associate with the license. - **usage_limit** (integer) - Optional - The maximum number of servers that can use this license. - **note** (string) - Optional - A descriptive note for the license. ### Request Example ```json { "bundle_id": 1, "ip": "2001:db8::1", "usage_limit": 1, "note": "Production servers" } ``` ### Response #### Success Response (200) - **ip** (string) - The assigned IP address for the license. - **type** (string) - The type of license (e.g., "IPL"). - **bundle_id** (integer) - The ID of the bundle associated with the license. - **bundle_name** (string) - The name of the bundle. - **usage_limit** (integer) - The usage limit for the license. - **note** (string) - The descriptive note for the license. - **is_enabled** (boolean) - Indicates if the license is enabled. - **created** (string) - The timestamp when the license was created. #### Response Example ```json { "ip": "2001:db8::1", "type": "IPL", "bundle_id": 1, "bundle_name": "CloudLinux + Imunify360", "usage_limit": 1, "note": "Production servers", "is_enabled": true, "created": "2024-01-15T10:00:00Z" } ``` #### Error Responses - **400**: Invalid bundle ID or IP. - **401**: Unauthorized access. - **403**: Forbidden. - **404**: Not Found. - **409**: Conflict. - **422**: Unprocessable Entity. - **500**: Internal Server Error. ``` -------------------------------- ### POST /v2/keys Source: https://cln.cloudlinux.com/api/v3/api-docs/partner-api-v2 Creates a new license key with optional server limit and permission settings. Provide a code identifying the key type and a permissions map to define feature access. ```APIDOC ## POST /v2/keys ### Description Creates a new license key with optional server limit and permission settings. Provide a code identifying the key type and a permissions map to define feature access. ### Method POST ### Endpoint /v2/keys ### Parameters #### Request Body - **code** (string) - Required - Key code enum (e.g., "360_1", "AVP"). - **limit** (integer) - Optional - Server limit for this key. - **note** (string) - Optional - Note or description for this key. - **permissions** (object) - Required - Map of feature IDs to permission values (UNSET, ENABLED, DISABLED). ### Request Example { "code": "360_1", "limit": 10, "note": "Test description", "permissions": { "4600": "ENABLED", "1101": "DISABLED", "1102": "UNSET" } } ### Response #### Success Response (200) - **key** (string) - Generated key value. - **limit** (integer) - Server limit set for the key. - **effective_permissions** (object) - Permissions that are actually applied. ### Response Example { "key": "ABCD-1234-EFGH-5678", "limit": 10, "effective_permissions": { "4600": "ENABLED", "1101": "DISABLED", "1102": "UNSET" } } ```