Corenzy API
v1A REST API to manage your Corenzy services, read invoices and place orders programmatically. Build automations, dashboards, and full reseller integrations on top of your account.
Base URL https://corenzy.com/api/v1
Auth Authorization: Bearer core_live_...
Format JSONIntroduction
Every request is authenticated with an API key that you create in your dashboard. A key belongs to a single account and can only ever read or act on that account's own resources. All responses are JSON with a consistent envelope:
{
"success": true,
"status": 200,
"data": { ... }
}Authentication
Pass your key as a Bearer token. Never expose it in browser code - the API is meant for server-to-server use.
curl https://corenzy.com/api/v1/account \
-H "Authorization: Bearer core_live_xxxxxxxxxxxxxxxx"Keys are shown in full only once, at creation. Store the secret securely; if lost, revoke and create a new one. Optionally pin a key to specific source IPs for defense in depth.
Scopes
Each key is granted one or more scopes. A request to an endpoint whose scope your key lacks returns 403 insufficient_scope. Grant the minimum a given integration needs.
| Scope | Grants |
|---|---|
account:read | Read account profile and balance |
services:read | List services and read status/metrics |
services:manage | Power actions (start/stop/reboot) |
invoices:read | List and read invoices |
orders:create | Create new service orders |
Rate limits
Each key is limited to 120 requests per minute. Every response includes:
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 118Exceeding the limit returns 429 rate_limited. Order creation is additionally capped to protect against runaway provisioning.
Errors
Errors use standard HTTP status codes and a machine-readable error field.
{
"success": false,
"status": 403,
"error": "insufficient_scope",
"message": "This key is missing required scope(s): invoices:read"
}| Status | error | Meaning |
|---|---|---|
| 401 | missing_api_key / invalid_api_key | No or bad key |
| 403 | insufficient_scope / ip_not_allowed | Key lacks scope or IP |
| 404 | not_found | Resource not on your account |
| 429 | rate_limited | Too many requests |
| 502 | upstream_error | Billing/automation backend error |
/accountaccount:readYour account profile and balance.
curl https://corenzy.com/api/v1/account \
-H "Authorization: Bearer core_live_..."
{
"success": true,
"data": {
"id": "1234",
"fullname": "Acme Hosting",
"email": "[email protected]",
"country": "TR",
"currency": "TRY",
"balance": { "credit": 240.00, "currency": "TRY" }
}
}/servicesservices:readAll services on your account. Cached ~30s.
{
"success": true,
"data": [
{
"id": "912",
"name": "VSR - 4 vCPU / 8 GB",
"domain": "vps-912.host",
"status": "Active",
"billingcycle": "monthly",
"recurringamount": "5600.00",
"nextduedate": "2026-08-12",
"dedicatedip": "45.10.x.x"
}
]
}/services/:idservices:readOne service, enriched with live VM power state and metrics when attached.
{
"success": true,
"data": {
"id": "912",
"status": "Active",
"vm": { "id": "vm_abc", "powerState": "running", "node": "node-3" },
"stats": { "cpu": "3%", "memory": "2.1/8 GB", "uptime": "6d" }
}
}/services/:id/powerservices:managePower action on the attached VM. action ∈ start · stop · reboot · restart · shutdown.
curl -X POST https://corenzy.com/api/v1/services/912/power \
-H "Authorization: Bearer core_live_..." \
-H "Content-Type: application/json" \
-d '{"action":"reboot"}'
{ "success": true, "status": 202, "message": "Power action 'reboot' accepted." }/services/:id/consoleservices:manageIssues a one-time URL that opens a live noVNC console for the attached VM in a browser tab or an <iframe>. The URL carries a signed token and expires 60 seconds after issue - request a fresh one each time you want to open a console, don't cache it.
curl -X POST https://corenzy.com/api/v1/services/912/console \
-H "Authorization: Bearer core_live_..."
{
"success": true,
"status": 200,
"data": {
"serviceId": "912",
"vmId": "vm_abc",
"url": "https://api.corenzy.com/api/v1/vms/vm_abc/novnc?token=...",
"expiresIn": 60
}
}Returns 409 vm_not_attached if the service has no VM provisioned yet, and 502 automation_error if the VM can't accept a console session right now (for example while it's powered off).
/invoicesinvoices:readYour invoices. Optional ?status=Unpaid and ?limit=.
{
"success": true,
"data": [
{ "id": "168", "status": "Unpaid", "total": "5694.50", "currency": "TRY", "duedate": "2026-07-19" }
]
}/invoices/:idinvoices:readFull invoice with line items. Returns 404 if the invoice is not on your account.
{
"success": true,
"data": {
"id": "168",
"status": "Unpaid",
"total": "5694.50",
"items": [
{ "description": "VSR #9", "amount": "5600.00" },
{ "description": "cPanel #1", "amount": "135.00" }
]
}
}/productsservices:readThe orderable catalog with pricing - the pid values you pass to /orders.
{
"success": true,
"data": [
{ "pid": 33, "name": "VSR Spider", "type": "server", "pricing": { "TRY": { "monthly": "5600.00" } } }
]
}/ordersorders:createProvision a new service under your account. Produces an unpaid invoice you settle from your balance - the API never auto-charges.
curl -X POST https://corenzy.com/api/v1/orders \
-H "Authorization: Bearer core_live_..." \
-H "Content-Type: application/json" \
-d '{
"productId": 33,
"billingCycle": "monthly",
"configOptions": { "12": 3 },
"promoCode": "PARTNER10"
}'
{
"success": true,
"status": 201,
"data": { "orderId": 5521, "invoiceId": 169, "serviceIds": ["913"] }
}Reseller modules (WHMCS & WiseCP)
Ready-made provisioning modules let you resell Corenzy from your own billing panel. When your end-customer orders, the module calls this API with your reseller key and provisions a real upstream service automatically.
- WHMCS - drop-in server module. Maps CreateAccount →
POST /orders, Suspend/Unsuspend → power stop/start, a client-area panel with power controls, and a "Console" client-area button that opens a live noVNC session viaPOST /services/:id/console. - WiseCP - server module with the same lifecycle mapping, live status sync, and the same one-click console access.
Required key scopes for reseller modules: orders:create, services:read, services:manage. Contact support to request the module package for your panel.