Rocket.net API Integration
Build integrations with Rocket.net's managed WordPress hosting platform API. This skill covers authentication, site management, domain configuration, backups, plugins/themes, CDN cache control, and all 200+ API endpoints.
API Overview
Base URL : https://api.rocket.net/v1
Authentication : JWT token-based
Obtain token via POST /login with email/password
Token expires in 7 days
Include in requests as Authorization: Bearer <token>
Content Type : JSON API
Required header: Content-Type: application/json
Recommended header: Accept: application/json
Documentation : https://rocketdotnet.readme.io/reference/introduction
Authentication
Get JWT Token
typescript Copy const response = await fetch('https://api.rocket.net/v1/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
},
body: JSON.stringify({
username: '[email protected] ',
password: 'your-password'
})
});
const { token } = await response.json();
// Use token in subsequent requests
Authenticated Request Pattern
typescript Copy async function rocketApiRequest(
endpoint: string,
options: RequestInit = {}
): Promise<any> {
const response = await fetch(`https://api.rocket.net/v1${endpoint}`, {
...options,
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': `Bearer ${token}`,
...options.headers
}
});
if (response.status === 401) {
// Token expired, re-authenticate
throw new Error('Token expired - request new token');
}
return response.json();
}
API Endpoints by Category
Sites Management
Method
Endpoint
Description
GET
/sites
List all sites
POST
/sites
Create new site
GET
/sites/{id}
Get site details
PATCH
/sites/{id}
Update site properties
DELETE
/sites/{id}
Delete site
POST
/sites/{id}/clone
Clone a site (background task)
GET
/sites/{id}/credentials
Get site credentials
GET
/sites/{id}/usage
Get site usage statistics
POST
/sites/{id}/lock
Lock site (prevent modifications)
DELETE
/sites/{id}/lock
Unlock site
GET
/sites/{id}/pma_login
Get phpMyAdmin SSO link
GET
/sites/{id}/settings
Get site settings
PATCH
/sites/{id}/settings
Update site settings
GET
/sites/locations
List available site locations
Staging Sites
Method
Endpoint
Description
POST
/sites/{id}/staging
Create staging site
DELETE
/sites/{id}/staging
Delete staging site
POST
/sites/{id}/staging/publish
Publish staging to production
Site Templates
Method
Endpoint
Description
GET
/sites/templates
List site templates
POST
/sites/templates
Create site template
GET
/sites/templates/{id}
Get template details
DELETE
/sites/templates/{id}
Delete template
POST
/sites/templates/{id}/sites
Create site from template
Domains
Method
Endpoint
Description
GET
/sites/{id}/domains
List domain aliases
POST
/sites/{id}/domains
Add domain alias
DELETE
/sites/{id}/domains/{domainId}
Remove domain alias
GET
/sites/{id}/maindomain
Get main domain info
POST
/sites/{id}/maindomain
Set main domain
PUT
/sites/{id}/maindomain
Replace main domain
PATCH
/sites/{id}/maindomain
Update domain validation/SSL
GET
/sites/{id}/maindomain/status
Check domain status
GET
/sites/{id}/maindomain/recheck
Force validation recheck
GET
/sites/{id}/domains/{domainId}/edge_settings
Get edge settings
PATCH
/sites/{id}/domains/{domainId}/edge_settings
Update edge settings
CDN Cache
Method
Endpoint
Description
POST
/sites/{id}/cache/purge
Purge specific files
POST
/sites/{id}/cache/purge_everything
Purge all cache
Plugins
Method
Endpoint
Description
GET
/sites/{id}/plugins
List installed plugins
POST
/sites/{id}/plugins
Install plugins
PATCH
/sites/{id}/plugins
Activate/deactivate plugins
PUT
/sites/{id}/plugins
Update plugins
DELETE
/sites/{id}/plugins
Delete plugins
GET
/sites/{id}/plugins/search
Search available plugins
GET
/sites/{id}/featured_plugins
List featured plugins
Themes
Method
Endpoint
Description
GET
/sites/{id}/themes
List installed themes
POST
/sites/{id}/themes
Install themes
PATCH
/sites/{id}/themes
Activate theme
PUT
/sites/{id}/themes
Update themes
DELETE
/sites/{id}/themes
Delete themes
GET
/sites/{id}/themes/search
Search available themes
Backups
Method
Endpoint
Description
GET
/sites/{id}/backup
List backups
POST
/sites/{id}/backup
Create backup
GET
/sites/{id}/backup/{backupId}
Download backup
DELETE
/sites/{id}/backup/{backupId}
Delete backup
POST
/sites/{id}/backup/{backupId}/restore
Restore backup
GET
/sites/{id}/backup/automated
List automated backups
POST
/sites/{id}/backup/automated/{restoreId}/restore
Restore automated backup
Cloud Backups
Method
Endpoint
Description
GET
/sites/{id}/cloud_backups
List cloud backups
POST
/sites/{id}/cloud_backups
Create cloud backup
GET
/sites/{id}/cloud_backups/{backupId}
Get cloud backup
DELETE
/sites/{id}/cloud_backups/{backupId}
Delete cloud backup
GET
/sites/{id}/cloud_backups/{backupId}/download
Get download link
POST
/sites/{id}/cloud_backups/{backupId}/restore
Restore cloud backup
Files
Method
Endpoint
Description
GET
/sites/{id}/file_manager/files
List files
POST
/sites/{id}/files
Upload file
PUT
/sites/{id}/files
Save file contents
DELETE
/sites/{id}/files
Delete file
GET
/sites/{id}/files/view
View file contents
GET
/sites/{id}/files/download
Download file
POST
/sites/{id}/files/folder
Create folder
POST
/sites/{id}/files/extract
Extract archive
POST
/sites/{id}/files/compress
Compress files
PATCH
/sites/{id}/files/chmod
Change permissions
FTP Accounts
Method
Endpoint
Description
GET
/sites/{id}/ftp_accounts
List FTP accounts
POST
/sites/{id}/ftp_accounts
Create FTP account
PATCH
/sites/{id}/ftp_accounts
Update FTP account
DELETE
/sites/{id}/ftp_accounts
Delete FTP account
SSH Keys
Method
Endpoint
Description
GET
/sites/{id}/ssh_keys
List SSH keys
POST
/sites/{id}/ssh_keys
Import SSH key
DELETE
/sites/{id}/ssh_keys
Delete SSH key
POST
/sites/{id}/ssh_keys/authorize
Activate SSH key
POST
/sites/{id}/ssh_keys/deauthorize
Deactivate SSH key
GET
/sites/{id}/ssh_keys/{name}
View SSH key info
WordPress
Method
Endpoint
Description
GET
/sites/{id}/wp_login
Get WordPress SSO link
GET
/sites/{id}/wp_status
Get WordPress status
POST
/sites/{id}/wpcli
Execute WP-CLI command
Reporting
Method
Endpoint
Description
GET
/reporting/sites/{id}/cdn_requests
CDN requests report
GET
/reporting/sites/{id}/cdn_cache_status
Cache status report
GET
/reporting/sites/{id}/cdn_cache_content
Cache content report
GET
/reporting/sites/{id}/visitors
Visitors report
GET
/reporting/sites/{id}/waf_eventlist
WAF events list
GET
/reporting/sites/{id}/waf_events_source
WAF events by source
GET
/reporting/sites/{id}/waf_firewall_events
Firewall events
GET
/reporting/sites/{id}/bandwidth_usage
Bandwidth usage
GET
/reporting/sites/{id}/bandwidth_top_usage
Top bandwidth usage
GET
/sites/{id}/access_logs
Access logs
Account Management
Method
Endpoint
Description
GET
/account/me
Get user information
PATCH
/account/me
Update account settings
GET
/account/usage
Get account usage stats
POST
/account/password
Change password
GET
/account/tasks
List account tasks
GET
/account/hosting_plan
Get current plan
PUT
/account/hosting_plan
Change hosting plan
POST
/account/billing_sso
Get billing SSO cookie
Account Users
Method
Endpoint
Description
GET
/users
List account users
POST
/users
Create account user
GET
/users/{userId}
Get user details
PATCH
/users/{userId}
Update user
DELETE
/users/{userId}
Remove user
POST
/users/{userId}/reinvite
Resend invite
Site Users
Method
Endpoint
Description
GET
/sites/{id}/users
List site users
POST
/sites/{id}/users
Invite site user
DELETE
/sites/{id}/users/{userId}
Remove site user
POST
/sites/{id}/users/{userId}/reinvite
Resend invite
Billing
Method
Endpoint
Description
GET
/billing/addresses
List billing addresses
POST
/billing/addresses
Create billing address
GET
/billing/addresses/{addressId}
Get billing address
PATCH
/billing/addresses/{addressId}
Update billing address
DELETE
/billing/addresses/{addressId}
Delete billing address
GET
/billing/invoices
List invoices
GET
/billing/invoices/{invoiceId}
Get invoice
GET
/billing/invoices/{invoiceId}/pdf
Download invoice PDF
POST
/billing/invoices/{invoiceId}/credit_card_payment
Pay with card
GET
/billing/payment_methods
List payment methods
POST
/billing/payment_methods
Add payment method
DELETE
/billing/payment_methods/{methodId}
Delete payment method
GET
/billing/products
List available products
Additional Features
Method
Endpoint
Description
GET
/sites/{id}/password_protection
Get password protection status
POST
/sites/{id}/password_protection
Enable password protection
DELETE
/sites/{id}/password_protection
Disable password protection
GET
/sites/{id}/shopshield
List ShopShield URIs
POST
/sites/{id}/shopshield
Enable ShopShield
DELETE
/sites/{id}/shopshield/{id}
Disable ShopShield
GET
/account/visitors
Account visitor stats
GET
/account/bandwidth
Account bandwidth stats
Common Patterns
List All Sites
typescript Copy const sites = await rocketApiRequest('/sites');
console.log(sites);
// Returns array of site objects with id, domain, status, etc.
Create a New Site
typescript Copy const newSite = await rocketApiRequest('/sites', {
method: 'POST',
body: JSON.stringify({
name: 'my-new-site',
location: 'us-east-1',
// Additional options as needed
})
});
Purge CDN Cache
typescript Copy // Purge specific URLs
await rocketApiRequest(`/sites/${siteId}/cache/purge`, {
method: 'POST',
body: JSON.stringify({
files: [
'https://example.com/style.css',
'https://example.com/script.js'
]
})
});
// Purge everything
await rocketApiRequest(`/sites/${siteId}/cache/purge_everything`, {
method: 'POST'
});
Create and Restore Backup
typescript Copy // Create backup
const backup = await rocketApiRequest(`/sites/${siteId}/backup`, {
method: 'POST'
});
// List backups
const backups = await rocketApiRequest(`/sites/${siteId}/backup`);
// Restore backup (background task)
await rocketApiRequest(`/sites/${siteId}/backup/${backupId}/restore`, {
method: 'POST'
});
Manage Plugins
typescript Copy // List installed plugins
const plugins = await rocketApiRequest(`/sites/${siteId}/plugins`);
// Install plugin
await rocketApiRequest(`/sites/${siteId}/plugins`, {
method: 'POST',
body: JSON.stringify({
plugins: ['wordfence', 'yoast-seo']
})
});
// Update all plugins
await rocketApiRequest(`/sites/${siteId}/plugins`, {
method: 'PUT',
body: JSON.stringify({
plugins: ['all']
})
});
// Activate/deactivate plugin
await rocketApiRequest(`/sites/${siteId}/plugins`, {
method: 'PATCH',
body: JSON.stringify({
plugins: ['wordfence'],
action: 'activate' // or 'deactivate'
})
});
Execute WP-CLI Commands
typescript Copy const result = await rocketApiRequest(`/sites/${siteId}/wpcli`, {
method: 'POST',
body: JSON.stringify({
command: 'user list --format=json'
})
});
WordPress SSO Login
typescript Copy // Get SSO link for WordPress admin
const { url } = await rocketApiRequest(`/sites/${siteId}/wp_login`);
// Redirect user to url for auto-login
TypeScript Types
typescript Copy interface RocketSite {
id: number;
name: string;
domain: string;
status: 'active' | 'suspended' | 'pending';
location: string;
created_at: string;
updated_at: string;
}
interface RocketBackup {
id: number;
site_id: number;
type: 'manual' | 'automated' | 'cloud';
status: 'pending' | 'completed' | 'failed';
size: number;
created_at: string;
}
interface RocketPlugin {
name: string;
slug: string;
version: string;
status: 'active' | 'inactive';
update_available: boolean;
}
interface RocketDomain {
id: number;
domain: string;
is_main: boolean;
ssl_status: 'pending' | 'active' | 'failed';
validation_method: 'dns' | 'http';
}
interface RocketAuthResponse {
token: string;
expires_at: string;
}
Error Handling
typescript Copy interface RocketApiError {
error: string;
message: string;
status: number;
}
async function handleRocketRequest(endpoint: string, options?: RequestInit) {
try {
const response = await rocketApiRequest(endpoint, options);
return { data: response, error: null };
} catch (error) {
if (error.status === 401) {
// Re-authenticate and retry
await refreshToken();
return handleRocketRequest(endpoint, options);
}
if (error.status === 404) {
return { data: null, error: 'Resource not found' };
}
if (error.status === 429) {
// Rate limited - wait and retry
await sleep(1000);
return handleRocketRequest(endpoint, options);
}
return { data: null, error: error.message };
}
}
Background Tasks
Many operations (clone, backup restore, staging publish) run as background tasks. Monitor task status:
typescript Copy // Start a background task
const { task_id } = await rocketApiRequest(`/sites/${siteId}/clone`, {
method: 'POST',
body: JSON.stringify({ name: 'cloned-site' })
});
// Check task status
const tasks = await rocketApiRequest(`/sites/${siteId}/tasks`);
const task = tasks.find(t => t.id === task_id);
console.log(task.status); // 'pending', 'running', 'completed', 'failed'
// Cancel task if needed
await rocketApiRequest(`/sites/${siteId}/tasks/${task_id}/cancel`, {
method: 'POST'
});
Rate Limits
The API has rate limits. Implement exponential backoff:
typescript Copy async function withRetry<T>(
fn: () => Promise<T>,
maxRetries = 3,
delay = 1000
): Promise<T> {
for (let i = 0; i < maxRetries; i++) {
try {
return await fn();
} catch (error) {
if (error.status === 429 && i < maxRetries - 1) {
await new Promise(resolve => setTimeout(resolve, delay * Math.pow(2, i)));
continue;
}
throw error;
}
}
throw new Error('Max retries exceeded');
}
References