Sign in Get Started
REST API v1

Build on top of
TurkVPS

Provision, manage, and monitor your Turkey VPS servers programmatically. Full root control via HTTP — no portal required.

JSON responses Bearer token auth 120 req/min HTTPS only
Base URL https://api.turkvps.cloud/v1
Quick Start

Up and running in 3 steps

From zero to your first API call in under 2 minutes.

1

Create an account

Sign up at my.turkvps.cloud and top up your wallet. All API actions bill from your wallet balance.

2

Generate an API token

Go to Developer → API Keys in your dashboard. Give the token a name and click Create. Copy the token immediately — it won't be shown again.

3

Make your first request

Pass the token as a Bearer header on every request. Try fetching your account info:

first request
curl https://api.turkvps.cloud/v1/account \ -H "Authorization: Bearer YOUR_TOKEN" # 200 OK { "data": { "id": 1, "firstname": "John", "email": "john@example.com", "wallet_balance": "25.00" } }
Authentication

Bearer token

Every request must include your API token in the Authorization header. Tokens are scoped to your account and can be revoked at any time from the dashboard.

PropertyValue
Max tokens per account10
Rate limit120 requests / minute
Token formatOpaque bearer string
RevokeDashboard → Developer → API Keys
authentication
# Every request needs this header: Authorization: Bearer YOUR_TOKEN # ── 401 — missing or invalid token { "message": "Unauthenticated." } # ── 429 — rate limit exceeded { "message": "Too many requests.", "error": "rate_limit_exceeded" } # Store token as env var (recommended) export TURKVPS_TOKEN="your_token_here" curl https://api.turkvps.cloud/v1/account \ -H "Authorization: Bearer $TURKVPS_TOKEN"
Endpoints

Full API reference

Click any endpoint to see a working curl example.

Account
GET
/account Get authenticated user info and wallet balance
curl https://api.turkvps.cloud/v1/account \ -H "Authorization: Bearer $TOKEN" # Response { "data": { "id": 1, "firstname": "John", "lastname": "Doe", "email": "john@example.com", "wallet_balance": "25.00" } }
Plans & OS
GET
/plans List all available VPS plans with pricing
curl https://api.turkvps.cloud/v1/plans \ -H "Authorization: Bearer $TOKEN" # Response { "data": [ { "id": 1, "name": "Cloud — 1", "vcpu": 1, "ram_mb": 1024, "disk_gb": 15, "price_monthly": "3.44" }, ... ] }
GET
/os List all available OS templates
curl https://api.turkvps.cloud/v1/os \ -H "Authorization: Bearer $TOKEN" # Response { "data": [ { "id": 1, "name": "Ubuntu 24.04", "family": "ubuntu" }, { "id": 2, "name": "Debian 12", "family": "debian" } ] }
Servers
GET
/servers List all your servers
curl https://api.turkvps.cloud/v1/servers \ -H "Authorization: Bearer $TOKEN"
POST
/servers Order a new server (billed from wallet)
curl -X POST https://api.turkvps.cloud/v1/servers \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "plan_id": 1, "os_id": 1, "label": "my-server", "root_password": "Str0ngP@ss1" }' # Response — 201 Created { "data": { "id": 42, "label": "my-server", "status": "provisioning", "ip": "185.x.x.x", "plan": "Cloud — 1" } }
GET
/servers/{id} Get server details, IP, status, specs
curl https://api.turkvps.cloud/v1/servers/42 \ -H "Authorization: Bearer $TOKEN"
PATCH
/servers/{id} Rename a server
curl -X PATCH https://api.turkvps.cloud/v1/servers/42 \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "label": "prod-web-01" }'
DELETE
/servers/{id} Cancel server — prorated refund to wallet
curl -X DELETE https://api.turkvps.cloud/v1/servers/42 \ -H "Authorization: Bearer $TOKEN"
POST
/servers/{id}/start · /stop · /restart Power control — start, stop, or restart
# Start curl -X POST https://api.turkvps.cloud/v1/servers/42/start \ -H "Authorization: Bearer $TOKEN" # Stop curl -X POST https://api.turkvps.cloud/v1/servers/42/stop \ -H "Authorization: Bearer $TOKEN" # Restart curl -X POST https://api.turkvps.cloud/v1/servers/42/restart \ -H "Authorization: Bearer $TOKEN"
POST
/servers/{id}/rebuild Reinstall OS — all data will be erased
curl -X POST https://api.turkvps.cloud/v1/servers/42/rebuild \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "os_id": 2, "password": "NewP@ss123" }'
POST
/servers/{id}/reset-password Reset root password without reinstalling
curl -X POST https://api.turkvps.cloud/v1/servers/42/reset-password \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "password": "NewP@ss123" }'
POST
/servers/{id}/request-ip-change Request an IP replacement — verified against check-host.net
curl -X POST https://api.turkvps.cloud/v1/servers/42/request-ip-change \ -H "Authorization: Bearer $TOKEN" # Response — 201 Created { "data": { "message": "check-host.net confirmed the connectivity issue — a free IP replacement request has been sent to our network team.", "change_request_id": 17, "fee_charged": 0 } } # We independently verify the problem via check-host.net first — if it can't confirm # an issue with your IP, nothing is changed and you'll get a 422 explaining why instead. # The first replacement per server is free; every one after that is $1 (deducted from # your wallet balance), unless a different rate has been arranged for your account. # Rate limit: 20 requests/hour per account.
Wallet & Billing
GET
/wallet Get current wallet balance
curl https://api.turkvps.cloud/v1/wallet \ -H "Authorization: Bearer $TOKEN" # Response { "data": { "balance": "25.00", "currency": "USD" } }
GET
/wallet/transactions List wallet transaction history
curl https://api.turkvps.cloud/v1/wallet/transactions \ -H "Authorization: Bearer $TOKEN"
GET
/invoices · /invoices/{id} List invoices or get a specific invoice
# List invoices curl https://api.turkvps.cloud/v1/invoices \ -H "Authorization: Bearer $TOKEN" # Single invoice curl https://api.turkvps.cloud/v1/invoices/7 \ -H "Authorization: Bearer $TOKEN"
Support Tickets
POST
/tickets Open a new support ticket
curl -X POST https://api.turkvps.cloud/v1/tickets \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "department_id": 1, "title": "Server unreachable", "body": "My server 42 has been unreachable for 10 minutes." }'
GET
/tickets · /tickets/{id} List tickets or read a full ticket thread
curl https://api.turkvps.cloud/v1/tickets \ -H "Authorization: Bearer $TOKEN" curl https://api.turkvps.cloud/v1/tickets/3 \ -H "Authorization: Bearer $TOKEN"
POST
/tickets/{id}/reply · /tickets/{id}/close Reply to or close a ticket
# Reply curl -X POST https://api.turkvps.cloud/v1/tickets/3/reply \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "body": "Thanks, it is working now." }' # Close curl -X POST https://api.turkvps.cloud/v1/tickets/3/close \ -H "Authorization: Bearer $TOKEN"

Ready to start building?

Get your API token in seconds from the developer dashboard.

Create Free Account Generate API Token →