{"info":{"name":"Matrix Streamline API v1","description":"Reseller API. Set the api_key variable to your key; base_url is already this panel. Full reference: https://my.matrixstreamline.com/api/docs","schema":"https://schema.getpostman.com/json/collection/v2.1.0/collection.json"},"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{api_key}}","type":"string"}]},"variable":[{"key":"base_url","value":"https://my.matrixstreamline.com/api/v1"},{"key":"api_key","value":"mlk_your_key_here"}],"item":[{"name":"Account","description":"The account the API key belongs to. Every other endpoint acts on this account only.","item":[{"name":"Check a key","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/ping","host":["{{base_url}}"],"path":["ping"],"query":[],"variable":[]},"description":"Confirms the key works from this address. Use it to test a new key or a new server's whitelist entry.\n\nAccess: any key"},"response":[{"name":"Check a key (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/ping","host":["{{base_url}}"],"path":["ping"],"query":[],"variable":[]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"pong\": true,\n        \"account_id\": \"0b6f3f5e-8a51-4c43-9d7e-2c1f0a9b7d34\",\n        \"key\": {\n            \"id\": 7,\n            \"name\": \"Billing system\",\n            \"access\": \"full\"\n        },\n        \"ip\": \"203.0.113.10\",\n        \"server_time\": \"2026-10-10T09:15:00Z\",\n        \"api_version\": \"v1\"\n    }\n}"}]},{"name":"Get the account","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/account","host":["{{base_url}}"],"path":["account"],"query":[],"variable":[]},"description":"Profile, wallet balance, tax rate and headline counters.\n\nAccess: any key"},"response":[{"name":"Get the account (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/account","host":["{{base_url}}"],"path":["account"],"query":[],"variable":[]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"id\": \"0b6f3f5e-8a51-4c43-9d7e-2c1f0a9b7d34\",\n        \"name\": \"Asha Rao\",\n        \"email\": \"asha@hostreseller.in\",\n        \"phone\": \"+91 98200 12345\",\n        \"company\": \"HostReseller Pvt Ltd\",\n        \"address\": \"4th Floor, Andheri East\",\n        \"city\": \"Mumbai\",\n        \"state\": \"Maharashtra\",\n        \"country\": \"India\",\n        \"zip\": \"400069\",\n        \"gst_number\": \"27ABCDE1234F1Z5\",\n        \"wallet_balance\": 15240.5,\n        \"currency\": \"INR\",\n        \"vm_limit\": null,\n        \"created_at\": \"2026-03-14T08:21:09Z\",\n        \"stats\": {\n            \"vms_total\": 12,\n            \"vms_active\": 11,\n            \"vms_suspended\": 1,\n            \"vms_building\": 0,\n            \"unpaid_invoices\": 1,\n            \"amount_due\": 588.82,\n            \"open_tickets\": 1\n        },\n        \"tax\": {\n            \"name\": \"GST\",\n            \"percent\": 18.0\n        }\n    }\n}"}]},{"name":"Update the account","request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{base_url}}/account","host":["{{base_url}}"],"path":["account"],"query":[],"variable":[]},"description":"Change profile and billing details. Send only the fields to change; an empty string clears an optional field. Email and password can only be changed in the panel.\n\nAccess: full-access key","body":{"mode":"raw","raw":"{\n    \"company\": \"HostReseller Pvt Ltd\",\n    \"gst_number\": \"27ABCDE1234F1Z5\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Update the account (example)","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{base_url}}/account","host":["{{base_url}}"],"path":["account"],"query":[],"variable":[]},"body":{"mode":"raw","raw":"{\n    \"company\": \"HostReseller Pvt Ltd\",\n    \"gst_number\": \"27ABCDE1234F1Z5\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"id\": \"0b6f3f5e-8a51-4c43-9d7e-2c1f0a9b7d34\",\n        \"name\": \"Asha Rao\",\n        \"email\": \"asha@hostreseller.in\",\n        \"phone\": \"+91 98200 12345\",\n        \"company\": \"HostReseller Pvt Ltd\",\n        \"address\": \"4th Floor, Andheri East\",\n        \"city\": \"Mumbai\",\n        \"state\": \"Maharashtra\",\n        \"country\": \"India\",\n        \"zip\": \"400069\",\n        \"gst_number\": \"27ABCDE1234F1Z5\",\n        \"wallet_balance\": 15240.5,\n        \"currency\": \"INR\",\n        \"vm_limit\": null,\n        \"created_at\": \"2026-03-14T08:21:09Z\"\n    }\n}"}]},{"name":"List account activity","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/account/activity","host":["{{base_url}}"],"path":["account","activity"],"query":[{"key":"action","value":"","description":"Only this action, e.g. login, order_placed, invoice_paid_wallet, vm_rebuild, api_key_revoked.","disabled":true},{"key":"via","value":"","description":"\"api\" or \"panel\".","disabled":true},{"key":"search","value":"","description":"Text in the description.","disabled":true},{"key":"from","value":"","description":"From this day (UTC), YYYY-MM-DD.","disabled":true},{"key":"to","value":"","description":"Up to and including this day (UTC).","disabled":true},{"key":"page","value":"","description":"Page number, from 1. Pages past the end return an empty list.","disabled":true},{"key":"per_page","value":"","description":"Items per page, 1–100. Default 25.","disabled":true}],"variable":[]},"description":"The audit trail of the account, newest first: sign-ins, profile changes, orders, payments, rebuilds, key changes. \"via\" tells whether the action came from the panel or the API.\n\nAccess: any key"},"response":[{"name":"List account activity (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/account/activity","host":["{{base_url}}"],"path":["account","activity"],"query":[{"key":"action","value":"","description":"Only this action, e.g. login, order_placed, invoice_paid_wallet, vm_rebuild, api_key_revoked.","disabled":true},{"key":"via","value":"","description":"\"api\" or \"panel\".","disabled":true},{"key":"search","value":"","description":"Text in the description.","disabled":true},{"key":"from","value":"","description":"From this day (UTC), YYYY-MM-DD.","disabled":true},{"key":"to","value":"","description":"Up to and including this day (UTC).","disabled":true},{"key":"page","value":"","description":"Page number, from 1. Pages past the end return an empty list.","disabled":true},{"key":"per_page","value":"","description":"Items per page, 1–100. Default 25.","disabled":true}],"variable":[]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": [\n        {\n            \"id\": 45120,\n            \"action\": \"order_placed\",\n            \"description\": \"Order for 1 × plan #2\",\n            \"via\": \"api\",\n            \"ip_address\": \"203.0.113.10\",\n            \"created_at\": \"2026-10-10T09:12:40Z\"\n        }\n    ],\n    \"meta\": {\n        \"page\": 1,\n        \"per_page\": 25,\n        \"total\": 1,\n        \"pages\": 1\n    }\n}"}]}]},{"name":"API keys & IP whitelist","description":"Keys are created in the panel under Account → API access, where the full key is shown once. Through the API you can list keys, manage the IP whitelist of each key and revoke keys — enough to rotate keys and follow your servers' addresses without signing in.","item":[{"name":"List keys","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/api-keys","host":["{{base_url}}"],"path":["api-keys"],"query":[],"variable":[]},"description":"All keys on the account, active first. The secret is never returned — only its prefix.\n\nAccess: any key"},"response":[{"name":"List keys (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/api-keys","host":["{{base_url}}"],"path":["api-keys"],"query":[],"variable":[]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": [\n        {\n            \"id\": 7,\n            \"name\": \"Billing system\",\n            \"prefix\": \"mlk_3f9a2c1d\",\n            \"access\": \"full\",\n            \"status\": \"active\",\n            \"allowed_ips\": [\n                \"203.0.113.10\",\n                \"198.51.100.0/24\"\n            ],\n            \"expires_at\": null,\n            \"last_used_at\": \"2026-10-10T09:14:02Z\",\n            \"last_used_ip\": \"203.0.113.10\",\n            \"created_at\": \"2026-09-01T11:00:00Z\",\n            \"revoked_at\": null\n        },\n        {\n            \"id\": 4,\n            \"name\": \"Old monitoring\",\n            \"prefix\": \"mlk_77b0e9aa\",\n            \"access\": \"read\",\n            \"status\": \"revoked\",\n            \"allowed_ips\": [\n                \"192.0.2.44\"\n            ],\n            \"expires_at\": null,\n            \"last_used_at\": \"2026-08-30T22:10:00Z\",\n            \"last_used_ip\": \"192.0.2.44\",\n            \"created_at\": \"2026-05-02T07:30:00Z\",\n            \"revoked_at\": \"2026-09-01T11:02:00Z\"\n        }\n    ]\n}"}]},{"name":"Get the calling key","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/api-keys/current","host":["{{base_url}}"],"path":["api-keys","current"],"query":[],"variable":[]},"description":"The key that made this request.\n\nAccess: any key"},"response":[{"name":"Get the calling key (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/api-keys/current","host":["{{base_url}}"],"path":["api-keys","current"],"query":[],"variable":[]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"id\": 7,\n        \"name\": \"Billing system\",\n        \"prefix\": \"mlk_3f9a2c1d\",\n        \"access\": \"full\",\n        \"status\": \"active\",\n        \"allowed_ips\": [\n            \"203.0.113.10\",\n            \"198.51.100.0/24\"\n        ],\n        \"expires_at\": null,\n        \"last_used_at\": \"2026-10-10T09:14:02Z\",\n        \"last_used_ip\": \"203.0.113.10\",\n        \"created_at\": \"2026-09-01T11:00:00Z\",\n        \"revoked_at\": null\n    }\n}"}]},{"name":"Get a key","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/api-keys/:id","host":["{{base_url}}"],"path":["api-keys",":id"],"query":[],"variable":[{"key":"id","value":"","description":"Key id from GET /api-keys."}]},"description":"Access: any key"},"response":[{"name":"Get a key (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/api-keys/:id","host":["{{base_url}}"],"path":["api-keys",":id"],"query":[],"variable":[{"key":"id","value":"","description":"Key id from GET /api-keys."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"id\": 7,\n        \"name\": \"Billing system\",\n        \"prefix\": \"mlk_3f9a2c1d\",\n        \"access\": \"full\",\n        \"status\": \"active\",\n        \"allowed_ips\": [\n            \"203.0.113.10\",\n            \"198.51.100.0/24\"\n        ],\n        \"expires_at\": null,\n        \"last_used_at\": \"2026-10-10T09:14:02Z\",\n        \"last_used_ip\": \"203.0.113.10\",\n        \"created_at\": \"2026-09-01T11:00:00Z\",\n        \"revoked_at\": null\n    }\n}"}]},{"name":"Get a key's IP whitelist","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/api-keys/:id/whitelist","host":["{{base_url}}"],"path":["api-keys",":id","whitelist"],"query":[],"variable":[{"key":"id","value":"","description":"Key id."}]},"description":"Access: any key"},"response":[{"name":"Get a key's IP whitelist (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/api-keys/:id/whitelist","host":["{{base_url}}"],"path":["api-keys",":id","whitelist"],"query":[],"variable":[{"key":"id","value":"","description":"Key id."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"key_id\": 7,\n        \"allowed_ips\": [\n            \"203.0.113.10\",\n            \"198.51.100.0/24\"\n        ]\n    }\n}"}]},{"name":"Replace a key's IP whitelist","request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{base_url}}/api-keys/:id/whitelist","host":["{{base_url}}"],"path":["api-keys",":id","whitelist"],"query":[],"variable":[{"key":"id","value":"","description":"Key id."}]},"description":"Sets the whole list. Entries are single IPv4/IPv6 addresses or CIDR ranges; they are stored in canonical form (198.51.100.7/24 becomes 198.51.100.0/24).\n\nAccess: full-access key","body":{"mode":"raw","raw":"{\n    \"ips\": [\n        \"203.0.113.10\",\n        \"203.0.113.11\",\n        \"198.51.100.0/24\",\n        \"2001:db8:42::/48\"\n    ]\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Replace a key's IP whitelist (example)","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{base_url}}/api-keys/:id/whitelist","host":["{{base_url}}"],"path":["api-keys",":id","whitelist"],"query":[],"variable":[{"key":"id","value":"","description":"Key id."}]},"body":{"mode":"raw","raw":"{\n    \"ips\": [\n        \"203.0.113.10\",\n        \"203.0.113.11\",\n        \"198.51.100.0/24\",\n        \"2001:db8:42::/48\"\n    ]\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"key_id\": 7,\n        \"allowed_ips\": [\n            \"203.0.113.10\",\n            \"203.0.113.11\",\n            \"198.51.100.0/24\",\n            \"2001:db8:42::/48\"\n        ]\n    }\n}"}]},{"name":"Add to a key's IP whitelist","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{base_url}}/api-keys/:id/whitelist","host":["{{base_url}}"],"path":["api-keys",":id","whitelist"],"query":[],"variable":[{"key":"id","value":"","description":"Key id."}]},"description":"Adds entries; ones already on the list are ignored.\n\nAccess: full-access key","body":{"mode":"raw","raw":"{\n    \"ips\": [\n        \"192.0.2.50\"\n    ]\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Add to a key's IP whitelist (example)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{base_url}}/api-keys/:id/whitelist","host":["{{base_url}}"],"path":["api-keys",":id","whitelist"],"query":[],"variable":[{"key":"id","value":"","description":"Key id."}]},"body":{"mode":"raw","raw":"{\n    \"ips\": [\n        \"192.0.2.50\"\n    ]\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"key_id\": 7,\n        \"allowed_ips\": [\n            \"203.0.113.10\",\n            \"198.51.100.0/24\",\n            \"192.0.2.50\"\n        ]\n    }\n}"}]},{"name":"Remove from a key's IP whitelist","request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{base_url}}/api-keys/:id/whitelist","host":["{{base_url}}"],"path":["api-keys",":id","whitelist"],"query":[],"variable":[{"key":"id","value":"","description":"Key id."}]},"description":"Removes the listed entries (exact matches after canonicalising).\n\nAccess: full-access key","body":{"mode":"raw","raw":"{\n    \"ips\": [\n        \"198.51.100.0/24\"\n    ]\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Remove from a key's IP whitelist (example)","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{base_url}}/api-keys/:id/whitelist","host":["{{base_url}}"],"path":["api-keys",":id","whitelist"],"query":[],"variable":[{"key":"id","value":"","description":"Key id."}]},"body":{"mode":"raw","raw":"{\n    \"ips\": [\n        \"198.51.100.0/24\"\n    ]\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"key_id\": 7,\n        \"allowed_ips\": [\n            \"203.0.113.10\"\n        ]\n    }\n}"}]},{"name":"Revoke a key","request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/api-keys/:id","host":["{{base_url}}"],"path":["api-keys",":id"],"query":[],"variable":[{"key":"id","value":"","description":"Key id."}]},"description":"Permanently disables a key. It can be the calling key: the response still arrives, and every later request with it gets 401 invalid_api_key.\n\nAccess: full-access key"},"response":[{"name":"Revoke a key (example)","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/api-keys/:id","host":["{{base_url}}"],"path":["api-keys",":id"],"query":[],"variable":[{"key":"id","value":"","description":"Key id."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"id\": 7,\n        \"name\": \"Billing system\",\n        \"prefix\": \"mlk_3f9a2c1d\",\n        \"access\": \"full\",\n        \"status\": \"revoked\",\n        \"allowed_ips\": [\n            \"203.0.113.10\",\n            \"198.51.100.0/24\"\n        ],\n        \"expires_at\": null,\n        \"last_used_at\": \"2026-10-10T09:14:02Z\",\n        \"last_used_ip\": \"203.0.113.10\",\n        \"created_at\": \"2026-09-01T11:00:00Z\",\n        \"revoked_at\": \"2026-10-10T09:20:00Z\"\n    }\n}"}]}]},{"name":"Catalogue","description":"What can be ordered, where, and for how much. Only plans and locations that are open for orders are listed.","item":[{"name":"List product categories","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/categories","host":["{{base_url}}"],"path":["categories"],"query":[],"variable":[]},"description":"Access: any key"},"response":[{"name":"List product categories (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/categories","host":["{{base_url}}"],"path":["categories"],"query":[],"variable":[]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Linux VPS\",\n            \"slug\": \"linux-vps\",\n            \"tagline\": \"Root access in about a minute\",\n            \"description\": \"KVM servers on NVMe with full root access.\",\n            \"highlights\": [\n                \"Full root access\",\n                \"NVMe storage\",\n                \"Dedicated IPv4\",\n                \"Ready in about a minute\"\n            ],\n            \"plan_count\": 4,\n            \"from_price\": 299.0\n        }\n    ]\n}"}]},{"name":"List plans","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/plans","host":["{{base_url}}"],"path":["plans"],"query":[{"key":"category","value":"","description":"Only plans in this category (id or slug).","disabled":true},{"key":"zone_id","value":"","description":"Only plans sold in this zone.","disabled":true}],"variable":[]},"description":"Orderable plans with their specs, price and the operating systems each allows. zone_ids is empty when the plan is sold in every zone.\n\nAccess: any key"},"response":[{"name":"List plans (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/plans","host":["{{base_url}}"],"path":["plans"],"query":[{"key":"category","value":"","description":"Only plans in this category (id or slug).","disabled":true},{"key":"zone_id","value":"","description":"Only plans sold in this zone.","disabled":true}],"variable":[]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": [\n        {\n            \"id\": 2,\n            \"name\": \"Linux Standard\",\n            \"slug\": \"linux-standard\",\n            \"description\": \"Web apps, small databases and Kali\",\n            \"category\": {\n                \"id\": 1,\n                \"name\": \"Linux VPS\",\n                \"slug\": \"linux-vps\"\n            },\n            \"cpu_cores\": 2,\n            \"ram_mb\": 2048,\n            \"disk_gb\": 50,\n            \"disk_type\": \"nvme\",\n            \"bandwidth_gb\": 2000,\n            \"network_speed_mbps\": 1000,\n            \"ipv4_count\": 1,\n            \"price_monthly\": 499.0,\n            \"setup_fee\": 0.0,\n            \"currency\": \"INR\",\n            \"stock\": null,\n            \"featured\": true,\n            \"operating_systems\": [\n                {\n                    \"id\": 1,\n                    \"name\": \"Ubuntu 24.04 LTS\",\n                    \"family\": \"linux\"\n                },\n                {\n                    \"id\": 2,\n                    \"name\": \"Ubuntu 22.04 LTS\",\n                    \"family\": \"linux\"\n                },\n                {\n                    \"id\": 4,\n                    \"name\": \"Debian 12 Bookworm\",\n                    \"family\": \"linux\"\n                }\n            ],\n            \"zone_ids\": []\n        }\n    ]\n}"}]},{"name":"Get a plan","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/plans/:id","host":["{{base_url}}"],"path":["plans",":id"],"query":[],"variable":[{"key":"id","value":"","description":"Plan id or slug."}]},"description":"One plan, plus the zones where it can be deployed right now and which of its operating systems each zone can install.\n\nAccess: any key"},"response":[{"name":"Get a plan (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/plans/:id","host":["{{base_url}}"],"path":["plans",":id"],"query":[],"variable":[{"key":"id","value":"","description":"Plan id or slug."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"id\": 2,\n        \"name\": \"Linux Standard\",\n        \"slug\": \"linux-standard\",\n        \"description\": \"Web apps, small databases and Kali\",\n        \"category\": {\n            \"id\": 1,\n            \"name\": \"Linux VPS\",\n            \"slug\": \"linux-vps\"\n        },\n        \"cpu_cores\": 2,\n        \"ram_mb\": 2048,\n        \"disk_gb\": 50,\n        \"disk_type\": \"nvme\",\n        \"bandwidth_gb\": 2000,\n        \"network_speed_mbps\": 1000,\n        \"ipv4_count\": 1,\n        \"price_monthly\": 499.0,\n        \"setup_fee\": 0.0,\n        \"currency\": \"INR\",\n        \"stock\": null,\n        \"featured\": true,\n        \"operating_systems\": [\n            {\n                \"id\": 1,\n                \"name\": \"Ubuntu 24.04 LTS\",\n                \"family\": \"linux\"\n            },\n            {\n                \"id\": 2,\n                \"name\": \"Ubuntu 22.04 LTS\",\n                \"family\": \"linux\"\n            },\n            {\n                \"id\": 4,\n                \"name\": \"Debian 12 Bookworm\",\n                \"family\": \"linux\"\n            }\n        ],\n        \"zone_ids\": [],\n        \"available_zones\": [\n            {\n                \"id\": 1,\n                \"name\": \"Mumbai DC1\",\n                \"slug\": \"mumbai-dc1\",\n                \"city\": \"Mumbai\",\n                \"country\": \"India\",\n                \"country_code\": \"IN\",\n                \"flag\": \"🇮🇳\",\n                \"description\": \"Tier III, 10 Gbps uplinks\",\n                \"operating_system_ids\": [\n                    1,\n                    2,\n                    4\n                ]\n            }\n        ]\n    }\n}"}]},{"name":"List zones","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/zones","host":["{{base_url}}"],"path":["zones"],"query":[],"variable":[]},"description":"Locations taking new orders.\n\nAccess: any key"},"response":[{"name":"List zones (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/zones","host":["{{base_url}}"],"path":["zones"],"query":[],"variable":[]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Mumbai DC1\",\n            \"slug\": \"mumbai-dc1\",\n            \"city\": \"Mumbai\",\n            \"country\": \"India\",\n            \"country_code\": \"IN\",\n            \"flag\": \"🇮🇳\",\n            \"description\": \"Tier III, 10 Gbps uplinks\"\n        }\n    ]\n}"}]},{"name":"List operating systems","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/operating-systems","host":["{{base_url}}"],"path":["operating-systems"],"query":[],"variable":[]},"description":"Every active OS in the catalogue. What you can actually install depends on the plan and zone — use GET /order-options for that.\n\nAccess: any key"},"response":[{"name":"List operating systems (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/operating-systems","host":["{{base_url}}"],"path":["operating-systems"],"query":[],"variable":[]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": [\n        {\n            \"id\": 2,\n            \"name\": \"Ubuntu 22.04 LTS\",\n            \"slug\": \"ubuntu-2204\",\n            \"family\": \"linux\",\n            \"version\": \"22.04\",\n            \"default_username\": \"root\",\n            \"min_disk_gb\": 10,\n            \"min_ram_mb\": 512,\n            \"logo_url\": \"https://panel.example.com/assets/img/os/ubuntu.svg?v=1760000000\"\n        }\n    ]\n}"}]},{"name":"Get order options and a price quote","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/order-options","host":["{{base_url}}"],"path":["order-options"],"query":[{"key":"plan_id","value":"","description":"The plan.","disabled":false},{"key":"zone_id","value":"","description":"The zone.","disabled":false},{"key":"quantity","value":"","description":"Servers to price, 1–10. Default 1.","disabled":true},{"key":"server_id","value":"","description":"Limit OS and IP pools to one host node.","disabled":true},{"key":"os_id","value":"","description":"Limit IP pools to nodes that have this OS.","disabled":true},{"key":"coupon","value":"","description":"Include a coupon in the price quote.","disabled":true}],"variable":[]},"description":"Everything needed to build a valid order for a plan in a zone: the installable operating systems, the host nodes, the free IP pools, and the exact price for the quantity — computed the way the invoice will be.\n\nAccess: any key"},"response":[{"name":"Get order options and a price quote (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/order-options","host":["{{base_url}}"],"path":["order-options"],"query":[{"key":"plan_id","value":"","description":"The plan.","disabled":false},{"key":"zone_id","value":"","description":"The zone.","disabled":false},{"key":"quantity","value":"","description":"Servers to price, 1–10. Default 1.","disabled":true},{"key":"server_id","value":"","description":"Limit OS and IP pools to one host node.","disabled":true},{"key":"os_id","value":"","description":"Limit IP pools to nodes that have this OS.","disabled":true},{"key":"coupon","value":"","description":"Include a coupon in the price quote.","disabled":true}],"variable":[]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"plan_id\": 2,\n        \"zone_id\": 1,\n        \"available\": true,\n        \"operating_systems\": [\n            {\n                \"id\": 2,\n                \"name\": \"Ubuntu 22.04 LTS\",\n                \"family\": \"linux\",\n                \"logo_url\": \"https://panel.example.com/assets/img/os/ubuntu.svg?v=1760000000\"\n            }\n        ],\n        \"nodes\": [\n            {\n                \"id\": 3,\n                \"name\": \"pve-mum-01\"\n            },\n            {\n                \"id\": 4,\n                \"name\": \"pve-mum-02\"\n            }\n        ],\n        \"ips\": [\n            {\n                \"id\": 120,\n                \"address\": \"161.248.163.12\",\n                \"node_id\": 3,\n                \"node\": \"pve-mum-01\"\n            }\n        ],\n        \"ip_pools\": [\n            {\n                \"pool\": \"161.248.163\",\n                \"label\": \"161.248.163.xxx\",\n                \"free\": 18\n            },\n            {\n                \"pool\": \"103.20.231\",\n                \"label\": \"103.20.231.xxx\",\n                \"free\": 4\n            }\n        ],\n        \"pricing\": {\n            \"quantity\": 2,\n            \"price_monthly\": 499.0,\n            \"setup_fee\": 0.0,\n            \"subtotal\": 998.0,\n            \"discount\": 0.0,\n            \"coupon\": null,\n            \"tax_name\": \"GST\",\n            \"tax_percent\": 18.0,\n            \"tax_amount\": 179.64,\n            \"total\": 1177.64,\n            \"renewal_monthly\": 998.0,\n            \"currency\": \"INR\"\n        }\n    }\n}"}]}]},{"name":"Coupons","description":"Discount codes created by the panel administrator. A percentage coupon takes that share off each server's monthly price and, on the first invoice, its setup fee; a fixed coupon takes an amount off each server's monthly price. Recurring coupons keep the monthly discount on every renewal. Discounts come off before tax. Each order placed with a code is one use.","item":[{"name":"Check a coupon","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/coupons/:code","host":["{{base_url}}"],"path":["coupons",":code"],"query":[{"key":"plan_id","value":"","description":"Work out the discount for this plan.","disabled":true},{"key":"quantity","value":"","description":"Servers, 1–10. Default 1.","disabled":true}],"variable":[{"key":"code","value":"","description":"The coupon code; not case-sensitive."}]},"description":"Tells whether a code can be used and what it takes off. With plan_id, every rule is checked for that plan and your account (dates, use limits, plan list, first-order rule) and the exact price is returned. Checking does not use up the code.\n\nAccess: any key"},"response":[{"name":"Check a coupon (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/coupons/:code","host":["{{base_url}}"],"path":["coupons",":code"],"query":[{"key":"plan_id","value":"","description":"Work out the discount for this plan.","disabled":true},{"key":"quantity","value":"","description":"Servers, 1–10. Default 1.","disabled":true}],"variable":[{"key":"code","value":"","description":"The coupon code; not case-sensitive."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"code\": \"WELCOME20\",\n        \"description\": \"20% off, every month\",\n        \"type\": \"percent\",\n        \"value\": 20.0,\n        \"recurring\": true,\n        \"first_order_only\": false,\n        \"valid_from\": null,\n        \"valid_until\": \"2026-12-31\",\n        \"plan_ids\": [],\n        \"valid_for_plan\": true,\n        \"discount\": {\n            \"per_server_first_invoice\": 99.8,\n            \"renewal_per_server\": 99.8,\n            \"first_invoice_total\": 99.8\n        },\n        \"pricing\": {\n            \"quantity\": 1,\n            \"price_monthly\": 499.0,\n            \"setup_fee\": 0.0,\n            \"subtotal\": 499.0,\n            \"discount\": 99.8,\n            \"coupon\": \"WELCOME20\",\n            \"tax_name\": \"GST\",\n            \"tax_percent\": 18.0,\n            \"tax_amount\": 71.86,\n            \"total\": 471.06,\n            \"renewal_monthly\": 399.2,\n            \"currency\": \"INR\"\n        }\n    }\n}"}]}]},{"name":"Orders","description":"An order buys 1–10 servers of one plan in one zone. Each server becomes its own order; they share one invoice. Paying the invoice builds every server automatically.","item":[{"name":"Place an order","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}","description":"A new UUID on every send. To retry a request safely, send it again with the same key: it is answered once and replayed after that."}],"url":{"raw":"{{base_url}}/orders","host":["{{base_url}}"],"path":["orders"],"query":[],"variable":[]},"description":"Creates the orders and their invoice. With \"pay_with\": \"wallet\" the invoice is paid from the wallet in the same call and the servers start building at once; the wallet is checked first, so a short balance creates nothing. Without it the invoice waits for POST /invoices/{id}/pay.\n\nAccess: full-access key","body":{"mode":"raw","raw":"{\n    \"plan_id\": 2,\n    \"zone_id\": 1,\n    \"os_id\": 2,\n    \"hostnames\": [\n        \"web-01.client1042.in\"\n    ],\n    \"ip_pool\": \"161.248.163\",\n    \"coupon\": \"WELCOME20\",\n    \"pay_with\": \"wallet\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Place an order (example)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}","description":"A new UUID on every send. To retry a request safely, send it again with the same key: it is answered once and replayed after that."}],"url":{"raw":"{{base_url}}/orders","host":["{{base_url}}"],"path":["orders"],"query":[],"variable":[]},"body":{"mode":"raw","raw":"{\n    \"plan_id\": 2,\n    \"zone_id\": 1,\n    \"os_id\": 2,\n    \"hostnames\": [\n        \"web-01.client1042.in\"\n    ],\n    \"ip_pool\": \"161.248.163\",\n    \"coupon\": \"WELCOME20\",\n    \"pay_with\": \"wallet\"\n}","options":{"raw":{"language":"json"}}}},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"orders\": [\n            {\n                \"id\": 311,\n                \"order_number\": \"ORD-261010-A1B2C3\",\n                \"status\": \"paid\",\n                \"hostname\": \"web-01.client1042.in\",\n                \"plan\": {\n                    \"id\": 2,\n                    \"name\": \"Linux Standard\"\n                },\n                \"zone\": {\n                    \"id\": 1,\n                    \"name\": \"Mumbai DC1\"\n                },\n                \"os\": {\n                    \"id\": 2,\n                    \"name\": \"Ubuntu 22.04 LTS\"\n                },\n                \"cpu_cores\": 2,\n                \"ram_mb\": 2048,\n                \"disk_gb\": 50,\n                \"amount\": 499.0,\n                \"setup_fee\": 0.0,\n                \"coupon\": \"WELCOME20\",\n                \"discount\": 99.8,\n                \"renewal_discount\": 99.8,\n                \"tax_amount\": 71.86,\n                \"total\": 471.06,\n                \"currency\": \"INR\",\n                \"invoice_id\": 902,\n                \"vm_id\": null,\n                \"error_message\": null,\n                \"created_at\": \"2026-10-10T09:12:40Z\",\n                \"updated_at\": \"2026-10-10T09:12:41Z\"\n            }\n        ],\n        \"invoice\": {\n            \"id\": 902,\n            \"invoice_number\": \"MTX-202610-0042\",\n            \"type\": \"new\",\n            \"status\": \"paid\",\n            \"subtotal\": 499.0,\n            \"discount\": 99.8,\n            \"coupon_code\": \"WELCOME20\",\n            \"tax\": {\n                \"name\": \"GST\",\n                \"percent\": 18.0,\n                \"amount\": 71.86\n            },\n            \"total\": 471.06,\n            \"amount_paid\": 471.06,\n            \"amount_due\": 0.0,\n            \"currency\": \"INR\",\n            \"due_date\": \"2026-10-10\",\n            \"overdue\": false,\n            \"paid_at\": \"2026-10-10T09:12:41Z\",\n            \"payment_method\": \"wallet\",\n            \"created_at\": \"2026-10-10T09:12:40Z\",\n            \"view_url\": \"https://panel.example.com/billing/invoices/902\",\n            \"items\": [\n                {\n                    \"description\": \"Linux Standard — web-01.client1042.in (monthly)\",\n                    \"quantity\": 1,\n                    \"unit_price\": 499.0,\n                    \"amount\": 499.0,\n                    \"period_start\": \"2026-10-10\",\n                    \"period_end\": \"2026-11-10\",\n                    \"vm_id\": null\n                }\n            ]\n        },\n        \"payment\": {\n            \"method\": \"wallet\",\n            \"status\": \"paid\",\n            \"error\": null\n        },\n        \"wallet_balance\": 15358.26\n    }\n}"}]},{"name":"List orders","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/orders","host":["{{base_url}}"],"path":["orders"],"query":[{"key":"status","value":"","description":"pending, awaiting_payment, paid, provisioning, completed, failed or cancelled.","disabled":true},{"key":"page","value":"","description":"Page number, from 1. Pages past the end return an empty list.","disabled":true},{"key":"per_page","value":"","description":"Items per page, 1–100. Default 25.","disabled":true}],"variable":[]},"description":"Access: any key"},"response":[{"name":"List orders (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/orders","host":["{{base_url}}"],"path":["orders"],"query":[{"key":"status","value":"","description":"pending, awaiting_payment, paid, provisioning, completed, failed or cancelled.","disabled":true},{"key":"page","value":"","description":"Page number, from 1. Pages past the end return an empty list.","disabled":true},{"key":"per_page","value":"","description":"Items per page, 1–100. Default 25.","disabled":true}],"variable":[]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": [\n        {\n            \"id\": 311,\n            \"order_number\": \"ORD-261010-A1B2C3\",\n            \"status\": \"completed\",\n            \"hostname\": \"web-01.client1042.in\",\n            \"plan\": {\n                \"id\": 2,\n                \"name\": \"Linux Standard\"\n            },\n            \"zone\": {\n                \"id\": 1,\n                \"name\": \"Mumbai DC1\"\n            },\n            \"os\": {\n                \"id\": 2,\n                \"name\": \"Ubuntu 22.04 LTS\"\n            },\n            \"cpu_cores\": 2,\n            \"ram_mb\": 2048,\n            \"disk_gb\": 50,\n            \"amount\": 499.0,\n            \"setup_fee\": 0.0,\n            \"coupon\": null,\n            \"discount\": 0.0,\n            \"renewal_discount\": 0.0,\n            \"tax_amount\": 89.82,\n            \"total\": 588.82,\n            \"currency\": \"INR\",\n            \"invoice_id\": 902,\n            \"vm_id\": \"6f1c2a9e-3b7d-4c8a-9e21-5d4f3a2b1c0d\",\n            \"error_message\": null,\n            \"created_at\": \"2026-10-10T09:12:40Z\",\n            \"updated_at\": \"2026-10-10T09:12:41Z\"\n        }\n    ],\n    \"meta\": {\n        \"page\": 1,\n        \"per_page\": 25,\n        \"total\": 1,\n        \"pages\": 1\n    }\n}"}]},{"name":"Get an order","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/orders/:id","host":["{{base_url}}"],"path":["orders",":id"],"query":[],"variable":[{"key":"id","value":"","description":"Order id or order number (ORD-…)."}]},"description":"Poll this after paying to follow the build: awaiting_payment → paid → provisioning → completed (or failed).\n\nAccess: any key"},"response":[{"name":"Get an order (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/orders/:id","host":["{{base_url}}"],"path":["orders",":id"],"query":[],"variable":[{"key":"id","value":"","description":"Order id or order number (ORD-…)."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"id\": 311,\n        \"order_number\": \"ORD-261010-A1B2C3\",\n        \"status\": \"completed\",\n        \"hostname\": \"web-01.client1042.in\",\n        \"plan\": {\n            \"id\": 2,\n            \"name\": \"Linux Standard\"\n        },\n        \"zone\": {\n            \"id\": 1,\n            \"name\": \"Mumbai DC1\"\n        },\n        \"os\": {\n            \"id\": 2,\n            \"name\": \"Ubuntu 22.04 LTS\"\n        },\n        \"cpu_cores\": 2,\n        \"ram_mb\": 2048,\n        \"disk_gb\": 50,\n        \"amount\": 499.0,\n        \"setup_fee\": 0.0,\n        \"coupon\": null,\n        \"discount\": 0.0,\n        \"renewal_discount\": 0.0,\n        \"tax_amount\": 89.82,\n        \"total\": 588.82,\n        \"currency\": \"INR\",\n        \"invoice_id\": 902,\n        \"vm_id\": \"6f1c2a9e-3b7d-4c8a-9e21-5d4f3a2b1c0d\",\n        \"error_message\": null,\n        \"created_at\": \"2026-10-10T09:12:40Z\",\n        \"updated_at\": \"2026-10-10T09:12:41Z\"\n    }\n}"}]}]},{"name":"Servers","description":"Virtual servers on the account. A server's id is a UUID. Statuses: pending, provisioning, active, rebuilding, suspended, failed, terminated. power_state is running, stopped or unknown.","item":[{"name":"List servers","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/vms","host":["{{base_url}}"],"path":["vms"],"query":[{"key":"status","value":"","description":"Only servers in this status.","disabled":true},{"key":"search","value":"","description":"Match hostname, label or primary IP.","disabled":true},{"key":"include_terminated","value":"","description":"Include terminated servers. Default false.","disabled":true},{"key":"page","value":"","description":"Page number, from 1. Pages past the end return an empty list.","disabled":true},{"key":"per_page","value":"","description":"Items per page, 1–100. Default 25.","disabled":true}],"variable":[]},"description":"Newest first. Terminated servers are left out unless asked for.\n\nAccess: any key"},"response":[{"name":"List servers (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/vms","host":["{{base_url}}"],"path":["vms"],"query":[{"key":"status","value":"","description":"Only servers in this status.","disabled":true},{"key":"search","value":"","description":"Match hostname, label or primary IP.","disabled":true},{"key":"include_terminated","value":"","description":"Include terminated servers. Default false.","disabled":true},{"key":"page","value":"","description":"Page number, from 1. Pages past the end return an empty list.","disabled":true},{"key":"per_page","value":"","description":"Items per page, 1–100. Default 25.","disabled":true}],"variable":[]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": [\n        {\n            \"id\": \"6f1c2a9e-3b7d-4c8a-9e21-5d4f3a2b1c0d\",\n            \"hostname\": \"web-01.client1042.in\",\n            \"label\": \"Client 1042 — web\",\n            \"status\": \"active\",\n            \"power_state\": \"running\",\n            \"primary_ip\": \"103.20.10.11\",\n            \"plan\": {\n                \"id\": 2,\n                \"name\": \"Linux Standard\"\n            },\n            \"os\": {\n                \"id\": 2,\n                \"name\": \"Ubuntu 22.04 LTS\",\n                \"slug\": \"ubuntu-2204\",\n                \"family\": \"linux\"\n            },\n            \"zone\": {\n                \"id\": 1,\n                \"name\": \"Mumbai DC1\",\n                \"city\": \"Mumbai\"\n            },\n            \"node\": \"pve-mum-01\",\n            \"specs\": {\n                \"cpu_cores\": 2,\n                \"ram_mb\": 2048,\n                \"disk_gb\": 50,\n                \"disk_type\": \"nvme\",\n                \"bandwidth_gb\": 2000,\n                \"network_speed_mbps\": 1000\n            },\n            \"billing\": {\n                \"price\": 499.0,\n                \"currency\": \"INR\",\n                \"billing_cycle\": \"monthly\",\n                \"next_due_date\": \"2026-11-10\",\n                \"auto_renew\": true\n            },\n            \"created_at\": \"2026-10-10T09:12:44Z\",\n            \"provisioned_at\": \"2026-10-10T09:14:31Z\",\n            \"suspended_at\": null,\n            \"terminated_at\": null\n        }\n    ],\n    \"meta\": {\n        \"page\": 1,\n        \"per_page\": 25,\n        \"total\": 1,\n        \"pages\": 1\n    }\n}"}]},{"name":"Get a server","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id","host":["{{base_url}}"],"path":["vms",":id"],"query":[],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]},"description":"Full detail: IP addresses with gateway and netmask, login username and this month's bandwidth. The password is only returned by GET /vms/{id}/credentials.\n\nAccess: any key"},"response":[{"name":"Get a server (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id","host":["{{base_url}}"],"path":["vms",":id"],"query":[],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"id\": \"6f1c2a9e-3b7d-4c8a-9e21-5d4f3a2b1c0d\",\n        \"hostname\": \"web-01.client1042.in\",\n        \"label\": \"Client 1042 — web\",\n        \"status\": \"active\",\n        \"power_state\": \"running\",\n        \"primary_ip\": \"103.20.10.11\",\n        \"plan\": {\n            \"id\": 2,\n            \"name\": \"Linux Standard\"\n        },\n        \"os\": {\n            \"id\": 2,\n            \"name\": \"Ubuntu 22.04 LTS\",\n            \"slug\": \"ubuntu-2204\",\n            \"family\": \"linux\"\n        },\n        \"zone\": {\n            \"id\": 1,\n            \"name\": \"Mumbai DC1\",\n            \"city\": \"Mumbai\"\n        },\n        \"node\": \"pve-mum-01\",\n        \"specs\": {\n            \"cpu_cores\": 2,\n            \"ram_mb\": 2048,\n            \"disk_gb\": 50,\n            \"disk_type\": \"nvme\",\n            \"bandwidth_gb\": 2000,\n            \"network_speed_mbps\": 1000\n        },\n        \"billing\": {\n            \"price\": 499.0,\n            \"currency\": \"INR\",\n            \"billing_cycle\": \"monthly\",\n            \"next_due_date\": \"2026-11-10\",\n            \"auto_renew\": true\n        },\n        \"created_at\": \"2026-10-10T09:12:44Z\",\n        \"provisioned_at\": \"2026-10-10T09:14:31Z\",\n        \"suspended_at\": null,\n        \"terminated_at\": null,\n        \"username\": \"root\",\n        \"error_message\": null,\n        \"ips\": [\n            {\n                \"address\": \"103.20.10.11\",\n                \"type\": \"ipv4\",\n                \"cidr\": 24,\n                \"netmask\": \"255.255.255.0\",\n                \"gateway\": \"103.20.10.1\",\n                \"mac\": \"BC:24:11:5A:9E:01\",\n                \"rdns\": null\n            }\n        ],\n        \"traffic\": {\n            \"period\": \"2026-10\",\n            \"used_bytes\": 48318382080,\n            \"limit_bytes\": 2147483648000,\n            \"used_percent\": 2.25\n        },\n        \"rebuild\": null\n    }\n}"}]},{"name":"Update label or auto-renew","request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id","host":["{{base_url}}"],"path":["vms",":id"],"query":[],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]},"description":"Set a private label (for example your customer's reference) and switch auto-renew. With auto-renew off, no renewal invoice is raised and the server ends after its paid period.\n\nAccess: full-access key","body":{"mode":"raw","raw":"{\n    \"label\": \"Client 1042 — web\",\n    \"auto_renew\": true\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Update label or auto-renew (example)","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id","host":["{{base_url}}"],"path":["vms",":id"],"query":[],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]},"body":{"mode":"raw","raw":"{\n    \"label\": \"Client 1042 — web\",\n    \"auto_renew\": true\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"id\": \"6f1c2a9e-3b7d-4c8a-9e21-5d4f3a2b1c0d\",\n        \"hostname\": \"web-01.client1042.in\",\n        \"label\": \"Client 1042 — web\",\n        \"status\": \"active\",\n        \"power_state\": \"running\",\n        \"primary_ip\": \"103.20.10.11\",\n        \"plan\": {\n            \"id\": 2,\n            \"name\": \"Linux Standard\"\n        },\n        \"os\": {\n            \"id\": 2,\n            \"name\": \"Ubuntu 22.04 LTS\",\n            \"slug\": \"ubuntu-2204\",\n            \"family\": \"linux\"\n        },\n        \"zone\": {\n            \"id\": 1,\n            \"name\": \"Mumbai DC1\",\n            \"city\": \"Mumbai\"\n        },\n        \"node\": \"pve-mum-01\",\n        \"specs\": {\n            \"cpu_cores\": 2,\n            \"ram_mb\": 2048,\n            \"disk_gb\": 50,\n            \"disk_type\": \"nvme\",\n            \"bandwidth_gb\": 2000,\n            \"network_speed_mbps\": 1000\n        },\n        \"billing\": {\n            \"price\": 499.0,\n            \"currency\": \"INR\",\n            \"billing_cycle\": \"monthly\",\n            \"next_due_date\": \"2026-11-10\",\n            \"auto_renew\": true\n        },\n        \"created_at\": \"2026-10-10T09:12:44Z\",\n        \"provisioned_at\": \"2026-10-10T09:14:31Z\",\n        \"suspended_at\": null,\n        \"terminated_at\": null,\n        \"username\": \"root\",\n        \"error_message\": null,\n        \"ips\": [\n            {\n                \"address\": \"103.20.10.11\",\n                \"type\": \"ipv4\",\n                \"cidr\": 24,\n                \"netmask\": \"255.255.255.0\",\n                \"gateway\": \"103.20.10.1\",\n                \"mac\": \"BC:24:11:5A:9E:01\",\n                \"rdns\": null\n            }\n        ],\n        \"traffic\": {\n            \"period\": \"2026-10\",\n            \"used_bytes\": 48318382080,\n            \"limit_bytes\": 2147483648000,\n            \"used_percent\": 2.25\n        },\n        \"rebuild\": null\n    }\n}"}]},{"name":"Get login credentials","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id/credentials","host":["{{base_url}}"],"path":["vms",":id","credentials"],"query":[],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]},"description":"The username and current password of the server, for handing over to your customer. Kept out of every other response on purpose.\n\nAccess: any key"},"response":[{"name":"Get login credentials (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id/credentials","host":["{{base_url}}"],"path":["vms",":id","credentials"],"query":[],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"id\": \"6f1c2a9e-3b7d-4c8a-9e21-5d4f3a2b1c0d\",\n        \"hostname\": \"web-01.client1042.in\",\n        \"ip\": \"103.20.10.11\",\n        \"username\": \"root\",\n        \"password\": \"q7T!vR2m-Kx9pL4s\",\n        \"os_family\": \"linux\",\n        \"login_with\": \"ssh\"\n    }\n}"}]},{"name":"Get live status","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id/status","host":["{{base_url}}"],"path":["vms",":id","status"],"query":[],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]},"description":"Reads the power state and resource use from the hypervisor right now.\n\nAccess: any key"},"response":[{"name":"Get live status (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id/status","host":["{{base_url}}"],"path":["vms",":id","status"],"query":[],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"id\": \"6f1c2a9e-3b7d-4c8a-9e21-5d4f3a2b1c0d\",\n        \"status\": \"active\",\n        \"power_state\": \"running\",\n        \"usage\": {\n            \"cpu_percent\": 6.4,\n            \"memory_bytes\": 912261120,\n            \"memory_total_bytes\": 2147483648,\n            \"memory_percent\": 42.5,\n            \"disk_total_bytes\": 53687091200,\n            \"uptime_seconds\": 86211\n        },\n        \"traffic\": {\n            \"period\": \"2026-10\",\n            \"used_bytes\": 48318382080,\n            \"limit_bytes\": 2147483648000,\n            \"used_percent\": 2.25\n        },\n        \"error\": null\n    }\n}"}]},{"name":"Get usage graphs","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id/metrics","host":["{{base_url}}"],"path":["vms",":id","metrics"],"query":[{"key":"timeframe","value":"","description":"hour, day (default), week or month.","disabled":true}],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]},"description":"CPU, memory and network time series for charts. time is a Unix timestamp; network values are average bytes per second over each sample.\n\nAccess: any key"},"response":[{"name":"Get usage graphs (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id/metrics","host":["{{base_url}}"],"path":["vms",":id","metrics"],"query":[{"key":"timeframe","value":"","description":"hour, day (default), week or month.","disabled":true}],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"timeframe\": \"day\",\n        \"series\": [\n            {\n                \"time\": 1760086800,\n                \"cpu_percent\": 5.12,\n                \"memory_bytes\": 905969664,\n                \"net_in_bytes_sec\": 18233.4,\n                \"net_out_bytes_sec\": 40211.9\n            },\n            {\n                \"time\": 1760088600,\n                \"cpu_percent\": 7.3,\n                \"memory_bytes\": 912261120,\n                \"net_in_bytes_sec\": 20110.0,\n                \"net_out_bytes_sec\": 51876.2\n            }\n        ]\n    }\n}"}]},{"name":"Get bandwidth usage","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id/traffic","host":["{{base_url}}"],"path":["vms",":id","traffic"],"query":[{"key":"months","value":"","description":"Months of history, 1–24. Default 6.","disabled":true}],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]},"description":"This month's usage against the plan allowance, and previous months.\n\nAccess: any key"},"response":[{"name":"Get bandwidth usage (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id/traffic","host":["{{base_url}}"],"path":["vms",":id","traffic"],"query":[{"key":"months","value":"","description":"Months of history, 1–24. Default 6.","disabled":true}],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"current\": {\n            \"period\": \"2026-10\",\n            \"used_bytes\": 48318382080,\n            \"limit_bytes\": 2147483648000,\n            \"used_percent\": 2.25\n        },\n        \"history\": [\n            {\n                \"period\": \"2026-10\",\n                \"in_bytes\": 12079595520,\n                \"out_bytes\": 36238786560,\n                \"total_bytes\": 48318382080\n            }\n        ]\n    }\n}"}]},{"name":"List server actions","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id/actions","host":["{{base_url}}"],"path":["vms",":id","actions"],"query":[{"key":"page","value":"","description":"Page number, from 1. Pages past the end return an empty list.","disabled":true},{"key":"per_page","value":"","description":"Items per page, 1–100. Default 25.","disabled":true}],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]},"description":"Power actions, rebuilds, password resets, Reconfigure IP (\"network\") and console sessions on this server, newest first.\n\nAccess: any key"},"response":[{"name":"List server actions (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id/actions","host":["{{base_url}}"],"path":["vms",":id","actions"],"query":[{"key":"page","value":"","description":"Page number, from 1. Pages past the end return an empty list.","disabled":true},{"key":"per_page","value":"","description":"Items per page, 1–100. Default 25.","disabled":true}],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": [\n        {\n            \"id\": 9921,\n            \"action\": \"reboot\",\n            \"status\": \"success\",\n            \"message\": \"Requested via API\",\n            \"by\": \"Asha Rao\",\n            \"created_at\": \"2026-10-10T11:40:00Z\"\n        }\n    ],\n    \"meta\": {\n        \"page\": 1,\n        \"per_page\": 25,\n        \"total\": 1,\n        \"pages\": 1\n    }\n}"}]},{"name":"List rebuild options","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id/os-options","host":["{{base_url}}"],"path":["vms",":id","os-options"],"query":[],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]},"description":"Operating systems this server can be rebuilt to: allowed by its plan and available on its node.\n\nAccess: any key"},"response":[{"name":"List rebuild options (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id/os-options","host":["{{base_url}}"],"path":["vms",":id","os-options"],"query":[],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": [\n        {\n            \"id\": 2,\n            \"name\": \"Ubuntu 22.04 LTS\",\n            \"slug\": \"ubuntu-2204\",\n            \"family\": \"linux\",\n            \"version\": \"22.04\",\n            \"default_username\": \"root\",\n            \"min_disk_gb\": 10,\n            \"min_ram_mb\": 512,\n            \"logo_url\": \"https://panel.example.com/assets/img/os/ubuntu.svg?v=1760000000\"\n        }\n    ]\n}"}]},{"name":"Power action","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id/power","host":["{{base_url}}"],"path":["vms",":id","power"],"query":[],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]},"description":"Sends a power command to the hypervisor. It runs asynchronously; check GET /vms/{id}/status a few seconds later.\n\nAccess: full-access key","body":{"mode":"raw","raw":"{\n    \"action\": \"reboot\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Power action (example)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id/power","host":["{{base_url}}"],"path":["vms",":id","power"],"query":[],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]},"body":{"mode":"raw","raw":"{\n    \"action\": \"reboot\"\n}","options":{"raw":{"language":"json"}}}},"status":"Accepted","code":202,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"id\": \"6f1c2a9e-3b7d-4c8a-9e21-5d4f3a2b1c0d\",\n        \"action\": \"reboot\",\n        \"accepted\": true,\n        \"expected_power_state\": \"running\"\n    }\n}"}]},{"name":"Rebuild (reinstall)","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id/rebuild","host":["{{base_url}}"],"path":["vms",":id","rebuild"],"query":[],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]},"description":"Erases the disk and installs the chosen operating system. The id, hostname, IP and billing stay the same. The rebuild is queued: status stays \"active\" until the job starts, then shows \"rebuilding\", then \"active\" again, so poll GET /vms/{id} until its rebuild field is null rather than watching status. A new password is generated unless you send one.\n\nAccess: full-access key","body":{"mode":"raw","raw":"{\n    \"os_id\": 4,\n    \"confirm\": \"web-01.client1042.in\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Rebuild (reinstall) (example)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id/rebuild","host":["{{base_url}}"],"path":["vms",":id","rebuild"],"query":[],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]},"body":{"mode":"raw","raw":"{\n    \"os_id\": 4,\n    \"confirm\": \"web-01.client1042.in\"\n}","options":{"raw":{"language":"json"}}}},"status":"Accepted","code":202,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"id\": \"6f1c2a9e-3b7d-4c8a-9e21-5d4f3a2b1c0d\",\n        \"queued\": true,\n        \"os_id\": 4,\n        \"password\": \"generated\",\n        \"message\": \"Rebuild queued. Status stays \\\"active\\\" until the job starts, so poll GET /vms/{id} until \\\"rebuild\\\" is null. Then GET /vms/{id}/actions shows the outcome; read the new login from GET /vms/{id}/credentials only after a rebuild entry with status \\\"success\\\".\"\n    }\n}"}]},{"name":"Reset the password","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id/password","host":["{{base_url}}"],"path":["vms",":id","password"],"query":[],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]},"description":"Sets a new root/Administrator password. Servers with the guest agent take it at once; others after their next reboot.\n\nAccess: full-access key","body":{"mode":"raw","raw":"{\n    \"password\": \"N3w-Str0ng!Pass\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Reset the password (example)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id/password","host":["{{base_url}}"],"path":["vms",":id","password"],"query":[],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]},"body":{"mode":"raw","raw":"{\n    \"password\": \"N3w-Str0ng!Pass\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"id\": \"6f1c2a9e-3b7d-4c8a-9e21-5d4f3a2b1c0d\",\n        \"username\": \"root\",\n        \"password\": \"N3w-Str0ng!Pass\",\n        \"applied\": \"immediately\",\n        \"message\": \"The new password works now.\"\n    }\n}"}]},{"name":"Reconfigure IP","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id/network","host":["{{base_url}}"],"path":["vms",":id","network"],"query":[],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]},"description":"Sets the server's IP address, gateway and DNS inside it again, the way the panel set them up, through the guest agent. Use it when the network inside the server was changed or stopped working. The hostname and disk are left alone; the connection drops for a few seconds. The server must be running.\n\nAccess: full-access key"},"response":[{"name":"Reconfigure IP (example)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id/network","host":["{{base_url}}"],"path":["vms",":id","network"],"query":[],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]}},"status":"Accepted","code":202,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"id\": \"6f1c2a9e-3b7d-4c8a-9e21-5d4f3a2b1c0d\",\n        \"queued\": true,\n        \"message\": \"Reconfigure IP queued. It takes under a minute on Linux, a little longer on Windows; GET /vms/{id}/actions shows a \\\"network\\\" entry with status \\\"success\\\" or \\\"failed\\\" when it is done.\"\n    }\n}"}]},{"name":"Open a VNC console","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id/console","host":["{{base_url}}"],"path":["vms",":id","console"],"query":[],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]},"description":"Creates a one-time console session for embedding noVNC in your own panel: connect noVNC to websocket_url and use vnc_password as the VNC password. Valid once, for 120 seconds.\n\nAccess: full-access key"},"response":[{"name":"Open a VNC console (example)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/vms/:id/console","host":["{{base_url}}"],"path":["vms",":id","console"],"query":[],"variable":[{"key":"id","value":"","description":"The server's id (a UUID) from GET /vms."}]}},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"id\": \"6f1c2a9e-3b7d-4c8a-9e21-5d4f3a2b1c0d\",\n        \"websocket_url\": \"wss://panel.example.com/console-ws?token=4be1c0…e9\",\n        \"token\": \"4be1c0…e9\",\n        \"vnc_password\": \"PVEVNC:6720A1F3::…\",\n        \"expires_at\": \"2026-10-10T11:42:00Z\"\n    }\n}"}]}]},{"name":"Invoices & payments","description":"Invoice types: new (an order), renewal (a server's next month), topup (wallet deposit, no tax) and manual. Statuses: unpaid, paid, cancelled, refunded. Renewal invoices are raised automatically before the due date; pay them with POST /invoices/{id}/pay — the wallet is not charged automatically.","item":[{"name":"List invoices","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/invoices","host":["{{base_url}}"],"path":["invoices"],"query":[{"key":"status","value":"","description":"unpaid, paid, cancelled or refunded.","disabled":true},{"key":"type","value":"","description":"new, renewal, topup or manual.","disabled":true},{"key":"overdue","value":"","description":"Only unpaid invoices past their due date.","disabled":true},{"key":"page","value":"","description":"Page number, from 1. Pages past the end return an empty list.","disabled":true},{"key":"per_page","value":"","description":"Items per page, 1–100. Default 25.","disabled":true}],"variable":[]},"description":"Access: any key"},"response":[{"name":"List invoices (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/invoices","host":["{{base_url}}"],"path":["invoices"],"query":[{"key":"status","value":"","description":"unpaid, paid, cancelled or refunded.","disabled":true},{"key":"type","value":"","description":"new, renewal, topup or manual.","disabled":true},{"key":"overdue","value":"","description":"Only unpaid invoices past their due date.","disabled":true},{"key":"page","value":"","description":"Page number, from 1. Pages past the end return an empty list.","disabled":true},{"key":"per_page","value":"","description":"Items per page, 1–100. Default 25.","disabled":true}],"variable":[]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": [\n        {\n            \"id\": 915,\n            \"invoice_number\": \"MTX-202610-0051\",\n            \"type\": \"renewal\",\n            \"status\": \"unpaid\",\n            \"subtotal\": 499.0,\n            \"discount\": 0.0,\n            \"coupon_code\": null,\n            \"tax\": {\n                \"name\": \"GST\",\n                \"percent\": 18.0,\n                \"amount\": 89.82\n            },\n            \"total\": 588.82,\n            \"amount_paid\": 0.0,\n            \"amount_due\": 588.82,\n            \"currency\": \"INR\",\n            \"due_date\": \"2026-11-10\",\n            \"overdue\": false,\n            \"paid_at\": null,\n            \"payment_method\": null,\n            \"created_at\": \"2026-10-10T09:12:40Z\",\n            \"view_url\": \"https://panel.example.com/billing/invoices/915\"\n        },\n        {\n            \"id\": 902,\n            \"invoice_number\": \"MTX-202610-0042\",\n            \"type\": \"new\",\n            \"status\": \"paid\",\n            \"subtotal\": 499.0,\n            \"discount\": 0.0,\n            \"coupon_code\": null,\n            \"tax\": {\n                \"name\": \"GST\",\n                \"percent\": 18.0,\n                \"amount\": 89.82\n            },\n            \"total\": 588.82,\n            \"amount_paid\": 588.82,\n            \"amount_due\": 0.0,\n            \"currency\": \"INR\",\n            \"due_date\": \"2026-10-10\",\n            \"overdue\": false,\n            \"paid_at\": \"2026-10-10T09:12:41Z\",\n            \"payment_method\": \"wallet\",\n            \"created_at\": \"2026-10-10T09:12:40Z\",\n            \"view_url\": \"https://panel.example.com/billing/invoices/902\"\n        }\n    ],\n    \"meta\": {\n        \"page\": 1,\n        \"per_page\": 25,\n        \"total\": 2,\n        \"pages\": 1\n    }\n}"}]},{"name":"Get an invoice","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/invoices/:id","host":["{{base_url}}"],"path":["invoices",":id"],"query":[],"variable":[{"key":"id","value":"","description":"Invoice id or invoice number (MTX-…)."}]},"description":"With its line items and every payment attempt.\n\nAccess: any key"},"response":[{"name":"Get an invoice (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/invoices/:id","host":["{{base_url}}"],"path":["invoices",":id"],"query":[],"variable":[{"key":"id","value":"","description":"Invoice id or invoice number (MTX-…)."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"id\": 902,\n        \"invoice_number\": \"MTX-202610-0042\",\n        \"type\": \"new\",\n        \"status\": \"paid\",\n        \"subtotal\": 499.0,\n        \"discount\": 0.0,\n        \"coupon_code\": null,\n        \"tax\": {\n            \"name\": \"GST\",\n            \"percent\": 18.0,\n            \"amount\": 89.82\n        },\n        \"total\": 588.82,\n        \"amount_paid\": 588.82,\n        \"amount_due\": 0.0,\n        \"currency\": \"INR\",\n        \"due_date\": \"2026-10-10\",\n        \"overdue\": false,\n        \"paid_at\": \"2026-10-10T09:12:41Z\",\n        \"payment_method\": \"wallet\",\n        \"created_at\": \"2026-10-10T09:12:40Z\",\n        \"view_url\": \"https://panel.example.com/billing/invoices/902\",\n        \"items\": [\n            {\n                \"description\": \"Linux Standard — web-01.client1042.in (monthly)\",\n                \"quantity\": 1,\n                \"unit_price\": 499.0,\n                \"amount\": 499.0,\n                \"period_start\": \"2026-10-10\",\n                \"period_end\": \"2026-11-10\",\n                \"vm_id\": null\n            }\n        ],\n        \"payments\": [\n            {\n                \"id\": 5521,\n                \"reference\": \"TXN261010091241A9F3C2\",\n                \"invoice_id\": 902,\n                \"invoice_number\": \"MTX-202610-0042\",\n                \"gateway\": \"wallet\",\n                \"type\": \"payment\",\n                \"amount\": 588.82,\n                \"fee\": 0.0,\n                \"currency\": \"INR\",\n                \"status\": \"success\",\n                \"failure_reason\": null,\n                \"created_at\": \"2026-10-10T09:12:41Z\"\n            }\n        ]\n    }\n}"}]},{"name":"Pay an invoice","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}","description":"A new UUID on every send. To retry a request safely, send it again with the same key: it is answered once and replayed after that."}],"url":{"raw":"{{base_url}}/invoices/:id/pay","host":["{{base_url}}"],"path":["invoices",":id","pay"],"query":[],"variable":[{"key":"id","value":"","description":"Invoice id or number."}]},"description":"\"wallet\" settles the invoice at once from the wallet balance and runs its effects (builds ordered servers, extends a renewal, lifts a suspension). A gateway (\"razorpay\" or \"cashfree\") returns a payment_url for the account holder to complete in a browser signed in to the panel; the invoice is marked paid automatically when the gateway confirms.\n\nAccess: full-access key","body":{"mode":"raw","raw":"{\n    \"method\": \"wallet\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Pay an invoice (example)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}","description":"A new UUID on every send. To retry a request safely, send it again with the same key: it is answered once and replayed after that."}],"url":{"raw":"{{base_url}}/invoices/:id/pay","host":["{{base_url}}"],"path":["invoices",":id","pay"],"query":[],"variable":[{"key":"id","value":"","description":"Invoice id or number."}]},"body":{"mode":"raw","raw":"{\n    \"method\": \"wallet\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"invoice\": {\n            \"id\": 915,\n            \"invoice_number\": \"MTX-202610-0051\",\n            \"type\": \"renewal\",\n            \"status\": \"paid\",\n            \"subtotal\": 499.0,\n            \"discount\": 0.0,\n            \"coupon_code\": null,\n            \"tax\": {\n                \"name\": \"GST\",\n                \"percent\": 18.0,\n                \"amount\": 89.82\n            },\n            \"total\": 588.82,\n            \"amount_paid\": 588.82,\n            \"amount_due\": 0.0,\n            \"currency\": \"INR\",\n            \"due_date\": \"2026-10-10\",\n            \"overdue\": false,\n            \"paid_at\": \"2026-10-10T09:12:41Z\",\n            \"payment_method\": \"wallet\",\n            \"created_at\": \"2026-10-10T09:12:40Z\",\n            \"view_url\": \"https://panel.example.com/billing/invoices/902\",\n            \"items\": [\n                {\n                    \"description\": \"Linux Standard — web-01.client1042.in (monthly)\",\n                    \"quantity\": 1,\n                    \"unit_price\": 499.0,\n                    \"amount\": 499.0,\n                    \"period_start\": \"2026-10-10\",\n                    \"period_end\": \"2026-11-10\",\n                    \"vm_id\": null\n                }\n            ],\n            \"payments\": [\n                {\n                    \"id\": 5521,\n                    \"reference\": \"TXN261010091241A9F3C2\",\n                    \"invoice_id\": 902,\n                    \"invoice_number\": \"MTX-202610-0042\",\n                    \"gateway\": \"wallet\",\n                    \"type\": \"payment\",\n                    \"amount\": 588.82,\n                    \"fee\": 0.0,\n                    \"currency\": \"INR\",\n                    \"status\": \"success\",\n                    \"failure_reason\": null,\n                    \"created_at\": \"2026-10-10T09:12:41Z\"\n                }\n            ]\n        },\n        \"payment\": {\n            \"method\": \"wallet\",\n            \"status\": \"paid\"\n        },\n        \"wallet_balance\": 14651.68\n    }\n}"}]},{"name":"List payments","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/transactions","host":["{{base_url}}"],"path":["transactions"],"query":[{"key":"status","value":"","description":"pending, success, failed, cancelled or refunded.","disabled":true},{"key":"page","value":"","description":"Page number, from 1. Pages past the end return an empty list.","disabled":true},{"key":"per_page","value":"","description":"Items per page, 1–100. Default 25.","disabled":true}],"variable":[]},"description":"Every payment and top-up attempt, newest first. gateway is razorpay, cashfree, wallet, manual or credit.\n\nAccess: any key"},"response":[{"name":"List payments (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/transactions","host":["{{base_url}}"],"path":["transactions"],"query":[{"key":"status","value":"","description":"pending, success, failed, cancelled or refunded.","disabled":true},{"key":"page","value":"","description":"Page number, from 1. Pages past the end return an empty list.","disabled":true},{"key":"per_page","value":"","description":"Items per page, 1–100. Default 25.","disabled":true}],"variable":[]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": [\n        {\n            \"id\": 5521,\n            \"reference\": \"TXN261010091241A9F3C2\",\n            \"invoice_id\": 902,\n            \"invoice_number\": \"MTX-202610-0042\",\n            \"gateway\": \"wallet\",\n            \"type\": \"payment\",\n            \"amount\": 588.82,\n            \"fee\": 0.0,\n            \"currency\": \"INR\",\n            \"status\": \"success\",\n            \"failure_reason\": null,\n            \"created_at\": \"2026-10-10T09:12:41Z\"\n        }\n    ],\n    \"meta\": {\n        \"page\": 1,\n        \"per_page\": 25,\n        \"total\": 1,\n        \"pages\": 1\n    }\n}"}]}]},{"name":"Wallet","description":"A prepaid balance. Resellers usually keep it funded and order with \"pay_with\": \"wallet\", so servers are built without any manual step. Every movement is recorded in a double-entry ledger.","item":[{"name":"Get the wallet","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/wallet","host":["{{base_url}}"],"path":["wallet"],"query":[],"variable":[]},"description":"Balance, totals, renewals coming due in the next 30 days, and top-up limits.\n\nAccess: any key"},"response":[{"name":"Get the wallet (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/wallet","host":["{{base_url}}"],"path":["wallet"],"query":[],"variable":[]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"balance\": 15240.5,\n        \"currency\": \"INR\",\n        \"total_added\": 50000.0,\n        \"total_spent\": 34759.5,\n        \"spent_this_month\": 1764.46,\n        \"renewals_next_30_days\": {\n            \"servers\": 11,\n            \"amount\": 7289.0,\n            \"note\": \"Before tax. Pay each renewal invoice with POST /invoices/{id}/pay by its due date; the wallet is not charged automatically.\"\n        },\n        \"topup\": {\n            \"min\": 100.0,\n            \"max\": 200000.0,\n            \"gateways\": [\n                \"razorpay\",\n                \"cashfree\"\n            ]\n        }\n    }\n}"}]},{"name":"List wallet movements","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/wallet/transactions","host":["{{base_url}}"],"path":["wallet","transactions"],"query":[{"key":"type","value":"","description":"credit or debit.","disabled":true},{"key":"page","value":"","description":"Page number, from 1. Pages past the end return an empty list.","disabled":true},{"key":"per_page","value":"","description":"Items per page, 1–100. Default 25.","disabled":true}],"variable":[]},"description":"Every credit and debit with the balance before and after, newest first.\n\nAccess: any key"},"response":[{"name":"List wallet movements (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/wallet/transactions","host":["{{base_url}}"],"path":["wallet","transactions"],"query":[{"key":"type","value":"","description":"credit or debit.","disabled":true},{"key":"page","value":"","description":"Page number, from 1. Pages past the end return an empty list.","disabled":true},{"key":"per_page","value":"","description":"Items per page, 1–100. Default 25.","disabled":true}],"variable":[]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": [\n        {\n            \"id\": 1288,\n            \"type\": \"debit\",\n            \"amount\": 588.82,\n            \"balance_before\": 15829.32,\n            \"balance_after\": 15240.5,\n            \"description\": \"Payment for invoice MTX-202610-0042\",\n            \"reference_type\": \"invoice\",\n            \"reference_id\": 902,\n            \"created_at\": \"2026-10-10T09:12:41Z\"\n        }\n    ],\n    \"meta\": {\n        \"page\": 1,\n        \"per_page\": 25,\n        \"total\": 1,\n        \"pages\": 1\n    }\n}"}]},{"name":"Start a top-up","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}","description":"A new UUID on every send. To retry a request safely, send it again with the same key: it is answered once and replayed after that."}],"url":{"raw":"{{base_url}}/wallet/topup","host":["{{base_url}}"],"path":["wallet","topup"],"query":[],"variable":[]},"description":"Raises a top-up invoice (a deposit, so no tax) and returns the payment_url where the account holder pays by card, UPI or net banking in a browser signed in to the panel. The wallet is credited when the gateway confirms.\n\nAccess: full-access key","body":{"mode":"raw","raw":"{\n    \"amount\": 10000,\n    \"gateway\": \"razorpay\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Start a top-up (example)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}","description":"A new UUID on every send. To retry a request safely, send it again with the same key: it is answered once and replayed after that."}],"url":{"raw":"{{base_url}}/wallet/topup","host":["{{base_url}}"],"path":["wallet","topup"],"query":[],"variable":[]},"body":{"mode":"raw","raw":"{\n    \"amount\": 10000,\n    \"gateway\": \"razorpay\"\n}","options":{"raw":{"language":"json"}}}},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"invoice\": {\n            \"id\": 930,\n            \"invoice_number\": \"MTX-202610-0060\",\n            \"type\": \"topup\",\n            \"status\": \"unpaid\",\n            \"subtotal\": 10000.0,\n            \"discount\": 0.0,\n            \"coupon_code\": null,\n            \"tax\": {\n                \"name\": \"GST\",\n                \"percent\": 0.0,\n                \"amount\": 0.0\n            },\n            \"total\": 10000.0,\n            \"amount_paid\": 0.0,\n            \"amount_due\": 10000.0,\n            \"currency\": \"INR\",\n            \"due_date\": \"2026-10-10\",\n            \"overdue\": false,\n            \"paid_at\": null,\n            \"payment_method\": null,\n            \"created_at\": \"2026-10-10T09:12:40Z\",\n            \"view_url\": \"https://panel.example.com/billing/invoices/930\"\n        },\n        \"payment\": {\n            \"method\": \"razorpay\",\n            \"status\": \"pending\",\n            \"payment_url\": \"https://panel.example.com/billing/checkout/930/razorpay\",\n            \"message\": \"Open payment_url in a browser signed in to this account to pay. The wallet is credited as soon as the gateway confirms.\"\n        }\n    }\n}"}]}]},{"name":"Support tickets","description":"Ticket statuses: open, answered (staff replied), customer_reply (you replied), on_hold, closed.","item":[{"name":"List tickets","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/tickets","host":["{{base_url}}"],"path":["tickets"],"query":[{"key":"status","value":"","description":"open, answered, customer_reply, on_hold or closed.","disabled":true},{"key":"page","value":"","description":"Page number, from 1. Pages past the end return an empty list.","disabled":true},{"key":"per_page","value":"","description":"Items per page, 1–100. Default 25.","disabled":true}],"variable":[]},"description":"Access: any key"},"response":[{"name":"List tickets (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/tickets","host":["{{base_url}}"],"path":["tickets"],"query":[{"key":"status","value":"","description":"open, answered, customer_reply, on_hold or closed.","disabled":true},{"key":"page","value":"","description":"Page number, from 1. Pages past the end return an empty list.","disabled":true},{"key":"per_page","value":"","description":"Items per page, 1–100. Default 25.","disabled":true}],"variable":[]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": [\n        {\n            \"id\": 77,\n            \"ticket_number\": \"TKT-9C1E44AB\",\n            \"subject\": \"Reverse DNS for 103.20.10.11\",\n            \"department\": \"support\",\n            \"priority\": \"medium\",\n            \"status\": \"open\",\n            \"vm\": {\n                \"id\": \"6f1c2a9e-3b7d-4c8a-9e21-5d4f3a2b1c0d\",\n                \"hostname\": \"web-01.client1042.in\"\n            },\n            \"reply_count\": 1,\n            \"last_reply_at\": \"2026-10-10T10:02:13Z\",\n            \"created_at\": \"2026-10-10T10:02:13Z\",\n            \"updated_at\": \"2026-10-10T10:02:13Z\"\n        }\n    ],\n    \"meta\": {\n        \"page\": 1,\n        \"per_page\": 25,\n        \"total\": 1,\n        \"pages\": 1\n    }\n}"}]},{"name":"Open a ticket","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{base_url}}/tickets","host":["{{base_url}}"],"path":["tickets"],"query":[],"variable":[]},"description":"Staff are notified by email.\n\nAccess: full-access key","body":{"mode":"raw","raw":"{\n    \"subject\": \"Reverse DNS for 103.20.10.11\",\n    \"department\": \"support\",\n    \"priority\": \"medium\",\n    \"vm_id\": \"6f1c2a9e-3b7d-4c8a-9e21-5d4f3a2b1c0d\",\n    \"message\": \"Please set the PTR record of 103.20.10.11 to web-01.client1042.in.\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Open a ticket (example)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{base_url}}/tickets","host":["{{base_url}}"],"path":["tickets"],"query":[],"variable":[]},"body":{"mode":"raw","raw":"{\n    \"subject\": \"Reverse DNS for 103.20.10.11\",\n    \"department\": \"support\",\n    \"priority\": \"medium\",\n    \"vm_id\": \"6f1c2a9e-3b7d-4c8a-9e21-5d4f3a2b1c0d\",\n    \"message\": \"Please set the PTR record of 103.20.10.11 to web-01.client1042.in.\"\n}","options":{"raw":{"language":"json"}}}},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"id\": 77,\n        \"ticket_number\": \"TKT-9C1E44AB\",\n        \"subject\": \"Reverse DNS for 103.20.10.11\",\n        \"department\": \"support\",\n        \"priority\": \"medium\",\n        \"status\": \"open\",\n        \"vm\": {\n            \"id\": \"6f1c2a9e-3b7d-4c8a-9e21-5d4f3a2b1c0d\",\n            \"hostname\": \"web-01.client1042.in\"\n        },\n        \"reply_count\": 1,\n        \"last_reply_at\": \"2026-10-10T10:02:13Z\",\n        \"created_at\": \"2026-10-10T10:02:13Z\",\n        \"updated_at\": \"2026-10-10T10:02:13Z\",\n        \"replies\": [\n            {\n                \"id\": 301,\n                \"from\": \"client\",\n                \"author\": \"Asha Rao\",\n                \"message\": \"Please set the PTR record of 103.20.10.11 to web-01.client1042.in.\",\n                \"created_at\": \"2026-10-10T10:02:13Z\"\n            }\n        ]\n    }\n}"}]},{"name":"Get a ticket","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/tickets/:id","host":["{{base_url}}"],"path":["tickets",":id"],"query":[],"variable":[{"key":"id","value":"","description":"Ticket id or ticket number (TKT-…)."}]},"description":"With the whole conversation, oldest message first.\n\nAccess: any key"},"response":[{"name":"Get a ticket (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/tickets/:id","host":["{{base_url}}"],"path":["tickets",":id"],"query":[],"variable":[{"key":"id","value":"","description":"Ticket id or ticket number (TKT-…)."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"id\": 77,\n        \"ticket_number\": \"TKT-9C1E44AB\",\n        \"subject\": \"Reverse DNS for 103.20.10.11\",\n        \"department\": \"support\",\n        \"priority\": \"medium\",\n        \"status\": \"answered\",\n        \"vm\": {\n            \"id\": \"6f1c2a9e-3b7d-4c8a-9e21-5d4f3a2b1c0d\",\n            \"hostname\": \"web-01.client1042.in\"\n        },\n        \"reply_count\": 2,\n        \"last_reply_at\": \"2026-10-10T10:02:13Z\",\n        \"created_at\": \"2026-10-10T10:02:13Z\",\n        \"updated_at\": \"2026-10-10T10:02:13Z\",\n        \"replies\": [\n            {\n                \"id\": 301,\n                \"from\": \"client\",\n                \"author\": \"Asha Rao\",\n                \"message\": \"Please set the PTR record of 103.20.10.11 to web-01.client1042.in.\",\n                \"created_at\": \"2026-10-10T10:02:13Z\"\n            },\n            {\n                \"id\": 305,\n                \"from\": \"staff\",\n                \"author\": \"Support Team\",\n                \"message\": \"Done — the PTR now points to web-01.client1042.in.\",\n                \"created_at\": \"2026-10-10T10:31:50Z\"\n            }\n        ]\n    }\n}"}]},{"name":"Reply to a ticket","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{base_url}}/tickets/:id/replies","host":["{{base_url}}"],"path":["tickets",":id","replies"],"query":[],"variable":[{"key":"id","value":"","description":"Ticket id or number."}]},"description":"Access: full-access key","body":{"mode":"raw","raw":"{\n    \"message\": \"Thanks! Please do the same for web-02.\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Reply to a ticket (example)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{base_url}}/tickets/:id/replies","host":["{{base_url}}"],"path":["tickets",":id","replies"],"query":[],"variable":[{"key":"id","value":"","description":"Ticket id or number."}]},"body":{"mode":"raw","raw":"{\n    \"message\": \"Thanks! Please do the same for web-02.\"\n}","options":{"raw":{"language":"json"}}}},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"id\": 77,\n        \"ticket_number\": \"TKT-9C1E44AB\",\n        \"subject\": \"Reverse DNS for 103.20.10.11\",\n        \"department\": \"support\",\n        \"priority\": \"medium\",\n        \"status\": \"customer_reply\",\n        \"vm\": {\n            \"id\": \"6f1c2a9e-3b7d-4c8a-9e21-5d4f3a2b1c0d\",\n            \"hostname\": \"web-01.client1042.in\"\n        },\n        \"reply_count\": 3,\n        \"last_reply_at\": \"2026-10-10T10:02:13Z\",\n        \"created_at\": \"2026-10-10T10:02:13Z\",\n        \"updated_at\": \"2026-10-10T10:02:13Z\",\n        \"replies\": [\n            {\n                \"id\": 301,\n                \"from\": \"client\",\n                \"author\": \"Asha Rao\",\n                \"message\": \"Please set the PTR record of 103.20.10.11 to web-01.client1042.in.\",\n                \"created_at\": \"2026-10-10T10:02:13Z\"\n            }\n        ]\n    }\n}"}]},{"name":"Close a ticket","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/tickets/:id/close","host":["{{base_url}}"],"path":["tickets",":id","close"],"query":[],"variable":[{"key":"id","value":"","description":"Ticket id or number."}]},"description":"Access: full-access key"},"response":[{"name":"Close a ticket (example)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/tickets/:id/close","host":["{{base_url}}"],"path":["tickets",":id","close"],"query":[],"variable":[{"key":"id","value":"","description":"Ticket id or number."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": {\n        \"id\": 77,\n        \"ticket_number\": \"TKT-9C1E44AB\",\n        \"subject\": \"Reverse DNS for 103.20.10.11\",\n        \"department\": \"support\",\n        \"priority\": \"medium\",\n        \"status\": \"closed\",\n        \"vm\": {\n            \"id\": \"6f1c2a9e-3b7d-4c8a-9e21-5d4f3a2b1c0d\",\n            \"hostname\": \"web-01.client1042.in\"\n        },\n        \"reply_count\": 1,\n        \"last_reply_at\": \"2026-10-10T10:02:13Z\",\n        \"created_at\": \"2026-10-10T10:02:13Z\",\n        \"updated_at\": \"2026-10-10T10:02:13Z\",\n        \"replies\": [\n            {\n                \"id\": 301,\n                \"from\": \"client\",\n                \"author\": \"Asha Rao\",\n                \"message\": \"Please set the PTR record of 103.20.10.11 to web-01.client1042.in.\",\n                \"created_at\": \"2026-10-10T10:02:13Z\"\n            }\n        ]\n    }\n}"}]}]},{"name":"Logs","description":"Your own logs, for audits and debugging integrations. API calls are kept 30 days; account activity and server actions 180 days. The account audit trail is GET /account/activity.","item":[{"name":"List API calls","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/api-logs","host":["{{base_url}}"],"path":["api-logs"],"query":[{"key":"key_id","value":"","description":"Only calls made with this key.","disabled":true},{"key":"method","value":"","description":"GET, POST, PUT, PATCH or DELETE.","disabled":true},{"key":"status","value":"","description":"An exact status such as 403, or a class: 2xx, 4xx, 5xx.","disabled":true},{"key":"errors_only","value":"","description":"Only responses 400 and above.","disabled":true},{"key":"path","value":"","description":"Text in the path, e.g. /orders.","disabled":true},{"key":"from","value":"","description":"From this day (UTC), YYYY-MM-DD.","disabled":true},{"key":"to","value":"","description":"Up to and including this day (UTC).","disabled":true},{"key":"page","value":"","description":"Page number, from 1. Pages past the end return an empty list.","disabled":true},{"key":"per_page","value":"","description":"Items per page, 1–100. Default 25.","disabled":true}],"variable":[]},"description":"Every request made with this account's keys, newest first — including refused ones (wrong IP, read-only key, rate limit) so you can see why an integration failed.\n\nAccess: any key"},"response":[{"name":"List API calls (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/api-logs","host":["{{base_url}}"],"path":["api-logs"],"query":[{"key":"key_id","value":"","description":"Only calls made with this key.","disabled":true},{"key":"method","value":"","description":"GET, POST, PUT, PATCH or DELETE.","disabled":true},{"key":"status","value":"","description":"An exact status such as 403, or a class: 2xx, 4xx, 5xx.","disabled":true},{"key":"errors_only","value":"","description":"Only responses 400 and above.","disabled":true},{"key":"path","value":"","description":"Text in the path, e.g. /orders.","disabled":true},{"key":"from","value":"","description":"From this day (UTC), YYYY-MM-DD.","disabled":true},{"key":"to","value":"","description":"Up to and including this day (UTC).","disabled":true},{"key":"page","value":"","description":"Page number, from 1. Pages past the end return an empty list.","disabled":true},{"key":"per_page","value":"","description":"Items per page, 1–100. Default 25.","disabled":true}],"variable":[]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": [\n        {\n            \"request_id\": \"req_51c0d2e3f4a5b6c7\",\n            \"method\": \"POST\",\n            \"path\": \"/api/v1/orders\",\n            \"status\": 201,\n            \"error_code\": null,\n            \"key\": {\n                \"id\": 7,\n                \"name\": \"Billing system\",\n                \"prefix\": \"mlk_3f9a2c1d\"\n            },\n            \"ip_address\": \"203.0.113.10\",\n            \"duration_ms\": 184,\n            \"created_at\": \"2026-10-10T09:12:41Z\"\n        },\n        {\n            \"request_id\": \"req_9f2c4b1a7d3e5f60\",\n            \"method\": \"GET\",\n            \"path\": \"/api/v1/vms\",\n            \"status\": 403,\n            \"error_code\": \"ip_not_whitelisted\",\n            \"key\": {\n                \"id\": 7,\n                \"name\": \"Billing system\",\n                \"prefix\": \"mlk_3f9a2c1d\"\n            },\n            \"ip_address\": \"192.0.2.77\",\n            \"duration_ms\": 6,\n            \"created_at\": \"2026-10-10T08:58:03Z\"\n        }\n    ],\n    \"meta\": {\n        \"page\": 1,\n        \"per_page\": 25,\n        \"total\": 2,\n        \"pages\": 1\n    }\n}"}]},{"name":"List server actions","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/vm-actions","host":["{{base_url}}"],"path":["vm-actions"],"query":[{"key":"vm_id","value":"","description":"Only this server.","disabled":true},{"key":"action","value":"","description":"e.g. start, stop, shutdown, reboot, reset, create, rebuild, password_reset, console, suspend, terminate.","disabled":true},{"key":"status","value":"","description":"pending, success or failed.","disabled":true},{"key":"from","value":"","description":"From this day (UTC), YYYY-MM-DD.","disabled":true},{"key":"to","value":"","description":"Up to and including this day (UTC).","disabled":true},{"key":"page","value":"","description":"Page number, from 1. Pages past the end return an empty list.","disabled":true},{"key":"per_page","value":"","description":"Items per page, 1–100. Default 25.","disabled":true}],"variable":[]},"description":"Power actions, builds, rebuilds, password resets, console sessions, suspensions and terminations on all your servers, newest first. For one server you can also use GET /vms/{id}/actions.\n\nAccess: any key"},"response":[{"name":"List server actions (example)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/vm-actions","host":["{{base_url}}"],"path":["vm-actions"],"query":[{"key":"vm_id","value":"","description":"Only this server.","disabled":true},{"key":"action","value":"","description":"e.g. start, stop, shutdown, reboot, reset, create, rebuild, password_reset, console, suspend, terminate.","disabled":true},{"key":"status","value":"","description":"pending, success or failed.","disabled":true},{"key":"from","value":"","description":"From this day (UTC), YYYY-MM-DD.","disabled":true},{"key":"to","value":"","description":"Up to and including this day (UTC).","disabled":true},{"key":"page","value":"","description":"Page number, from 1. Pages past the end return an empty list.","disabled":true},{"key":"per_page","value":"","description":"Items per page, 1–100. Default 25.","disabled":true}],"variable":[]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"body":"{\n    \"data\": [\n        {\n            \"id\": 9921,\n            \"action\": \"reboot\",\n            \"status\": \"success\",\n            \"message\": \"Requested via API\",\n            \"by\": \"Asha Rao\",\n            \"created_at\": \"2026-10-10T11:40:00Z\",\n            \"vm\": {\n                \"id\": \"6f1c2a9e-3b7d-4c8a-9e21-5d4f3a2b1c0d\",\n                \"hostname\": \"web-01.client1042.in\"\n            }\n        }\n    ],\n    \"meta\": {\n        \"page\": 1,\n        \"per_page\": 25,\n        \"total\": 1,\n        \"pages\": 1\n    }\n}"}]}]}]}