API Reference
SiteICO REST API
Manage your WordPress sites, backups, domains, and billing programmatically with the SiteICO API.
Base URL
https://panel.siteico.com Authentication
The SiteICO API uses cookie-based session authentication. To authenticate:
- 1
POST your credentials to
/api/auth/loginwith{ "username": "...", "password": "..." } - 2
The response sets an
HttpOnlysession cookie automatically. - 3
Include credentials in all subsequent requests:
credentials: 'include'(fetch) orwithCredentials: true(axios).
# Example login request
curl -X POST https://panel.siteico.com/api/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"[email protected]","password":"..."}' \
-c cookies.txt
Authentication
POST
/api/auth/login Authenticate and receive a session cookie POST
/api/auth/logout Invalidate the current session POST
/api/auth/register Create a new account POST
/api/auth/refresh Refresh an expiring session token Sites
GET
/api/sites List all sites in your account POST
/api/sites Create a new WordPress site GET
/api/sites/:id Get details for a specific site DELETE
/api/sites/:id Permanently delete a site POST
/api/sites/:id/start Start a stopped site POST
/api/sites/:id/stop Stop a running site POST
/api/sites/:id/clone Clone a site to a new site Backups
GET
/api/sites/:id/backups List backups for a site POST
/api/sites/:id/backups Trigger a manual backup POST
/api/sites/:id/backups/:backupId/restore Restore a site from a backup DELETE
/api/sites/:id/backups/:backupId Delete a backup Domains
GET
/api/sites/:id/domains List custom domains for a site POST
/api/sites/:id/domains Add a custom domain DELETE
/api/sites/:id/domains/:domain Remove a custom domain PUT
/api/sites/:id/domains/:domain/primary Set the primary domain Billing
GET
/api/billing/subscription Get the current subscription details POST
/api/billing/checkout Create a Stripe checkout session for upgrade GET
/api/billing/invoices List billing invoices GET
/api/billing/usage Get current usage (sites, storage, bandwidth) Response Format
All API responses are JSON. Successful responses return 2xx status codes. Error responses include an error field with a human-readable message.
# Error response example (400)
{
"error": "site name already exists"
}
Full interactive docs coming soon
We are working on an OpenAPI-spec driven interactive reference. In the meantime, the full endpoint list is available in the source repository.