Reseller API

Reseller API v1.0

Programmatically create, manage, and monitor VPS instances for your customers. The Reseller API allows you to automate your entire hosting business — from instance creation to billing and server management.

Updated recently 25 min read Production Ready

Introduction

VPS Creation
Create VPS instances with custom specs (CPU, RAM, Disk) across 4 performance tiers.
Wallet-Based Billing
Automated billing deducted from your Purple Wallet. Renew services with a single API call.
Full VM Control
Start, stop, reboot, suspend, resume — full lifecycle management for customer VPS.
Real-Time Stats
Get CPU, memory, disk, and network statistics for any VPS instance.
Advanced Features
Snapshots, ISO mounting, IP management, VNC access, and extra disks.
Service Aliases
Add custom aliases to services for easy customer identification.

💰 Reseller API Overview — The Reseller API enables you to automate your hosting business. Each API call requires a valid reseller_token. All billing is handled through your Purple Wallet balance. When you create or renew a service, the cost is automatically deducted from your wallet.

Base URL & Authentication

Base URL
https://shulker.in/api/reseller-v1/
Authentication (Query Parameter)
?reseller_token=YOUR_RESELLER_TOKEN_HERE

🔐 Authentication Required — All API requests must include a valid reseller_token. You can find your token in the Reseller Dashboard. Tokens are tied to verified reseller accounts only. If your account is not verified, the API will return a 403 error.

VPS Pricing Tiers

The Reseller API supports four performance tiers, each with different pricing for RAM, CPU, and Disk.

TierRAM Price (per GB)CPU Price (per Core)Disk Price (per GB)Node Type
eco₹26₹16₹0.26VPS-Eco
std₹37₹26₹0.37VPS-Std
perf₹53₹42₹0.53VPS-Perf
pwr₹74₹58₹0.79VPS-Pwr

💰 Pricing Calculation — Monthly price = (RAM_GB × RAM_PRICE) + (CPU_CORES × CPU_PRICE) + (DISK_GB × DISK_PRICE). Example: eco tier with 4GB RAM, 2 CPU cores, 50GB disk = (4×26) + (2×16) + (50×0.26) = ₹104 + ₹32 + ₹13 = ₹149/month.

Create Instance

POST

Create a new VPS instance. Funds are automatically deducted from your Purple Wallet.

Endpoint
https://shulker.in/api/reseller-v1/?action=create_instance&reseller_token=YOUR_TOKEN
ParameterTypeRequiredDescription
typestringYesMust be vps (currently only VPS supported)
tierstringYesPerformance tier: eco, std, perf, or pwr
ram_gbintegerYesRAM in GB (1-96)
cpu_coresintegerYesNumber of CPU cores (1-32)
disk_gbintegerNoDisk space in GB (default: 20, max: 1000)
osstringNoOperating system (default: ubuntu-2404)
ssh_keystringNoPublic SSH key for root access
cURL Example
curl -X POST https://shulker.in/api/reseller-v1/ \
  -d 'action=create_instance&reseller_token=YOUR_TOKEN' \
  -H "Content-Type: application/json" \
  -d '{
    "type": "vps",
    "tier": "std",
    "ram_gb": 4,
    "cpu_cores": 2,
    "disk_gb": 50,
    "os": "ubuntu-2404",
    "ssh_key": "ssh-rsa AAAAB3NzaC1yc2EAAA..."
  }'
Success Response
{
    "success": true,
    "message": "VPS instance created successfully",
    "data": {
        "service_id": 12345,
        "service_name": "aB3dE5fG7hI9jK1lM3nO5pQ",
        "tier": "std",
        "cpu_cores": 2,
        "ram_gb": 4,
        "disk_gb": 50,
        "total_cost": 149.00,
        "wallet_balance_before": 1000.00,
        "wallet_balance_after": 851.00,
        "valid_until": "2025-02-07 12:00:00",
        "vnc_info": { ... }
    }
}

List Services

GET

Get a list of all services owned by this reseller account.

Endpoint
https://shulker.in/api/reseller-v1/?action=list_services&reseller_token=YOUR_TOKEN&status=all
ParameterTypeDescription
statusstringFilter services: all, active, or expired
cURL Example
curl "https://shulker.in/api/reseller-v1/?action=list_services&reseller_token=YOUR_TOKEN&status=active"
Success Response
{
    "success": true,
    "message": "Services retrieved",
    "data": {
        "services": [
            {
                "id": 12345,
                "service_name": "aB3dE5fG7hI9jK1lM3nO5pQ",
                "service_alias": "customer-site-01",
                "service_type": "vps",
                "service_tier": "std",
                "cpu_cores": 2,
                "ram_gb": 4,
                "disk_gb": 50,
                "service_valid_until": "2025-02-07 12:00:00",
                "is_expired": false,
                "days_remaining": 28
            }
        ],
        "count": 1
    }
}

Renew Service

POST

Renew an existing service for another month. Cost is automatically deducted from your Purple Wallet.

Endpoint
https://shulker.in/api/reseller-v1/?action=renew_service&reseller_token=YOUR_TOKEN&service_id=SERVICE_ID
cURL Example
curl -X POST "https://shulker.in/api/reseller-v1/?action=renew_service&reseller_token=YOUR_TOKEN&service_id=12345"
Success Response
{
    "success": true,
    "message": "Service renewed successfully",
    "data": {
        "service_id": 12345,
        "previous_expiry": "2025-02-07 12:00:00",
        "new_expiry": "2025-03-07 12:00:00",
        "renewal_cost": 149.00,
        "wallet_balance_before": 851.00,
        "wallet_balance_after": 702.00,
        "was_expired": false
    }
}

