Servers
VPS products use the same custom-checkout lifecycle as domains, but with server-specific configuration like image, region, backups, and post-purchase actions.
Agent_Flow
Example MCP-style transcript. Each request consumes the identifiers returned by the previous response.
text
1. catalog_search { category: "compute", q: "vps" }2. catalog_checkout_requirements { catalogItemId }3. quote_create { catalogItemId, quantity: 1, configuration: { hostname: "deploy-node-01", region: "eu-west", image: "ubuntu-24.04", billingTermMonths: 1, backupsEnabled: true } }4. purchase_create { quoteId, idempotencyKey }5. service_get { serviceId }6. server_restart { serviceId }7. server_reinstall { serviceId, image }Step_1_Request_Search
json
{ "tool": "catalog_search", "input": { "category": "compute", "q": "vps", "limit": 3 }}Step_1_Response
json
{ "items": [ { "id": "cat_vps_micro", "sku": "vps-micro-monthly", "name": "VPS Micro", "category": "compute", "checkoutKind": "custom" }, { "id": "cat_vps_small", "sku": "vps-small-monthly", "name": "VPS Small", "category": "compute", "checkoutKind": "custom" }, { "id": "cat_vps_gpu_standard", "sku": "vps-gpu-standard", "name": "GPU Standard", "category": "compute", "checkoutKind": "custom" } ]}Step_2_Request_Checkout_Requirements
json
{ "tool": "catalog_checkout_requirements", "input": { "catalogItemId": "cat_vps_micro" }}Step_2_Response
json
{ "catalogItemId": "cat_vps_micro", "checkoutKind": "custom", "serviceType": "server", "requiredFields": [ "hostname", "region", "image", "billingTermMonths" ], "supportedImages": [ "ubuntu-24.04", "debian-12", "nvidia-ai-ubuntu" ]}Step_3_Request_Quote
json
{ "tool": "quote_create", "input": { "catalogItemId": "cat_vps_micro", "quantity": 1, "configuration": { "hostname": "deploy-node-01", "region": "eu-west", "image": "ubuntu-24.04", "billingTermMonths": 1, "backupsEnabled": true } }}Step_3_Response
json
{ "quote": { "id": "quote_srv_001", "catalogItemId": "cat_vps_micro", "totalPriceMinor": 2400, "currency": "usd", "configuration": { "hostname": "deploy-node-01", "region": "eu-west", "image": "ubuntu-24.04" }, "managementCapabilities": [ "server:restart", "server:reinstall" ] }}Step_4_Request_Purchase
json
{ "tool": "purchase_create", "input": { "quoteId": "quote_srv_001", "idempotencyKey": "server-deploy-node-01-001" }}Step_4_Response
json
{ "purchase": { "id": "purchase_srv_001", "status": "completed", "totalPriceMinor": 2400 }, "service": { "id": "svc_server_001", "serviceType": "server", "displayName": "deploy-node-01" }}Step_5_Request_Service_Get
json
{ "tool": "service_get", "input": { "serviceId": "svc_server_001" }}Step_5_Response
json
{ "service": { "id": "svc_server_001", "status": "active", "displayName": "deploy-node-01", "server": { "publicIpv4": "198.51.100.42", "sshUsername": "root", "sshPort": 22, "image": "ubuntu-24.04", "powerState": "running" } }}Step_6_Request_Restart
json
{ "tool": "server_restart", "input": { "serviceId": "svc_server_001" }}Step_6_Response
json
{ "serviceId": "svc_server_001", "status": "accepted", "server": { "powerState": "restarting" }}Step_7_Request_Reinstall
json
{ "tool": "server_reinstall", "input": { "serviceId": "svc_server_001", "image": "nvidia-ai-ubuntu" }}Step_7_Response
json
{ "serviceId": "svc_server_001", "status": "accepted", "server": { "image": "nvidia-ai-ubuntu", "provisioningStatus": "reinstalling" }}REST_Checkout
Quotes validate the requested region and system image, then return the final mock-provider price that purchase requests must use.
typescript
const quote = await fetch('https://ag3n7.store/v1/agent/quotes', { method: 'POST', headers: { Authorization: `Bearer ${process.env.AGENT_STORE_AGENT_API_KEY}`, 'content-type': 'application/json', }, body: JSON.stringify({ catalogItemId: '<server-catalog-item-id>', quantity: 1, configuration: { hostname: 'deploy-node-01', region: 'eu-west', image: 'ubuntu-24.04', billingTermMonths: 1, backupsEnabled: true, }, }),}).then((res) => res.json()); const purchase = await fetch('https://ag3n7.store/v1/agent/purchases', { method: 'POST', headers: { Authorization: `Bearer ${process.env.AGENT_STORE_AGENT_API_KEY}`, 'content-type': 'application/json', }, body: JSON.stringify({ quoteId: quote.quote.id, idempotencyKey: 'server-order-001', }),}).then((res) => res.json()); const service = await fetch(`https://ag3n7.store/v1/agent/services/${purchase.service.id}`, { headers: { Authorization: `Bearer ${process.env.AGENT_STORE_AGENT_API_KEY}` },}).then((res) => res.json());Server_Management
After provisioning, service reads expose IP and SSH details. Management actions currently support restart and reinstall, and the dashboard surfaces the same state for human operators.
typescript
await fetch('https://ag3n7.store/v1/agent/services/<service-id>/server/restart', { method: 'POST', headers: { Authorization: `Bearer ${process.env.AGENT_STORE_AGENT_API_KEY}`, },}); await fetch('https://ag3n7.store/v1/agent/services/<service-id>/server/reinstall', { method: 'POST', headers: { Authorization: `Bearer ${process.env.AGENT_STORE_AGENT_API_KEY}`, 'content-type': 'application/json', }, body: JSON.stringify({ image: 'nvidia-ai-ubuntu', }),});Website_Checkout
Logged-in dashboard users now quote and purchase servers through the same backend catalog and quote endpoints used by agents, via a system-managed account checkout actor.