{"version":"v1","generated_at":"2026-04-29T13:46:47+00:00","transport":{"url":"https://proginter.com/mcp","protocol":"mcp"},"auth":{"scheme":"apiKey+apiSecret","headers":["X-API-Key","X-API-Secret"]},"tools":[{"name":"account","scope":"account","description":"Aggregate view of running and failed tasks across account and per-server contexts.","actions":[{"name":"get_aggregate","description":"Aggregate running/failed task items for the authenticated client \u2014 mirrors the panel's sidebar task badge.","method":"GET","path_template":"/tasks/aggregate","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array"}}]},{"name":"account_affiliate","scope":"account:affiliate","description":"Manage your affiliate program: application, statistics, commissions, payouts, settings, and click tracking.","actions":[{"name":"get_status","description":"Current affiliate status. When no affiliate record exists, has_affiliate is false. Otherwise includes affiliate summary and, for active affiliates, aggregated stats.","method":"GET","path_template":"/affiliate/status","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.has_affiliate":"boolean","data.affiliate":"object|null","data.stats":"object|null"}},{"name":"create_activate","description":"Submit an affiliate application. Throttled to 5/min.","method":"POST","path_template":"/affiliate/activate","path_params":[],"body_params":[{"name":"payment_method","type":"string","required":true,"description":"One of: paypal, bank_transfer, account_credit"},{"name":"payment_details","type":"object","required":false,"description":"Payment-method-specific fields (paypal_email, iban, swift_code, etc.)"},{"name":"auto_credit","type":"boolean","required":false,"description":"Automatically credit commissions to account balance"},{"name":"slug","type":"string","required":false,"description":"Custom referral slug (lowercase a-z, 0-9, hyphens; max 30 chars)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.id":"integer","data.slug":"string","data.status":"string","data.referral_url":"string"}},{"name":"create_suspend","description":"Self-pause your affiliate program. Only active affiliates may suspend. Throttled to 5/min.","method":"POST","path_template":"/affiliate/suspend","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_reactivate","description":"Re-enable a self-suspended affiliate. Only valid for affiliates previously suspended by the client. Throttled to 5/min.","method":"POST","path_template":"/affiliate/reactivate","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_statistics","description":"Aggregate statistics for the authenticated affiliate's dashboard.","method":"GET","path_template":"/affiliate/statistics","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object"}},{"name":"list_earnings","description":"Earnings graph data over the requested timeframe.","method":"GET","path_template":"/affiliate/graphs/earnings","path_params":[],"body_params":[{"name":"timeframe","type":"string","required":false,"description":"Time window (default 12m)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object"}},{"name":"list_referrals","description":"Referrals graph data over the requested timeframe.","method":"GET","path_template":"/affiliate/graphs/referrals","path_params":[],"body_params":[{"name":"timeframe","type":"string","required":false,"description":"Time window (default 12m)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object"}},{"name":"list_commissions","description":"Paginated commissions. Client names are anonymized (first name + last initial).","method":"GET","path_template":"/affiliate/commissions","path_params":[],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page (max 100)"},{"name":"status","type":"string","required":false,"description":"Filter by status: pending, confirmed, rejected, paid, cancelled"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].client_name":"string","data[].type":"string","data[].amount":"number","data[].original_amount":"number|null","data[].original_currency":"string|null","data[].status":"string","data[].created_at":"string","data[].confirmed_at":"string|null","meta":"object"}},{"name":"list_payouts","description":"Paginated payouts.","method":"GET","path_template":"/affiliate/payouts","path_params":[],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page (max 100)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].amount":"number","data[].currency":"string","data[].payment_method":"string","data[].status":"string","data[].payment_reference":"string|null","data[].processed_at":"string|null","data[].created_at":"string","meta":"object"}},{"name":"get_summary","description":"Lifetime payout total and current pending (confirmed + unconfirmed) commission totals.","method":"GET","path_template":"/affiliate/payouts/summary","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.total_paid":"number","data.pending_confirmed":"number","data.pending_unconfirmed":"number","data.payment_method":"string"}},{"name":"list_settings","description":"Current affiliate profile and payment settings.","method":"GET","path_template":"/affiliate/settings","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object"}},{"name":"update_payment","description":"Update payment method and related details. Throttled to 10/min.","method":"PUT","path_template":"/affiliate/settings/payment","path_params":[],"body_params":[{"name":"payment_method","type":"string","required":true,"description":"One of: paypal, bank_transfer, account_credit"},{"name":"payment_details","type":"object","required":false,"description":"Method-specific details"},{"name":"auto_credit","type":"boolean","required":false,"description":"Auto-credit commissions to balance"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_slug","description":"Change the referral slug (and therefore the referral URL). Throttled to 10/min.","method":"PUT","path_template":"/affiliate/settings/slug","path_params":[],"body_params":[{"name":"slug","type":"string","required":true,"description":"Lowercase a-z, 0-9, hyphens; max 30 chars"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.slug":"string","data.referral_url":"string"}},{"name":"list_clicks","description":"Paginated raw click log. IP addresses are masked for privacy (IPv4: last two octets hidden; IPv6: truncated after second colon).","method":"GET","path_template":"/affiliate/tracking/clicks","path_params":[],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page (max 100)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].ip_address":"string","data[].referer_url":"string|null","data[].landing_page":"string|null","data[].created_at":"string","meta":"object"}},{"name":"tracking_get_summary","description":"Total click count, unique IP count, and today's click count.","method":"GET","path_template":"/affiliate/tracking/summary","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.total_clicks":"integer","data.unique_ips":"integer","data.today_clicks":"integer"}}]},{"name":"account_billing","scope":"account:billing","description":"Manage payment methods, account balance, transaction retries, invoice resends, and coupon validation.","actions":[{"name":"list_payment_methods","description":"Get a paginated list of your saved payment methods. Expired cards are deleted daily by the billing cron; past transactions that referenced a deleted card keep their payment_method_id as null.","method":"GET","path_template":"/payment-methods","path_params":[],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number for pagination"},{"name":"per_page","type":"integer","required":false,"description":"Number of items per page (max 100)"},{"name":"order_by","type":"string","required":false,"description":"Column to sort by (e.g., created_at, expiry_date)"},{"name":"order_direction","type":"string","required":false,"description":"Sort direction: asc or desc (default desc)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].payment_type":"string","data[].provider":"string","data[].card_last_digits":"string|null","data[].expiry_date":"string","data[].is_default":"boolean","data[].created_at":"string","meta":"object"}},{"name":"create_handshake","description":"Step 1 of card registration. Returns a Tranzila handshake token. Use this token with Tranzila's hosted-fields JS SDK in the browser to PCI-safely tokenize the card. Card numbers must NEVER pass through your server. Throttled to 10 requests per minute.","method":"POST","path_template":"/payment-methods/handshake","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.token":"string"}},{"name":"create_payment_methods","description":"Step 2 of card registration. Persists a card already tokenized client-side via Tranzila. Throttled to 10 requests per minute.","method":"POST","path_template":"/payment-methods","path_params":[],"body_params":[{"name":"card_last_digits","type":"string","required":true,"description":"The last 4 digits of the card (4 digits)"},{"name":"expiry_date","type":"string","required":true,"description":"Card expiry in m/y format (e.g., 12/27)"},{"name":"token","type":"string","required":true,"description":"Tranzila card token returned from the JS SDK after browser-side tokenization"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.id":"integer","data.payment_type":"string","data.card_last_digits":"string","data.expiry_date":"string","data.is_default":"boolean"}},{"name":"delete_payment_methods","description":"DESTRUCTIVE - Delete one or more payment methods. Refuses with HTTP 400 if the batch includes the default method while other methods remain (set another method as default first). Returns a warning if removing the last method while a Proper Analysis subscription is active. Throttled to 10 requests per minute.","method":"DELETE","path_template":"/payment-methods","path_params":[],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of payment method IDs to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","warning":"string|null"}},{"name":"update_default","description":"Set a payment method as the default. The default method is tried first by automatic charges. Throttled to 10 requests per minute.","method":"PUT","path_template":"/payment-methods/{methodId}/default","path_params":[{"name":"methodId","type":"string","required":true,"description":"URL parameter"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_deposit","description":"Deposit funds to your account balance using a saved payment method. Throttled to 10 requests per minute, plus a stricter limit of 5 deposits per hour per client.","method":"POST","path_template":"/payment-methods/deposit","path_params":[],"body_params":[{"name":"amount","type":"number","required":true,"description":"Deposit amount (0.01\u2013100000)"},{"name":"payment_method_id","type":"integer","required":false,"description":"Specific payment method to charge. Optional \u2014 backend falls back to default \u2192 oldest when omitted."}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.transaction_id":"integer","data.amount":"number","data.currency":"string"}},{"name":"update_use_balance_first","description":"Toggle the 'use balance first' preference. When enabled, the account balance is consumed before charging a payment method.","method":"PUT","path_template":"/payment-methods/use-balance-first","path_params":[],"body_params":[{"name":"use_balance_first","type":"boolean","required":true,"description":"Whether to consume balance before charging the card"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.use_balance_first":"boolean"}},{"name":"create_retry","description":"Retry a failed transaction. Only transactions in 'failed' status can be retried. Creates a new charge job.","method":"POST","path_template":"/transactions/{transactionId}/retry","path_params":[{"name":"transactionId","type":"string","required":true,"description":"URL parameter"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.transaction_id":"integer"}},{"name":"create_send","description":"Email completed invoices to one or more allowlisted addresses. Recipients must be the client's own email or a stored invoice_email \u2014 others are silently dropped to prevent spam relay. If `emails` is omitted or empty after filtering, the client's account email is used as the sole recipient. Throttled to 10 requests per minute.","method":"POST","path_template":"/invoices/send","path_params":[],"body_params":[{"name":"emails","type":"array","required":false,"description":"Allowlisted recipient emails (max 5). Omit to send to your account email."},{"name":"transaction_ids","type":"array","required":true,"description":"IDs of completed transactions to email (max 50)"},{"name":"note","type":"string","required":false,"description":"Optional note to include in the email (max 300 chars, newlines allowed)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.recipients":"array","data.transactions":"array","data.count":"integer"}},{"name":"create_validate","description":"Check whether a coupon code is currently usable by the client, optionally against a planned server resource configuration. Returns valid:true with coupon details when usable, or valid:false with a reason. Throttled to 30 requests per minute.","method":"POST","path_template":"/coupons/validate","path_params":[],"body_params":[{"name":"code","type":"string","required":true,"description":"The coupon code to validate (max 30 chars)"},{"name":"cpu","type":"integer","required":false,"description":"Planned vCPU count, used to enforce coupon's max_cpu cap"},{"name":"memory","type":"integer","required":false,"description":"Planned RAM (MB), used to enforce coupon's max_memory cap"},{"name":"disk","type":"integer","required":false,"description":"Planned disk size (GB), used to enforce coupon's max_disk cap"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.valid":"boolean","data.message":"string|null","data.coupon":"object|null","data.coupon.code":"string","data.coupon.name":"string|null","data.coupon.discount_type":"string","data.coupon.discount_value":"number","data.coupon.discount_months":"integer|null","data.coupon.first_server_only":"boolean","data.coupon.max_cpu":"integer|null","data.coupon.max_memory":"integer|null","data.coupon.max_disk":"integer|null"}}]},{"name":"account_notifications","scope":"account:notifications","description":"Manage your account profile, contacts, transactions, and billing information.","actions":[{"name":"list_notifications","description":"Get all notifications (account, server, website).","method":"GET","path_template":"/notifications","path_params":[],"body_params":[{"name":"read_status","type":"string","required":false,"description":"Filter: all, read, unread"},{"name":"source","type":"string","required":false,"description":"Filter by source: account, server, website"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of notifications","meta":"object"}},{"name":"get_unread_count","description":"Get unread notification count.","method":"GET","path_template":"/notifications/unread-count","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"count":"integer","account":"integer","server":"integer","website":"integer"}}},{"name":"update_mark_read","description":"Mark notifications as read.","method":"PUT","path_template":"/notifications/mark-read","path_params":[],"body_params":[{"name":"ids","type":"array","required":false,"description":"Specific notification IDs (empty = mark all)"},{"name":"source","type":"string","required":false,"description":"Source filter: account, server, website"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_notifications","description":"DESTRUCTIVE - Delete notifications.","method":"DELETE","path_template":"/notifications","path_params":[],"body_params":[{"name":"ids","type":"array","required":false,"description":"Specific notification IDs (empty = delete all)"},{"name":"source","type":"string","required":false,"description":"Source filter: account, server, website"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_preferences","description":"Get notification preferences.","method":"GET","path_template":"/notifications/preferences","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"email":{"all_enabled":"boolean","categories":"array of {key, label, icon, enabled, types: [{key, label, description, enabled}]}"},"push":{"all_enabled":"boolean","categories":"array of {key, label, icon, enabled, types: [{key, label, description, enabled}]}"},"has_push_devices":"boolean","get_updates":"boolean"}}},{"name":"update_preferences","description":"Update notification preferences.","method":"PUT","path_template":"/notifications/preferences","path_params":[],"body_params":[{"name":"email","type":"object","required":true,"description":"Email preferences (all_enabled, categories, types)"},{"name":"push","type":"object","required":true,"description":"Push preferences (all_enabled, categories, types)"},{"name":"get_updates","type":"boolean","required":true,"description":"Receive product updates"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"account_profile","scope":"account:profile","description":"Manage your account profile, contacts, transactions, and billing information.","actions":[{"name":"get_profile","description":"Get your account profile information including name, email, company details, and contact information with readable names.","method":"GET","path_template":"/profile","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.id":"integer","data.name":"string","data.email":"string","data.company_name":"string|null","data.company_id":"string|null","data.phone":"string|null","data.phone_prefix":"string|null","data.phone_prefix_country":"string|null","data.country":"string|null","data.country_code":"string|null","data.profile_photo_url":"string|null","data.invoice_emails":"array|null","data.balance":"float","data.currency":"string","data.email_verified":"boolean","data.two_factor_enabled":"boolean","data.created_at":"string"}},{"name":"list_transactions","description":"Get a paginated list of your billing transactions including payment method details and line items.","method":"GET","path_template":"/transactions","path_params":[],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number for pagination"},{"name":"per_page","type":"integer","required":false,"description":"Number of items per page (max 100)"},{"name":"sort_by","type":"string","required":false,"description":"Column to sort by"},{"name":"sort_order","type":"string","required":false,"description":"Sort direction: asc or desc"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].transaction_id":"string|null","data[].amount":"float","data[].currency":"string","data[].status":"string","data[].payment_method":"object|null","data[].payment_method.id":"integer","data[].payment_method.type":"string","data[].payment_method.last_digits":"string|null","data[].payment_method.is_default":"boolean","data[].items":"array","data[].items[].id":"integer","data[].items[].type":"string|null","data[].items[].description":"string|null","data[].items[].quantity":"float|null","data[].items[].unit_price":"float|null","data[].items[].total_amount":"float|null","data[].created_at":"string","meta":"object"}},{"name":"get_info","description":"Get billing summary information including next charge amount, overdue charges, balance, and upcoming charges per server.","method":"GET","path_template":"/payments/info","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.next_charge":"float","data.overdue_charge":"float","data.additional_charges":"float","data.balance":"float","data.currency":"string","data.upcoming_charges":"array","data.upcoming_charges[].date":"string","data.upcoming_charges[].total":"float","data.upcoming_charges[].servers":"array","data.has_overdue":"boolean","data.server_count":"integer"}},{"name":"get_login_history","description":"Get a paginated list of your account login history including IP addresses, user agents, and timestamps.","method":"GET","path_template":"/login-history","path_params":[],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number for pagination"},{"name":"per_page","type":"integer","required":false,"description":"Number of items per page (max 100)"},{"name":"sort_by","type":"string","required":false,"description":"Column to sort by"},{"name":"sort_order","type":"string","required":false,"description":"Sort direction: asc or desc"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].ip_address":"string|null","data[].user_agent":"string|null","data[].status":"string|null","data[].failure_reason":"string|null","data[].created_at":"string","meta":"object"}},{"name":"list_contacts","description":"Get a paginated list of your account contacts.","method":"GET","path_template":"/contacts","path_params":[],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number for pagination"},{"name":"per_page","type":"integer","required":false,"description":"Number of items per page (max 100)"},{"name":"sort_by","type":"string","required":false,"description":"Column to sort by"},{"name":"sort_order","type":"string","required":false,"description":"Sort direction: asc or desc"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].name":"string","data[].email":"string","data[].phone":"string|null","data[].phone_prefix":"string|null","data[].role":"string|null","data[].created_at":"string","meta":"object"}},{"name":"create_contacts","description":"Add a new contact to your account.","method":"POST","path_template":"/contacts","path_params":[],"body_params":[{"name":"name","type":"string","required":true,"description":"Contact name"},{"name":"email","type":"string","required":true,"description":"Contact email address"},{"name":"phone_prefix_id","type":"integer","required":false,"description":"Phone prefix ID"},{"name":"phone","type":"string","required":false,"description":"Phone number"},{"name":"role","type":"string","required":false,"description":"Contact role"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.id":"integer","data.name":"string","data.email":"string","data.phone":"string|null","data.phone_prefix":"string|null","data.role":"string|null","data.created_at":"string"}},{"name":"update_contacts","description":"Update an existing contact.","method":"PUT","path_template":"/contacts/{contactId}","path_params":[{"name":"contactId","type":"integer","required":true,"description":"Contact ID (URL parameter)"}],"body_params":[{"name":"name","type":"string","required":true,"description":"Contact name"},{"name":"email","type":"string","required":true,"description":"Contact email address"},{"name":"phone_prefix_id","type":"integer","required":false,"description":"Phone prefix ID"},{"name":"phone","type":"string","required":false,"description":"Phone number"},{"name":"role","type":"string","required":false,"description":"Contact role"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.id":"integer","data.name":"string","data.email":"string","data.phone":"string|null","data.phone_prefix":"string|null","data.role":"string|null","data.created_at":"string"}},{"name":"delete_contacts","description":"DESTRUCTIVE - Delete multiple contacts from your account.","method":"DELETE","path_template":"/contacts","path_params":[],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of contact IDs to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_profile","description":"Update client profile. The account email cannot be changed via the API \u2014 contact support if you need to change it.","method":"PUT","path_template":"/profile","path_params":[],"body_params":[{"name":"name","type":"string","required":true,"description":"Full name"},{"name":"company_name","type":"string","required":false,"description":"Company name"},{"name":"company_id","type":"string","required":false,"description":"Company ID"},{"name":"country_id","type":"integer","required":true,"description":"Country ID"},{"name":"phone_prefix_id","type":"integer","required":true,"description":"Phone prefix country ID"},{"name":"phone","type":"string","required":true,"description":"Phone number"},{"name":"profile_photo","type":"file","required":false,"description":"Profile photo (image upload, max 2MB)"},{"name":"invoice_emails","type":"array","required":false,"description":"Additional email addresses for invoices (max 5)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":{"id":"integer","name":"string","email":"string","company_name":"string|null","company_id":"string|null","phone":"string|null","phone_prefix":"string|null","phone_prefix_country":"string|null","country":"string|null","country_code":"string|null","profile_photo_url":"string|null","invoice_emails":"array|null"}}},{"name":"update_password","description":"Change client password. Throttled to 5 requests per minute. Note: panel sessions on other browsers/devices for this client are invalidated on their next request. The API credential used for this call (and any other API credentials) is NOT affected; rotate those separately if needed.","method":"PUT","path_template":"/profile/password","path_params":[],"body_params":[{"name":"current_password","type":"string","required":true,"description":"Current password"},{"name":"password","type":"string","required":true,"description":"New password (min 8 chars, mixed case, numbers, symbols)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_qr_code","description":"Generate a new TOTP secret and otpauth:// URI for 2FA setup. Returns the raw otpauth:// string \u2014 NOT a base64 image. API clients render the QR code client-side from this URI. Throttled to 10 requests per minute.","method":"GET","path_template":"/profile/2fa/qr-code","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.secret":"string","data.qr_code_url":"string"}},{"name":"enable_2fa","description":"Enable 2FA by proving the client has registered the secret in their authenticator app (submits the current TOTP code). Sends an email notification on success. Throttled to 10 requests per minute.","method":"PUT","path_template":"/profile/2fa/enable","path_params":[],"body_params":[{"name":"secret","type":"string","required":true,"description":"The secret returned by /profile/2fa/qr-code"},{"name":"code","type":"string","required":true,"description":"Current 6-digit TOTP code from the authenticator"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"disable_2fa","description":"DESTRUCTIVE - Disable 2FA. Requires both the account password and a current TOTP code. Throttled to 10 requests per minute.","method":"PUT","path_template":"/profile/2fa/disable","path_params":[],"body_params":[{"name":"password","type":"string","required":true,"description":"Current account password"},{"name":"code","type":"string","required":true,"description":"Current 6-digit TOTP code"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_announcements","description":"Paginated list of platform-wide announcements. Announcements are global (not client-scoped). Stored attachment IDs are auto-hydrated into file details by the model's toArray() method \u2014 the `attachments` field returns full metadata, not raw IDs.","method":"GET","path_template":"/announcements","path_params":[],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page (max 100)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].title":"string","data[].description":"string|null","data[].content":"string|null","data[].attachments":"array","data[].created_at":"string","meta":"object"}},{"name":"create_resend_verification","description":"Resend the email-verification link to the authenticated client's email. Returns 400 if already verified. Throttled to 5 requests per minute.","method":"POST","path_template":"/profile/email/resend-verification","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_push_devices","description":"Register a mobile push device token. If the same device_token is registered to another client (device transferred), that row is removed before the upsert so only one client owns the token. Throttled to 30 requests per minute.","method":"POST","path_template":"/profile/push-devices","path_params":[],"body_params":[{"name":"device_token","type":"string","required":true,"description":"Platform-provided device token (max 255 chars)"},{"name":"platform","type":"string","required":true,"description":"One of: ios, android"},{"name":"device_name","type":"string","required":false,"description":"Human-readable device label (max 255 chars)"},{"name":"app_version","type":"string","required":false,"description":"App version string (max 50 chars)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_push_devices","description":"DESTRUCTIVE - Mark a push device inactive (logical unregister \u2014 the row is kept so re-registration later is cheap). Throttled to 30 requests per minute.","method":"DELETE","path_template":"/profile/push-devices","path_params":[],"body_params":[{"name":"device_token","type":"string","required":true,"description":"Platform-provided device token (max 255 chars)"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"account_sharing","scope":"account:sharing","description":"Grant other clients access to your servers or websites, and list resources that have been shared with you.","actions":[{"name":"list_permissions","description":"List permissions you have granted to others (owner side).","method":"GET","path_template":"/permissions","path_params":[],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page (max 100)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].invitee_email":"string","data[].invitee_name":"string|null","data[].status":"string","data[].scope":"string","data[].scope_label":"string","data[].scope_summary":"string","data[].permission_type":"string","data[].resources":"array","data[].time_remaining":"string|null","data[].approval_url":"string|null","data[].token_expires_at":"string|null","data[].created_at":"string","data[].updated_at":"string","meta":"object"}},{"name":"create_permissions","description":"Create a new permission and email the invitee. When the invitee already has an account and activate_immediately=true, the permission activates without requiring approval. Throttled to 10/min.","method":"POST","path_template":"/permissions","path_params":[],"body_params":[{"name":"invitee_email","type":"string","required":true,"description":"Email of the user being granted access (cannot be your own email)"},{"name":"invitee_name","type":"string","required":false,"description":"Display name for the invitee"},{"name":"scope","type":"string","required":true,"description":"One of: anything, servers_all, websites_all, servers_specific, websites_specific"},{"name":"permission_type","type":"string","required":true,"description":"Access level: full or read_only"},{"name":"server_ids","type":"array","required":false,"description":"Required when scope=servers_specific (array of server IDs you own)"},{"name":"website_ids","type":"array","required":false,"description":"Required when scope=websites_specific (array of website IDs you own)"},{"name":"server_permission_types","type":"object","required":false,"description":"Per-server override map: { serverId: 'full'|'read_only' }"},{"name":"website_permission_types","type":"object","required":false,"description":"Per-website override map: { websiteId: 'full'|'read_only' }"},{"name":"activate_immediately","type":"boolean","required":false,"description":"When true + invitee is already a client, skip the email approval step"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object"}},{"name":"update_permissions","description":"Update an active permission's scope, permission_type, or specific resources. Email cannot be changed.","method":"PUT","path_template":"/permissions/{permissionId}","path_params":[{"name":"permissionId","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"invitee_email","type":"string","required":true,"description":"Must match the permission's existing email"},{"name":"invitee_name","type":"string","required":false,"description":"Display name for the invitee"},{"name":"scope","type":"string","required":true,"description":"One of: anything, servers_all, websites_all, servers_specific, websites_specific"},{"name":"permission_type","type":"string","required":true,"description":"Access level: full or read_only"},{"name":"server_ids","type":"array","required":false,"description":"Required when scope=servers_specific"},{"name":"website_ids","type":"array","required":false,"description":"Required when scope=websites_specific"},{"name":"server_permission_types","type":"object","required":false,"description":"Per-server override map"},{"name":"website_permission_types","type":"object","required":false,"description":"Per-website override map"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object"}},{"name":"delete_permissions","description":"DESTRUCTIVE - Delete one or more permissions you own. Invitees lose access immediately.","method":"DELETE","path_template":"/permissions","path_params":[],"body_params":[{"name":"ids","type":"array","required":true,"description":"Permission IDs to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_resend_approval","description":"Re-email the approval link for a permission still in pending status. Throttled to 5/min.","method":"POST","path_template":"/permissions/{permissionId}/resend-approval","path_params":[{"name":"permissionId","type":"string","required":true,"description":"URL parameter"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_available_servers","description":"Option-list of your own servers suitable for picking in a permission's server_ids. Returns up to 25, filterable by search query.","method":"GET","path_template":"/permissions/available-servers","path_params":[],"body_params":[{"name":"search","type":"string","required":false,"description":"Substring match on server name, hostname, or IPv4"},{"name":"exclude_ids","type":"string","required":false,"description":"Comma-separated server IDs to omit"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].label":"string","data[].hostname":"string|null","data[].ipv4":"string|null"}},{"name":"list_available_websites","description":"Option-list of your own websites suitable for picking in a permission's website_ids. Returns up to 25, filterable by search query.","method":"GET","path_template":"/permissions/available-websites","path_params":[],"body_params":[{"name":"search","type":"string","required":false,"description":"Substring match on website name or domain"},{"name":"exclude_ids","type":"string","required":false,"description":"Comma-separated website IDs to omit"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].label":"string","data[].name":"string|null","data[].domain":"string|null"}},{"name":"list_servers","description":"List servers that OTHER clients have shared with you (invitee side). Includes the owner's public profile and your permission type on each resource.","method":"GET","path_template":"/shared/servers","path_params":[],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page (max 100)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].hostname":"string|null","data[].name":"string|null","data[].ipv4":"string|null","data[].ipv6":"string|null","data[].cluster":"string|null","data[].status":"string|null","data[].shared_by":"object|null","data[].shared_by.id":"integer","data[].shared_by.name":"string","data[].shared_by.email":"string","data[].permission_type":"string","meta":"object"}},{"name":"list_websites","description":"List websites that OTHER clients have shared with you. Optional server_id filter limits to one owner's server.","method":"GET","path_template":"/shared/websites","path_params":[],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page (max 100)"},{"name":"server_id","type":"integer","required":false,"description":"Filter to websites on a specific server"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].name":"string|null","data[].domain":"string|null","data[].server_id":"integer","data[].server_name":"string|null","data[].status":"string","data[].shared_by":"object|null","data[].permission_type":"string","meta":"object"}}]},{"name":"proper_analysis","scope":"proper_analysis","description":"Manage Proper Analysis website health scanning, subscriptions, SSH credentials, and automated fixes.","actions":[{"name":"get_dashboard","description":"Get a summary of your Proper Analysis dashboard including plan info, site counts, average score, and total issues.","method":"GET","path_template":"/proper-analysis/dashboard","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.plan":"string","data.plan_label":"string","data.site_limit":"integer|null","data.total_sites":"integer","data.hosting_sites":"integer","data.external_sites":"integer","data.average_score":"integer|null","data.total_issues":"integer","data.subscription":"object|null"}},{"name":"list_websites","description":"List all websites in your Proper Analysis dashboard with their latest scan results.","method":"GET","path_template":"/proper-analysis/websites","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].url":"string","data[].type":"string","data[].effective_plan":"string","data[].is_locked":"boolean","data[].is_hosting":"boolean","data[].scan_frequency":"string|null","data[].email_notifications":"boolean","data[].last_scan":"object|null","data[].created_at":"string"}},{"name":"create_websites","description":"Add an external website to your Proper Analysis dashboard. A scan is automatically started.","method":"POST","path_template":"/proper-analysis/websites","path_params":[],"body_params":[{"name":"url","type":"string","required":true,"description":"The website URL to add (must be a valid URL)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data.id":"integer","data.url":"string"}},{"name":"get_websites","description":"Get detailed information about a specific website including its latest scan results and findings.","method":"GET","path_template":"/proper-analysis/websites/{siteId}","path_params":[{"name":"siteId","type":"integer","required":true,"description":"Proper Analysis site ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.id":"integer","data.url":"string","data.type":"string","data.effective_plan":"string","data.is_locked":"boolean","data.is_hosting":"boolean","data.has_ssh_credentials":"boolean","data.ssh_status":"string|null","data.scan_frequency":"string|null","data.email_notifications":"boolean","data.scan":"object|null","data.scan.id":"integer","data.scan.score":"integer","data.scan.issues_count":"integer","data.scan.status":"string","data.scan.results":"array","data.scan.scanned_at":"string","data.created_at":"string"}},{"name":"delete_websites","description":"DESTRUCTIVE - Remove an external website from your dashboard. Hosted websites cannot be removed.","method":"DELETE","path_template":"/proper-analysis/websites/{siteId}","path_params":[{"name":"siteId","type":"integer","required":true,"description":"Proper Analysis site ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_rescan","description":"Trigger a new scan for a website. Responds 202 Accepted with `success: true` and the scan's id. If a scan is already pending/running for this site, the existing scan's id is returned instead of queuing a duplicate \u2014 safe to retry on timeout without stacking scans.","method":"POST","path_template":"/proper-analysis/websites/{siteId}/rescan","path_params":[{"name":"siteId","type":"integer","required":true,"description":"Proper Analysis site ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","scan_id":"integer"}},{"name":"get_history","description":"Get scan history for a website. The number of history entries depends on your plan.","method":"GET","path_template":"/proper-analysis/websites/{siteId}/history","path_params":[{"name":"siteId","type":"integer","required":true,"description":"Proper Analysis site ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].score":"integer","data[].issues_count":"integer","data[].scanned_at":"string"}},{"name":"create_import_hosted","description":"Import all hosted websites from your servers into Proper Analysis. Already-imported sites are skipped.","method":"POST","path_template":"/proper-analysis/import-hosted","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data.imported":"integer"}},{"name":"update_notifications","description":"Enable or disable email notifications for a specific website.","method":"PUT","path_template":"/proper-analysis/websites/{siteId}/notifications","path_params":[{"name":"siteId","type":"integer","required":true,"description":"Proper Analysis site ID (URL parameter)"}],"body_params":[{"name":"enabled","type":"boolean","required":true,"description":"Whether to enable (true) or disable (false) email notifications"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_badge_settings","description":"Configure badge display settings for a website. Auto-inject is only available for hosted websites.","method":"PUT","path_template":"/proper-analysis/websites/{siteId}/badge-settings","path_params":[{"name":"siteId","type":"integer","required":true,"description":"Proper Analysis site ID (URL parameter)"}],"body_params":[{"name":"auto_inject","type":"boolean","required":false,"description":"Enable automatic badge injection on the live website (hosted sites only). Default: false."},{"name":"position","type":"string","required":false,"description":"Badge position when auto_inject is true. Values: bottom-right, bottom-left, footer."},{"name":"style","type":"string","required":false,"description":"Badge visual style. Values: minimal, full, dark, light. Default: minimal."}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_bulk","description":"Bulk enable or disable email notifications for all or specific websites.","method":"POST","path_template":"/proper-analysis/notifications/bulk","path_params":[],"body_params":[{"name":"action","type":"string","required":true,"description":"Action to perform: 'enable' or 'disable'"},{"name":"site_ids","type":"array","required":false,"description":"Array of site IDs to update. If omitted, applies to all sites."}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data.updated":"integer"}},{"name":"get_subscription","description":"Get your current Proper Analysis subscription and available plans with pricing in your currency.","method":"GET","path_template":"/proper-analysis/subscription","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.plans":"array","data.plans[].key":"string","data.plans[].label":"string","data.plans[].price":"number","data.plans[].currency":"string","data.plans[].site_limit":"integer|null","data.plans[].scan_frequency":"string|null","data.plans[].automated_fixes":"boolean","data.plans[].is_current":"boolean","data.subscription":"object|null"}},{"name":"create_calculate_price","description":"Calculate the price for subscribing to or changing a Proper Analysis plan. Returns pricing breakdown, proration for upgrades, and a hash required for the subscribe endpoint.","method":"POST","path_template":"/proper-analysis/subscription/calculate-price","path_params":[],"body_params":[{"name":"plan","type":"string","required":true,"description":"Plan key: 'watch' or 'manage'"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.plan":"string","data.base_price":"number","data.prorated_price":"number","data.remaining_days":"integer","data.days_in_month":"integer","data.vat_rate":"number","data.vat_amount":"number","data.total":"number","data.upgrade_credit":"number","data.currency":"string","data.hash":"string","data.is_upgrade":"boolean","data.is_downgrade":"boolean","data.current_plan":"string","data.next_cycle_at":"string|null","data.pending_switch_date":"string|null"}},{"name":"create_subscription","description":"Create or change your Proper Analysis subscription plan. Requires a hash from calculate-price. Upgrades are charged immediately (prorated). Downgrades are scheduled for the next billing cycle. Returns 422 with error_code 'hash_expired' if the hash is invalid/expired, or 'hash_consumed' if it was already used (both require calling calculate-price again).","method":"POST","path_template":"/proper-analysis/subscription","path_params":[],"body_params":[{"name":"plan","type":"string","required":true,"description":"Plan key: 'watch' or 'manage'"},{"name":"hash","type":"string","required":true,"description":"Price calculation hash from the calculate-price endpoint"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data.subscription.id":"integer","data.subscription.plan":"string","data.subscription.status":"string","data.subscription.amount":"number","data.subscription.currency":"string","data.subscription.pending_plan":"string|null","data.subscription.pending_plan_amount":"number|null","data.subscription.next_cycle_at":"string|null","data.subscription.started_at":"string|null"}},{"name":"cancel","description":"DESTRUCTIVE - Cancel your active Proper Analysis subscription. Access continues until the end of the billing period.","method":"POST","path_template":"/proper-analysis/subscription/cancel","path_params":[],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data.expires_at":"string"}},{"name":"cancel_downgrade","description":"Cancel a scheduled plan downgrade. The current plan will continue without switching.","method":"POST","path_template":"/proper-analysis/subscription/cancel-downgrade","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_reactivate","description":"Reactivate a cancelled subscription that has not yet expired. No charge - the current billing period is still paid for.","method":"POST","path_template":"/proper-analysis/subscription/reactivate","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data.subscription.id":"integer","data.subscription.plan":"string","data.subscription.status":"string","data.subscription.amount":"number","data.subscription.currency":"string","data.subscription.pending_plan":"string|null","data.subscription.pending_plan_amount":"number|null","data.subscription.next_cycle_at":"string|null","data.subscription.started_at":"string|null"}},{"name":"create_ssh_credentials","description":"Store SSH credentials for an external website. Required for automated fixes on non-hosted sites.","method":"POST","path_template":"/proper-analysis/websites/{siteId}/ssh-credentials","path_params":[{"name":"siteId","type":"integer","required":true,"description":"Proper Analysis site ID (URL parameter)"}],"body_params":[{"name":"host","type":"string","required":true,"description":"SSH host address"},{"name":"port","type":"integer","required":false,"description":"SSH port (default: 22)"},{"name":"username","type":"string","required":true,"description":"SSH username"},{"name":"password","type":"string","required":false,"description":"SSH password (either password or private_key required)"},{"name":"private_key","type":"string","required":false,"description":"SSH private key (either password or private_key required)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data.status":"string"}},{"name":"create_test","description":"Test the SSH connection for a website using stored credentials.","method":"POST","path_template":"/proper-analysis/websites/{siteId}/ssh-credentials/test","path_params":[{"name":"siteId","type":"integer","required":true,"description":"Proper Analysis site ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data.status":"string"}},{"name":"delete_ssh_credentials","description":"DESTRUCTIVE - Remove SSH credentials for a website.","method":"DELETE","path_template":"/proper-analysis/websites/{siteId}/ssh-credentials","path_params":[{"name":"siteId","type":"integer","required":true,"description":"Proper Analysis site ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_fix","description":"Auto-fix a single issue on a website. Requires Manage plan or hosting. External sites require SSH credentials.","method":"POST","path_template":"/proper-analysis/websites/{siteId}/fix","path_params":[{"name":"siteId","type":"integer","required":true,"description":"Proper Analysis site ID (URL parameter)"}],"body_params":[{"name":"check_key","type":"string","required":true,"description":"The check key to fix (use fixable-checks endpoint to see available fixes)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_fix_all","description":"Auto-fix all fixable issues on a website.","method":"POST","path_template":"/proper-analysis/websites/{siteId}/fix-all","path_params":[{"name":"siteId","type":"integer","required":true,"description":"Proper Analysis site ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data.count":"integer","data.checks":"array"}},{"name":"get_fix_log","description":"Get the fix history log for a website showing all attempted fixes and their results.","method":"GET","path_template":"/proper-analysis/websites/{siteId}/fix-log","path_params":[{"name":"siteId","type":"integer","required":true,"description":"Proper Analysis site ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].check_key":"string","data[].fix_type":"string","data[].status":"string","data[].details":"string|null","data[].error_message":"string|null","data[].created_at":"string"}},{"name":"list_fixable_checks","description":"Get a list of check keys that can be auto-fixed for a specific website.","method":"GET","path_template":"/proper-analysis/websites/{siteId}/fixable-checks","path_params":[{"name":"siteId","type":"integer","required":true,"description":"Proper Analysis site ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array"}}]},{"name":"servers","scope":"servers","description":"Manage your servers including power controls, monitoring, blocked IPs, IP lists, and MySQL details.","actions":[{"name":"list_servers","description":"Get a paginated list of your servers with cluster, IP, ISP, and location information.","method":"GET","path_template":"/servers","path_params":[],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number for pagination"},{"name":"per_page","type":"integer","required":false,"description":"Number of items per page (max 100)"},{"name":"sort_by","type":"string","required":false,"description":"Column to sort by"},{"name":"sort_order","type":"string","required":false,"description":"Sort direction: asc or desc"},{"name":"search","type":"string","required":false,"description":"Search servers by name, hostname, or IP address"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].name":"string","data[].status":"string","data[].price":"float","data[].currency":"string","data[].vat_rate":"float","data[].next_cycle_at":"string|null","data[].overdue":"boolean","data[].server":"object|null","data[].server.id":"integer","data[].server.ipv4":"object|null","data[].server.ipv6":"object|null","data[].server.cluster":"object|null","data[].server.isp":"object|null","data[].server.city":"object|null","meta":"object"}},{"name":"get_manage","description":"Get detailed information about a specific server.","method":"GET","path_template":"/servers/{server}/manage","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.id":"integer","data.hostname":"string|null","data.vm_status":"string","data.is_available":"boolean","data.is_owner":"boolean","data.permission_type":"string|null","data.unread_notifications":"integer","data.has_issues":"boolean","data.has_critical_issues":"boolean","data.ipv4":"object|null","data.ipv6":"object|null","data.cluster":"object|null"}},{"name":"create_start","description":"Start a stopped server.","method":"POST","path_template":"/servers/start/{server}","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_reboot","description":"Reboot a running server.","method":"POST","path_template":"/servers/reboot/{server}","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_shutdown","description":"Shutdown a running server.","method":"POST","path_template":"/servers/shutdown/{server}","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_status","description":"Get the current status of a server (running, stopped, etc.).","method":"GET","path_template":"/servers/status/{server}","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.status":"string"}},{"name":"get_usage","description":"Get current resource usage of a server (CPU, memory, disk).","method":"GET","path_template":"/servers/usage/{server}","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.current":"object","data.current.cpu":"float|null","data.current.memory":"integer|null","data.current.disk":"integer|null","data.limits":"object","data.limits.cpu":"integer|null","data.limits.memory":"integer|null","data.limits.disk":"integer|null"}},{"name":"list_resources","description":"Get server resource allocation and usage details.","method":"GET","path_template":"/servers/{server}/resources","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.websites":"array","data.websites[].id":"integer|string","data.websites[].domain":"string","data.websites[].username":"string","data.websites[].cpu":"float","data.websites[].memory":"float","data.websites[].disk":"float","data.websites[].cpu_limit":"float","data.websites[].memory_limit":"float","data.websites[].disk_limit":"float"}},{"name":"get_history","description":"Get historical resource usage data for graphing.","method":"GET","path_template":"/servers/{server}/resources/history","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[{"name":"period","type":"string","required":false,"description":"Time period for history"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.timeframe":"string","data.type":"string","data.history":"array","data.history[].time":"integer|null","data.history[].cpu":"float|null","data.history[].cpu_cores":"integer|null","data.history[].memory":"integer|null","data.history[].memory_max":"integer|null","data.history[].disk":"integer|null","data.history[].disk_max":"integer|null","data.history[].net_in":"float|null","data.history[].net_out":"float|null","data.history[].disk_read":"float|null","data.history[].disk_write":"float|null"}},{"name":"get_resources_history","description":"Get server resources history.","method":"GET","path_template":"/servers/resources-history/{server}","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.timeframe":"string","data.type":"string","data.history":"array","data.history[].time":"integer|null","data.history[].cpu":"float|null","data.history[].cpu_cores":"integer|null","data.history[].memory":"integer|null","data.history[].memory_max":"integer|null","data.history[].disk":"integer|null","data.history[].disk_max":"integer|null","data.history[].net_in":"float|null","data.history[].net_out":"float|null","data.history[].disk_read":"float|null","data.history[].disk_write":"float|null"}},{"name":"enable_safe_mode","description":"Get server safe mode status and settings.","method":"GET","path_template":"/servers/{server}/safe-mode","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.enabled":"boolean","data.whitelist":"array"}},{"name":"servers_enable_safe_mode","description":"DESTRUCTIVE - Update server safe mode settings.","method":"POST","path_template":"/servers/{server}/safe-mode","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[{"name":"enabled","type":"boolean","required":true,"description":"Enable or disable safe mode"},{"name":"whitelist","type":"array","required":false,"description":"Array of whitelisted IPs/CIDRs"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_blocked_ips","description":"Get a list of blocked IP addresses for a server.","method":"GET","path_template":"/servers/blocked-ips/{server}","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number for pagination"},{"name":"per_page","type":"integer","required":false,"description":"Number of items per page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"string","data[].ip":"string","data[].blocked_at":"string|null","meta":"object"}},{"name":"create_blocked_ips","description":"Block an IP address on the server firewall.","method":"POST","path_template":"/servers/blocked-ips/{server}","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[{"name":"ip","type":"string","required":true,"description":"IP address to block"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_blocked_ips","description":"DESTRUCTIVE - Unblock IP addresses on the server firewall.","method":"DELETE","path_template":"/servers/blocked-ips/{server}","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of IP addresses to unblock"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_ips_lists","description":"Get IP lists configured on the server.","method":"GET","path_template":"/servers/ips-lists/{server}","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[{"name":"default","type":"boolean","required":false,"description":"Include default lists"},{"name":"page","type":"integer","required":false,"description":"Page number for pagination"},{"name":"per_page","type":"integer","required":false,"description":"Number of items per page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"string","data[].name":"string","meta":"object"}},{"name":"create_ips_lists","description":"Create a new IP list on the server.","method":"POST","path_template":"/servers/ips-lists/{server}","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[{"name":"name","type":"string","required":true,"description":"Name for the IP list"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.id":"string","data.name":"string"}},{"name":"update_ips_lists","description":"Rename an IP list.","method":"PUT","path_template":"/servers/ips-lists/{server}/{name}","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"},{"name":"name","type":"string","required":true,"description":"New name for the list (body)"}],"body_params":[{"name":"currentName","type":"string","required":true,"description":"Current list name (URL parameter)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.id":"string","data.name":"string"}},{"name":"delete_ips_lists","description":"DESTRUCTIVE - Delete IP lists from the server.","method":"DELETE","path_template":"/servers/ips-lists/{server}","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of list names to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_ips","description":"Get IP addresses in a specific IP list.","method":"GET","path_template":"/servers/ips-lists/ips/{server}/{ipsList}","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"},{"name":"ipsList","type":"string","required":true,"description":"IP list name (URL parameter)"}],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number for pagination"},{"name":"per_page","type":"integer","required":false,"description":"Number of items per page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"string","data[].ip":"string","meta":"object"}},{"name":"create_ips","description":"Add an IP address to an IP list.","method":"POST","path_template":"/servers/ips-lists/ips/{server}/{ipsList}","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"},{"name":"ipsList","type":"string","required":true,"description":"IP list name (URL parameter)"}],"body_params":[{"name":"ip","type":"string","required":true,"description":"IP address to add"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.id":"string","data.ip":"string"}},{"name":"update_ips","description":"Update an IP address in an IP list.","method":"PUT","path_template":"/servers/ips-lists/ips/{server}/{ipsList}/{ip}","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"},{"name":"ipsList","type":"string","required":true,"description":"IP list name (URL parameter)"},{"name":"ip","type":"string","required":true,"description":"New IP address (body)"}],"body_params":[{"name":"currentIp","type":"string","required":true,"description":"Current IP (URL parameter)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.id":"string","data.ip":"string"}},{"name":"delete_ips","description":"DESTRUCTIVE - Remove IPs from an IP list.","method":"DELETE","path_template":"/servers/ips-lists/ips/{server}/{ipsList}","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"},{"name":"ipsList","type":"string","required":true,"description":"IP list name (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of IPs to remove"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_monitor","description":"Get server monitoring settings.","method":"GET","path_template":"/servers/monitor/{server}","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.enabled":"boolean","data.emails":"array"}},{"name":"create_monitor","description":"Update server monitoring settings.","method":"POST","path_template":"/servers/monitor/{server}","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[{"name":"enable","type":"boolean","required":true,"description":"Enable or disable monitoring"},{"name":"emails","type":"array","required":false,"description":"Array of email addresses for alerts"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_mysql_details","description":"Get MySQL server details including connection information.","method":"GET","path_template":"/servers/mysql-details/{server}","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.host":"string|null","data.remote_host":"string|null","data.port":"integer","data.socket_path":"string|null"}},{"name":"create_servers","description":"Create a new server. Requires a valid price calculation hash obtained from the generate-price-hash endpoint.","method":"POST","path_template":"/servers","path_params":[],"body_params":[{"name":"name","type":"string","required":true,"description":"Server name (max 255 characters)"},{"name":"cpu","type":"integer","required":true,"description":"Number of CPU cores"},{"name":"memory","type":"integer","required":true,"description":"Memory in GB"},{"name":"disk","type":"integer","required":true,"description":"Disk space in GB"},{"name":"country_id","type":"integer","required":false,"description":"Country ID for server location (must have active clusters)"},{"name":"frontend_calculated_price","type":"float","required":true,"description":"Price calculated on the client side for verification"},{"name":"price_calculation_hash","type":"string","required":true,"description":"Hash from generate-price-hash endpoint"},{"name":"use_balance","type":"boolean","required":false,"description":"Whether to apply account balance to the charge"},{"name":"payment_method_id","type":"integer","required":false,"description":"Payment method ID. Optional if the client has a default payment method on file \u2014 backend auto-falls back to it as a safety net. Required only when no method exists and immediate charge > 0."},{"name":"coupon_code","type":"string","required":false,"description":"Coupon code to apply (max 30 characters)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data.name":"string","data.status":"string","data.task_id":"integer","data.price":"float","data.currency":"string","data.immediate_charge":"float","data.balance_applied":"float \u2014 best-effort estimate of balance that will be applied to this charge; the worker re-reads live balance under a row lock and the final amount may differ if a concurrent order drained balance between this call and the job running"}},{"name":"cancel","description":"DESTRUCTIVE - Cancel a server. Can cancel immediately or schedule cancellation at end of billing cycle.","method":"POST","path_template":"/servers/{clientServerId}/cancel","path_params":[{"name":"clientServerId","type":"integer","required":true,"description":"Client server ID (URL parameter)"}],"body_params":[{"name":"cancel_immediately","type":"boolean","required":true,"description":"If true, cancels immediately. If false, schedules cancellation at end of billing cycle."}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"reactivate","description":"Reverse a scheduled server cancellation. Only applicable to servers scheduled for end-of-cycle cancellation.","method":"POST","path_template":"/servers/{clientServerId}/cancel-cancellation","path_params":[{"name":"clientServerId","type":"integer","required":true,"description":"Client server ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_change_ip","description":"Change the server's IP address. Limited to one change per day per server.","method":"POST","path_template":"/servers/{server}/change-ip","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[{"name":"type","type":"integer","required":true,"description":"IP version to change: 4 for IPv4, 6 for IPv6"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_servers","description":"Update server settings including name, timezone, SEO block, htaccess, MySQL hosts, Redis remote, and safe mode.","method":"PUT","path_template":"/servers/{server}","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[{"name":"name","type":"string","required":true,"description":"Server name (max 255 characters)"},{"name":"timezone","type":"string","required":false,"description":"Server timezone (valid PHP timezone identifier)"},{"name":"seo_block","type":"boolean","required":true,"description":"Enable SEO blocking"},{"name":"htaccess","type":"boolean","required":true,"description":"Enable .htaccess support"},{"name":"allow_mysql_hosts","type":"boolean","required":true,"description":"Allow database users to be tied to specific remote IPs (or `%`) as allowed hosts. When enabled, the firewall opens port 3306 only to IPs configured on user grants - if any user has a wildcard host (`%`, hostname, or pattern like `192.168.%.%`), port 3306 stays open to all; if no user has a remote host, port 3306 stays closed even when this is true. Toggling restarts MariaDB (brief connection interruption)."},{"name":"allow_redis_remote","type":"boolean","required":true,"description":"Allow remote Redis access"},{"name":"safe_mode_enabled","type":"boolean","required":false,"description":"Enable safe mode"},{"name":"safe_mode_whitelist","type":"array","required":false,"description":"Array of IP addresses or CIDR ranges to whitelist in safe mode"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_settings","description":"Get the current server settings including timezone, SEO block, htaccess, allow_mysql_hosts (when enabled, the firewall opens port 3306 only to IPs configured on user host grants; falls back to wide-open if any user has a `%`/hostname host; stays closed if no user has a remote host), Redis remote, and safe mode.","method":"GET","path_template":"/servers/{server}/settings","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.timezone":"string|null","data.seo_block":"boolean","data.htaccess":"boolean","data.allow_mysql_hosts":"boolean","data.allow_redis_remote":"boolean","data.safe_mode":"object"}},{"name":"create_recheck_disk_space","description":"Trigger a disk space recheck on the server. Returns the current free disk space and low-disk status.","method":"POST","path_template":"/servers/{server}/recheck-disk-space","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.low_disk_space":"boolean","data.free_disk_mb":"integer"}},{"name":"list_suspend_settings","description":"Get server auto-suspend and notification settings for quota and bandwidth.","method":"GET","path_template":"/servers/{server}/suspend-settings","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.auto_suspend_quota_enabled":"boolean","data.auto_suspend_bandwidth_enabled":"boolean","data.quota_notifications_enabled":"boolean","data.quota_alert_percentage":"integer|null","data.bandwidth_notifications_enabled":"boolean","data.bandwidth_alert_percentage":"integer|null"}},{"name":"create_suspend_settings","description":"Update server auto-suspend and notification settings for quota and bandwidth.","method":"POST","path_template":"/servers/{server}/suspend-settings","path_params":[{"name":"server","type":"integer","required":true,"description":"Server ID (URL parameter)"}],"body_params":[{"name":"auto_suspend_quota_enabled","type":"boolean","required":true,"description":"Enable auto-suspend when quota is exceeded"},{"name":"auto_suspend_bandwidth_enabled","type":"boolean","required":true,"description":"Enable auto-suspend when bandwidth is exceeded"},{"name":"quota_notifications_enabled","type":"boolean","required":true,"description":"Enable quota usage notifications"},{"name":"quota_alert_percentage","type":"integer","required":false,"description":"Quota alert threshold percentage (50-100, required when quota_notifications_enabled is true)"},{"name":"bandwidth_notifications_enabled","type":"boolean","required":true,"description":"Enable bandwidth usage notifications"},{"name":"bandwidth_alert_percentage","type":"integer","required":false,"description":"Bandwidth alert threshold percentage (50-100, required when bandwidth_notifications_enabled is true)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_free_month_check","description":"Check if the current client is eligible for a free month coupon on their first server.","method":"GET","path_template":"/servers/free-month-check","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.eligible":"boolean","data.coupon":"object|null"}},{"name":"create_generate_price_hash","description":"Generate a price calculation hash for secure server pricing. Required before creating a server or calculating prices.","method":"POST","path_template":"/servers/generate-price-hash","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.price_calculation_hash":"string","data.created_at":"string"}},{"name":"create_calculate_price","description":"Calculate server price based on CPU, memory, and disk specifications. Requires a valid price calculation hash.","method":"POST","path_template":"/servers/calculate-price","path_params":[],"body_params":[{"name":"cpu","type":"integer","required":true,"description":"Number of CPU cores"},{"name":"memory","type":"integer","required":true,"description":"Memory in GB"},{"name":"disk","type":"integer","required":true,"description":"Disk space in GB"},{"name":"price_calculation_hash","type":"string","required":true,"description":"Hash from generate-price-hash endpoint"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.calculated_price":"float","data.base_price":"float","data.vat_rate":"float","data.balance":"float","data.use_balance_first":"boolean"}},{"name":"get_activity","description":"Get paginated server activity logs.","method":"GET","path_template":"/servers/{server}/activity","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"search","type":"string","required":false,"description":"Search activity descriptions"},{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page (max 100)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].actor":"object|null \u2014 actor info (type, id, name, email, profile_photo for client; type only for manager; null if no actor)","data[].description":"string \u2014 activity description","data[].display_method":"string \u2014 'set' or 'delete'","data[].created_at":"string \u2014 ISO 8601 timestamp","meta":"object","meta.current_page":"integer","meta.last_page":"integer","meta.per_page":"integer","meta.total":"integer"}},{"name":"list_monitor_events","description":"Get paginated server monitoring events (uptime/downtime events).","method":"GET","path_template":"/servers/{server}/monitor-events","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page (max 100)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer \u2014 sequential event index","data[].event":"string \u2014 event type (e.g., 'up', 'down')","data[].message":"string \u2014 event description","data[].date":"string \u2014 event timestamp","meta":"object","meta.current_page":"integer","meta.last_page":"integer","meta.per_page":"integer","meta.total":"integer"}},{"name":"list_ssl_algos","description":"Get available SSL algorithms for the server.","method":"GET","path_template":"/servers/{server}/ssl-algos","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of strings \u2014 available SSL algorithm names"}},{"name":"get_overview","description":"Get zone overview stats for all websites on the server. Returns status, cache, DDoS, WAF, PHP, antivirus, maintenance, image optimizer, Redis, and accessibility settings per website.","method":"GET","path_template":"/servers/{server}/websites-zone/overview","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].username":"string","data[].domain":"string","data[].status":"string","data[].cache_enable":"boolean","data[].cache_time":"string","data[].ddos_enable":"boolean","data[].ddos_level":"integer","data[].ddos_automode":"boolean","data[].waf_enable":"boolean","data[].php_version":"string","data[].antivirus_realtime":"boolean","data[].antivirus_infected":"integer","data[].maintenance_enable":"boolean","data[].image_optimizer_auto":"boolean","data[].redis_active":"boolean","data[].accessibility_enable":"boolean","meta":"object","meta.total":"integer"}},{"name":"list_all_ids","description":"Get all website IDs for the server.","method":"GET","path_template":"/servers/{server}/websites-zone/all-ids","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.website_ids":"array"}},{"name":"list_defaults","description":"Get default settings for the server. Optionally filter by type.","method":"GET","path_template":"/servers/{server}/websites-zone/defaults","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"type","type":"string","required":false,"description":"Filter by config type: cache, ddos-protection, waf, php, anti-virus, global, accessibility, redis, requests, wp, image-optimizer, ai-crawlers"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object"}},{"name":"update_defaults","description":"Update default settings for the server.","method":"PUT","path_template":"/servers/{server}/websites-zone/defaults","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"type","type":"string","required":true,"description":"Config type: cache, ddos-protection, waf, php, anti-virus, global, accessibility, redis, requests, wp, image-optimizer, ai-crawlers"},{"name":"settings","type":"object","required":true,"description":"Settings object (varies by type)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_default_pages","description":"Get default page configuration for a specific page type.","method":"GET","path_template":"/servers/{server}/websites-zone/default-pages","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"page_type","type":"string","required":true,"description":"Page type: maintenance, suspended, ddos, waf, error_400, error_401, error_402, error_403, error_404, error_405, error_408, error_409, error_413, error_419, error_429, error_500, error_501, error_502, error_503, error_504, error_505"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object"}},{"name":"update_default_pages","description":"Update a default page.","method":"PUT","path_template":"/servers/{server}/websites-zone/default-pages","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"page_type","type":"string","required":true,"description":"Page type: maintenance, suspended, ddos, waf, error_400-error_505"},{"name":"code","type":"string","required":true,"description":"HTML code for the page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_default_pages","description":"DESTRUCTIVE - Restore a default page to the system default.","method":"DELETE","path_template":"/servers/{server}/websites-zone/default-pages","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"page_type","type":"string","required":true,"description":"Page type to restore"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"purge_cache","description":"DESTRUCTIVE - Bulk purge cache for selected websites.","method":"POST","path_template":"/servers/{server}/websites-zone/cache-purge","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"website_ids","type":"array","required":true,"description":"Array of website IDs (or \"all\" for all active websites)"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.success":"array","data.failed":"array","data.failed[].domain":"string","data.failed[].error":"string"}},{"name":"create_cache_settings","description":"Bulk update cache settings for selected websites.","method":"POST","path_template":"/servers/{server}/websites-zone/cache-settings","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"website_ids","type":"array","required":true,"description":"Array of website IDs (or \"all\")"},{"name":"mode","type":"string","required":true,"description":"Cache mode: off, basic, balanced, strict"},{"name":"category_overrides","type":"object","required":false,"description":"Category-specific overrides (boolean values)"},{"name":"cache_time","type":"string","required":false,"description":"Cache duration: 1m, 5m, 10m, 20m, 30m, 1h, 4h, 8h, 12h, 1d, 2d, 3d, 4d, 5d, 6d, 7d, 14d, 21d, 30d"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.success":"array","data.failed":"array","data.failed[].domain":"string","data.failed[].error":"string"}},{"name":"create_ddos_settings","description":"Bulk update DDoS protection settings for selected websites.","method":"POST","path_template":"/servers/{server}/websites-zone/ddos-settings","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"website_ids","type":"array","required":true,"description":"Array of website IDs (or \"all\")"},{"name":"mode","type":"string","required":true,"description":"DDoS mode: off, basic, balanced, strict"},{"name":"level","type":"integer","required":false,"description":"Protection level (1-2)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.success":"array","data.failed":"array","data.failed[].domain":"string","data.failed[].error":"string"}},{"name":"create_waf_settings","description":"Bulk update WAF settings for selected websites.","method":"POST","path_template":"/servers/{server}/websites-zone/waf-settings","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"website_ids","type":"array","required":true,"description":"Array of website IDs (or \"all\")"},{"name":"mode","type":"string","required":true,"description":"WAF mode: off, balanced, strict"},{"name":"category_overrides","type":"object","required":false,"description":"Category-specific overrides (boolean values)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.success":"array","data.failed":"array","data.failed[].domain":"string","data.failed[].error":"string"}},{"name":"create_php_version","description":"Bulk update PHP version for selected websites.","method":"POST","path_template":"/servers/{server}/websites-zone/php-version","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"website_ids","type":"array","required":true,"description":"Array of website IDs (or \"all\")"},{"name":"version","type":"string","required":true,"description":"PHP version (e.g., \"8.2\")"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.success":"array","data.failed":"array","data.failed[].domain":"string","data.failed[].error":"string"}},{"name":"create_antivirus_scan","description":"Bulk start antivirus scan for selected websites.","method":"POST","path_template":"/servers/{server}/websites-zone/antivirus-scan","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"website_ids","type":"array","required":true,"description":"Array of website IDs (or \"all\")"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.success":"array","data.failed":"array","data.failed[].domain":"string","data.failed[].error":"string"}},{"name":"create_antivirus_clean","description":"Bulk clean infected files for selected websites. Finds the most recent infected scan per website and cleans it.","method":"POST","path_template":"/servers/{server}/websites-zone/antivirus-clean","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"website_ids","type":"array","required":true,"description":"Array of website IDs (or \"all\")"},{"name":"backup","type":"boolean","required":false,"description":"Create backup before cleaning (default: true)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.success":"array","data.failed":"array","data.failed[].domain":"string","data.failed[].error":"string","data.skipped":"array"}},{"name":"create_maintenance_mode","description":"Bulk enable/disable maintenance mode for selected websites.","method":"POST","path_template":"/servers/{server}/websites-zone/maintenance-mode","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"website_ids","type":"array","required":true,"description":"Array of website IDs (or \"all\")"},{"name":"enable","type":"boolean","required":true,"description":"Enable or disable maintenance mode"},{"name":"exclude_ips","type":"array","required":false,"description":"IPs to exclude from maintenance mode"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.success":"array","data.failed":"array","data.failed[].domain":"string","data.failed[].error":"string"}},{"name":"create_general_settings","description":"Bulk update general settings for selected websites. Includes SEO, maintenance, WordPress, request headers, CORS, and security settings.","method":"POST","path_template":"/servers/{server}/websites-zone/general-settings","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"website_ids","type":"array","required":true,"description":"Array of website IDs (or \"all\")"},{"name":"seo_block","type":"boolean","required":false,"description":"Block search engine indexing"},{"name":"maintenance_enable","type":"boolean","required":false,"description":"Enable maintenance mode"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.success":"array","data.failed":"array","data.failed[].domain":"string","data.failed[].error":"string"}},{"name":"create_image_optimizer","description":"Bulk update image optimizer settings for selected websites.","method":"POST","path_template":"/servers/{server}/websites-zone/image-optimizer","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"website_ids","type":"array","required":true,"description":"Array of website IDs (or \"all\")"},{"name":"auto_optimize","type":"boolean","required":false,"description":"Enable auto optimization"},{"name":"quality","type":"integer","required":false,"description":"Image quality (1-100)"},{"name":"convert_to_webp","type":"boolean","required":false,"description":"Convert images to WebP format"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.success":"array","data.failed":"array","data.failed[].domain":"string","data.failed[].error":"string"}},{"name":"create_redis","description":"Bulk update Redis settings for selected websites.","method":"POST","path_template":"/servers/{server}/websites-zone/redis","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"website_ids","type":"array","required":true,"description":"Array of website IDs (or \"all\")"},{"name":"active","type":"boolean","required":true,"description":"Enable or disable Redis"},{"name":"maxmemory_policy","type":"string","required":false,"description":"Max memory policy: allkeys-lru, allkeys-lfu, allkeys-random, volatile-lru, volatile-lfu, volatile-random, volatile-ttl, noeviction"},{"name":"appendonly","type":"boolean","required":false,"description":"Enable append-only file persistence"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.success":"array","data.failed":"array","data.failed[].domain":"string","data.failed[].error":"string"}},{"name":"purge_redis","description":"DESTRUCTIVE - Bulk purge Redis cache for selected websites.","method":"POST","path_template":"/servers/{server}/websites-zone/redis-purge","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"website_ids","type":"array","required":true,"description":"Array of website IDs (or \"all\")"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.success":"array","data.failed":"array","data.failed[].domain":"string","data.failed[].error":"string"}},{"name":"create_accessibility","description":"Bulk update accessibility settings for selected websites.","method":"POST","path_template":"/servers/{server}/websites-zone/accessibility","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"website_ids","type":"array","required":true,"description":"Array of website IDs (or \"all\")"},{"name":"enable","type":"boolean","required":true,"description":"Enable or disable accessibility widget"},{"name":"langs","type":"array","required":false,"description":"Languages: en, he, ar"},{"name":"default_lang","type":"string","required":false,"description":"Default language: en, he, ar"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.success":"array","data.failed":"array","data.failed[].domain":"string","data.failed[].error":"string"}},{"name":"create_custom_pages","description":"Bulk apply custom default pages to selected websites. Uses the server's configured default page for the specified type.","method":"POST","path_template":"/servers/{server}/websites-zone/custom-pages","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"website_ids","type":"array","required":true,"description":"Array of website IDs (or \"all\")"},{"name":"page_type","type":"string","required":true,"description":"Page type: maintenance, suspended"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.success":"array","data.failed":"array","data.failed[].domain":"string","data.failed[].error":"string"}},{"name":"restore_pages","description":"DESTRUCTIVE - Bulk restore pages to system defaults for selected websites.","method":"POST","path_template":"/servers/{server}/websites-zone/restore-pages","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"website_ids","type":"array","required":true,"description":"Array of website IDs (or \"all\")"},{"name":"page_type","type":"string","required":true,"description":"Page type: maintenance, suspended"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.success":"array","data.failed":"array","data.failed[].domain":"string","data.failed[].error":"string"}},{"name":"create_ai_crawlers_settings","description":"Bulk update AI crawler settings for selected websites.","method":"POST","path_template":"/servers/{server}/websites-zone/ai-crawlers-settings","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"website_ids","type":"array","required":true,"description":"Array of website IDs (or \"all\")"},{"name":"rules","type":"array","required":true,"description":"Array of AI crawler rules"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.success":"array","data.failed":"array","data.failed[].domain":"string","data.failed[].error":"string"}},{"name":"list_ai_crawler_definitions","description":"Get available AI crawler definitions with names, slugs, and user agents.","method":"GET","path_template":"/servers/{server}/websites-zone/ai-crawler-definitions","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].name":"string","data[].slug":"string","data[].user_agents":"array","data[].icon":"string"}}]},{"name":"servers_firewall","scope":"servers:firewall","description":"Manage your servers including power controls, monitoring, blocked IPs, IP lists, and MySQL details.","actions":[{"name":"list_open_ports","description":"Get a paginated list of open firewall ports on the server.","method":"GET","path_template":"/servers/{server}/firewall/open-ports","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"direction","type":"string","required":false,"description":"Filter by direction: incoming or outgoing"},{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page (max 100)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","meta":"object","meta.current_page":"integer","meta.last_page":"integer","meta.per_page":"integer","meta.total":"integer"}},{"name":"create_open_ports","description":"Open a new port on the server firewall.","method":"POST","path_template":"/servers/{server}/firewall/open-ports","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"direction","type":"string","required":true,"description":"Port direction: incoming or outgoing"},{"name":"port","type":"string","required":true,"description":"Port number or range"},{"name":"protocol","type":"string","required":true,"description":"Protocol: tcp or udp"},{"name":"allowed_ips","type":"array","required":false,"description":"List of allowed IP addresses"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_open_ports","description":"Update an open port on the server firewall.","method":"PUT","path_template":"/servers/{server}/firewall/open-ports/{port}","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"},{"name":"port","type":"string","required":true,"description":"New port number"}],"body_params":[{"name":"direction","type":"string","required":true,"description":"Port direction: incoming or outgoing"},{"name":"old_port","type":"string","required":true,"description":"Current port number"},{"name":"protocol","type":"string","required":true,"description":"Protocol: tcp or udp"},{"name":"allowed_ips","type":"array","required":false,"description":"List of allowed IP addresses"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_open_ports","description":"DESTRUCTIVE - Remove open ports from the server firewall.","method":"DELETE","path_template":"/servers/{server}/firewall/open-ports","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of port IDs to remove (format: direction_port, e.g. incoming_8080)"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_blocked_ips","description":"Get a paginated list of blocked IP addresses on the server.","method":"GET","path_template":"/servers/{server}/firewall/blocked-ips","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page (max 100)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"string|null","data[].ip":"string|null","data[].blocked_at":"string|null","meta":"object","meta.current_page":"integer","meta.last_page":"integer","meta.per_page":"integer","meta.total":"integer"}},{"name":"create_blocked_ips","description":"Block an IP address on the server firewall.","method":"POST","path_template":"/servers/{server}/firewall/blocked-ips","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"ip","type":"string","required":true,"description":"IP address to block"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_blocked_ips","description":"DESTRUCTIVE - Unblock IP addresses from the server firewall.","method":"DELETE","path_template":"/servers/{server}/firewall/blocked-ips","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of IP addresses to unblock"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"servers_notifications","scope":"servers:notifications","description":"Manage your servers including power controls, monitoring, blocked IPs, IP lists, and MySQL details.","actions":[{"name":"list_notifications","description":"Get a paginated list of server and website notifications.","method":"GET","path_template":"/servers/{server}/notifications","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"read_status","type":"string","required":false,"description":"Filter by read status: all, read, or unread (default: all)"},{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page (max 100)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].title":"string","data[].text":"string","data[].is_read":"boolean","data[].read_at":"string|null","data[].server_id":"integer","data[].created_at":"integer","data[].source":"string","data[].website_domain":"string|null","meta":"object","meta.current_page":"integer","meta.last_page":"integer","meta.per_page":"integer","meta.total":"integer"}},{"name":"get_unread_count","description":"Get the count of unread notifications for a server.","method":"GET","path_template":"/servers/{server}/notifications/unread-count","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.unread_count":"integer"}},{"name":"update_mark_read","description":"Mark notifications as read. Send empty ids array to mark all as read.","method":"PUT","path_template":"/servers/{server}/notifications/mark-read","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"ids","type":"array","required":false,"description":"Notification IDs to mark as read (empty = mark all)"},{"name":"source","type":"string","required":false,"description":"Notification source: server or website"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_notifications","description":"DESTRUCTIVE - Delete notifications. Send empty ids array to delete all.","method":"DELETE","path_template":"/servers/{server}/notifications","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"ids","type":"array","required":false,"description":"Notification IDs to delete (empty = delete all)"},{"name":"source","type":"string","required":false,"description":"Notification source: server or website"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"servers_peaks","scope":"servers:peaks","description":"Manage your servers including power controls, monitoring, blocked IPs, IP lists, and MySQL details.","actions":[{"name":"list_peaks","description":"Get a paginated list of server resource peaks.","method":"GET","path_template":"/servers/{server}/peaks","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"type","type":"string","required":false,"description":"Filter by peak type"},{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page (max 100)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"string|null","data[].timestamp":"string|null","data[].type":"string","data[].trigger_type":"string","data[].cpu_percent":"float","data[].websites_cpu_percent":"float","stats":"object","meta":"object","meta.total":"integer"}},{"name":"get_notice","description":"Get peak notification settings.","method":"GET","path_template":"/servers/{server}/peaks/notice","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object"}},{"name":"update_notice","description":"Update peak notification settings.","method":"PUT","path_template":"/servers/{server}/peaks/notice","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"enabled","type":"boolean","required":true,"description":"Enable or disable peak notifications"},{"name":"send_email","type":"boolean","required":true,"description":"Whether to send email notifications"},{"name":"emails","type":"array","required":false,"description":"Email addresses for notifications"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object"}},{"name":"get_peaks","description":"Get details of a specific resource peak.","method":"GET","path_template":"/servers/{server}/peaks/{peak}","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"},{"name":"peak","type":"string","required":true,"description":"URL parameter"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object"}}]},{"name":"servers_plan","scope":"servers:plan","description":"Manage your servers including power controls, monitoring, blocked IPs, IP lists, and MySQL details.","actions":[{"name":"list_stats","description":"Get server plan statistics including billing info, resources, and pricing.","method":"GET","path_template":"/servers/{server}/plan/stats","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.price":"string","data.price_type":"string","data.next_cycle_at":"string|null","data.billing_day":"integer|null","data.overdue":"boolean","data.overdue_at":"string|null","data.cpu":"integer","data.memory":"integer","data.disk":"integer","data.currency":"string"}},{"name":"get_config","description":"Get server plan configuration options including available resources, pricing, features, and coupon info.","method":"GET","path_template":"/servers/{server}/plan/config","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.current_resources":"object","data.current_resources.cpu":"integer","data.current_resources.memory":"integer","data.current_resources.disk":"integer","data.custom_cpu_core_price":"float|null","data.use_custom_pricing":"boolean","data.current_price_type":"string","data.current_price":"float","data.next_cycle_at":"string|null","data.vat_rate":"float","data.currency":"string","data.client_currency":"string","data.balance":"float","data.use_balance_first":"boolean","data.features_config":"array","data.current_features":"array","data.coupon":"object|null","data.coupon.code":"string","data.coupon.discount_type":"string","data.coupon.discount_value":"float","data.coupon.months_remaining":"integer|null","data.pricing_config":"object","data.cpu_options":"array","data.memory_options":"array","data.disk_options":"array"}},{"name":"create_generate_hash","description":"Generate a price calculation hash for secure plan update pricing. Required before calculate-price and update.","method":"POST","path_template":"/servers/{server}/plan/generate-hash","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.price_calculation_hash":"string","data.created_at":"string"}},{"name":"create_calculate_price","description":"Calculate price for a new server resource configuration before committing the change.","method":"POST","path_template":"/servers/{server}/plan/calculate-price","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"cpu","type":"integer","required":true,"description":"Number of CPU cores"},{"name":"memory","type":"integer","required":true,"description":"Memory in GB"},{"name":"disk","type":"integer","required":true,"description":"Disk space in GB"},{"name":"price_calculation_hash","type":"string","required":true,"description":"Hash from generate-hash endpoint"},{"name":"features","type":"object","required":false,"description":"Optional features configuration"},{"name":"tier","type":"string","required":false,"description":"Service tier: 'lite' (shared 4:1, $20/core), 'standard' (shared 2:1, $40/core), or 'enterprise' (dedicated cores, $60/core). Omit to keep the current tier. Same RAM/disk pricing across tiers."}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.calculated_price":"string|integer","data.base_price":"string","data.features_price":"string","data.breakdown":"object","data.created_at":"string","data.vat_rate":"float","data.balance":"float","data.use_balance_first":"boolean","data.currency":"string","data.client_currency":"string"}},{"name":"update_plan","description":"DESTRUCTIVE - Update server resources (CPU, memory, disk). Initiates a plan update job.","method":"PUT","path_template":"/servers/{server}/plan","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"cpu","type":"integer","required":true,"description":"Number of CPU cores"},{"name":"memory","type":"integer","required":true,"description":"Memory in GB"},{"name":"disk","type":"integer","required":true,"description":"Disk space in GB"},{"name":"frontend_calculated_price","type":"float","required":true,"description":"The price calculated by calculate-price endpoint"},{"name":"price_calculation_hash","type":"string","required":true,"description":"Hash from generate-hash endpoint"},{"name":"payment_method_id","type":"integer","required":false,"description":"Payment method ID. Optional if the client has a default payment method on file \u2014 backend auto-falls back to it as a safety net. Required only when no method exists and immediate charge > 0."},{"name":"use_balance","type":"boolean","required":false,"description":"Whether to use account balance"},{"name":"features","type":"object","required":false,"description":"Features configuration"},{"name":"tier","type":"string","required":false,"description":"Service tier: 'lite' (shared 4:1, $20/core), 'standard' (shared 2:1, $40/core), or 'enterprise' (dedicated cores, $60/core). Omit to keep the current tier. Tier change reboots the VM. Same RAM/disk pricing across tiers."}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"servers_rules","scope":"servers:rules","description":"Manage your servers including power controls, monitoring, blocked IPs, IP lists, and MySQL details.","actions":[{"name":"list_rules","description":"Get a paginated list of server rules.","method":"GET","path_template":"/servers/{server}/rules","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"section","type":"string","required":false,"description":"Rule section (default: firewall)"},{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page (max 100)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","meta":"object","meta.current_page":"integer","meta.last_page":"integer","meta.per_page":"integer","meta.total":"integer"}},{"name":"create_rules","description":"Create a new server rule.","method":"POST","path_template":"/servers/{server}/rules","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"section","type":"string","required":false,"description":"Rule section (default: firewall)"},{"name":"name","type":"string","required":true,"description":"Rule name"},{"name":"conditions","type":"array","required":true,"description":"Rule conditions"},{"name":"action","type":"string","required":true,"description":"Rule action"},{"name":"enabled","type":"boolean","required":false,"description":"Whether the rule is enabled"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"string \u2014 UUID of the newly created server rule (use for update/delete/toggle endpoints)"}},{"name":"update_reorder","description":"Reorder server rules.","method":"PUT","path_template":"/servers/{server}/rules/reorder","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"section","type":"string","required":false,"description":"Rule section (default: firewall)"},{"name":"order","type":"array","required":true,"description":"Array of rule IDs in desired order"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_toggle","description":"Toggle a server rule on or off.","method":"PUT","path_template":"/servers/{server}/rules/{rule}/toggle","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"},{"name":"rule","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"section","type":"string","required":false,"description":"Rule section (default: firewall)"},{"name":"enabled","type":"boolean","required":true,"description":"Whether to enable or disable the rule"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_rules","description":"Update a server rule.","method":"PUT","path_template":"/servers/{server}/rules/{rule}","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"},{"name":"rule","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"section","type":"string","required":false,"description":"Rule section (default: firewall)"},{"name":"name","type":"string","required":false,"description":"Rule name"},{"name":"conditions","type":"array","required":false,"description":"Rule conditions"},{"name":"action","type":"string","required":false,"description":"Rule action"},{"name":"enabled","type":"boolean","required":false,"description":"Whether the rule is enabled"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_rules","description":"DESTRUCTIVE - Delete server rules.","method":"DELETE","path_template":"/servers/{server}/rules","path_params":[{"name":"server","type":"string","required":true,"description":"URL parameter"}],"body_params":[{"name":"section","type":"string","required":false,"description":"Rule section (default: firewall)"},{"name":"ids","type":"array","required":true,"description":"Array of rule IDs to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"websites","scope":"websites","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"get_websites","description":"Get a paginated list of websites, optionally filtered by server.","method":"GET","path_template":"/servers/websites/{serverId?}","path_params":[{"name":"serverId","type":"integer","required":false,"description":"Server ID to filter websites (URL parameter)"}],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number for pagination"},{"name":"per_page","type":"integer","required":false,"description":"Number of items per page (max 100)"},{"name":"statuses","type":"array","required":false,"description":"Filter by statuses: pending, installing, active, suspended, migrating"},{"name":"stages","type":"boolean","required":false,"description":"Include stage websites (default: false)"},{"name":"exclude_shared","type":"boolean","required":false,"description":"Exclude shared websites (default: true)"},{"name":"options","type":"boolean","required":false,"description":"Set to 1 to get simplified options format for dropdowns"},{"name":"search","type":"string","required":false,"description":"Search websites by name or domain"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].name":"string","data[].domain":"string","data[].utf_domain":"string","data[].status":"string","data[].username":"string","data[].is_stage":"boolean","data[].server":"object|null","meta":"object"}},{"name":"get_show","description":"Get detailed information about a specific website including server, cluster, and permission info.","method":"GET","path_template":"/servers/websites/show/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"checkIfWebActive","type":"boolean","required":false,"description":"Check if website services are active"},{"name":"includeAggregatedTasks","type":"boolean","required":false,"description":"Include aggregated tasks list"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.id":"integer","data.name":"string","data.domain":"string","data.utf_domain":"string","data.status":"string","data.username":"string","data.is_owner":"boolean","data.permission_type":"string|null","data.has_issues":"boolean","data.has_critical_issues":"boolean","data.server":"object|null"}},{"name":"get_framework","description":"Get the detected framework/CMS of a website (e.g., WordPress, Laravel, etc.).","method":"GET","path_template":"/servers/websites/framework/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.framework":"string|null","data.version":"string|null"}},{"name":"get_usage","description":"Get disk and bandwidth usage statistics for a website.","method":"GET","path_template":"/servers/websites/usage/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.disk":"object","data.disk.result":"object","data.disk.result.total":"integer","data.disk.result.files":"integer","data.disk.result.mysql":"integer","data.disk.result.mail":"integer","data.disk.time":"integer","data.bandwidth":"object","data.bandwidth.result":"float","data.bandwidth.time":"integer","data.cache":"boolean|string","data.waf":"boolean|string","data.ddos_protection":"boolean|string","data.php_version":"float","data.databases":"integer","data.mailboxes":"integer","data.forwarders":"integer","data.ftp":"integer","data.redirects":"integer","data.pointers":"integer","data.cronjobs":"integer","data.stages":"integer"}},{"name":"get_quota_details","description":"Get detailed quota information for a website including limits and current usage.","method":"GET","path_template":"/servers/websites/quota-details/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.result":"object","data.result.total":"integer","data.result.files":"integer","data.result.mysql":"integer","data.result.mail":"integer","data.result.largest_files":"array","data.time":"integer"}},{"name":"get_traffic_overview","description":"Get traffic overview statistics including visitors, requests, countries, and platforms.","method":"GET","path_template":"/servers/websites/traffic-overview/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"timeframe","type":"string","required":false,"description":"Timeframe: today, this_month, or number of days (1-30)"},{"name":"tz","type":"string","required":false,"description":"Timezone override (e.g., America/New_York)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.total":"object","data.total.visitors":"integer","data.total.requests":"integer","data.total.challenge":"integer","data.total.waf":"integer","data.total.dynamic":"integer","data.total.static":"integer","data.total.ajax":"integer","data.total.mobile":"integer","data.total.desktop":"integer","data.timestamps":"object","data.requests":"object","data.countries":"object"}},{"name":"create_websites","description":"Create a new website on a server.","method":"POST","path_template":"/servers/websites","path_params":[],"body_params":[{"name":"server_id","type":"integer","required":true,"description":"Server ID to create the website on"},{"name":"name","type":"string","required":true,"description":"Website display name"},{"name":"free_subdomain","type":"boolean","required":true,"description":"Use a free auto-generated subdomain instead of a custom domain"},{"name":"domain","type":"string","required":false,"description":"Domain name (required when free_subdomain is false)"},{"name":"unlimited_disk","type":"boolean","required":true,"description":"Whether disk space is unlimited"},{"name":"max_disk_gb","type":"integer","required":false,"description":"Max disk space in GB (required when unlimited_disk is false)"},{"name":"unlimited_bandwidth","type":"boolean","required":true,"description":"Whether bandwidth is unlimited"},{"name":"max_bandwidth_gb","type":"integer","required":false,"description":"Max bandwidth in GB (required when unlimited_bandwidth is false)"},{"name":"never_suspend","type":"boolean","required":false,"description":"Prevent automatic suspension (default: false)"},{"name":"php_version","type":"string","required":false,"description":"PHP version to use (e.g., '8.2')"},{"name":"limit_cpu","type":"boolean","required":true,"description":"Whether to limit CPU cores"},{"name":"cpu_cores","type":"integer","required":false,"description":"Number of CPU cores (required when limit_cpu is true)"},{"name":"limit_memory","type":"boolean","required":true,"description":"Whether to limit memory"},{"name":"memory_limit_gb","type":"integer","required":false,"description":"Memory limit in GB (required when limit_memory is true)"},{"name":"install_wordpress","type":"boolean","required":true,"description":"Install WordPress during creation"},{"name":"wp_name","type":"string","required":false,"description":"WordPress site title (required when install_wordpress is true)"},{"name":"wp_email","type":"string","required":false,"description":"WordPress admin email (required when install_wordpress is true)"},{"name":"wp_language","type":"string","required":false,"description":"WordPress language code (required when install_wordpress is true)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.website.id":"integer","data.website.username":"string","data.website.domain":"string","data.website.name":"string","data.is_free_subdomain":"boolean","data.nameservers":"array"}},{"name":"update_websites","description":"Update website settings such as name, domain, disk/bandwidth limits, www preference, and HTTP settings.","method":"PUT","path_template":"/servers/websites/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"name","type":"string","required":false,"description":"New website name"},{"name":"domain","type":"string","required":false,"description":"New domain name"},{"name":"unlimited_disk","type":"boolean","required":false,"description":"Set disk space to unlimited"},{"name":"max_disk_gb","type":"integer","required":false,"description":"Max disk space in GB"},{"name":"unlimited_bandwidth","type":"boolean","required":false,"description":"Set bandwidth to unlimited"},{"name":"max_bandwidth_gb","type":"integer","required":false,"description":"Max bandwidth in GB"},{"name":"never_suspend","type":"boolean","required":false,"description":"Prevent automatic suspension"},{"name":"www","type":"string","required":false,"description":"WWW preference: 'none', 'www', or 'non-www'"},{"name":"allow_http","type":"boolean","required":false,"description":"Allow HTTP access"},{"name":"maintenance","type":"boolean","required":false,"description":"Enable maintenance mode during domain change"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.domain_change_queued":"boolean","data.replace_www_queued":"boolean"}},{"name":"delete_websites","description":"DESTRUCTIVE - Delete a website. Requires owner or server-level full permission.","method":"DELETE","path_template":"/servers/websites/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_clone","description":"Clone a website to a new website on the same or different server.","method":"POST","path_template":"/servers/websites/{website}/clone","path_params":[{"name":"website","type":"integer","required":true,"description":"Source website ID (URL parameter)"}],"body_params":[{"name":"server_id","type":"integer","required":true,"description":"Target server ID"},{"name":"name","type":"string","required":true,"description":"Name for the new cloned website"},{"name":"free_subdomain","type":"boolean","required":true,"description":"Use a free auto-generated subdomain"},{"name":"domain","type":"string","required":false,"description":"Domain for the clone (required when free_subdomain is false)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data.website.id":"integer","data.website.username":"string","data.website.domain":"string","data.website.name":"string","data.is_free_subdomain":"boolean","warnings":"array|null"}},{"name":"create_copy","description":"Copy website content to another existing website.","method":"POST","path_template":"/servers/websites/{website}/copy","path_params":[{"name":"website","type":"integer","required":true,"description":"Source website ID (URL parameter)"}],"body_params":[{"name":"target_website_id","type":"integer","required":true,"description":"Target website ID to copy content to"},{"name":"maintenance","type":"boolean","required":false,"description":"Enable maintenance mode during copy (default: false)"},{"name":"copy_anything","type":"boolean","required":false,"description":"Copy everything (default: true)"},{"name":"copy_files","type":"boolean","required":false,"description":"Copy files (default: true)"},{"name":"copy_databases","type":"boolean","required":false,"description":"Copy databases (default: true)"},{"name":"copy_cronjobs","type":"boolean","required":false,"description":"Copy cronjobs (default: true)"},{"name":"include_paths","type":"array","required":false,"description":"Specific file paths to include"},{"name":"preserve_production_data","type":"boolean","required":false,"description":"Preserve WordPress production data (default: false)"},{"name":"sync_php_version","type":"boolean","required":false,"description":"Sync PHP version to target (default: true)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","warnings":"array|null"}},{"name":"create_migrate","description":"Migrate a website to a different server.","method":"POST","path_template":"/servers/websites/{website}/migrate","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID to migrate (URL parameter)"}],"body_params":[{"name":"server_id","type":"integer","required":true,"description":"Target server ID"},{"name":"maintenance","type":"boolean","required":false,"description":"Enable maintenance mode during migration (default: false)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","warnings":"array|null"}},{"name":"create_suspend","description":"Suspend an active website.","method":"POST","path_template":"/servers/websites/{website}/suspend","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"reason","type":"string","required":true,"description":"Reason for suspension (max 255 characters)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_unsuspend","description":"Unsuspend a suspended website.","method":"POST","path_template":"/servers/websites/{website}/unsuspend","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_recalculate_quota","description":"Recalculate website disk quota and return updated details.","method":"POST","path_template":"/servers/websites/{website}/recalculate-quota","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object"}},{"name":"delete_quota_files","description":"DESTRUCTIVE - Delete files contributing to quota and recalculate.","method":"DELETE","path_template":"/servers/websites/{website}/quota-files","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"paths","type":"array","required":true,"description":"Array of file paths to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","data":"object"}},{"name":"get_is_online","description":"Check if a website is currently online and reachable.","method":"GET","path_template":"/servers/websites/{website}/is-online","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object"}},{"name":"get_health","description":"Get website health diagnostics data.","method":"GET","path_template":"/servers/websites/{website}/health","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object"}},{"name":"get_history","description":"Get the last 12 health-scan results for a website. Returns an empty list if the site has never been scanned.","method":"GET","path_template":"/servers/websites/{website}/health/history","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"history":"array","history[].score":"integer|null","history[].security":"integer|null","history[].performance":"integer|null","history[].seo":"integer|null","history[].ssl":"integer|null","history[].issues":"integer","history[].date":"string (ISO 8601)"}},{"name":"create_rescan","description":"Trigger a fresh health scan for a website. Responds 202 Accepted with a scan ID; the scan runs in the background. If a scan is already pending or running for this website, the existing scan's id is returned instead of queuing a duplicate \u2014 safe to retry on timeout without stacking scans. Poll /servers/websites/{website}/health or /servers/websites/{website}/health/history to observe progress.","method":"POST","path_template":"/servers/websites/{website}/health/rescan","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"message":"string","scan_id":"integer"}},{"name":"get_activity","description":"Get recent website activity logs (last 20 entries).","method":"GET","path_template":"/servers/websites/{website}/activity","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].actor":"object|null","data[].description":"string","data[].display_method":"string","data[].created_at":"string"}},{"name":"list_bot_names","description":"Get list of known bot names and AI crawler names.","method":"GET","path_template":"/servers/websites/bot-names","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.bots":"object","data.ai_bots":"object"}},{"name":"list_wp_languages","description":"Get list of available WordPress languages for installation.","method":"GET","path_template":"/servers/websites/wp-languages","path_params":[],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array"}},{"name":"list_php_installed_versions","description":"Get PHP versions installed on the website's server.","method":"GET","path_template":"/servers/websites/{website}/php-installed-versions","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array"}},{"name":"get_status","description":"Latest task status for a website. Status is one of: idle, pending, running, failed, completed. Matches the panel's task status badge semantics.","method":"GET","path_template":"/servers/websites/{website}/tasks/status","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.status":"string","data.task_id":"integer|null","data.step":"string|null","data.error":"string|null","data.finished_at":"string|null","data.issue_id":"integer|null"}},{"name":"delete_tasks","description":"DESTRUCTIVE - Cancel a pending task for a website before its background job begins executing. Returns 400 if the task has already started. Requires full permission on the website.","method":"DELETE","path_template":"/servers/websites/{website}/tasks/{taskId}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"taskId","type":"integer","required":true,"description":"Task ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_templates","description":"Get page builder templates.","method":"GET","path_template":"/servers/websites/{website}/page-builder/templates","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of templates"}},{"name":"create_templates","description":"Save a page builder template.","method":"POST","path_template":"/servers/websites/{website}/page-builder/templates","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"name","type":"string","required":true,"description":"Template name"},{"name":"category","type":"string","required":false,"description":"Template category"},{"name":"html","type":"string","required":true,"description":"Template HTML content"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.id":"integer","data.name":"string","data.html":"string"}},{"name":"delete_templates","description":"DESTRUCTIVE - Delete a page builder template.","method":"DELETE","path_template":"/servers/websites/{website}/page-builder/templates","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"template_id","type":"integer","required":true,"description":"Template ID to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"websites_addons","scope":"websites:addons","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"list_addons","description":"Get all addons overview with their current status and settings.","method":"GET","path_template":"/servers/websites/{website}/addons","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.accessibility":"object (accessibility addon status)","data.accessibility.enable":"boolean","data.llms_txt":"object (LLMs.txt addon status)","data.llms_txt.enable":"boolean","data.llms_txt.schedule":"string","data.gdpr":"object (GDPR addon status)","data.gdpr.enable":"boolean","data.gdpr.cookie_banner":"boolean","data.security_txt":"object (security.txt addon status)","data.security_txt.enable":"boolean","data.console":"object (console addon status)","data.console.enable":"boolean","data.console.allowed_ips":"array","data.analytics":"object (analytics addon status)","data.analytics.enable":"boolean","data.analytics.provider":"string","data.clarity":"object (Clarity addon status)","data.clarity.enable":"boolean","data.shabbat":"object (Shabbat addon status)","data.shabbat.enable":"boolean","data.shabbat.enabled_holidays":"array"}},{"name":"get_accessibility","description":"Get accessibility addon settings.","method":"GET","path_template":"/servers/websites/{website}/addons/accessibility","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.enable":"boolean","data.langs":"array of strings","data.default_lang":"string","data.location_vertical":"string","data.location_horizontal":"string","data.mobile_location_vertical":"string","data.mobile_location_horizontal":"string","data.space_vertical":"integer","data.space_horizontal":"integer","data.mobile_space_vertical":"integer","data.mobile_space_horizontal":"integer","data.mode":"string","data.statement_link":"string","data.statement_title":"string","data.statement_body":"string","data.exclude_uri":"array of strings","data.gdpr_category":"string"}},{"name":"update_accessibility","description":"Update accessibility addon settings.","method":"PUT","path_template":"/servers/websites/{website}/addons/accessibility","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"enable","type":"boolean","required":false,"description":"Enable/disable addon"},{"name":"langs","type":"array","required":false,"description":"Supported languages"},{"name":"default_lang","type":"string","required":false,"description":"Default language"},{"name":"mode","type":"string","required":false,"description":"Accessibility mode"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_security_txt","description":"Get security.txt addon settings.","method":"GET","path_template":"/servers/websites/{website}/addons/security-txt","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.enable":"boolean","data.contact":"string","data.expires":"string","data.auto_renew":"boolean","data.encryption":"string","data.acknowledgments":"string","data.policy":"string","data.hiring":"string","data.preferred_languages":"array of strings","data.owner_defaults":"object|null","data.owner_defaults.contact":"string|null","data.owner_defaults.policy":"string|null","data.is_company_server":"boolean"}},{"name":"update_security_txt","description":"Update security.txt addon settings.","method":"PUT","path_template":"/servers/websites/{website}/addons/security-txt","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"enable","type":"boolean","required":false,"description":"Enable/disable security.txt"},{"name":"contact","type":"string","required":false,"description":"Contact email or URL"},{"name":"expires","type":"string","required":false,"description":"Expiry date"},{"name":"policy","type":"string","required":false,"description":"Security policy URL"},{"name":"auto_renew","type":"boolean","required":false,"description":"Auto-renew expiry"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_console","description":"Get console addon settings.","method":"GET","path_template":"/servers/websites/{website}/addons/console","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.enable":"boolean","data.position":"string","data.allowed_ips":"array of strings","data.gdpr_category":"string"}},{"name":"update_console","description":"Update console addon settings.","method":"PUT","path_template":"/servers/websites/{website}/addons/console","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"enable","type":"boolean","required":false,"description":"Enable/disable console"},{"name":"position","type":"string","required":false,"description":"Console position"},{"name":"allowed_ips","type":"array","required":false,"description":"Allowed IP addresses"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_analytics","description":"Get analytics addon settings.","method":"GET","path_template":"/servers/websites/{website}/addons/analytics","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.enable":"boolean","data.provider":"string","data.tracking_id":"string","data.anonymize_ip":"boolean","data.cookie_domain":"string","data.exclude_uri":"array of strings","data.gdpr_category":"string"}},{"name":"update_analytics","description":"Update analytics addon settings.","method":"PUT","path_template":"/servers/websites/{website}/addons/analytics","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"enable","type":"boolean","required":false,"description":"Enable/disable analytics"},{"name":"provider","type":"string","required":false,"description":"Analytics provider"},{"name":"tracking_id","type":"string","required":false,"description":"Tracking ID"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_clarity","description":"Get Microsoft Clarity addon settings.","method":"GET","path_template":"/servers/websites/{website}/addons/clarity","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.enable":"boolean","data.project_id":"string","data.exclude_uri":"array of strings","data.include_uri":"array of strings","data.gdpr_category":"string"}},{"name":"update_clarity","description":"Update Microsoft Clarity addon settings.","method":"PUT","path_template":"/servers/websites/{website}/addons/clarity","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"enable","type":"boolean","required":false,"description":"Enable/disable Clarity"},{"name":"project_id","type":"string","required":false,"description":"Clarity project ID"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_llms_txt","description":"Get llms.txt addon settings.","method":"GET","path_template":"/servers/websites/{website}/addons/llms-txt","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"enable":"boolean","enable_full":"boolean","schedule_interval":"string","categories":"array","max_urls_per_category":"integer","max_full_pages":"integer","manual_entries":"array - operator-curated link rows; each item has { name, url, description?, category? }"}}},{"name":"update_llms_txt","description":"Update llms.txt addon settings.","method":"PUT","path_template":"/servers/websites/{website}/addons/llms-txt","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"enable","type":"boolean","required":false,"description":"Enable/disable llms.txt"},{"name":"enable_full","type":"boolean","required":false,"description":"Enable full llms.txt"},{"name":"schedule_interval","type":"string","required":false,"description":"Regeneration schedule interval. Allowed values: daily, weekly, monthly, manually."},{"name":"categories","type":"array","required":false,"description":"Custom URL categorization. Array of objects with shape { key: string, name: string, patterns: string[] }. Patterns are matched against URL path segments. User-defined categories merge with built-in defaults (docs, blog, products, about, legal); custom keys add new sections."},{"name":"max_urls_per_category","type":"integer","required":false,"description":"Maximum URLs per category in the generated llms.txt index. Range: 1-100. Default: 30."},{"name":"max_full_pages","type":"integer","required":false,"description":"Maximum pages included in the full-content llms-full.txt output. Range: 1-500. Default: 100."},{"name":"manual_entries","type":"array","required":false,"description":"Operator-curated link rows merged into the generated llms.txt. Array of objects with shape { name: string (required), url: string (required), description?: string, category?: string }. The optional category key routes the entry into the named category section; entries with no category or an unknown category land in a 'Resources' section. Manual entries always surface even when crawl is disabled or has not produced content yet, and take precedence over crawled URLs on collision."}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_generate","description":"Generate llms.txt content by scanning website pages and sitemap.","method":"POST","path_template":"/servers/websites/{website}/addons/llms-txt/generate","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"generate_full","type":"boolean","required":false,"description":"Generate full version (default: false)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 generated llms.txt content"}},{"name":"get_gdpr","description":"Get GDPR compliance addon settings.","method":"GET","path_template":"/servers/websites/{website}/addons/gdpr","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"enable":"boolean","consent_enable":"boolean","consent_position":"string","consent_layout":"string","consent_theme":"string","consent_expiry_days":"integer","banner_title":"string|null","banner_message":"string|null","accept_all_text":"string|null","reject_all_text":"string|null","customize_text":"string|null","save_preferences_text":"string|null","categories":"array","privacy_policy_url":"string|null","cookie_policy_url":"string|null","do_not_track_respect":"boolean","consent_log_retention_days":"integer","consent_log_enable":"boolean","data_export_enable":"boolean","data_deletion_enable":"boolean","email_notification_enable":"boolean","generate_cookie_policy":"boolean","company_name":"string|null","contact_email":"string|null","website_url":"string|null","banner_design":"object|null","cookie_policy_page_design":"object|null","data_request_page_design":"object|null"}}},{"name":"update_gdpr","description":"Update GDPR compliance addon settings.","method":"PUT","path_template":"/servers/websites/{website}/addons/gdpr","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"enable","type":"boolean","required":false,"description":"Enable/disable GDPR"},{"name":"consent_enable","type":"boolean","required":false,"description":"Enable cookie consent"},{"name":"data_export_enable","type":"boolean","required":false,"description":"Enable data export"},{"name":"data_deletion_enable","type":"boolean","required":false,"description":"Enable data deletion"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_logs","description":"Get GDPR consent logs with filtering and pagination.","method":"GET","path_template":"/servers/websites/{website}/addons/gdpr/logs","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"action_filter","type":"string","required":false,"description":"Filter by action type"},{"name":"domain_filter","type":"string","required":false,"description":"Filter by domain"},{"name":"search","type":"string","required":false,"description":"Search term"},{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 consent logs array with pagination"}},{"name":"list_requests","description":"Get GDPR data requests with filtering and pagination.","method":"GET","path_template":"/servers/websites/{website}/addons/gdpr/requests","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"status_filter","type":"string","required":false,"description":"Filter by status"},{"name":"request_type_filter","type":"string","required":false,"description":"Filter by request type"},{"name":"search","type":"string","required":false,"description":"Search term"},{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 data requests array with pagination"}},{"name":"update_requests","description":"Update a GDPR data request status.","method":"PUT","path_template":"/servers/websites/{website}/addons/gdpr/requests/{requestId}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"requestId","type":"string","required":true,"description":"GDPR request ID (URL parameter)"}],"body_params":[{"name":"status","type":"string","required":true,"description":"New status (e.g., completed, rejected)"},{"name":"notes","type":"string","required":false,"description":"Admin notes"},{"name":"send_email","type":"boolean","required":false,"description":"Send completion email (default: false)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_requests","description":"DESTRUCTIVE - Delete a GDPR data request.","method":"DELETE","path_template":"/servers/websites/{website}/addons/gdpr/requests/{requestId}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"requestId","type":"string","required":true,"description":"GDPR request ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_shabbat","description":"Get Shabbat & Holiday Mode addon settings including config options.","method":"GET","path_template":"/servers/websites/{website}/addons/shabbat","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"enable":"boolean","minutes_before":"integer","minutes_after":"integer","enabled_holidays":"array","config":{"minutes_options":"array","holidays":"array"}}}},{"name":"update_shabbat","description":"Update Shabbat & Holiday Mode addon settings.","method":"PUT","path_template":"/servers/websites/{website}/addons/shabbat","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"enable","type":"boolean","required":false,"description":"Enable/disable Shabbat mode"},{"name":"minutes_before","type":"integer","required":false,"description":"Minutes before Shabbat to activate"},{"name":"minutes_after","type":"integer","required":false,"description":"Minutes after Shabbat to deactivate"},{"name":"enabled_holidays","type":"array","required":false,"description":"Array of enabled holiday keys"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_details","description":"Get the Shabbat page HTML content.","method":"GET","path_template":"/servers/websites/{website}/addons/shabbat/details","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"string (HTML content)"}},{"name":"get_status","description":"Get the current Shabbat enabled/disabled status.","method":"GET","path_template":"/servers/websites/{website}/addons/shabbat/status","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"enabled":"boolean"}}},{"name":"list_locations","description":"Get available Shabbat holiday options and minutes configuration.","method":"GET","path_template":"/servers/websites/{website}/addons/shabbat/locations","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"minutes_options":"array","holidays":"array"}}},{"name":"update_page","description":"Replace the Shabbat closed-hours page HTML with custom code. Requires full permission on the website.","method":"PUT","path_template":"/servers/websites/{website}/addons/shabbat/page","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"code","type":"string","required":true,"description":"Custom HTML for the Shabbat page (newlines allowed)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_page","description":"DESTRUCTIVE - Restore the Shabbat page to the default template. Requires full permission on the website.","method":"DELETE","path_template":"/servers/websites/{website}/addons/shabbat/page","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"websites_ai-crawlers","scope":"websites:ai-crawlers","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"list_settings","description":"Get AI crawlers settings and rules for a website. Returns one entry per recognized crawler with its current rule.","method":"GET","path_template":"/servers/websites/{website}/ai-crawlers/settings","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].name":"string (operator name, e.g. OpenAI)","data[].slug":"string (crawler slug used to set rules, e.g. openai)","data[].user_agents":"array of strings (HTTP user agents this crawler covers)","data[].icon":"string|null","data[].ip_range":"object|null (linked IP range for verification)","data[].ip_range.id":"integer (when ip_range is not null)","data[].ip_range.name":"string (when ip_range is not null)","data[].ip_range.title":"string (when ip_range is not null)","data[].blocked":"boolean (legacy - use rule.mode instead)","data[].rule":"object","data[].rule.mode":"string (allow|block|rate_limit)","data[].rule.limit":"integer|null (only when mode=rate_limit)","data[].rule.interval":"string|null (only when mode=rate_limit, one of: second|minute|hour)"}},{"name":"update_settings","description":"Update a single AI crawler rule.","method":"PUT","path_template":"/servers/websites/{website}/ai-crawlers/settings","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"slug","type":"string","required":true,"description":"Crawler slug"},{"name":"mode","type":"string","required":true,"description":"Rule mode: allow, rate_limit, block"},{"name":"limit","type":"integer","required":false,"description":"Rate limit (required if mode=rate_limit)"},{"name":"interval","type":"string","required":false,"description":"Rate limit interval: second, minute, hour"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_bulk","description":"Bulk-set AI crawler rules. Mirrors the panel's Allow All / Block All buttons. IMPORTANT: this endpoint only accepts allow or block - rate_limit is rejected with a 422. Use the per-rule PUT (above) to set rate_limit on individual crawlers.","method":"PUT","path_template":"/servers/websites/{website}/ai-crawlers/settings/bulk","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"rules","type":"object","required":true,"description":"Map of crawler slug to mode. Each mode value MUST be either \"allow\" or \"block\" - rate_limit is not supported in bulk and will fail validation. Example: {\"openai\": \"block\", \"anthropic\": \"block\", \"google-ai\": \"allow\"}."}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"websites_antivirus","scope":"websites:antivirus","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"list_scans","description":"Get antivirus scans list.","method":"GET","path_template":"/servers/websites/{website}/antivirus/scans","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of scans","meta":"object"}},{"name":"get_running","description":"Get running antivirus process.","method":"GET","path_template":"/servers/websites/{website}/antivirus/running","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object or empty"}},{"name":"list_stats","description":"Get antivirus statistics.","method":"GET","path_template":"/servers/websites/{website}/antivirus/stats","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 antivirus statistics (total scans, infected files count, cleaned count, last scan date)"}},{"name":"list_settings","description":"Get antivirus settings.","method":"GET","path_template":"/servers/websites/{website}/antivirus/settings","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 antivirus settings (automatic boolean, period string)"}},{"name":"update_settings","description":"Update antivirus settings.","method":"PUT","path_template":"/servers/websites/{website}/antivirus/settings","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"automatic","type":"boolean","required":false,"description":"Enable automatic scanning"},{"name":"period","type":"string","required":false,"description":"Scan period"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_scan","description":"Start a new antivirus scan.","method":"POST","path_template":"/servers/websites/{website}/antivirus/scan","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_clean","description":"Clean infected files from a scan.","method":"POST","path_template":"/servers/websites/{website}/antivirus/clean","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"scan_id","type":"string","required":true,"description":"Scan ID to clean"},{"name":"backup","type":"boolean","required":false,"description":"Create backup before cleaning"},{"name":"backup_name","type":"string","required":false,"description":"Backup name"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_antivirus","description":"Get scan details.","method":"GET","path_template":"/servers/websites/{website}/antivirus/{scan}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"scan","type":"string","required":true,"description":"Scan ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 scan details (status, started_at, completed_at, files_scanned, hits_count, website_id, scan_id, is_last_scan)"}},{"name":"list_hits","description":"Get scan hits (infected files).","method":"GET","path_template":"/servers/websites/{website}/antivirus/{scan}/hits","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"scan","type":"string","required":true,"description":"Scan ID (URL parameter)"}],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page"},{"name":"search","type":"string","required":false,"description":"Search filter"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 hit entries (file paths, threat types, severities) with pagination"}},{"name":"get_cleaned","description":"Get cleaned files for a scan.","method":"GET","path_template":"/servers/websites/{website}/antivirus/{scan}/cleaned","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"scan","type":"string","required":true,"description":"Scan ID (URL parameter)"}],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page"},{"name":"search","type":"string","required":false,"description":"Search filter"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 cleaned file entries (file paths, actions taken) with pagination"}}]},{"name":"websites_backups","scope":"websites:backups","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"list_backups","description":"List backups for a website. Supports pagination.","method":"GET","path_template":"/servers/websites/{website}/backups","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of backup objects (id, name, time, target, expire, type, domains)","meta":"pagination metadata"}},{"name":"get_running","description":"Get currently running backup process.","method":"GET","path_template":"/servers/websites/{website}/backups/running","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object|null (null when no process is running)","data.type":"string (\"backup\" or \"restore\")","data.target":"string|array (\"full\" or array of kinds)","data.time":"integer (Unix timestamp when process started)"}},{"name":"list_stats","description":"Get backup statistics.","method":"GET","path_template":"/servers/websites/{website}/backups/stats","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.amounts":"integer (total number of backups)","data.expire":"string (backup retention period)","data.newest_backup_time":"integer|null (Unix timestamp of newest backup)","data.oldest_backup_time":"integer|null (Unix timestamp of oldest backup)"}},{"name":"create_backups","description":"Create a new backup.","method":"POST","path_template":"/servers/websites/{website}/backups","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"name","type":"string","required":true,"description":"Backup name"},{"name":"full","type":"boolean","required":false,"description":"Create a full backup (files + databases + data)"},{"name":"files","type":"boolean","required":false,"description":"Include files in backup"},{"name":"databases","type":"boolean","required":false,"description":"Include databases in backup"},{"name":"data","type":"boolean","required":false,"description":"Include data/config in backup"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_backups","description":"DESTRUCTIVE - Delete a backup.","method":"DELETE","path_template":"/servers/websites/{website}/backups","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array with backup time identifier"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"restore","description":"DESTRUCTIVE - Restore from a backup.","method":"POST","path_template":"/servers/websites/{website}/backups/{backup}/restore","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"backup","type":"boolean","required":false,"description":"Create backup before restore"}],"body_params":[{"name":"full","type":"boolean","required":false,"description":"Full restore"},{"name":"files","type":"boolean","required":false,"description":"Restore files"},{"name":"databases","type":"boolean","required":false,"description":"Restore databases"},{"name":"_data","type":"boolean","required":false,"description":"Restore data/config"},{"name":"reset","type":"boolean","required":false,"description":"Reset before restore"},{"name":"maintenance","type":"boolean","required":false,"description":"Enable maintenance mode during restore"},{"name":"this_website","type":"boolean","required":false,"description":"Restore to this website (default true)"},{"name":"target_website","type":"integer","required":false,"description":"Target website ID for cross-restore"},{"name":"backup_name","type":"string","required":false,"description":"Name for pre-restore backup"},{"name":"selected_files","type":"array","required":false,"description":"Specific files to restore"},{"name":"selected_databases","type":"array","required":false,"description":"Specific databases to restore"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_download","description":"Download a backup. Returns binary file data (StreamedResponse).","method":"GET","path_template":"/servers/websites/{website}/backups/{backup}/download","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"backup","type":"string","required":true,"description":"Backup time identifier (URL parameter)"}],"body_params":[{"name":"kind","type":"string","required":false,"description":"Backup kind: files, databases, or data"},{"name":"item","type":"string","required":false,"description":"Specific item to download"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"description":"Binary file stream"}},{"name":"list_files","description":"View files inside a backup. Supports pagination.","method":"GET","path_template":"/servers/websites/{website}/backups/{backup}/files","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"backup","type":"string","required":true,"description":"Backup time identifier (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Directory path inside backup"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of file objects","meta":"pagination metadata"}},{"name":"get_code","description":"View file content inside a backup.","method":"GET","path_template":"/servers/websites/{website}/backups/{backup}/files/code","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"backup","type":"string","required":true,"description":"Backup time identifier (URL parameter)"}],"body_params":[{"name":"file","type":"string","required":true,"description":"File path inside backup"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.content":"string"}},{"name":"get_structure","description":"View directory structure of files in a backup.","method":"GET","path_template":"/servers/websites/{website}/backups/{backup}/files/structure","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"backup","type":"string","required":true,"description":"Backup time identifier (URL parameter)"}],"body_params":[{"name":"openedPaths","type":"array","required":false,"description":"Array of already-opened paths"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of directory tree nodes"}},{"name":"get_mysql","description":"View MySQL databases inside a backup. Supports pagination.","method":"GET","path_template":"/servers/websites/{website}/backups/{backup}/mysql","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"backup","type":"string","required":true,"description":"Backup time identifier (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of database objects (id, name)","meta":"pagination metadata"}},{"name":"mysql_get_structure","description":"View MySQL directory structure inside a backup.","method":"GET","path_template":"/servers/websites/{website}/backups/{backup}/mysql/structure","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"backup","type":"string","required":true,"description":"Backup time identifier (URL parameter)"}],"body_params":[{"name":"openedPaths","type":"array","required":false,"description":"Array of already-opened paths"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of directory tree nodes"}},{"name":"list_share_links","description":"BREAKING CHANGE: response now includes links where ready != 1. Archives are prepared asynchronously, so newly-created links appear with ready=0 (preparing) and finish at ready=1 (ready) or ready=-1 (failed). Clients MUST filter by ready === 1 before attempting download; pre-refactor clients assumed listed = downloadable. Get share links for a backup. Supports pagination.","method":"GET","path_template":"/servers/websites/{website}/backups/{backup}/share-links","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"backup","type":"string","required":true,"description":"Backup time identifier (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of share link objects (id, link, name, has_password, ready, downloads, created_at)","data[].ready":"integer (0=preparing, 1=ready, -1=failed)","meta":"pagination metadata"}},{"name":"create_share_links","description":"Create a share link for a backup. Response shape adds data.ready / data.status: the archive is prepared in the background, so the link URL is returned immediately and can be shared right away, but downloads are gated until ready=1. Poll GET /share-links until ready=1 before the recipient attempts download.","method":"POST","path_template":"/servers/websites/{website}/backups/{backup}/share-links","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"backup","type":"string","required":true,"description":"Backup time identifier (URL parameter)"}],"body_params":[{"name":"name","type":"string","required":true,"description":"Share link name"},{"name":"password","type":"string","required":false,"description":"Password protection for the share link"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.link":"string (full share link URL, shareable immediately)","data.ready":"integer (always 0 on create \u2014 archive prepared asynchronously)","data.status":"string (always 'preparing' on create)"}},{"name":"update_share_links","description":"Update a share link (name or password). At least one of `name` or `password` MUST be provided \u2014 a request with both omitted is rejected with HTTP 422. If `name` is provided, only the name is updated; otherwise (name omitted, password provided) only the password is updated.","method":"PUT","path_template":"/servers/websites/{website}/backups/{backup}/share-links/{link}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"backup","type":"string","required":true,"description":"Backup time identifier (URL parameter)"},{"name":"link","type":"string","required":true,"description":"Share link ID (URL parameter)"}],"body_params":[{"name":"name","type":"string","required":false,"description":"New share link name"},{"name":"password","type":"string","required":false,"description":"New password for the share link"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_share_links","description":"DESTRUCTIVE - Delete a share link.","method":"DELETE","path_template":"/servers/websites/{website}/backups/{backup}/share-links/{link}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"backup","type":"string","required":true,"description":"Backup time identifier (URL parameter)"},{"name":"link","type":"string","required":true,"description":"Share link ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_password","description":"DESTRUCTIVE - Remove password protection from a share link.","method":"DELETE","path_template":"/servers/websites/{website}/backups/{backup}/share-links/{link}/password","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"backup","type":"string","required":true,"description":"Backup time identifier (URL parameter)"},{"name":"link","type":"string","required":true,"description":"Share link ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_downloads","description":"Get download history for a share link. Supports pagination.","method":"GET","path_template":"/servers/websites/{website}/backups/{backup}/share-links/{link}/downloads","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"backup","type":"string","required":true,"description":"Backup time identifier (URL parameter)"},{"name":"link","type":"string","required":true,"description":"Share link ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of download records (ip, downloaded_at)","meta":"pagination metadata"}},{"name":"create_retry","description":"Retry preparation for a failed share link (valid only when the link's ready=-1). The archive is re-queued in the background; the link URL is unchanged so anyone who already has the URL can keep using it. Returns 409 with {message: 'Share link is not in failed state'} when the link is currently preparing (ready=0) or already ready (ready=1).","method":"POST","path_template":"/servers/websites/{website}/backups/{backup}/share-links/{link}/retry","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"backup","type":"string","required":true,"description":"Backup time identifier (URL parameter)"},{"name":"link","type":"string","required":true,"description":"Share link ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"websites_cache","scope":"websites:cache","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"get_status","description":"Get website cache status.","method":"GET","path_template":"/servers/websites/cache/status/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"enable":"boolean","cache_time":"string","cached_pages":"object","cached_pages.desktop":"integer","cached_pages.mobile":"integer"}}},{"name":"create_purge","description":"DESTRUCTIVE - Purge website cache.","method":"POST","path_template":"/servers/websites/cache/purge/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"uri","type":"string","required":false,"description":"Single URI path to purge (defaults to '/')"},{"name":"paths","type":"array","required":false,"description":"Array of paths to purge. If provided, overrides 'uri'"},{"name":"platform","type":"string","required":false,"description":"Platform cache to purge: 'desktop', 'mobile', or 'all' (defaults to 'all')"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_cache_history","description":"Get cache history and statistics showing cached vs non-cached request counts over time.","method":"GET","path_template":"/servers/websites/cache/cache-history/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"timeframe","type":"string|integer","required":false,"description":"Time period: 'today', 'this_month', or integer 1-30 for number of days (defaults to 'today')"},{"name":"tz","type":"string","required":false,"description":"Timezone for bucketing (e.g., 'America/New_York'). Defaults to server cluster timezone"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"total":"object","total.requests":"integer","total.cached":"integer","total.nocached":"integer","timestamps":"object","timestamps.requests":"object","timestamps.cached":"object","timestamps.nocached":"object"}}},{"name":"list_settings","description":"Get cache settings including bypass rules and preload configuration.","method":"GET","path_template":"/servers/websites/{website}/cache/settings","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"cache_time":"string","bypass_known_bots":"boolean","bypass_known_headers":"boolean","bypass_known_user_agents":"boolean","bypass_known_uri":"boolean","bypass_known_query_strings":"boolean","bypass_known_cookies":"boolean","bypass_known_countries":"boolean","bypass_known_referers":"boolean","ignore_known_query_strings":"boolean","ignore_all_query_strings":"boolean","preload_enable":"boolean","preload_pages_per_minute":"integer"}}},{"name":"update_settings","description":"Update cache settings including bypass rules and preload configuration.","method":"PUT","path_template":"/servers/websites/{website}/cache/settings","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"cache_time","type":"string","required":false,"description":"Cache duration. Enum: 1m, 5m, 10m, 20m, 30m, 1h, 4h, 8h, 12h, 1d, 2d, 3d, 4d, 5d, 6d, 7d, 14d, 21d, 30d"},{"name":"bypass_known_bots","type":"boolean","required":false,"description":"Bypass cache for known bots"},{"name":"preload_enable","type":"boolean","required":false,"description":"Enable cache preloading"},{"name":"preload_pages_per_minute","type":"integer","required":false,"description":"Pages to preload per minute"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_is_cached","description":"Check if a specific URI is cached.","method":"GET","path_template":"/servers/websites/{website}/cache/is-cached","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"uri","type":"string","required":true,"description":"URI path to check"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 whether the specified URI is currently cached"}},{"name":"update_mode","description":"Set cache mode (off, basic, balanced, strict).","method":"PUT","path_template":"/servers/websites/{website}/cache/mode","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"mode","type":"string","required":true,"description":"Cache mode: off, basic, balanced, strict"},{"name":"category_overrides","type":"object","required":false,"description":"Per-category override settings"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"websites_cron","scope":"websites:cron","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"get_cron","description":"List cronjobs for a website. Includes next run times. Supports pagination.","method":"GET","path_template":"/servers/websites/{website}/cron","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of cronjob objects (id, minute, hour, day, month, weekday, command, reboot, next_run, next_runs)","meta":"pagination metadata"}},{"name":"get_timezone","description":"Get server timezone information for cronjob scheduling.","method":"GET","path_template":"/servers/websites/{website}/cron/timezone","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.timezone":"string (e.g., \"UTC\", \"Asia/Jerusalem\")","data.current_time":"string (current time in HH:mm:ss format)"}},{"name":"create_cron","description":"Create a new cronjob.","method":"POST","path_template":"/servers/websites/{website}/cron","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"command","type":"string","required":true,"description":"Command to execute"},{"name":"reboot","type":"boolean","required":false,"description":"Run on reboot instead of schedule"},{"name":"minute","type":"string","required":false,"description":"Cron minute field (required when reboot is false)"},{"name":"hour","type":"string","required":false,"description":"Cron hour field (required when reboot is false)"},{"name":"day","type":"string","required":false,"description":"Cron day of month field (required when reboot is false)"},{"name":"month","type":"string","required":false,"description":"Cron month field (required when reboot is false)"},{"name":"weekday","type":"string","required":false,"description":"Cron day of week field (required when reboot is false)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_cron","description":"Update a cronjob. The cron parameter is the base64-encoded cronjob identifier.","method":"PUT","path_template":"/servers/websites/{website}/cron/{cron}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"cron","type":"string","required":true,"description":"Base64-encoded cronjob identifier (URL parameter)"}],"body_params":[{"name":"command","type":"string","required":true,"description":"Command to execute"},{"name":"reboot","type":"boolean","required":false,"description":"Run on reboot instead of schedule"},{"name":"minute","type":"string","required":false,"description":"Cron minute field (required when reboot is false)"},{"name":"hour","type":"string","required":false,"description":"Cron hour field (required when reboot is false)"},{"name":"day","type":"string","required":false,"description":"Cron day of month field (required when reboot is false)"},{"name":"month","type":"string","required":false,"description":"Cron month field (required when reboot is false)"},{"name":"weekday","type":"string","required":false,"description":"Cron day of week field (required when reboot is false)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_cron","description":"DESTRUCTIVE - Delete one or more cronjobs.","method":"DELETE","path_template":"/servers/websites/{website}/cron","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of base64-encoded cronjob identifiers to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_preview_schedule","description":"Preview next 5 run times for a cron schedule.","method":"POST","path_template":"/servers/websites/{website}/cron/preview-schedule","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"minute","type":"string","required":false,"description":"Cron minute field (default: *)"},{"name":"hour","type":"string","required":false,"description":"Cron hour field (default: *)"},{"name":"day","type":"string","required":false,"description":"Cron day of month field (default: *)"},{"name":"month","type":"string","required":false,"description":"Cron month field (default: *)"},{"name":"weekday","type":"string","required":false,"description":"Cron day of week field (default: *)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.next_runs":"array of strings (up to 5 ISO 8601 timestamps in UTC)"}},{"name":"create_execute","description":"Execute a cronjob immediately and return its output.","method":"POST","path_template":"/servers/websites/{website}/cron/{cron}/execute","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"cron","type":"string","required":true,"description":"Base64-encoded cronjob identifier (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.output":"string (command output)"}}]},{"name":"websites_databases","scope":"websites:databases","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"get_databases","description":"Get list of databases for a website.","method":"GET","path_template":"/servers/websites/databases/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"string","data[].name":"string","data[].size":"integer","meta":"object"}},{"name":"get_structure","description":"Get MySQL database structure.","method":"GET","path_template":"/servers/websites/databases/structure/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.":"object (tree structure with databases and tables)"}},{"name":"get_tables","description":"Get list of tables in a database.","method":"GET","path_template":"/servers/websites/databases/tables/{website}/{database}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"database","type":"string","required":true,"description":"Database name (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"string","data[].name":"string"}},{"name":"create_databases","description":"Create a new database.","method":"POST","path_template":"/servers/websites/databases/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"name","type":"string","required":true,"description":"Database name"},{"name":"create_new_user","type":"boolean","required":false,"description":"When true (default), creates a new MySQL user for this database. When false, links an existing user instead. Note: existing_user is prohibited when this is true."},{"name":"existing_user","type":"string","required":false,"description":"The existing MySQL user to link to this database. Required when create_new_user is false, prohibited when create_new_user is true."}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.id":"string","data.name":"string"}},{"name":"delete_databases","description":"DESTRUCTIVE - Delete databases.","method":"DELETE","path_template":"/servers/websites/databases/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of database names to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_stats","description":"Get database statistics.","method":"GET","path_template":"/servers/websites/databases/stats/{website}/{database}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"database","type":"string","required":true,"description":"Database name (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object"}},{"name":"get_processes","description":"Get running database processes.","method":"GET","path_template":"/servers/websites/databases/processes/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"integer","data[].user":"string","data[].host":"string","data[].db":"string","data[].command":"string","data[].time":"integer","data[].state":"string","data[].info":"string|null"}},{"name":"delete_processes","description":"DESTRUCTIVE - Kill database processes.","method":"DELETE","path_template":"/servers/websites/databases/processes/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Process IDs to kill"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_all","description":"Get all database users for a website.","method":"GET","path_template":"/servers/websites/databases/users/all/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"string","data[].name":"string"}},{"name":"get_users","description":"Get users for a specific database.","method":"GET","path_template":"/servers/websites/databases/users/{website}/{database}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"database","type":"string","required":true,"description":"Database name (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"string","data[].name":"string","meta":"object"}},{"name":"create_users","description":"Create a database user.","method":"POST","path_template":"/servers/websites/databases/users/{website}/{database}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"database","type":"string","required":true,"description":"Database name (URL parameter)"}],"body_params":[{"name":"name","type":"string","required":true,"description":"New user name (without username_ prefix). Must start with a letter and may contain letters, numbers, and underscores. Maximum 32 characters."}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.id":"string","data.name":"string"}},{"name":"delete_users","description":"DESTRUCTIVE - Delete a database user.","method":"DELETE","path_template":"/servers/websites/databases/users/{website}/{database}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"database","type":"string","required":true,"description":"Database name (URL parameter)"}],"body_params":[{"name":"username","type":"string","required":true,"description":"Username to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_optimize_all","description":"Optimize all databases for a website.","method":"POST","path_template":"/servers/websites/{website}/databases/optimize-all","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_download","description":"Download a database as a SQL file. Returns binary stream, not JSON.","method":"GET","path_template":"/servers/websites/{website}/databases/{database}/download","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"database","type":"string","required":true,"description":"Database name (URL parameter)"}],"body_params":[{"name":"compressed","type":"string","required":false,"description":"Set to 'true' to download as gzipped SQL (default: 'false')"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"content_type":"application/octet-stream (binary download)"}},{"name":"create_export","description":"Export a database to a file on the server (relative path returned).","method":"POST","path_template":"/servers/websites/{website}/databases/{database}/export","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"database","type":"string","required":true,"description":"Database name (URL parameter)"}],"body_params":[{"name":"compressed","type":"boolean","required":false,"description":"Compress the export (default: false)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data.path":"string"}},{"name":"create_import","description":"Import a database from file upload or FTP path. Accepts multipart/form-data for file uploads.","method":"POST","path_template":"/servers/websites/{website}/databases/{database}/import","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"database","type":"string","required":true,"description":"Database name (URL parameter)"}],"body_params":[{"name":"file","type":"file","required":false,"description":"SQL file to import (multipart/form-data)"},{"name":"ftp","type":"string","required":false,"description":"Set to 'true' to import from FTP path"},{"name":"file","type":"string","required":false,"description":"FTP file path (when ftp is 'true')"},{"name":"remove","type":"string","required":false,"description":"Set to 'true' to remove file after import (FTP mode)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_hosts","description":"Get the list of allowed hosts for a database user.","method":"GET","path_template":"/servers/websites/{website}/databases/users/{database}/hosts","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"database","type":"string","required":true,"description":"Database name (URL parameter)"}],"body_params":[{"name":"user","type":"string","required":true,"description":"Database user name (query parameter)"},{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of {host}","meta.current_page":"integer","meta.per_page":"integer","meta.total":"integer"}},{"name":"create_hosts","description":"Add a host for a database user.","method":"POST","path_template":"/servers/websites/{website}/databases/users/{database}/hosts","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"database","type":"string","required":true,"description":"Database name (URL parameter)"}],"body_params":[{"name":"user","type":"string","required":true,"description":"Database user name"},{"name":"host","type":"string","required":true,"description":"Host to add (IP, CIDR, domain, localhost, or %)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_hosts","description":"DESTRUCTIVE - Remove a host from a database user.","method":"DELETE","path_template":"/servers/websites/{website}/databases/users/{database}/hosts","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"database","type":"string","required":true,"description":"Database name (URL parameter)"}],"body_params":[{"name":"user","type":"string","required":true,"description":"Database user name"},{"name":"host","type":"string","required":true,"description":"Host to remove"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_is_allowed","description":"Check if MySQL remote host connections are allowed on this server.","method":"GET","path_template":"/servers/websites/{website}/databases/is-allowed","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.allowed":"boolean"}},{"name":"list_privileges","description":"Get privileges for a database user on a specific database.","method":"GET","path_template":"/servers/websites/{website}/databases/users/{database}/{user}/privileges","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"database","type":"string","required":true,"description":"Database name (URL parameter)"},{"name":"user","type":"string","required":true,"description":"Database user name (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object (privilege name -> boolean/string)"}},{"name":"update_privileges","description":"Set a single privilege for a database user.","method":"PUT","path_template":"/servers/websites/{website}/databases/users/{database}/{user}/privileges","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"database","type":"string","required":true,"description":"Database name (URL parameter)"},{"name":"user","type":"string","required":true,"description":"Database user name (URL parameter)"}],"body_params":[{"name":"privilege","type":"string","required":true,"description":"Privilege name (e.g., SELECT, INSERT, UPDATE, DELETE, etc.)"},{"name":"action","type":"string","required":true,"description":"Action: 'on' or 'off'"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_preset","description":"Apply a privileges preset (full or readonly) to a database user.","method":"POST","path_template":"/servers/websites/{website}/databases/users/{database}/{user}/privileges/preset","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"database","type":"string","required":true,"description":"Database name (URL parameter)"},{"name":"user","type":"string","required":true,"description":"Database user name (URL parameter)"}],"body_params":[{"name":"preset","type":"string","required":true,"description":"Preset name: 'full' or 'readonly'"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_password","description":"Change the password for a database user. Returns the new password.","method":"PUT","path_template":"/servers/websites/{website}/databases/users/{database}/{user}/password","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"database","type":"string","required":true,"description":"Database name (URL parameter)"},{"name":"user","type":"string","required":true,"description":"Database user name (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data.password":"string"}}]},{"name":"websites_ddos","scope":"websites:ddos","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"get_status","description":"Get DDoS protection status and settings.","method":"GET","path_template":"/servers/websites/ddos/status/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"automode":"boolean","enable":"boolean","level":"integer","internal_flood_protection":"boolean","enhanced_mode":"boolean"}}},{"name":"get_attacks_statistics","description":"Get DDoS attack statistics over time, including request breakdowns by clean vs attack traffic.","method":"GET","path_template":"/servers/websites/ddos/attacks-statistics/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"timeframe","type":"string|integer","required":false,"description":"Time period: 'today', 'this_month', or integer 1-30 for number of days (defaults to 'today')"},{"name":"tz","type":"string","required":false,"description":"Timezone for bucketing (e.g., 'America/New_York'). Defaults to server cluster timezone"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"total":"object","total.requests":"integer","total.clean":"integer","total.attacks":"integer","timestamps":"object","timestamps.requests":"object","timestamps.clean":"object","timestamps.attacks":"object","attacks":"object","attacks.ips":"object","attacks.countries":"object","countries":"object"}}},{"name":"get_realtime_attacks","description":"Get realtime DDoS challenge request data including top attacking IPs and countries.","method":"GET","path_template":"/servers/websites/ddos/realtime-attacks/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"total":"integer","requests":"object","requests.ips":"object","requests.countries":"object","countries":"object"}}},{"name":"get_levels","description":"Get available DDoS challenge levels.","method":"GET","path_template":"/servers/websites/ddos/levels/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":[{"id":"string","name":"string"}]}},{"name":"list_settings","description":"Get DDoS protection settings.","method":"GET","path_template":"/servers/websites/{website}/ddos/settings","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"automode":"boolean","enable":"boolean","level":"integer (1=invisible, 2=captcha)","internal_flood_protection":"boolean","internal_flood_protection_requests":"integer","internal_flood_protection_ajax_requests":"integer (0=unlimited)","internal_flood_protection_cache_requests":"integer (0=unlimited)","bypass_known_bots":"boolean","blocklist_timeout_minutes":"integer","whitelist_timeout_minutes":"integer"}}},{"name":"update_settings","description":"Update DDoS protection settings.","method":"PUT","path_template":"/servers/websites/{website}/ddos/settings","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"protection_level","type":"string","required":true,"description":"Protection level: automatic, invisible, captcha"},{"name":"internal_flood_protection","type":"boolean","required":false,"description":"Enable internal flood protection"},{"name":"bypass_known_bots","type":"boolean","required":false,"description":"Bypass known bots"},{"name":"blocklist_timeout_minutes","type":"integer","required":false,"description":"Blocklist timeout in minutes"},{"name":"whitelist_timeout_minutes","type":"integer","required":false,"description":"Whitelist timeout in minutes"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_page","description":"Get DDoS captcha page HTML.","method":"GET","path_template":"/servers/websites/{website}/ddos/page","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"string (HTML content)"}},{"name":"update_page","description":"Set custom DDoS captcha page HTML.","method":"PUT","path_template":"/servers/websites/{website}/ddos/page","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"code","type":"string","required":true,"description":"HTML content for the captcha page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_page","description":"DESTRUCTIVE - Restore DDoS captcha page to default.","method":"DELETE","path_template":"/servers/websites/{website}/ddos/page","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_rate_limits","description":"Get DDoS rate limits with pagination.","method":"GET","path_template":"/servers/websites/{website}/ddos/rate-limits","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of rate limit objects","meta":"pagination object"}},{"name":"create_rate_limits","description":"Create a DDoS rate limit rule.","method":"POST","path_template":"/servers/websites/{website}/ddos/rate-limits","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"uri","type":"string","required":true,"description":"URI pattern to limit"},{"name":"methods","type":"array","required":true,"description":"HTTP methods to limit"},{"name":"rate","type":"integer","required":true,"description":"Rate limit (requests per second)"},{"name":"burst","type":"integer","required":false,"description":"Burst allowance"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_rate_limits","description":"DESTRUCTIVE - Delete DDoS rate limit rules.","method":"DELETE","path_template":"/servers/websites/{website}/ddos/rate-limits","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of rate limit IDs to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_blocked_list","description":"Get DDoS blocked IP list with pagination.","method":"GET","path_template":"/servers/websites/{website}/ddos/blocked-list","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of blocked IP objects","meta":"pagination object"}},{"name":"create_release_ip","description":"Release a specific IP from the DDoS blocklist.","method":"POST","path_template":"/servers/websites/{website}/ddos/release-ip","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ip","type":"string","required":true,"description":"IP address to release"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_block_on_server","description":"Block an IP on the server firewall (removes from DDoS blocklist automatically).","method":"POST","path_template":"/servers/websites/{website}/ddos/block-on-server","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ip","type":"string","required":true,"description":"IP address to block on server"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_release_all","description":"Release all blocked IPs from the DDoS blocklist.","method":"POST","path_template":"/servers/websites/{website}/ddos/release-all","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_mode","description":"Set DDoS protection mode (off, basic, balanced, strict).","method":"PUT","path_template":"/servers/websites/{website}/ddos/mode","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"mode","type":"string","required":true,"description":"DDoS mode: off, basic, balanced, strict"},{"name":"sync_rules_only","type":"boolean","required":false,"description":"Only sync rules without changing mode settings"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"websites_devtools","scope":"websites:devtools","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"create_search_replace","description":"Search and replace in files and/or database.","method":"POST","path_template":"/servers/websites/{website}/dev-tools/search-replace","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"search","type":"string","required":true,"description":"Search string"},{"name":"replace","type":"string","required":true,"description":"Replace string"},{"name":"destination","type":"string","required":false,"description":"Where to search: database, files, or both"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 search-replace results (matches found, replacements made)"}},{"name":"create_search_in_files","description":"Search for text in files.","method":"POST","path_template":"/servers/websites/{website}/dev-tools/search-in-files","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"search","type":"string","required":true,"description":"Search string"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 search results (matches array with file paths/line numbers or table/column locations)"}},{"name":"create_search_in_database","description":"Search for text in database.","method":"POST","path_template":"/servers/websites/{website}/dev-tools/search-in-database","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"search","type":"string","required":true,"description":"Search string"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 search results (matches array with file paths/line numbers or table/column locations)"}},{"name":"create_find_files","description":"Find files by pattern.","method":"POST","path_template":"/servers/websites/{website}/dev-tools/find-files","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"pattern","type":"string","required":true,"description":"File pattern to search"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 matching file paths array"}},{"name":"create_send_request","description":"Send an HTTP request from the server.","method":"POST","path_template":"/servers/websites/{website}/dev-tools/send-request","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"url","type":"string","required":true,"description":"URL to request"},{"name":"method","type":"string","required":false,"description":"HTTP method"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 HTTP response details (status_code, headers, body)"}},{"name":"list_whois","description":"Perform a WHOIS lookup.","method":"GET","path_template":"/servers/websites/{website}/dev-tools/whois","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"domain","type":"string","required":true,"description":"Domain to look up"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 WHOIS lookup results (registrar, creation/expiry dates, nameservers, registrant info)"}},{"name":"create_ping","description":"Ping a host from the server.","method":"POST","path_template":"/servers/websites/{website}/dev-tools/ping","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"host","type":"string","required":true,"description":"Host to ping"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 ping results (packets sent/received, latency, packet loss)"}},{"name":"get_dns_lookup","description":"Perform a DNS lookup.","method":"GET","path_template":"/servers/websites/{website}/dev-tools/dns-lookup","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"domain","type":"string","required":true,"description":"Domain to look up"},{"name":"type","type":"string","required":false,"description":"DNS record type"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 DNS lookup results (A, AAAA, CNAME, MX, NS, TXT, SOA records)"}},{"name":"create_fix_website","description":"Fix common website issues.","method":"POST","path_template":"/servers/websites/{website}/dev-tools/fix-website","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object"}},{"name":"create_send_mail","description":"Send a test email from the website.","method":"POST","path_template":"/servers/websites/{website}/dev-tools/send-mail","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"to","type":"string","required":true,"description":"Recipient email"},{"name":"subject","type":"string","required":false,"description":"Email subject"},{"name":"message","type":"string","required":false,"description":"Email body"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object"}},{"name":"create_clear_wordpress","description":"Clear WordPress installation.","method":"POST","path_template":"/servers/websites/{website}/dev-tools/clear-wordpress","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object"}},{"name":"list_wp_admins","description":"Get WordPress admin users list.","method":"GET","path_template":"/servers/websites/{website}/dev-tools/wp-admins","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of admin users"}},{"name":"list_mailboxes","description":"Get mailboxes for the website.","method":"GET","path_template":"/servers/websites/{website}/dev-tools/mailboxes","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of mailboxes"}}]},{"name":"websites_domains","scope":"websites:domains","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"get_ns_details","description":"Get nameserver details for a website domain.","method":"GET","path_template":"/servers/websites/domains/ns-details/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.nameservers":"array","data.domain":"string"}},{"name":"get_redirects","description":"Get list of domain redirects.","method":"GET","path_template":"/servers/websites/domains/redirects/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"string","data[].source":"string","data[].dest":"string","data[].status_code":"integer","meta":"object"}},{"name":"create_redirects","description":"Create a domain redirect.","method":"POST","path_template":"/servers/websites/domains/redirects/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"source","type":"string","required":true,"description":"Source path"},{"name":"destination","type":"string","required":true,"description":"Destination URL"},{"name":"type","type":"integer","required":false,"description":"Redirect type: 301 or 302"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.id":"string","data.source":"string","data.dest":"string","data.status_code":"integer"}},{"name":"delete_redirects","description":"DESTRUCTIVE - Delete domain redirects.","method":"DELETE","path_template":"/servers/websites/domains/redirects/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of redirect IDs to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_subdomains_wildcard","description":"Get subdomains wildcard setting.","method":"GET","path_template":"/servers/websites/domains/subdomains-wildcard/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.enable":"boolean","data.directory":"string|null"}},{"name":"create_subdomains_wildcard","description":"Set subdomains wildcard setting.","method":"POST","path_template":"/servers/websites/domains/subdomains-wildcard/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"enabled","type":"boolean","required":true,"description":"Enable or disable wildcard"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_records","description":"Get DNS records for a website domain.","method":"GET","path_template":"/servers/websites/domains/records/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].id":"string","data[].name":"string","data[].type":"string","data[].value":"string","data[].ttl":"integer","meta":"object"}},{"name":"create_records","description":"Create a DNS record.","method":"POST","path_template":"/servers/websites/domains/records/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"type","type":"string","required":true,"description":"Record type: A, AAAA, CNAME, MX, TXT, etc."},{"name":"name","type":"string","required":true,"description":"Record name"},{"name":"value","type":"string","required":true,"description":"Record value"},{"name":"ttl","type":"integer","required":false,"description":"TTL in seconds"},{"name":"priority","type":"integer","required":false,"description":"Priority (for MX records)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.id":"string","data.name":"string","data.type":"string","data.value":"string","data.ttl":"integer"}},{"name":"update_records","description":"Update a DNS record.","method":"PUT","path_template":"/servers/websites/domains/records/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"id","type":"integer","required":true,"description":"Record ID"},{"name":"type","type":"string","required":false,"description":"Record type"},{"name":"name","type":"string","required":false,"description":"Record name"},{"name":"value","type":"string","required":false,"description":"Record value"},{"name":"ttl","type":"integer","required":false,"description":"TTL in seconds"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.id":"string","data.name":"string","data.type":"string","data.value":"string","data.ttl":"integer"}},{"name":"delete_records","description":"DESTRUCTIVE - Delete DNS records.","method":"DELETE","path_template":"/servers/websites/domains/records/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of record IDs to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_default_records","description":"Get default DNS records for a website.","method":"GET","path_template":"/servers/websites/domains/default-records/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","data[].name":"string","data[].type":"string","data[].value":"string","data[].ttl":"integer"}},{"name":"create_default_records","description":"Restore default DNS records.","method":"POST","path_template":"/servers/websites/domains/default-records/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_www","description":"Get the www redirect and allow_http settings for a website.","method":"GET","path_template":"/servers/websites/{website}/domains/www","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.www":"string","data.allow_http":"boolean|string"}},{"name":"list_pointers","description":"Get a paginated list of domain pointers for a website.","method":"GET","path_template":"/servers/websites/{website}/domains/pointers","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page (max 200)"},{"name":"search","type":"string","required":false,"description":"Search term"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","meta.current_page":"integer","meta.per_page":"integer","meta.total":"integer"}},{"name":"create_pointers","description":"Create a new domain pointer.","method":"POST","path_template":"/servers/websites/{website}/domains/pointers","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"domain","type":"string","required":true,"description":"Domain to point"},{"name":"directory","type":"string","required":false,"description":"Directory path for the pointer"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data.id":"integer","data.domain":"string"}},{"name":"update_pointers","description":"Update a domain pointer directory.","method":"PUT","path_template":"/servers/websites/{website}/domains/pointers/{pointer}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"pointer","type":"integer","required":true,"description":"Pointer ID (URL parameter)"}],"body_params":[{"name":"directory","type":"string","required":false,"description":"New directory path"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_pointers","description":"DESTRUCTIVE - Delete one or more domain pointers.","method":"DELETE","path_template":"/servers/websites/{website}/domains/pointers","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of pointer IDs to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_websites","description":"Get a list of websites available for DNS record copying.","method":"GET","path_template":"/servers/websites/{website}/domains/copy-records/websites","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of {id, label}"}},{"name":"create_copy_records","description":"Copy DNS records from another website.","method":"POST","path_template":"/servers/websites/{website}/domains/copy-records","path_params":[{"name":"website","type":"integer","required":true,"description":"Target website ID (URL parameter)"}],"body_params":[{"name":"source_id","type":"integer","required":true,"description":"Source website ID to copy records from"},{"name":"records","type":"array","required":true,"description":"Array of records to copy, each with name, type, value, ttl"},{"name":"overwrite","type":"boolean","required":true,"description":"Whether to overwrite existing records with same name+type"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.copied":"integer","data.skipped":"integer"}},{"name":"get_dnssec","description":"Get DNSSEC status for a website domain.","method":"GET","path_template":"/servers/websites/{website}/domains/dnssec","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object (DNSSEC status)"}},{"name":"enable_dnssec","description":"Enable DNSSEC for a website domain.","method":"POST","path_template":"/servers/websites/{website}/domains/dnssec/enable","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"disable_dnssec","description":"DESTRUCTIVE - Disable DNSSEC for a website domain.","method":"POST","path_template":"/servers/websites/{website}/domains/dnssec/disable","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_regenerate_keys","description":"Regenerate DNSSEC keys for a website domain.","method":"POST","path_template":"/servers/websites/{website}/domains/dnssec/regenerate-keys","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"websites_files","scope":"websites:files","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"list_files","description":"List files in a directory. Supports pagination.","method":"GET","path_template":"/servers/websites/{website}/files","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Directory path to list (empty for root)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of file objects (name, type, relative_path, size, last_modified, permissions)","meta":"pagination metadata"}},{"name":"create_files","description":"Create a file or directory, or upload files. Accepts multipart/form-data for file uploads.","method":"POST","path_template":"/servers/websites/{website}/files","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"type","type":"string","required":true,"description":"Type: 'file' or 'directory'"},{"name":"name","type":"string","required":true,"description":"File or directory name (not needed for upload)"},{"name":"path","type":"string","required":false,"description":"Parent directory path"},{"name":"upload","type":"boolean","required":false,"description":"Set to true for file upload"},{"name":"files","type":"file[]","required":false,"description":"Files to upload (multipart/form-data)"},{"name":"code","type":"string","required":false,"description":"File content (for creating a file with content)"},{"name":"extract_after_upload","type":"boolean","required":false,"description":"Extract archives after upload"},{"name":"clean_archive","type":"boolean","required":false,"description":"Delete archive after extraction"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_files","description":"Update file content.","method":"PUT","path_template":"/servers/websites/{website}/files","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"id","type":"string","required":true,"description":"File relative path"},{"name":"code","type":"string","required":false,"description":"New file content"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_files","description":"DESTRUCTIVE - Delete files.","method":"DELETE","path_template":"/servers/websites/{website}/files","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of file relative paths to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_directories","description":"Get directory tree structure.","method":"GET","path_template":"/servers/websites/{website}/files/directories","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Current path to expand"},{"name":"openedPaths","type":"array","required":false,"description":"Array of already-opened paths"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of directory tree nodes"}},{"name":"get_files_only","description":"Get file tree (files only, no directories).","method":"GET","path_template":"/servers/websites/{website}/files/files-only","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Current path to expand"},{"name":"openedPaths","type":"array","required":false,"description":"Array of already-opened paths"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of file tree nodes"}},{"name":"create_move","description":"Move files to a destination directory.","method":"POST","path_template":"/servers/websites/{website}/files/move","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"files","type":"array","required":true,"description":"Array of file relative paths to move"},{"name":"destination","type":"string","required":true,"description":"Destination directory path"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_copy","description":"Copy files to a destination directory.","method":"POST","path_template":"/servers/websites/{website}/files/copy","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"files","type":"array","required":true,"description":"Array of file relative paths to copy"},{"name":"destination","type":"string","required":true,"description":"Destination directory path"},{"name":"new_name","type":"string","required":false,"description":"New name for single file copy"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_shortcut","description":"Create symbolic links (shortcuts) for files.","method":"POST","path_template":"/servers/websites/{website}/files/shortcut","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"files","type":"array","required":true,"description":"Array of file objects with name and relative_path"},{"name":"destination","type":"string","required":false,"description":"Destination directory for shortcut"},{"name":"custom_name","type":"string","required":false,"description":"Custom name for single-file shortcut"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_rename","description":"Rename a file or directory.","method":"POST","path_template":"/servers/websites/{website}/files/rename","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"id","type":"string","required":true,"description":"File relative path"},{"name":"name","type":"string","required":true,"description":"New file/directory name"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_permissions","description":"Set file/directory permissions (chmod).","method":"POST","path_template":"/servers/websites/{website}/files/permissions","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"files","type":"array","required":true,"description":"Array of file relative paths"},{"name":"mode","type":"string","required":true,"description":"Permission mode (e.g., '755', '644')"},{"name":"recursive","type":"boolean","required":false,"description":"Apply recursively to directories"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_download","description":"Download a single file. Returns binary file data (StreamedResponse).","method":"GET","path_template":"/servers/websites/{website}/files/download","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"file","type":"string","required":true,"description":"File relative path to download"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"description":"Binary file stream"}},{"name":"create_compress","description":"Compress files into an archive.","method":"POST","path_template":"/servers/websites/{website}/files/compress","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"files","type":"array","required":true,"description":"Array of file objects with relative_path"},{"name":"format","type":"string","required":true,"description":"Archive format: zip, tar, tar.gz, tar.bz2, tar.xz, tar.lz4, tar.zst"},{"name":"destination","type":"string","required":true,"description":"Destination directory for the archive"},{"name":"name","type":"string","required":false,"description":"Custom archive filename"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_extract","description":"Extract an archive file.","method":"POST","path_template":"/servers/websites/{website}/files/extract","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"file","type":"string","required":true,"description":"Archive file relative path"},{"name":"destination","type":"string","required":true,"description":"Destination directory for extraction"},{"name":"clean_archive","type":"boolean","required":false,"description":"Delete archive after extraction"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_code","description":"Get file content for editing.","method":"GET","path_template":"/servers/websites/{website}/files/code","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"file","type":"string","required":true,"description":"File relative path"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.content":"string"}},{"name":"list_programs","description":"Get available editor programs for a file type.","method":"GET","path_template":"/servers/websites/{website}/files/programs","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":true,"description":"File path to check programs for"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of available programs"}},{"name":"create_run_command","description":"Run a command on a file using a specific program.","method":"POST","path_template":"/servers/websites/{website}/files/run-command","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"program","type":"string","required":true,"description":"Program name to use"},{"name":"command","type":"string","required":true,"description":"Command to run"},{"name":"path","type":"string","required":false,"description":"Working directory path"},{"name":"file","type":"string","required":false,"description":"Target file path"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"command output"}},{"name":"create_protection","description":"Add password protection to a directory.","method":"POST","path_template":"/servers/websites/{website}/files/protection","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"directory","type":"string","required":true,"description":"Directory path to protect"},{"name":"user","type":"string","required":true,"description":"Username for protection"},{"name":"password","type":"string","required":true,"description":"Password for protection"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_protection","description":"DESTRUCTIVE - Remove password protection from a directory.","method":"DELETE","path_template":"/servers/websites/{website}/files/protection","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"directory","type":"string","required":true,"description":"Directory path to unprotect"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_info","description":"Get file information including size, permissions, and optional checksums.","method":"GET","path_template":"/servers/websites/{website}/files/info","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"file","type":"string","required":true,"description":"File relative path"},{"name":"checksums","type":"boolean","required":false,"description":"Include file checksums (MD5, SHA1, SHA256)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.name":"string","data.type":"string","data.size":"integer","data.last_modified":"integer (Unix timestamp)","data.permissions":"string","data.target":"string|null (symlink target)","data.checksums":"object|null (when checksums=true)","data.checksums.md5":"string","data.checksums.sha1":"string","data.checksums.sha256":"string","data.checksums.sha512":"string"}},{"name":"get_download_archive","description":"Download multiple files as an archive. Returns binary file data (StreamedResponse).","method":"GET","path_template":"/servers/websites/{website}/files/download-archive","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"files","type":"array","required":true,"description":"Array of file objects with relative_path"},{"name":"format","type":"string","required":true,"description":"Archive format: zip, tar, tar.gz, tar.bz2, tar.xz, tar.lz4, tar.zst"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"description":"Binary file stream"}},{"name":"get_trash","description":"List trash entries. Supports pagination.","method":"GET","path_template":"/servers/websites/{website}/files/trash","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of trash entries (name, type, size, deleted_at, original_path)","meta":"pagination metadata"}},{"name":"get_size","description":"Get total trash size.","method":"GET","path_template":"/servers/websites/{website}/files/trash/size","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.size":"integer (size in bytes)"}},{"name":"create_trash","description":"Move files to trash.","method":"POST","path_template":"/servers/websites/{website}/files/trash","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"files","type":"array","required":true,"description":"Array of file relative paths to move to trash"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"restore","description":"DESTRUCTIVE - Restore files from trash.","method":"POST","path_template":"/servers/websites/{website}/files/trash/restore","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"entries","type":"array","required":true,"description":"Array of trash entry IDs to restore"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_trash","description":"DESTRUCTIVE - Permanently delete files from trash.","method":"DELETE","path_template":"/servers/websites/{website}/files/trash","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"entries","type":"array","required":true,"description":"Array of trash entry IDs to permanently delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_empty","description":"DESTRUCTIVE - Empty the entire trash and recalculate disk quota.","method":"DELETE","path_template":"/servers/websites/{website}/files/trash/empty","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.result":"object","data.result.total":"float (total quota in MB)","data.result.files":"float (files size in MB)","data.result.mysql":"float (MySQL size in MB)","data.result.mail":"float (mail size in MB)","data.result.tmp":"float (tmp size in MB)","data.result.log":"float (log size in MB)","data.result.redis":"float (Redis size in MB)","data.result.optimization_backups":"float (optimization backups size in MB)","data.result.system":"float (system size in MB)","data.result.stages":"float (staging sites size in MB)","data.result.trash":"float (trash size in MB)","data.result.largest_files":"array","data.time":"integer (Unix timestamp)"}}]},{"name":"websites_ftp","scope":"websites:ftp","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"list_details","description":"Get FTP connection details for a website.","method":"GET","path_template":"/servers/websites/{website}/ftp/details","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object"}},{"name":"get_ip_restriction","description":"Get FTP IP restriction status.","method":"GET","path_template":"/servers/websites/{website}/ftp/ip-restriction","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.ip_restriction_enabled":"boolean"}},{"name":"update_ip_restriction","description":"Enable or disable FTP IP restriction (whitelist). Requires full permission on the website.","method":"PUT","path_template":"/servers/websites/{website}/ftp/ip-restriction","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"enabled","type":"boolean","required":true,"description":"Whether IP restriction is active"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.enabled":"boolean"}},{"name":"get_main_account","description":"Get the main FTP account password.","method":"GET","path_template":"/servers/websites/{website}/ftp/main-account","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.password":"string"}},{"name":"list_accounts","description":"Get FTP accounts list (excludes main account). Supports pagination.","method":"GET","path_template":"/servers/websites/{website}/ftp/accounts","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","meta":"object"}},{"name":"create_accounts","description":"Create a new FTP account.","method":"POST","path_template":"/servers/websites/{website}/ftp/accounts","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"owner_name","type":"string","required":true,"description":"Display name for the FTP account"},{"name":"access_to_all_files","type":"boolean","required":true,"description":"Whether the account can access all files"},{"name":"accessed_path","type":"string","required":false,"description":"Restricted path (required when access_to_all_files is false)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object"}},{"name":"update_accounts","description":"Update an FTP account.","method":"PUT","path_template":"/servers/websites/{website}/ftp/accounts/{account}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"account","type":"string","required":true,"description":"FTP username (URL parameter)"}],"body_params":[{"name":"owner_name","type":"string","required":true,"description":"Display name for the FTP account"},{"name":"access_to_all_files","type":"boolean","required":true,"description":"Whether the account can access all files"},{"name":"accessed_path","type":"string","required":false,"description":"Restricted path (required when access_to_all_files is false)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_accounts","description":"DESTRUCTIVE - Delete one or more FTP accounts.","method":"DELETE","path_template":"/servers/websites/{website}/ftp/accounts","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of FTP usernames to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_password","description":"Change FTP account password. Returns the new password.","method":"PUT","path_template":"/servers/websites/{website}/ftp/accounts/{account}/password","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"account","type":"string","required":true,"description":"FTP username (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data.password":"string"}},{"name":"list_sessions","description":"Get FTP sessions list. Requires ftp_username query parameter.","method":"GET","path_template":"/servers/websites/{website}/ftp/sessions","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ftp_username","type":"string","required":true,"description":"FTP username to get sessions for (query parameter)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","meta":"object"}},{"name":"delete_sessions","description":"DESTRUCTIVE - Kill FTP sessions. Provide either a session PID in \"ids\", or set \"all\": true to kill all sessions.","method":"DELETE","path_template":"/servers/websites/{website}/ftp/sessions","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ftp_username","type":"string","required":true,"description":"FTP username"},{"name":"all","type":"boolean","required":false,"description":"Set to true to kill all sessions. When true, \"ids\" is ignored."},{"name":"ids","type":"array","required":false,"description":"Array containing a single session PID to kill. Required unless \"all\" is true."}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_enabled","description":"Check if FTP IP whitelist is enabled.","method":"GET","path_template":"/servers/websites/{website}/ftp/whitelist/enabled","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.enabled":"boolean"}},{"name":"get_whitelist","description":"Get FTP whitelist IPs. Requires ftp_username query parameter.","method":"GET","path_template":"/servers/websites/{website}/ftp/whitelist","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ftp_username","type":"string","required":true,"description":"FTP username (query parameter)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","meta":"object"}},{"name":"create_whitelist","description":"Add an IP to the FTP whitelist.","method":"POST","path_template":"/servers/websites/{website}/ftp/whitelist","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ftp_username","type":"string","required":true,"description":"FTP username"},{"name":"ip","type":"string","required":true,"description":"IP address or CIDR range"},{"name":"permanent","type":"boolean","required":true,"description":"Whether the whitelist entry is permanent"},{"name":"expire_at","type":"integer","required":false,"description":"Unix timestamp for expiry (required when permanent is false)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_whitelist","description":"Update an FTP whitelist entry.","method":"PUT","path_template":"/servers/websites/{website}/ftp/whitelist/{entry}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"entry","type":"string","required":true,"description":"IP address (URL parameter)"}],"body_params":[{"name":"ftp_username","type":"string","required":true,"description":"FTP username"},{"name":"permanent","type":"boolean","required":true,"description":"Whether the whitelist entry is permanent"},{"name":"expire_at","type":"integer","required":false,"description":"Unix timestamp for expiry (required when permanent is false)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_whitelist","description":"DESTRUCTIVE - Delete FTP whitelist entries.","method":"DELETE","path_template":"/servers/websites/{website}/ftp/whitelist","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ftp_username","type":"string","required":true,"description":"FTP username"},{"name":"ids","type":"array","required":true,"description":"Array of IP addresses to remove"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"websites_git","scope":"websites:git","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"get_status","description":"Get git status for a repository.","method":"GET","path_template":"/servers/websites/{website}/git/status","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path relative to home directory"},{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page"},{"name":"search","type":"string","required":false,"description":"Search filter"},{"name":"category","type":"string","required":false,"description":"File category filter"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 is_repo (boolean), branch (string), staged/unstaged/untracked file arrays, and pagination info. Returns {is_repo: false} if not a git repo"}},{"name":"list_branches","description":"Get git branches for a repository.","method":"GET","path_template":"/servers/websites/{website}/git/branches","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of branch objects"}},{"name":"get_log","description":"Get git commit log.","method":"GET","path_template":"/servers/websites/{website}/git/log","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"},{"name":"branch","type":"string","required":false,"description":"Branch name"},{"name":"limit","type":"integer","required":false,"description":"Number of commits (default 50)"},{"name":"skip","type":"integer","required":false,"description":"Number of commits to skip (default 0)"},{"name":"search","type":"string","required":false,"description":"Search in commit messages"},{"name":"file_path","type":"string","required":false,"description":"Filter by file path"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of commit objects"}},{"name":"get_diff","description":"Get git diff for files.","method":"GET","path_template":"/servers/websites/{website}/git/diff","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"},{"name":"file_path","type":"string","required":false,"description":"File to diff"},{"name":"staged","type":"boolean","required":false,"description":"Show staged changes (default false)"},{"name":"commit","type":"string","required":false,"description":"Commit hash to diff"},{"name":"commit2","type":"string","required":false,"description":"Second commit hash for comparison"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 git diff output"}},{"name":"create_branches","description":"Create a new git branch.","method":"POST","path_template":"/servers/websites/{website}/git/branches","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"},{"name":"name","type":"string","required":true,"description":"Branch name"},{"name":"start_point","type":"string","required":false,"description":"Starting point (commit/branch)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_branches","description":"DESTRUCTIVE - Delete a git branch.","method":"DELETE","path_template":"/servers/websites/{website}/git/branches","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"},{"name":"name","type":"string","required":true,"description":"Branch name to delete"},{"name":"force","type":"boolean","required":false,"description":"Force delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_rename","description":"Rename a git branch.","method":"POST","path_template":"/servers/websites/{website}/git/branches/rename","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"},{"name":"name","type":"string","required":true,"description":"Current branch name"},{"name":"new_name","type":"string","required":true,"description":"New branch name"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_stage","description":"Stage files for commit.","method":"POST","path_template":"/servers/websites/{website}/git/stage","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"},{"name":"files","type":"array","required":false,"description":"Array of file paths to stage"},{"name":"all_files","type":"boolean","required":false,"description":"Stage all changed files"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_unstage","description":"Unstage files.","method":"POST","path_template":"/servers/websites/{website}/git/unstage","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"},{"name":"files","type":"array","required":false,"description":"Array of file paths to unstage"},{"name":"all_files","type":"boolean","required":false,"description":"Unstage all files"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_commit","description":"Create a git commit.","method":"POST","path_template":"/servers/websites/{website}/git/commit","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"},{"name":"message","type":"string","required":true,"description":"Commit message"},{"name":"files","type":"array","required":false,"description":"Files to include in commit"},{"name":"all_changes","type":"boolean","required":false,"description":"Include all changed files"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"checkout","description":"DESTRUCTIVE - Checkout a branch, file, or commit.","method":"POST","path_template":"/servers/websites/{website}/git/checkout","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"},{"name":"branch","type":"string","required":false,"description":"Branch name to checkout"},{"name":"file_path","type":"string","required":false,"description":"File to checkout"},{"name":"create","type":"boolean","required":false,"description":"Create new branch"},{"name":"commit","type":"string","required":false,"description":"Commit hash to checkout"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"push","description":"DESTRUCTIVE - Push commits to remote.","method":"POST","path_template":"/servers/websites/{website}/git/push","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"},{"name":"remote","type":"string","required":false,"description":"Remote name (default: origin)"},{"name":"branch","type":"string","required":false,"description":"Branch to push"},{"name":"force","type":"boolean","required":false,"description":"Force push"},{"name":"set_upstream","type":"boolean","required":false,"description":"Set upstream tracking"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"pull","description":"Pull changes from remote.","method":"POST","path_template":"/servers/websites/{website}/git/pull","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"},{"name":"remote","type":"string","required":false,"description":"Remote name (default: origin)"},{"name":"branch","type":"string","required":false,"description":"Branch to pull"},{"name":"rebase","type":"boolean","required":false,"description":"Use rebase instead of merge"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"init","description":"Initialize or clone a git repository.","method":"POST","path_template":"/servers/websites/{website}/git/init","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"},{"name":"clone_url","type":"string","required":false,"description":"URL to clone from (if not provided, initializes empty repo)"},{"name":"bare","type":"boolean","required":false,"description":"Initialize as bare repository"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_stash","description":"List stashed changes.","method":"GET","path_template":"/servers/websites/{website}/git/stash","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of stash entries"}},{"name":"stash_push","description":"DESTRUCTIVE - Push changes to stash.","method":"POST","path_template":"/servers/websites/{website}/git/stash/push","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"},{"name":"message","type":"string","required":false,"description":"Stash message"},{"name":"include_untracked","type":"boolean","required":false,"description":"Include untracked files"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"stash_pop","description":"Pop stashed changes.","method":"POST","path_template":"/servers/websites/{website}/git/stash/pop","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"},{"name":"stash_index","type":"integer","required":false,"description":"Stash index (default 0)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_apply","description":"Apply stashed changes without removing from stash.","method":"POST","path_template":"/servers/websites/{website}/git/stash/apply","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"},{"name":"stash_index","type":"integer","required":false,"description":"Stash index (default 0)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"stash_drop","description":"DESTRUCTIVE - Drop a stash entry.","method":"POST","path_template":"/servers/websites/{website}/git/stash/drop","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"},{"name":"stash_index","type":"integer","required":false,"description":"Stash index (default 0)"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_clear","description":"Clear all stash entries.","method":"POST","path_template":"/servers/websites/{website}/git/stash/clear","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_remotes","description":"List git remotes.","method":"GET","path_template":"/servers/websites/{website}/git/remotes","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of remote objects"}},{"name":"create_remotes","description":"Add a git remote.","method":"POST","path_template":"/servers/websites/{website}/git/remotes","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"},{"name":"name","type":"string","required":true,"description":"Remote name"},{"name":"url","type":"string","required":true,"description":"Remote URL"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_remotes","description":"DESTRUCTIVE - Remove a git remote.","method":"DELETE","path_template":"/servers/websites/{website}/git/remotes","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"},{"name":"name","type":"string","required":true,"description":"Remote name to remove"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_remotes","description":"Set URL for a git remote.","method":"PUT","path_template":"/servers/websites/{website}/git/remotes/{remote}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"remote","type":"string","required":true,"description":"Remote name (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Repository path"},{"name":"url","type":"string","required":true,"description":"New remote URL"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"websites_image-optimizer","scope":"websites:image-optimizer","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"list_settings","description":"Get image optimizer settings.","method":"GET","path_template":"/servers/websites/{website}/image-optimizer/settings","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 image optimizer settings (compression quality, formats, exclusions, etc.)"}},{"name":"update_settings","description":"Update image optimizer settings.","method":"PUT","path_template":"/servers/websites/{website}/image-optimizer/settings","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"quality","type":"integer","required":false,"description":"Image quality 1-100"},{"name":"auto_optimize","type":"boolean","required":false,"description":"Enable auto-optimization"},{"name":"convert_to_webp","type":"boolean","required":false,"description":"Convert images to WebP"},{"name":"backup_originals","type":"boolean","required":false,"description":"Keep backup of originals"},{"name":"max_width","type":"integer","required":false,"description":"Maximum image width 100-10000"},{"name":"max_height","type":"integer","required":false,"description":"Maximum image height 100-10000"},{"name":"preserve_metadata","type":"boolean","required":false,"description":"Preserve image metadata"},{"name":"backup_retention_days","type":"integer","required":false,"description":"Backup retention in days (0,7,30,60,90)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_scan","description":"Scan for images that can be optimized.","method":"POST","path_template":"/servers/websites/{website}/image-optimizer/scan","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Path to scan"},{"name":"include_optimized","type":"boolean","required":false,"description":"Include already optimized images"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 image scan results (total images found, optimizable count, sizes)"}},{"name":"list_backup_files","description":"Get backup files list with pagination.","method":"GET","path_template":"/servers/websites/{website}/image-optimizer/backup-files","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page"},{"name":"search","type":"string","required":false,"description":"Search filter"},{"name":"order_by","type":"string","required":false,"description":"Sort field"},{"name":"order_direction","type":"string","required":false,"description":"Sort direction (asc/desc)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 backup files list with pagination (file paths, sizes, optimization dates)"}},{"name":"get_running","description":"Get running image optimizer process.","method":"GET","path_template":"/servers/websites/{website}/image-optimizer/running","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object or empty array"}},{"name":"create_optimize","description":"Optimize images.","method":"POST","path_template":"/servers/websites/{website}/image-optimizer/optimize","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"paths","type":"array","required":false,"description":"Specific image paths to optimize"},{"name":"all_images","type":"boolean","required":false,"description":"Optimize all images"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object"}},{"name":"restore","description":"DESTRUCTIVE - Restore original images from backup.","method":"POST","path_template":"/servers/websites/{website}/image-optimizer/restore","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"paths","type":"array","required":false,"description":"Specific image paths to restore"},{"name":"all_images","type":"boolean","required":false,"description":"Restore all images"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object"}},{"name":"cleanup","description":"DESTRUCTIVE - Clean up image optimizer backups.","method":"POST","path_template":"/servers/websites/{website}/image-optimizer/cleanup","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"confirm","type":"boolean","required":false,"description":"Confirm cleanup"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object"}}]},{"name":"websites_logs","scope":"websites:logs","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"list_php_errors","description":"Get PHP error logs for a website.","method":"GET","path_template":"/servers/websites/{website}/logs/php-errors","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"offset","type":"integer","required":false,"description":"Byte offset to start reading from"},{"name":"cursor","type":"string","required":false,"description":"Cursor for pagination"},{"name":"lines","type":"integer","required":false,"description":"Number of lines to return"},{"name":"search","type":"string","required":false,"description":"Search term to filter logs"},{"name":"level","type":"string","required":false,"description":"Error level filter (e.g., 'error', 'warning', 'all')"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object"}},{"name":"delete_php_errors","description":"DESTRUCTIVE - Clear PHP error logs for a website.","method":"DELETE","path_template":"/servers/websites/{website}/logs/php-errors","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_redis_cache","description":"Get Redis cache logs for a website.","method":"GET","path_template":"/servers/websites/{website}/logs/redis-cache","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"offset","type":"integer","required":false,"description":"Byte offset to start reading from"},{"name":"cursor","type":"string","required":false,"description":"Cursor for pagination"},{"name":"lines","type":"integer","required":false,"description":"Number of lines to return"},{"name":"search","type":"string","required":false,"description":"Search term to filter logs"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object"}},{"name":"delete_redis_cache","description":"DESTRUCTIVE - Clear Redis cache logs for a website.","method":"DELETE","path_template":"/servers/websites/{website}/logs/redis-cache","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_php","description":"DESTRUCTIVE - Clear PHP logs for a website.","method":"DELETE","path_template":"/servers/websites/{website}/logs/php","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_parse","description":"Parse and filter website logs by type with pagination.","method":"GET","path_template":"/servers/websites/{website}/logs/parse","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"type","type":"string","required":false,"description":"Log type: 'access', 'mail', 'ftp', 'crons', 'waf', 'challenge' (default: 'access')"},{"name":"day","type":"string","required":false,"description":"Day filter: 'today', 'yesterday', or 'YYYY-MM-DD' (within last 30 days)"},{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page (max 200)"},{"name":"search","type":"string","required":false,"description":"Search term"},{"name":"hour_start","type":"integer","required":false,"description":"Start hour filter (0-23)"},{"name":"hour_end","type":"integer","required":false,"description":"End hour filter (0-24)"},{"name":"timezone_offset","type":"integer","required":false,"description":"Timezone offset in minutes from UTC"},{"name":"scope","type":"string","required":false,"description":"Scope filter: 'all', 'human', 'bot', 'ai'"},{"name":"filters","type":"object","required":false,"description":"Additional log-specific filters"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","meta.current_page":"integer","meta.per_page":"integer","meta.total":"integer"}}]},{"name":"websites_mail","scope":"websites:mail","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"get_details","description":"Get email server details.","method":"GET","path_template":"/servers/websites/mails/details/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"smtp_host":"string","smtp_port":"integer","imap_host":"string","imap_port":"integer","pop3_host":"string","pop3_port":"integer"}}},{"name":"get_forwarders","description":"Get list of email forwarders.","method":"GET","path_template":"/servers/websites/mails/forwarders/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":[{"id":"integer","source":"string","destination":"string","created_at":"string (datetime)"}]}},{"name":"create_forwarders","description":"Create an email forwarder.","method":"POST","path_template":"/servers/websites/mails/forwarders/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"source","type":"string","required":true,"description":"Source email"},{"name":"destination","type":"string","required":true,"description":"Destination email"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"id":"integer","source":"string","destination":"string"}}},{"name":"update_forwarders","description":"Update an email forwarder.","method":"PUT","path_template":"/servers/websites/mails/forwarders/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"id","type":"integer","required":true,"description":"Forwarder ID"},{"name":"destination","type":"string","required":true,"description":"New destination"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_forwarders","description":"DESTRUCTIVE - Delete email forwarders.","method":"DELETE","path_template":"/servers/websites/mails/forwarders/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Forwarder IDs to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_dns_settings","description":"Get email DNS settings (SPF, DKIM, DMARC).","method":"GET","path_template":"/servers/websites/mails/dns-settings/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"spf":{"record":"string","valid":"boolean"},"dkim":{"record":"string","valid":"boolean"},"dmarc":{"record":"string","valid":"boolean"}}}},{"name":"list_mailboxes","description":"Get mailboxes list. Supports pagination.","method":"GET","path_template":"/servers/websites/{website}/mails/mailboxes","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array (each mailbox: { id, user, newsletter (boolean), vacation, autoresponder, size })","meta":"object"}},{"name":"create_mailboxes","description":"Create a new mailbox.","method":"POST","path_template":"/servers/websites/{website}/mails/mailboxes","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"user","type":"string","required":true,"description":"Mailbox username (local part of the email)"},{"name":"newsletter","type":"boolean","required":false,"description":"If true, mark this mailbox as a newsletter sender (more lenient bounce-rate threshold in mail-guard)."}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object"}},{"name":"update_mailboxes","description":"Update mailbox autoresponder settings.","method":"PUT","path_template":"/servers/websites/{website}/mails/mailboxes/{mailbox}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"mailbox","type":"string","required":true,"description":"Mailbox username (URL parameter)"}],"body_params":[{"name":"active","type":"boolean","required":true,"description":"Whether the autoresponder is active"},{"name":"message","type":"string","required":true,"description":"Autoresponder message body"},{"name":"subject_prefix","type":"string","required":true,"description":"Subject line prefix (max 30 chars)"},{"name":"frequency","type":"string","required":true,"description":"Reply frequency in seconds (86400-604800)"},{"name":"cc_emails","type":"array","required":false,"description":"Array of CC email addresses"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_password","description":"Change mailbox password. Returns the new password.","method":"PUT","path_template":"/servers/websites/{website}/mails/mailboxes/{mailbox}/password","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"mailbox","type":"string","required":true,"description":"Mailbox username (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data.password":"string"}},{"name":"update_newsletter","description":"Set the newsletter flag on a mailbox. True enables the more lenient bounce-rate threshold used by mail-guard for newsletter senders.","method":"PUT","path_template":"/servers/websites/{website}/mails/mailboxes/{mailbox}/newsletter","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"mailbox","type":"string","required":true,"description":"Mailbox username (URL parameter)"}],"body_params":[{"name":"newsletter","type":"boolean","required":true,"description":"True to mark as newsletter mailbox; false to unmark."}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data.mailbox":"string","data.newsletter":"boolean"}},{"name":"delete_mailboxes","description":"DESTRUCTIVE - Delete one or more mailboxes.","method":"DELETE","path_template":"/servers/websites/{website}/mails/mailboxes","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of mailbox usernames to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_autoresponder","description":"Get autoresponder settings for a mailbox.","method":"GET","path_template":"/servers/websites/{website}/mails/autoresponder","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"user","type":"string","required":true,"description":"Mailbox username (query parameter)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.user":"string","data.autoresponder":"object|null"}},{"name":"get_vacation","description":"Get vacation settings for a mailbox.","method":"GET","path_template":"/servers/websites/{website}/mails/vacation","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"user","type":"string","required":true,"description":"Mailbox username (query parameter)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.user":"string","data.vacation":"object|null"}},{"name":"create_vacation","description":"Set vacation (out-of-office) auto-reply settings for a mailbox.","method":"POST","path_template":"/servers/websites/{website}/mails/vacation","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"user","type":"string","required":true,"description":"Mailbox username"},{"name":"active","type":"boolean","required":true,"description":"Enable or disable vacation auto-reply"},{"name":"message","type":"string","required":true,"description":"Auto-reply message body"},{"name":"subject_prefix","type":"string","required":false,"description":"Subject line prefix for auto-reply"},{"name":"vacation_start","type":"string","required":false,"description":"Start date (YYYY-MM-DD)"},{"name":"vacation_end","type":"string","required":false,"description":"End date (YYYY-MM-DD), null for no end date"},{"name":"frequency","type":"integer","required":false,"description":"Auto-reply frequency in hours (how often to re-send to same sender)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object"}},{"name":"list_external_providers","description":"List all available external email providers (plural). Use the singular /mails/external-provider endpoint to retrieve the CURRENTLY active provider for this website.","method":"GET","path_template":"/servers/websites/{website}/mails/external-providers","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array"}},{"name":"get_external_provider","description":"Get the currently active external email provider configuration for the website. Singular \u2014 returns the active provider (or empty object if none). Use /mails/external-providers (plural) to list all available provider options.","method":"GET","path_template":"/servers/websites/{website}/mails/external-provider","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object"}},{"name":"create_external_providers","description":"Set an external email provider for the website.","method":"POST","path_template":"/servers/websites/{website}/mails/external-providers","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"provider","type":"string","required":true,"description":"Provider name (e.g., google, microsoft)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object"}},{"name":"delete_external_providers","description":"DESTRUCTIVE - Remove external email provider (reset to local).","method":"DELETE","path_template":"/servers/websites/{website}/mails/external-providers","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_spam_whitelist","description":"Get spam whitelist entries. Supports pagination.","method":"GET","path_template":"/servers/websites/{website}/mails/spam-whitelist","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","meta":"object"}},{"name":"create_spam_whitelist","description":"Add an entry to the spam whitelist.","method":"POST","path_template":"/servers/websites/{website}/mails/spam-whitelist","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"entry_type","type":"string","required":true,"description":"Type of entry: email or domain"},{"name":"entry_value","type":"string","required":true,"description":"Email address or domain name"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_spam_whitelist","description":"DESTRUCTIVE - Delete spam whitelist entries.","method":"DELETE","path_template":"/servers/websites/{website}/mails/spam-whitelist","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of whitelist entry IDs to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_catch_all","description":"Get catch-all email configuration.","method":"GET","path_template":"/servers/websites/{website}/mails/catch-all","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object"}},{"name":"create_catch_all","description":"Set catch-all email address.","method":"POST","path_template":"/servers/websites/{website}/mails/catch-all","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"email","type":"string","required":true,"description":"Catch-all email address"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_catch_all","description":"Update catch-all email address.","method":"PUT","path_template":"/servers/websites/{website}/mails/catch-all","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"email","type":"string","required":true,"description":"New catch-all email address"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_catch_all","description":"DESTRUCTIVE - Remove catch-all email configuration.","method":"DELETE","path_template":"/servers/websites/{website}/mails/catch-all","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"websites_mail-guard","scope":"websites:mail-guard","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"get_history","description":"Get mail guard history.","method":"GET","path_template":"/servers/websites/{website}/mail-guard/history","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"period","type":"string","required":false,"description":"Period filter: today, 7, 30"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of history entries","meta":"object"}},{"name":"get_pending","description":"Get pending/delayed mails.","method":"GET","path_template":"/servers/websites/{website}/mail-guard/pending","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of pending mails","meta":"object"}},{"name":"list_stats","description":"Get mail guard statistics.","method":"GET","path_template":"/servers/websites/{website}/mail-guard/stats","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"period","type":"string","required":false,"description":"Period filter: today, 7, 30"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 mail guard statistics (sent, delayed, rejected, banned counts for the specified period)"}},{"name":"create_release","description":"Release a delayed mail for sending.","method":"POST","path_template":"/servers/websites/{website}/mail-guard/release","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"mail_id","type":"string","required":true,"description":"Mail ID to release"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_reject","description":"Reject a delayed mail.","method":"POST","path_template":"/servers/websites/{website}/mail-guard/reject","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"mail_id","type":"string","required":true,"description":"Mail ID to reject"},{"name":"reason","type":"string","required":false,"description":"Rejection reason"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_bulk_release","description":"Bulk release multiple pending mails.","method":"POST","path_template":"/servers/websites/{website}/mail-guard/bulk-release","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"mail_ids","type":"array","required":true,"description":"Array of mail IDs to release"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_bulk_reject","description":"Bulk reject multiple pending mails.","method":"POST","path_template":"/servers/websites/{website}/mail-guard/bulk-reject","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"mail_ids","type":"array","required":true,"description":"Array of mail IDs to reject"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_release_all","description":"Release all pending mails.","method":"POST","path_template":"/servers/websites/{website}/mail-guard/release-all","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_reject_all","description":"Reject all pending mails.","method":"POST","path_template":"/servers/websites/{website}/mail-guard/reject-all","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_bans","description":"Get list of banned senders.","method":"GET","path_template":"/servers/websites/{website}/mail-guard/bans","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"active_only","type":"boolean","required":false,"description":"Only return active bans (default: true)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of bans"}},{"name":"create_unban","description":"Unban a sender.","method":"POST","path_template":"/servers/websites/{website}/mail-guard/unban","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"tracker","type":"string","required":true,"description":"Ban tracker ID"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_learn_time","description":"Get learn time status.","method":"GET","path_template":"/servers/websites/{website}/mail-guard/learn-time","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 learn time status (active boolean, days remaining, start/end dates)"}},{"name":"update_learn_time","description":"Set learn time.","method":"PUT","path_template":"/servers/websites/{website}/mail-guard/learn-time","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"days","type":"integer","required":true,"description":"Number of days for learning period"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_learn_time","description":"DESTRUCTIVE - Cancel learn time.","method":"DELETE","path_template":"/servers/websites/{website}/mail-guard/learn-time","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"reset_learning","description":"DESTRUCTIVE - Reset all learned patterns.","method":"POST","path_template":"/servers/websites/{website}/mail-guard/reset-learning","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"websites_monitors","scope":"websites:monitors","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"list_monitors","description":"List monitors for a website with pagination.","method":"GET","path_template":"/servers/websites/{website}/monitors","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of monitor objects","meta":"pagination object"}},{"name":"create_monitors","description":"Add a monitor for a website.","method":"POST","path_template":"/servers/websites/{website}/monitors","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"url","type":"string","required":true,"description":"Full URL to monitor (e.g., https://domain.com/path)"},{"name":"type","type":"string","required":true,"description":"Monitor type (http, keyword)"},{"name":"keyword","type":"string","required":false,"description":"Keyword to check for (required when type is keyword)"},{"name":"emails","type":"array","required":false,"description":"Email addresses for notifications"},{"name":"active","type":"boolean","required":false,"description":"Whether monitor is active"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_monitors","description":"Update a monitor.","method":"PUT","path_template":"/servers/websites/{website}/monitors/{monitor}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"monitor","type":"string","required":true,"description":"Base64-encoded monitor ID (URL parameter)"}],"body_params":[{"name":"keyword","type":"string","required":false,"description":"Updated keyword (for keyword type monitors)"},{"name":"emails","type":"array","required":false,"description":"Updated notification email addresses"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_monitors","description":"DESTRUCTIVE - Remove monitors.","method":"DELETE","path_template":"/servers/websites/{website}/monitors","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of base64-encoded monitor IDs to remove"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_enable","description":"Enable a monitor.","method":"POST","path_template":"/servers/websites/{website}/monitors/{monitor}/enable","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"monitor","type":"string","required":true,"description":"Base64-encoded monitor ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_disable","description":"Disable a monitor.","method":"POST","path_template":"/servers/websites/{website}/monitors/{monitor}/disable","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"monitor","type":"string","required":true,"description":"Base64-encoded monitor ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_events","description":"Get events for a specific monitor with pagination.","method":"GET","path_template":"/servers/websites/{website}/monitors/{monitor}/events","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"monitor","type":"string","required":true,"description":"Base64-encoded monitor ID (URL parameter)"}],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of event objects","meta":"pagination object"}}]},{"name":"websites_nodejs","scope":"websites:nodejs","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"get_default_version","description":"Get default Node.js version.","method":"GET","path_template":"/servers/websites/{website}/nodejs/default-version","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"string (version)"}},{"name":"update_default_version","description":"Set default Node.js version.","method":"PUT","path_template":"/servers/websites/{website}/nodejs/default-version","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"version","type":"string","required":true,"description":"Node.js version"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_versions","description":"Get installed and supported Node.js versions.","method":"GET","path_template":"/servers/websites/{website}/nodejs/versions","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"installed":"array of installed versions","supported":"array of supported versions"}}},{"name":"create_versions","description":"Install a Node.js version.","method":"POST","path_template":"/servers/websites/{website}/nodejs/versions","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"version","type":"string","required":true,"description":"Node.js version to install"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_versions","description":"DESTRUCTIVE - Uninstall a Node.js version.","method":"DELETE","path_template":"/servers/websites/{website}/nodejs/versions","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"version","type":"string","required":true,"description":"Node.js version to uninstall"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_applications","description":"Get Node.js applications list with pagination.","method":"GET","path_template":"/servers/websites/{website}/nodejs/applications","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of application objects","meta":"pagination object"}},{"name":"create_applications","description":"Create a Node.js application.","method":"POST","path_template":"/servers/websites/{website}/nodejs/applications","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"name","type":"string","required":true,"description":"Application name"},{"name":"startup_file","type":"string","required":true,"description":"Entry point file (e.g., app.js)"},{"name":"root","type":"string","required":false,"description":"Application root directory"},{"name":"node_version","type":"string","required":false,"description":"Node.js version"},{"name":"environment","type":"string","required":false,"description":"Environment (production, development)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":{"id":"string","website_id":"integer","name":"string","slug":"string","node_version":"string","runner":"string","entry_file":"string","script":"string|null","arguments":"array","working_directory":"string","port":"integer|null","access_type":"string|null","proxy_path":"string|null","ip_whitelist":"array","auto_start":"boolean","is_main":"boolean","status":"string|null","created_at":"string (ISO 8601)|null","updated_at":"string (ISO 8601)|null"}}},{"name":"update_applications","description":"Update a Node.js application.","method":"PUT","path_template":"/servers/websites/{website}/nodejs/applications/{application}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"application","type":"string","required":true,"description":"Application ID (URL parameter)"}],"body_params":[{"name":"name","type":"string","required":false,"description":"Application name"},{"name":"startup_file","type":"string","required":false,"description":"Entry point file"},{"name":"environment","type":"string","required":false,"description":"Environment"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data.id":"string","data.name":"string","data.slug":"string","data.node_version":"string","data.runner":"string","data.entry_file":"string","data.port":"integer|null","data.status":"string"}},{"name":"delete_applications","description":"DESTRUCTIVE - Delete Node.js applications.","method":"DELETE","path_template":"/servers/websites/{website}/nodejs/applications","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of application IDs to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_start","description":"Start a Node.js application.","method":"POST","path_template":"/servers/websites/{website}/nodejs/applications/{application}/start","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"application","type":"string","required":true,"description":"Application ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_stop","description":"Stop a Node.js application.","method":"POST","path_template":"/servers/websites/{website}/nodejs/applications/{application}/stop","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"application","type":"string","required":true,"description":"Application ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"restart","description":"DESTRUCTIVE - Restart a Node.js application.","method":"POST","path_template":"/servers/websites/{website}/nodejs/applications/{application}/restart","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"application","type":"string","required":true,"description":"Application ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_auto_start","description":"Set auto-start for a Node.js application.","method":"PUT","path_template":"/servers/websites/{website}/nodejs/applications/{application}/auto-start","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"application","type":"string","required":true,"description":"Application ID (URL parameter)"}],"body_params":[{"name":"auto_start","type":"boolean","required":true,"description":"Enable or disable auto-start"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_logs","description":"Get Node.js application logs.","method":"GET","path_template":"/servers/websites/{website}/nodejs/applications/{application}/logs","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"application","type":"string","required":true,"description":"Application ID (URL parameter)"}],"body_params":[{"name":"lines","type":"integer","required":false,"description":"Number of log lines (10-1000, default 200)"},{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"search","type":"string","required":false,"description":"Search filter"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 log lines array and pagination info"}}]},{"name":"websites_notifications","scope":"websites:notifications","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"list_notifications","description":"Get website notifications.","method":"GET","path_template":"/servers/websites/{website}/notifications","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"read_status","type":"string","required":false,"description":"Filter: all, read, unread"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of notifications","meta":"object"}},{"name":"get_unread_count","description":"Get unread notification count.","method":"GET","path_template":"/servers/websites/{website}/notifications/unread-count","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"count":"integer"}}},{"name":"update_mark_read","description":"Mark notifications as read.","method":"PUT","path_template":"/servers/websites/{website}/notifications/mark-read","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":false,"description":"Specific notification IDs (empty = mark all)"},{"name":"source","type":"string","required":false,"description":"Source filter: website, stage"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_notifications","description":"DESTRUCTIVE - Delete notifications.","method":"DELETE","path_template":"/servers/websites/{website}/notifications","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":false,"description":"Specific notification IDs (empty = delete all)"},{"name":"source","type":"string","required":false,"description":"Source filter: website, stage"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"websites_page-speed","scope":"websites:page-speed","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"list_reports","description":"Get paginated list of PageSpeed reports.","method":"GET","path_template":"/servers/websites/{website}/page-speed/reports","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of reports","meta":{"current_page":"integer","last_page":"integer","per_page":"integer","total":"integer","remaining_scans":"integer","max_scans":"integer"}}},{"name":"get_page_speed","description":"Get a single PageSpeed report with full data.","method":"GET","path_template":"/servers/websites/{website}/page-speed/{report}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"report","type":"integer","required":true,"description":"Report ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.scores.performance":"integer","data.scores.accessibility":"integer","data.scores.best_practices":"integer","data.scores.seo":"integer","data.audits":"array","data.metadata":"object"}},{"name":"create_scan","description":"Run a new PageSpeed scan.","method":"POST","path_template":"/servers/websites/{website}/page-speed/scan","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":{"id":"integer","status":"string"}}}]},{"name":"websites_php","scope":"websites:php","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"get_version","description":"Get current PHP version for website.","method":"GET","path_template":"/servers/websites/php/{website}/version","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.version":"float"}},{"name":"update_version","description":"Change PHP version for website.","method":"PUT","path_template":"/servers/websites/php/{website}/version","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"version","type":"string","required":true,"description":"PHP version (e.g., 8.2)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.version":"float|string"}},{"name":"list_details","description":"Get PHP configuration details.","method":"GET","path_template":"/servers/websites/php/{website}/details","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.version":"float","data.settings":"array","data.modules":"array","data.time":"string"}},{"name":"update_settings","description":"Update a PHP setting.","method":"PUT","path_template":"/servers/websites/php/{website}/settings","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"key","type":"string","required":true,"description":"Setting key"},{"name":"value","type":"string","required":true,"description":"Setting value"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.key":"string","data.value":"string"}},{"name":"list_processes","description":"Get running PHP processes.","method":"GET","path_template":"/servers/websites/php/{website}/processes","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":[{"pid":"integer","script":"string","memory":"integer","cpu":"float","started_at":"string (datetime)"}]}},{"name":"delete_processes","description":"DESTRUCTIVE - Kill PHP processes.","method":"DELETE","path_template":"/servers/websites/php/{website}/processes","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Process IDs to kill"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"websites_presets","scope":"websites:presets","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"list_wp_presets","description":"Get WordPress presets list with pagination.","method":"GET","path_template":"/servers/websites/{website}/wp-presets","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of preset objects","meta":"pagination object"}},{"name":"list_admins","description":"Get WordPress admin users for preset creation.","method":"GET","path_template":"/servers/websites/{website}/wp-presets/admins","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of admin user objects"}},{"name":"list_content_types","description":"Get WordPress content types for preset creation.","method":"GET","path_template":"/servers/websites/{website}/wp-presets/content-types","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of content type objects"}},{"name":"list_plugins","description":"Get WordPress plugins for preset creation.","method":"GET","path_template":"/servers/websites/{website}/wp-presets/plugins","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of plugin objects"}},{"name":"list_themes","description":"Get WordPress themes for preset creation.","method":"GET","path_template":"/servers/websites/{website}/wp-presets/themes","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of theme objects"}},{"name":"create_wp_presets","description":"Save a WordPress preset from the current website.","method":"POST","path_template":"/servers/websites/{website}/wp-presets","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"name","type":"string","required":true,"description":"Preset name"},{"name":"description","type":"string","required":false,"description":"Preset description"},{"name":"admin_user_ids","type":"array","required":false,"description":"Admin user IDs to include"},{"name":"included_content_types","type":"array","required":false,"description":"Content types to include"},{"name":"selected_plugins","type":"array","required":false,"description":"Plugins to include"},{"name":"selected_themes","type":"array","required":false,"description":"Themes to include"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":{"id":"integer","name":"string","status":"string"}}},{"name":"get_wp_presets","description":"Get preset details.","method":"GET","path_template":"/servers/websites/{website}/wp-presets/{preset}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"preset","type":"integer","required":true,"description":"Preset ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"id":"integer","name":"string","description":"string|null","metadata":"object","source_website":"string","source_domain":"string","archive_size":"integer|null","created_at":"string (ISO 8601)"}}},{"name":"create_apply","description":"Apply a preset to the current website.","method":"POST","path_template":"/servers/websites/{website}/wp-presets/{preset}/apply","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"preset","type":"integer","required":true,"description":"Preset ID (URL parameter)"}],"body_params":[{"name":"categories","type":"array","required":true,"description":"Categories to apply from preset"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_wp_presets","description":"DESTRUCTIVE - Delete a WordPress preset.","method":"DELETE","path_template":"/servers/websites/{website}/wp-presets/{preset}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"preset","type":"integer","required":true,"description":"Preset ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"websites_redis","scope":"websites:redis","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"list_redis","description":"Get Redis details including connection info, status, and configuration.","method":"GET","path_template":"/servers/websites/{website}/redis","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"active":"boolean","redis_version":"string|null","php_redis_version":"string|null","socket_path":"string|null","port":"integer|null","remote_host":"string|null","remote_enabled":"boolean","global_remote_allowed":"boolean","require_username":"boolean","memory_usage_percent":"number|null","config":{"maxmemory_policy":"string","maxmemory_bytes":"integer|null","appendonly":"string"},"runtime":{"used_memory_human":"string","used_memory_bytes":"integer|null"}}}},{"name":"get_password","description":"Get Redis password.","method":"GET","path_template":"/servers/websites/{website}/redis/password","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"string (password)"}},{"name":"create_password","description":"Generate a new Redis password.","method":"POST","path_template":"/servers/websites/{website}/redis/password","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"string (new password)"}},{"name":"create_activate","description":"Activate or deactivate Redis for a website.","method":"POST","path_template":"/servers/websites/{website}/redis/activate","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"active","type":"boolean","required":true,"description":"Enable (true) or disable (false) Redis"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_settings","description":"Get Redis settings (maxmemory policy, appendonly, etc.).","method":"GET","path_template":"/servers/websites/{website}/redis/settings","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"same structure as GET /servers/websites/{website}/redis \u2014 returns full Redis details including config"}},{"name":"update_settings","description":"Update Redis configuration (maxmemory eviction policy and/or AOF appendonly persistence). At least one of the two fields must be supplied \u2014 omitted fields remain unchanged. Requires full permission on the website.","method":"PUT","path_template":"/servers/websites/{website}/redis/settings","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"maxmemory_policy","type":"string","required":false,"description":"One of: allkeys-lru, allkeys-lfu, allkeys-random, volatile-lru, volatile-lfu, volatile-random, volatile-ttl, noeviction"},{"name":"appendonly","type":"boolean","required":false,"description":"Enable or disable AOF (appendonly) persistence"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_require_username","description":"Toggle Redis username requirement.","method":"POST","path_template":"/servers/websites/{website}/redis/require-username","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"require_username","type":"boolean","required":true,"description":"Require username for Redis authentication"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_remote_access","description":"Toggle Redis remote access.","method":"POST","path_template":"/servers/websites/{website}/redis/remote-access","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"enable","type":"boolean","required":true,"description":"Enable (true) or disable (false) remote access"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"purge_redis","description":"DESTRUCTIVE - Purge all Redis data for a website.","method":"POST","path_template":"/servers/websites/{website}/redis/purge","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"websites_resources","scope":"websites:resources","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"get_realtime","description":"Get realtime resource usage.","method":"GET","path_template":"/servers/websites/resources/realtime/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.cpu":"number \u2014 total CPU cores allocated (effective limit; equals server cores when no limit configured)","data.memory":"number \u2014 total memory allocated (GB; effective limit, equals server memory when no limit configured)","data.cpu_configured":"boolean \u2014 whether a CPU limit has been explicitly configured (false means data.cpu is the server-wide capacity, not a per-website limit)","data.memory_configured":"boolean \u2014 whether a memory limit has been explicitly configured (false means data.memory is the server-wide capacity, not a per-website limit)","data.current":"object","data.current.cpu":"number \u2014 current CPU usage (percentage)","data.current.memory":"number \u2014 current memory usage (GB)","data.current.io_read":"number \u2014 current I/O read","data.current.io_write":"number \u2014 current I/O write","data.current.iops_read":"number \u2014 current IOPS read","data.current.iops_write":"number \u2014 current IOPS write","data.current.entry_processes":"number \u2014 current entry processes","data.current.processes":"number \u2014 current processes","data.entry_processes":"number \u2014 entry processes limit","data.processes":"number \u2014 processes limit"}},{"name":"get_history","description":"Get resource usage history.","method":"GET","path_template":"/servers/websites/resources/history/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"period","type":"string","required":false,"description":"Time period: 'hour', 'day', 'week', 'month' (default: 'hour')"},{"name":"type","type":"string","required":false,"description":"Aggregation type: 'avg' or 'high' (default: 'avg')"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array \u2014 time-series resource usage data points"}},{"name":"get_limits","description":"Get resource limits.","method":"GET","path_template":"/servers/websites/resources/limits/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"type","type":"string","required":false,"description":"Limit type to retrieve (e.g., 'cpu', 'memory')"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.cpu":"number \u2014 CPU cores limit (0 = unlimited)","data.memory":"number \u2014 memory limit in GB (0 = unlimited)","data.disk":"number \u2014 disk limit in GB"}},{"name":"update_limits","description":"Set resource limits.","method":"PUT","path_template":"/servers/websites/resources/limits/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"type","type":"string","required":true,"description":"Limit type: 'cpu', 'memory'"},{"name":"value","type":"number","required":false,"description":"Limit value (CPU in cores, memory in GB)"},{"name":"no_limit","type":"boolean","required":false,"description":"Set to true to remove the limit"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.type":"string \u2014 limit type that was set","data.value":"number \u2014 new limit value","data.no_limit":"boolean \u2014 whether the limit is removed"}}]},{"name":"websites_rules","scope":"websites:rules","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"list_ip_ranges","description":"Get available IP ranges grouped by category for use in rules.","method":"GET","path_template":"/servers/websites/{website}/rules/ip-ranges","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"categories":"array of category objects with key, label, ranges"}}},{"name":"list_rules","description":"Get rules list for a section (waf, ddos, cache) with pagination.","method":"GET","path_template":"/servers/websites/{website}/rules","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"section","type":"string","required":false,"description":"Section: waf, ddos, cache (default: waf)"},{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of rule objects","meta":"pagination object"}},{"name":"create_rules","description":"Create a new rule.","method":"POST","path_template":"/servers/websites/{website}/rules","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"section","type":"string","required":false,"description":"Section: waf, ddos, cache (default: waf)"},{"name":"name","type":"string","required":true,"description":"Rule name"},{"name":"description","type":"string","required":false,"description":"Rule description"},{"name":"conditions","type":"array","required":true,"description":"Array of rule conditions"},{"name":"action","type":"string","required":true,"description":"Rule action"},{"name":"enabled","type":"boolean","required":false,"description":"Enable rule (default: true)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"string \u2014 UUID of the newly created rule (use for update/delete/toggle endpoints)"}},{"name":"update_rules","description":"Update an existing rule.","method":"PUT","path_template":"/servers/websites/{website}/rules/{rule}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"rule","type":"string","required":true,"description":"Rule ID (URL parameter)"}],"body_params":[{"name":"section","type":"string","required":false,"description":"Section: waf, ddos, cache (default: waf)"},{"name":"name","type":"string","required":false,"description":"Rule name"},{"name":"description","type":"string","required":false,"description":"Rule description"},{"name":"conditions","type":"array","required":false,"description":"Array of rule conditions"},{"name":"action","type":"string","required":false,"description":"Rule action"},{"name":"enabled","type":"boolean","required":false,"description":"Enable/disable rule"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_rules","description":"DESTRUCTIVE - Delete rules.","method":"DELETE","path_template":"/servers/websites/{website}/rules","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"section","type":"string","required":false,"description":"Section: waf, ddos, cache (default: waf)"},{"name":"ids","type":"array","required":true,"description":"Array of rule IDs to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_reorder","description":"Reorder rules within a section.","method":"PUT","path_template":"/servers/websites/{website}/rules/reorder","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"section","type":"string","required":false,"description":"Section: waf, ddos, cache (default: waf)"},{"name":"order","type":"array","required":true,"description":"Array of rule IDs in desired order"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_toggle","description":"Toggle a rule's enabled state.","method":"PUT","path_template":"/servers/websites/{website}/rules/{rule}/toggle","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"rule","type":"string","required":true,"description":"Rule ID (URL parameter)"}],"body_params":[{"name":"section","type":"string","required":false,"description":"Section: waf, ddos, cache (default: waf)"},{"name":"enabled","type":"boolean","required":true,"description":"Enable (true) or disable (false)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"websites_settings","scope":"websites:settings","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"list_settings","description":"Get website settings including public directory, maintenance mode, SEO, security headers, password protection, and accessibility.","method":"GET","path_template":"/servers/websites/{website}/settings","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object","data.public_directory":"string|null (custom public folder path)","data.maintenance_enable":"boolean","data.maintenance_exclude_ips":"array of strings","data.redis":"boolean","data.seo_block":"boolean","data.never_suspend":"boolean (only for non-shared, non-staging websites)","data.wp_rest_api":"boolean","data.wp_allow_js_uploads":"boolean","data.wp_allow_css_uploads":"boolean","data.requests_allow_purge_from_local_only":"boolean","data.requests_allowed_methods":"array of strings","data.requests_header_x_content_type_options":"boolean","data.requests_header_referrer_policy":"string","data.requests_content_security_policy":"string","data.requests_allow_frame_from":"array|string|false","data.requests_allow_cors_from":"array|string|false","data.requests_allow_cors_methods":"array|string","data.password_protection_enable":"boolean","data.password_protection_username":"string","data.accessibility_enable":"boolean","data.accessibility_langs":"array of strings","data.accessibility_default_lang":"string","data.accessibility_mode":"string","data.accessibility_location_vertical":"string","data.accessibility_location_horizontal":"string","data.accessibility_statement_link":"string","data.accessibility_statement_title":"string","data.accessibility_statement_body":"string","data.accessibility_exclude_uri":"array of strings"}},{"name":"update_settings","description":"Update website settings. Supports partial updates \u2014 only provided fields are changed.","method":"PUT","path_template":"/servers/websites/{website}/settings","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"custom_public_directory","type":"boolean","required":false,"description":"Enable custom public directory"},{"name":"public_directory","type":"string","required":false,"description":"Custom public directory path"},{"name":"maintenance_enable","type":"boolean","required":false,"description":"Enable maintenance mode"},{"name":"seo_block","type":"boolean","required":false,"description":"Block search engine indexing"},{"name":"never_suspend","type":"boolean","required":false,"description":"Prevent automatic suspension (owner only)"},{"name":"password_protection_enable","type":"boolean","required":false,"description":"Enable password protection"},{"name":"password_protection_username","type":"string","required":false,"description":"Password protection username"},{"name":"password_protection_password","type":"string","required":false,"description":"Password protection password"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_maintenance_page","description":"Get the custom maintenance page HTML.","method":"GET","path_template":"/servers/websites/{website}/settings/maintenance-page","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"string (HTML content)"}},{"name":"update_maintenance_page","description":"Set custom maintenance page HTML.","method":"PUT","path_template":"/servers/websites/{website}/settings/maintenance-page","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"code","type":"string","required":true,"description":"HTML content for the maintenance page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_maintenance_page","description":"DESTRUCTIVE - Restore maintenance page to default.","method":"DELETE","path_template":"/servers/websites/{website}/settings/maintenance-page","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_suspended_page","description":"Get the custom suspended page HTML. Not available for shared websites.","method":"GET","path_template":"/servers/websites/{website}/settings/suspended-page","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"string (HTML content)"}},{"name":"update_suspended_page","description":"Set custom suspended page HTML. Not available for shared websites.","method":"PUT","path_template":"/servers/websites/{website}/settings/suspended-page","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"code","type":"string","required":true,"description":"HTML content for the suspended page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_suspended_page","description":"DESTRUCTIVE - Restore suspended page to default. Not available for shared websites.","method":"DELETE","path_template":"/servers/websites/{website}/settings/suspended-page","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_error_pages","description":"Get custom error page HTML for a specific HTTP error code.","method":"GET","path_template":"/servers/websites/{website}/settings/error-pages","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"code","type":"integer","required":true,"description":"HTTP error code (400-405, 408, 409, 413, 419, 429, 500-505)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"string (HTML content)"}},{"name":"update_error_pages","description":"Set custom error page HTML for a specific HTTP error code.","method":"PUT","path_template":"/servers/websites/{website}/settings/error-pages","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"code","type":"integer","required":true,"description":"HTTP error code (400-405, 408, 409, 413, 419, 429, 500-505)"},{"name":"html","type":"string","required":true,"description":"HTML content for the error page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_error_pages","description":"DESTRUCTIVE - Restore error page to default for a specific HTTP error code.","method":"DELETE","path_template":"/servers/websites/{website}/settings/error-pages","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"code","type":"integer","required":true,"description":"HTTP error code (400-405, 408, 409, 413, 419, 429, 500-505)"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_routes","description":"Get URL rewrite routes list with pagination.","method":"GET","path_template":"/servers/websites/{website}/settings/routes","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of route objects","meta":"pagination object"}},{"name":"create_routes","description":"Create a URL rewrite route.","method":"POST","path_template":"/servers/websites/{website}/settings/routes","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"pattern","type":"string","required":true,"description":"Regex pattern to match"},{"name":"replacement","type":"string","required":true,"description":"Replacement URL"},{"name":"flags","type":"string","required":true,"description":"Rewrite flags (e.g., last, permanent, redirect)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_routes","description":"Update a URL rewrite route.","method":"PUT","path_template":"/servers/websites/{website}/settings/routes/{route}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"route","type":"string","required":true,"description":"Current pattern of the route (URL parameter, URL-encoded)"}],"body_params":[{"name":"new_pattern","type":"string","required":true,"description":"New regex pattern"},{"name":"replacement","type":"string","required":true,"description":"Replacement URL"},{"name":"flags","type":"string","required":true,"description":"Rewrite flags"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_routes","description":"DESTRUCTIVE - Delete URL rewrite routes.","method":"DELETE","path_template":"/servers/websites/{website}/settings/routes","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of route patterns to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_move","description":"Move a route to a new position in the order.","method":"POST","path_template":"/servers/websites/{website}/settings/routes/move","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"source_pattern","type":"string","required":true,"description":"Pattern of the route to move"},{"name":"after_pattern","type":"string","required":false,"description":"Pattern to place after (null for first position)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_open_basedir","description":"Get open_basedir users list. Not available for staging websites.","method":"GET","path_template":"/servers/websites/{website}/settings/open-basedir","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of user objects with id, name, domain","meta":"pagination object"}},{"name":"create_open_basedir","description":"Add a user to open_basedir. Not available for staging websites.","method":"POST","path_template":"/servers/websites/{website}/settings/open-basedir","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"user","type":"integer","required":true,"description":"Website ID of the user to add"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_open_basedir","description":"DESTRUCTIVE - Remove users from open_basedir. Not available for staging websites.","method":"DELETE","path_template":"/servers/websites/{website}/settings/open-basedir","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of usernames to remove"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"websites_ssh","scope":"websites:ssh","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"list_details","description":"Get SSH connection details for a website.","method":"GET","path_template":"/servers/websites/{website}/ssh/details","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object"}},{"name":"get_ip_restriction","description":"Get SSH IP restriction status.","method":"GET","path_template":"/servers/websites/{website}/ssh/ip-restriction","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.ip_restriction_enabled":"boolean"}},{"name":"update_ip_restriction","description":"Enable or disable SSH IP restriction (whitelist). Requires full permission on the website.","method":"PUT","path_template":"/servers/websites/{website}/ssh/ip-restriction","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"enabled","type":"boolean","required":true,"description":"Whether IP restriction is active"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object","data.enabled":"boolean"}},{"name":"list_keys","description":"Get SSH keys list. Supports pagination.","method":"GET","path_template":"/servers/websites/{website}/ssh/keys","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","meta":"object"}},{"name":"create_keys","description":"Add a new SSH key.","method":"POST","path_template":"/servers/websites/{website}/ssh/keys","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"owner_name","type":"string","required":true,"description":"Display name for the SSH key"},{"name":"public_key","type":"string","required":true,"description":"SSH public key content"},{"name":"permanent","type":"boolean","required":true,"description":"Whether the key is permanent"},{"name":"expire_at","type":"integer","required":false,"description":"Unix timestamp for expiry (required when permanent is false)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_keys","description":"Update an SSH key.","method":"PUT","path_template":"/servers/websites/{website}/ssh/keys/{key}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"key","type":"string","required":true,"description":"SSH public key identifier (URL parameter)"}],"body_params":[{"name":"owner_name","type":"string","required":true,"description":"Display name for the SSH key"},{"name":"permanent","type":"boolean","required":true,"description":"Whether the key is permanent"},{"name":"expire_at","type":"integer","required":false,"description":"Unix timestamp for expiry (required when permanent is false)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_keys","description":"DESTRUCTIVE - Delete one or more SSH keys.","method":"DELETE","path_template":"/servers/websites/{website}/ssh/keys","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of SSH public key identifiers to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_sessions","description":"Get SSH sessions list. Supports pagination.","method":"GET","path_template":"/servers/websites/{website}/ssh/sessions","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","meta":"object"}},{"name":"delete_sessions","description":"DESTRUCTIVE - Kill SSH sessions. Provide either a session PID in \"ids\", or set \"all\": true to kill all sessions.","method":"DELETE","path_template":"/servers/websites/{website}/ssh/sessions","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"all","type":"boolean","required":false,"description":"Set to true to kill all sessions. When true, \"ids\" is ignored."},{"name":"ids","type":"array","required":false,"description":"Array containing a single session PID to kill. Required unless \"all\" is true."}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_whitelist","description":"Get SSH whitelist IPs. Requires public_key query parameter.","method":"GET","path_template":"/servers/websites/{website}/ssh/whitelist","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"public_key","type":"string","required":true,"description":"SSH public key identifier (query parameter)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array","meta":"object"}},{"name":"create_whitelist","description":"Add an IP to the SSH whitelist.","method":"POST","path_template":"/servers/websites/{website}/ssh/whitelist","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"public_key","type":"string","required":true,"description":"SSH public key identifier"},{"name":"ip","type":"string","required":true,"description":"IP address or CIDR range"},{"name":"permanent","type":"boolean","required":true,"description":"Whether the whitelist entry is permanent"},{"name":"expire_at","type":"integer","required":false,"description":"Unix timestamp for expiry (required when permanent is false)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_whitelist","description":"Update an SSH whitelist entry.","method":"PUT","path_template":"/servers/websites/{website}/ssh/whitelist/{entry}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"entry","type":"string","required":true,"description":"IP address (URL parameter)"}],"body_params":[{"name":"public_key","type":"string","required":true,"description":"SSH public key identifier"},{"name":"permanent","type":"boolean","required":true,"description":"Whether the whitelist entry is permanent"},{"name":"expire_at","type":"integer","required":false,"description":"Unix timestamp for expiry (required when permanent is false)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_whitelist","description":"DESTRUCTIVE - Delete SSH whitelist entries.","method":"DELETE","path_template":"/servers/websites/{website}/ssh/whitelist","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"public_key","type":"string","required":true,"description":"SSH public key identifier"},{"name":"ids","type":"array","required":true,"description":"Array of IP addresses to remove"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"websites_ssl","scope":"websites:ssl","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"get_ssl","description":"Get SSL details for a website including per-domain certificate status.","method":"GET","path_template":"/servers/websites/{website}/ssl","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data.summary":"object","data.domains":"array"}},{"name":"create_regenerate","description":"Regenerate SSL certificates for specified domains.","method":"POST","path_template":"/servers/websites/{website}/ssl/regenerate","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"domains","type":"array","required":true,"description":"Array of domain names to regenerate SSL for"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_csr","description":"Create a Certificate Signing Request (CSR) for a domain.","method":"POST","path_template":"/servers/websites/{website}/ssl/csr","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"domain","type":"string","required":true,"description":"Domain name for the CSR"},{"name":"algo","type":"string","required":true,"description":"Algorithm (e.g., RSA, EC)"},{"name":"bits","type":"string","required":true,"description":"Key size in bits"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"object"}},{"name":"update_ssl","description":"Install a custom SSL certificate for specified domains.","method":"PUT","path_template":"/servers/websites/{website}/ssl","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"domains","type":"array","required":true,"description":"Array of domain names"},{"name":"crt","type":"string","required":true,"description":"Certificate content (PEM format)"},{"name":"fullchain","type":"string","required":true,"description":"Full certificate chain content (PEM format)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_ssl","description":"DESTRUCTIVE - Delete SSL certificates for specified domains.","method":"DELETE","path_template":"/servers/websites/{website}/ssl","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"domains","type":"array","required":true,"description":"Array of domain names to delete SSL for"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"websites_staging","scope":"websites:staging","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"get_staging","description":"Get a paginated list of staging websites for a parent website.","method":"GET","path_template":"/servers/websites/{website}/staging","path_params":[{"name":"website","type":"integer","required":true,"description":"Parent website ID (URL parameter)"}],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page (max 200)"},{"name":"search","type":"string","required":false,"description":"Search term"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of StageResource","meta.current_page":"integer","meta.per_page":"integer","meta.total":"integer"}},{"name":"create_staging","description":"Create a new staging website. Optionally clone from the parent or install WordPress.","method":"POST","path_template":"/servers/websites/{website}/staging","path_params":[{"name":"website","type":"integer","required":true,"description":"Parent website ID (URL parameter)"}],"body_params":[{"name":"name","type":"string","required":true,"description":"Name for the staging website"},{"name":"free_subdomain","type":"boolean","required":true,"description":"Use a free auto-generated subdomain"},{"name":"domain","type":"string","required":false,"description":"Domain for the stage (required when free_subdomain is false)"},{"name":"clone","type":"boolean","required":true,"description":"Clone from the parent website"},{"name":"install_wordpress","type":"boolean","required":false,"description":"Install WordPress (when clone is false)"},{"name":"wp_name","type":"string","required":false,"description":"WordPress site name (when install_wordpress is true)"},{"name":"wp_email","type":"string","required":false,"description":"WordPress admin email (when install_wordpress is true)"},{"name":"wp_language","type":"string","required":false,"description":"WordPress locale (when install_wordpress is true)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data.id":"integer","data.domain":"string","data.name":"string","warnings":"array|null"}},{"name":"delete_staging","description":"DESTRUCTIVE - Delete a staging website.","method":"DELETE","path_template":"/servers/websites/{website}/staging/{stage}","path_params":[{"name":"website","type":"integer","required":true,"description":"Parent website ID (URL parameter)"},{"name":"stage","type":"integer","required":true,"description":"Stage website ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_clone","description":"Clone a staging website to a new stage under a target parent website.","method":"POST","path_template":"/servers/websites/{website}/staging/{stage}/clone","path_params":[{"name":"website","type":"integer","required":true,"description":"Parent website ID (URL parameter)"},{"name":"stage","type":"integer","required":true,"description":"Source stage ID (URL parameter)"}],"body_params":[{"name":"name","type":"string","required":true,"description":"Name for the cloned stage"},{"name":"free_subdomain","type":"boolean","required":true,"description":"Use a free auto-generated subdomain"},{"name":"domain","type":"string","required":false,"description":"Domain for the clone (required when free_subdomain is false)"},{"name":"target_website_id","type":"integer","required":true,"description":"Target parent website ID (body param, defaults to current parent)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","warnings":"array|null"}},{"name":"create_copy","description":"Copy a stage to a production website.","method":"POST","path_template":"/servers/websites/{website}/staging/{stage}/copy","path_params":[{"name":"website","type":"integer","required":true,"description":"Parent website ID (URL parameter)"},{"name":"stage","type":"integer","required":true,"description":"Stage ID (URL parameter)"}],"body_params":[{"name":"target_website_id","type":"integer","required":false,"description":"Target production website ID (body param, defaults to parent)"},{"name":"maintenance","type":"boolean","required":false,"description":"Enable maintenance mode during copy (default: false)"},{"name":"copy_anything","type":"boolean","required":false,"description":"Copy all items (default: true)"},{"name":"copy_files","type":"boolean","required":false,"description":"Copy files (when copy_anything is false)"},{"name":"copy_databases","type":"boolean","required":false,"description":"Copy databases (when copy_anything is false)"},{"name":"copy_cronjobs","type":"boolean","required":false,"description":"Copy cronjobs (when copy_anything is false)"},{"name":"sync_php_version","type":"boolean","required":false,"description":"Sync PHP version (default: true)"},{"name":"preserve_production_data","type":"boolean","required":false,"description":"Preserve production WordPress data (default: false)"},{"name":"include_paths","type":"array","required":false,"description":"Specific file paths to include"},{"name":"databases_config","type":"string","required":false,"description":"Database configuration JSON"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","warnings":"array|null"}},{"name":"create_swap","description":"Swap a staging website with its production parent.","method":"POST","path_template":"/servers/websites/{website}/staging/{stage}/swap","path_params":[{"name":"website","type":"integer","required":true,"description":"Parent website ID (URL parameter)"},{"name":"stage","type":"integer","required":true,"description":"Stage ID (URL parameter)"}],"body_params":[{"name":"maintenance","type":"boolean","required":false,"description":"Enable maintenance mode during swap (default: false)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","warnings":"array|null"}},{"name":"create_refresh","description":"Refresh a staging website from its production parent.","method":"POST","path_template":"/servers/websites/{website}/staging/{stage}/refresh","path_params":[{"name":"website","type":"integer","required":true,"description":"Parent website ID (URL parameter)"},{"name":"stage","type":"integer","required":true,"description":"Stage ID (URL parameter)"}],"body_params":[{"name":"full_refresh","type":"boolean","required":false,"description":"Full refresh (default: true)"},{"name":"refresh_files","type":"boolean","required":false,"description":"Refresh files only (when full_refresh is false)"},{"name":"refresh_databases","type":"boolean","required":false,"description":"Refresh databases only (when full_refresh is false)"},{"name":"refresh_cronjobs","type":"boolean","required":false,"description":"Refresh cronjobs only (when full_refresh is false)"},{"name":"include_paths","type":"array","required":false,"description":"Specific file paths to include"},{"name":"databases_config","type":"string","required":false,"description":"Database configuration JSON"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","warnings":"array|null"}},{"name":"create_migrate","description":"Migrate a staging website to a different parent website.","method":"POST","path_template":"/servers/websites/{website}/staging/{stage}/migrate","path_params":[{"name":"website","type":"integer","required":true,"description":"Current parent website ID (URL parameter)"},{"name":"stage","type":"integer","required":true,"description":"Stage ID (URL parameter)"}],"body_params":[{"name":"target_website_id","type":"integer","required":true,"description":"Target parent website ID"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","warnings":"array|null"}},{"name":"create_move_to_production","description":"Move a staging website to production (promotes it to a standalone website).","method":"POST","path_template":"/servers/websites/{website}/staging/{stage}/move-to-production","path_params":[{"name":"website","type":"integer","required":true,"description":"Parent website ID (URL parameter)"},{"name":"stage","type":"integer","required":true,"description":"Stage ID (URL parameter)"}],"body_params":[{"name":"server_id","type":"integer","required":false,"description":"Target server ID (defaults to same server)"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","warnings":"array|null"}}]},{"name":"websites_waf","scope":"websites:waf","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"get_status","description":"Get WAF (Web Application Firewall) status and settings.","method":"GET","path_template":"/servers/websites/waf/status/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"enable":"boolean","xmlrpc":"string","blocked_proxies_level":"string"}}},{"name":"get_blocks_statistics","description":"Get WAF block statistics over time, including request breakdowns by clean vs blocked traffic.","method":"GET","path_template":"/servers/websites/waf/blocks-statistics/{website}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"timeframe","type":"string|integer","required":false,"description":"Time period: 'today', 'this_month', or integer 1-30 for number of days (defaults to 'today')"},{"name":"tz","type":"string","required":false,"description":"Timezone for bucketing (e.g., 'America/New_York'). Defaults to server cluster timezone"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"total":"object","total.requests":"integer","total.clean":"integer","total.blocked":"integer","timestamps":"object","timestamps.requests":"object","timestamps.clean":"object","timestamps.blocked":"object","blocked":"object","blocked.ips":"object","blocked.countries":"object","countries":"object"}}},{"name":"list_settings","description":"Get WAF settings including whitelist/blacklist rules and bypass configurations.","method":"GET","path_template":"/servers/websites/{website}/waf/settings","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"log_only":"boolean","whitelist_ip_ranges":"array|string (\"all\")","exclude_ip_ranges":"array","bypass_known_uri":"boolean","bypass_known_query_strings":"boolean","blocked_known_ips":"boolean","blocked_known_user_agents":"boolean","blocked_known_uri":"boolean","blocked_known_query_strings":"boolean","blocked_known_cookies":"boolean","blocked_known_countries":"boolean","blocked_known_referers":"boolean","blocked_known_post":"boolean"}}},{"name":"update_settings","description":"Update WAF settings including whitelist/blacklist rules.","method":"PUT","path_template":"/servers/websites/{website}/waf/settings","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"whitelist_ip_ranges","type":"array","required":false,"description":"IP ranges to whitelist"},{"name":"whitelist_all_ip_ranges","type":"boolean","required":false,"description":"Whitelist all known IP ranges"},{"name":"blocked_known_ips","type":"array","required":false,"description":"IPs to block"},{"name":"blocked_known_countries","type":"array","required":false,"description":"Country codes to block"},{"name":"log_only","type":"boolean","required":false,"description":"Enable log-only mode"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_page","description":"Get WAF blocked page HTML.","method":"GET","path_template":"/servers/websites/{website}/waf/page","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"string (HTML content)"}},{"name":"update_page","description":"Set custom WAF blocked page HTML.","method":"PUT","path_template":"/servers/websites/{website}/waf/page","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"code","type":"string","required":true,"description":"HTML content for the WAF page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_page","description":"DESTRUCTIVE - Restore WAF blocked page to default.","method":"DELETE","path_template":"/servers/websites/{website}/waf/page","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_modsecurity_rules","description":"Get available ModSecurity rules list.","method":"GET","path_template":"/servers/websites/{website}/waf/modsecurity-rules","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of rule objects"}},{"name":"list_modsecurity_settings","description":"Get ModSecurity settings including OWASP, sensitivity, and disabled rules.","method":"GET","path_template":"/servers/websites/{website}/waf/modsecurity-settings","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":{"owasp_enabled":"boolean","sensitivity":"string","disabled_categories":"array","disabled_rules":"array","custom_rules":"string|null"}}},{"name":"update_modsecurity_settings","description":"Update ModSecurity settings.","method":"PUT","path_template":"/servers/websites/{website}/waf/modsecurity-settings","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"owasp_enabled","type":"boolean","required":false,"description":"Enable OWASP rules"},{"name":"sensitivity","type":"string","required":false,"description":"Sensitivity level"},{"name":"disabled_categories","type":"array","required":false,"description":"Disabled rule categories"},{"name":"disabled_rules","type":"array","required":false,"description":"Disabled rule IDs"},{"name":"custom_rules","type":"string","required":false,"description":"Custom ModSecurity rules"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_xmlrpc","description":"Update XML-RPC blocking setting.","method":"PUT","path_template":"/servers/websites/{website}/waf/xmlrpc","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"xmlrpc","type":"string","required":true,"description":"XML-RPC setting value"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_proxy_blocking","description":"Update proxy blocking level.","method":"PUT","path_template":"/servers/websites/{website}/waf/proxy-blocking","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"blocked_proxies_level","type":"string","required":true,"description":"Proxy blocking level"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_log_only","description":"Toggle WAF log-only mode.","method":"PUT","path_template":"/servers/websites/{website}/waf/log-only","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"log_only","type":"boolean","required":true,"description":"Enable log-only mode"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_mode","description":"Set WAF mode (off, balanced, strict).","method":"PUT","path_template":"/servers/websites/{website}/waf/mode","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"mode","type":"string","required":true,"description":"WAF mode: off, balanced, strict"},{"name":"category_overrides","type":"object","required":false,"description":"Per-category override settings"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]},{"name":"websites_wordpress","scope":"websites:wordpress","description":"Manage your websites including domains, DNS records, databases, PHP settings, mail forwarders, cache, DDoS/WAF protection, and resource monitoring.","actions":[{"name":"list_stats","description":"Get WordPress statistics.","method":"GET","path_template":"/servers/websites/{website}/wordpress/stats","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 WordPress statistics (plugins count, themes count, users count, posts count, pages count, comments count, etc.)"}},{"name":"list_roles","description":"Get WordPress user roles.","method":"GET","path_template":"/servers/websites/{website}/wordpress/roles","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of role objects"}},{"name":"get_version","description":"Get WordPress version info.","method":"GET","path_template":"/servers/websites/{website}/wordpress/version","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 current WordPress version, latest available version, and update availability"}},{"name":"list_optimizer_settings","description":"Get WordPress optimizer settings.","method":"GET","path_template":"/servers/websites/{website}/wordpress/optimizer-settings","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 WordPress optimizer settings (key-value pairs of optimization toggles and configuration)"}},{"name":"update_optimizer_settings","description":"Update WordPress optimizer settings.","method":"PUT","path_template":"/servers/websites/{website}/wordpress/optimizer-settings","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"settings","type":"object","required":true,"description":"Settings key-value pairs to update"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_wordpress_core","description":"Update WordPress core to the latest version.","method":"POST","path_template":"/servers/websites/{website}/wordpress/update-core","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"backup","type":"boolean","required":false,"description":"Create backup before update"},{"name":"backup_name","type":"string","required":false,"description":"Backup name"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_auto_update","description":"Set WordPress auto-update preference.","method":"PUT","path_template":"/servers/websites/{website}/wordpress/auto-update","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"auto_update","type":"string","required":true,"description":"Auto-update setting"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_drafts","description":"DESTRUCTIVE - Clear all WordPress drafts.","method":"DELETE","path_template":"/servers/websites/{website}/wordpress/drafts","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_revisions","description":"DESTRUCTIVE - Clear all WordPress revisions.","method":"DELETE","path_template":"/servers/websites/{website}/wordpress/revisions","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_admins","description":"Get WordPress admin users.","method":"GET","path_template":"/servers/websites/{website}/wordpress/admins","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of admin user objects"}},{"name":"list_post_types","description":"Get WordPress post types.","method":"GET","path_template":"/servers/websites/{website}/wordpress/post-types","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of post type objects"}},{"name":"create_profiling","description":"Start WordPress profiling.","method":"POST","path_template":"/servers/websites/{website}/wordpress/profiling","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"path","type":"string","required":false,"description":"Path to profile"},{"name":"user_id","type":"integer","required":false,"description":"WordPress user ID for profiling"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 WordPress profiling results (timing breakdowns, slow queries, plugin performance metrics)"}},{"name":"list_check_issues","description":"Check WordPress for issues.","method":"GET","path_template":"/servers/websites/{website}/wordpress/check-issues","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 WordPress issue check results (security issues, outdated components, configuration problems)"}},{"name":"reset_wordpress","description":"DESTRUCTIVE - Reset WordPress (files, plugins, themes, etc.).","method":"POST","path_template":"/servers/websites/{website}/wordpress/reset","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"types","type":"array","required":true,"description":"Reset types (e.g., files, plugins, themes)"},{"name":"backup","type":"boolean","required":false,"description":"Create backup before reset"},{"name":"backup_name","type":"string","required":false,"description":"Backup name"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string","data":"array of reset results"}},{"name":"install_wordpress","description":"Install WordPress on the website.","method":"POST","path_template":"/servers/websites/{website}/wordpress/install","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"name","type":"string","required":true,"description":"Site title"},{"name":"email","type":"string","required":true,"description":"Admin email"},{"name":"language","type":"string","required":false,"description":"WordPress locale"},{"name":"backup","type":"boolean","required":false,"description":"Create backup before install"},{"name":"backup_name","type":"string","required":false,"description":"Backup name"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"login_as","description":"DESTRUCTIVE - Get magic login URL for a WordPress user.","method":"POST","path_template":"/servers/websites/{website}/wordpress/users/login-as","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"user_id","type":"integer","required":true,"description":"WordPress user ID"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 one-time WordPress admin login URL"}},{"name":"list_users","description":"Get WordPress users list with pagination.","method":"GET","path_template":"/servers/websites/{website}/wordpress/users","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page (max 200)"},{"name":"search","type":"string","required":false,"description":"Search filter"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of user objects","meta":"pagination object"}},{"name":"list_invisible_admins","description":"List WordPress 'invisible admin' accounts \u2014 admin-level users hidden from the standard wp-admin user list (often created by Proginter for support access). The WP `ID` key is renamed to `id` for API consistency.","method":"GET","path_template":"/servers/websites/{website}/wordpress/users/invisible-admins","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of user objects (same shape as /wordpress/users items)","meta":"object","meta.total":"integer"}},{"name":"create_users","description":"Create a WordPress user.","method":"POST","path_template":"/servers/websites/{website}/wordpress/users","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"display_name","type":"string","required":true,"description":"Display name"},{"name":"user_login","type":"string","required":true,"description":"Username"},{"name":"user_email","type":"string","required":true,"description":"Email address"},{"name":"user_pass","type":"string","required":true,"description":"Password"},{"name":"role","type":"string","required":true,"description":"User role"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_users","description":"Update a WordPress user.","method":"PUT","path_template":"/servers/websites/{website}/wordpress/users/{user}","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"user","type":"integer","required":true,"description":"WordPress user ID (URL parameter)"}],"body_params":[{"name":"display_name","type":"string","required":false,"description":"Display name"},{"name":"user_email","type":"string","required":false,"description":"Email address"},{"name":"role","type":"string","required":false,"description":"User role"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"update_password","description":"Change a WordPress user's password.","method":"PUT","path_template":"/servers/websites/{website}/wordpress/users/{user}/password","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"},{"name":"user","type":"integer","required":true,"description":"WordPress user ID (URL parameter)"}],"body_params":[{"name":"user_pass","type":"string","required":true,"description":"New password"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"reset_admin_passwords","description":"DESTRUCTIVE - Reset all admin passwords.","method":"POST","path_template":"/servers/websites/{website}/wordpress/users/reset-admin-passwords","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"send_email","type":"boolean","required":false,"description":"Send email notification to admins"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_users","description":"DESTRUCTIVE - Delete WordPress users.","method":"DELETE","path_template":"/servers/websites/{website}/wordpress/users","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of WordPress user IDs to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_plugins","description":"Get WordPress plugins list with pagination.","method":"GET","path_template":"/servers/websites/{website}/wordpress/plugins","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of plugin objects","meta":"pagination object"}},{"name":"get_invisible","description":"Get invisible (system) plugins list.","method":"GET","path_template":"/servers/websites/{website}/wordpress/plugins/invisible","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of plugin objects"}},{"name":"create_upload","description":"Upload and install a plugin from a zip file (multipart/form-data).","method":"POST","path_template":"/servers/websites/{website}/wordpress/plugins/upload","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"plugins[]","type":"file","required":true,"description":"Plugin zip file"},{"name":"activate","type":"boolean","required":false,"description":"Activate plugin after install"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_install","description":"Install a plugin from the WordPress repository.","method":"POST","path_template":"/servers/websites/{website}/wordpress/plugins/install","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"id","type":"string","required":true,"description":"Plugin slug or URL"},{"name":"activate","type":"boolean","required":false,"description":"Activate plugin after install"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_update","description":"Update plugins to their latest versions.","method":"POST","path_template":"/servers/websites/{website}/wordpress/plugins/update","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"plugins","type":"array","required":false,"description":"Array of plugin_file IDs to update (all if empty)"},{"name":"backup","type":"boolean","required":false,"description":"Create backup before update"},{"name":"backup_name","type":"string","required":false,"description":"Backup name"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of update result objects"}},{"name":"create_enable","description":"Enable (activate) plugins.","method":"POST","path_template":"/servers/websites/{website}/wordpress/plugins/enable","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of plugin_file IDs to enable"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"enable_all","description":"Enable all plugins.","method":"POST","path_template":"/servers/websites/{website}/wordpress/plugins/enable-all","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_disable","description":"Disable (deactivate) plugins.","method":"POST","path_template":"/servers/websites/{website}/wordpress/plugins/disable","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of plugin_file IDs to disable"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"disable_all","description":"DESTRUCTIVE - Disable all plugins.","method":"POST","path_template":"/servers/websites/{website}/wordpress/plugins/disable-all","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_auto_update","description":"Set auto-update for a specific plugin.","method":"POST","path_template":"/servers/websites/{website}/wordpress/plugins/auto-update","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"id","type":"string","required":true,"description":"Plugin file ID"},{"name":"auto_update","type":"boolean","required":true,"description":"Enable or disable auto-update"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_auto_update_all","description":"Set auto-update for all plugins.","method":"POST","path_template":"/servers/websites/{website}/wordpress/plugins/auto-update-all","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"auto_update","type":"boolean","required":true,"description":"Enable or disable auto-update for all"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_plugins","description":"DESTRUCTIVE - Delete WordPress plugins.","method":"DELETE","path_template":"/servers/websites/{website}/wordpress/plugins","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of plugin_file IDs to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_themes","description":"Get WordPress themes list with pagination.","method":"GET","path_template":"/servers/websites/{website}/wordpress/themes","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"page","type":"integer","required":false,"description":"Page number"},{"name":"per_page","type":"integer","required":false,"description":"Items per page"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of theme objects","meta":"pagination object"}},{"name":"themes_create_upload","description":"Upload and install a theme from a zip file (multipart/form-data).","method":"POST","path_template":"/servers/websites/{website}/wordpress/themes/upload","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"themes[]","type":"file","required":true,"description":"Theme zip file"},{"name":"activate","type":"boolean","required":false,"description":"Activate theme after install"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"themes_create_install","description":"Install a theme from the WordPress repository.","method":"POST","path_template":"/servers/websites/{website}/wordpress/themes/install","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"id","type":"string","required":true,"description":"Theme slug"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"themes_create_update","description":"Update themes to their latest versions.","method":"POST","path_template":"/servers/websites/{website}/wordpress/themes/update","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"themes","type":"array","required":false,"description":"Array of theme slugs to update (all if empty)"},{"name":"backup","type":"boolean","required":false,"description":"Create backup before update"},{"name":"backup_name","type":"string","required":false,"description":"Backup name"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"array of update result objects"}},{"name":"themes_create_auto_update","description":"Set auto-update for a specific theme.","method":"POST","path_template":"/servers/websites/{website}/wordpress/themes/auto-update","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"id","type":"string","required":true,"description":"Theme slug"},{"name":"auto_update","type":"boolean","required":true,"description":"Enable or disable auto-update"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"themes_create_auto_update_all","description":"Set auto-update for all themes.","method":"POST","path_template":"/servers/websites/{website}/wordpress/themes/auto-update-all","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"auto_update","type":"boolean","required":true,"description":"Enable or disable auto-update for all"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"delete_themes","description":"DESTRUCTIVE - Delete WordPress themes.","method":"DELETE","path_template":"/servers/websites/{website}/wordpress/themes","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"ids","type":"array","required":true,"description":"Array of theme slugs to delete"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_activate","description":"Activate a WordPress theme.","method":"POST","path_template":"/servers/websites/{website}/wordpress/themes/activate","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"id","type":"string","required":true,"description":"Theme slug to activate"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"create_child","description":"Create a child theme.","method":"POST","path_template":"/servers/websites/{website}/wordpress/themes/child","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"parent","type":"string","required":true,"description":"Parent theme slug"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"get_object_cache","description":"Get WordPress object cache status.","method":"GET","path_template":"/servers/websites/{website}/wordpress/object-cache","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 object cache status (enabled, type, status details)"}},{"name":"object_cache_create_enable","description":"Enable WordPress object cache.","method":"POST","path_template":"/servers/websites/{website}/wordpress/object-cache/enable","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"object_cache_create_disable","description":"Disable WordPress object cache.","method":"POST","path_template":"/servers/websites/{website}/wordpress/object-cache/disable","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"purge_object_cache","description":"DESTRUCTIVE - Purge (flush) WordPress object cache.","method":"POST","path_template":"/servers/websites/{website}/wordpress/object-cache/purge","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_analytics","description":"Object cache hit-rate and request analytics over a time window. Panel default is 'hour'.","method":"GET","path_template":"/servers/websites/{website}/wordpress/object-cache/analytics","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"period","type":"string","required":false,"description":"Aggregation window (default 'hour')"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object"}},{"name":"update_db_config","description":"Update WordPress database configuration (wp-config.php).","method":"PUT","path_template":"/servers/websites/{website}/wordpress/db-config","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"db_name","type":"string","required":false,"description":"Database name"},{"name":"db_user","type":"string","required":false,"description":"Database user"},{"name":"db_password","type":"string","required":false,"description":"Database password"},{"name":"host","type":"string","required":false,"description":"Database host"}],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}},{"name":"list_rucss","description":"Get RUCSS (Remove Unused CSS) status.","method":"GET","path_template":"/servers/websites/{website}/wordpress/rucss","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[],"requires_confirmation":false,"prerequisites":[],"response_structure":{"success":"boolean","data":"object \u2014 RUCSS status (enabled, optimization state)"}},{"name":"purge_rucss","description":"DESTRUCTIVE - Purge/regenerate RUCSS.","method":"POST","path_template":"/servers/websites/{website}/wordpress/rucss/purge","path_params":[{"name":"website","type":"integer","required":true,"description":"Website ID (URL parameter)"}],"body_params":[{"name":"page_types","type":"array","required":true,"description":"Page types to regenerate RUCSS for"}],"requires_confirmation":true,"prerequisites":[],"response_structure":{"success":"boolean","message":"string"}}]}]}