Update Service Alias

POST

Add or update a custom alias for a service. Useful for tracking customer names or project identifiers.

Endpoint
https://shulker.in/api/reseller-v1/?action=update_service_alias&reseller_token=YOUR_TOKEN&service_id=SERVICE_ID
cURL Example
curl -X POST https://shulker.in/api/reseller-v1/ \
  -H "Content-Type: application/json" \
  -d '{
    "action": "update_service_alias",
    "reseller_token": "YOUR_TOKEN",
    "service_id": 12345,
    "alias": "Customer-Website-Production"
  }'
Success Response
{
    "success": true,
    "message": "Alias updated successfully",
    "data": {
        "service_id": 12345,
        "service_name": "aB3dE5fG7hI9jK1lM3nO5pQ",
        "alias": "Customer-Website-Production"
    }
}

VM Control Actions

Control your VPS instances with the following actions. All require service_id as a parameter.

start
Start a stopped VPS instance
stop
Gracefully shut down a running VPS
reboot
Restart a VPS instance
stats
Get real-time CPU, memory, disk, network stats
serial_log
View console/serial log output
vnc_info
Get VNC connection details
Example: Start VPS
curl "https://shulker.in/api/reseller-v1/?action=start&reseller_token=YOUR_TOKEN&service_id=12345"
Example: Get Stats
curl "https://shulker.in/api/reseller-v1/?action=stats&reseller_token=YOUR_TOKEN&service_id=12345"

⚠️ Expired Services — If a service is expired, VM control actions will return a 403 error. The service must be renewed first. When a service expires, the VM is automatically stopped.

Advanced Actions

The Reseller API also supports advanced VPS management features.

snapshot_create
Create a snapshot/backup of the VPS
snapshot_list
List all snapshots for a VPS
snapshot_delete
Delete a snapshot
change_iso
Mount/unmount ISO image
list_isos
List available ISO images
change_root_password
Change VPS root password
erase_disk
Wipe/erase disk contents
Example: Create Snapshot
curl -X POST "https://shulker.in/api/reseller-v1/?action=snapshot_create&reseller_token=YOUR_TOKEN&service_id=12345" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "pre-update-backup",
    "description": "Backup before major update"
  }'

Error Codes

HTTP StatusErrorDescription
400Missing parameterRequired parameter (e.g., action, service_id) is missing
401Invalid tokenThe reseller_token is invalid or expired
403Not verifiedReseller account is not verified
403Service expiredThe VPS has expired and needs renewal before access
404Service not foundNo service exists with the provided service_id
400Insufficient balanceWallet balance is insufficient for the operation
502Node communication failedBackend node is unreachable or returned an error
503No available nodesNo nodes available for the requested tier
Error Response Example
{
    "success": false,
    "message": "Insufficient balance. Required: ₹149, Available: ₹50"
}

Complete Actions Reference

The Reseller API supports all actions listed below. Use action parameter to specify which operation to perform.

info
Get VM information
stats
Resource statistics
serial_log
Console logs
server_status
Current server status
vnc_info
VNC connection info
start
Start VM
stop
Stop VM
force_stop
Force stop VM
reboot
Reboot VM
suspend
Suspend VM
resume
Resume VM
snapshot_list
List snapshots
snapshot_create
Create snapshot
snapshot_delete
Delete snapshot
list_ips
List IP addresses
change_iso
Change ISO
erase_disk
Erase disk

Best Practices

💰 Monitor Wallet Balance — Always check your wallet balance before creating or renewing services. Implement webhook notifications for low balance alerts.

📝 Track Service Aliases — Use the update_service_alias endpoint to add customer identifiers to services. This makes it easy to map API responses to your internal customer IDs.

⏰ Handle Expiration Gracefully — Implement automated renewal checks and notify customers before services expire. The list_services endpoint returns days_remaining to help with this.

🔐 Secure Your Token — Store your reseller token in environment variables or a secure secret manager. Never commit tokens to version control. Rotate tokens periodically.

Quick Reference

Common Operations
# Create VPS (std tier, 4GB RAM, 2 CPU, 50GB disk)
curl -X POST https://shulker.in/api/reseller-v1/ \
  -d 'action=create_instance&reseller_token=TOKEN' \
  -H "Content-Type: application/json" \
  -d '{"type":"vps","tier":"std","ram_gb":4,"cpu_cores":2,"disk_gb":50}'

# List all active services
curl "https://shulker.in/api/reseller-v1/?action=list_services&reseller_token=TOKEN&status=active"

# Renew service
curl -X POST "https://shulker.in/api/reseller-v1/?action=renew_service&reseller_token=TOKEN&service_id=SERVICE_ID"

# Start VPS
curl "https://shulker.in/api/reseller-v1/?action=start&reseller_token=TOKEN&service_id=SERVICE_ID"

# Get VPS stats
curl "https://shulker.in/api/reseller-v1/?action=stats&reseller_token=TOKEN&service_id=SERVICE_ID"

# Update service alias
curl -X POST https://shulker.in/api/reseller-v1/ \
  -H "Content-Type: application/json" \
  -d '{"action":"update_service_alias","reseller_token":"TOKEN","service_id":12345,"alias":"customer-site"}'

# Stop VPS
curl "https://shulker.in/api/reseller-v1/?action=stop&reseller_token=TOKEN&service_id=SERVICE_ID"