rocket-net-api
69
总安装量
69
周安装量
#3214
全站排名
安装命令
npx skills add https://github.com/jezweb/claude-skills --skill rocket-net-api
Agent 安装分布
claude-code
53
replit
48
opencode
46
gemini-cli
44
codex
39
cursor
39
Skill 文档
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
/loginwith 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
const response = await fetch('https://api.rocket.net/v1/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
},
body: JSON.stringify({
username: 'your-email@example.com',
password: 'your-password'
})
});
const { token } = await response.json();
// Use token in subsequent requests
Authenticated Request Pattern
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
const sites = await rocketApiRequest('/sites');
console.log(sites);
// Returns array of site objects with id, domain, status, etc.
Create a New Site
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
// 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
// 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
// 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
const result = await rocketApiRequest(`/sites/${siteId}/wpcli`, {
method: 'POST',
body: JSON.stringify({
command: 'user list --format=json'
})
});
WordPress SSO Login
// Get SSO link for WordPress admin
const { url } = await rocketApiRequest(`/sites/${siteId}/wp_login`);
// Redirect user to url for auto-login
TypeScript Types
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
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:
// 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:
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');
}