Documentation Index
Fetch the complete documentation index at: https://docs.startmyvpn.com/llms.txt
Use this file to discover all available pages before exploring further.
GET /v1/plans
List all active plans.
Response (200):
{
"success": true,
"data": [
{
"id": 1,
"name": "Basic",
"description": "Great for casual users",
"bandwidth_limit_gb": 50,
"speed_limit_mbps": 10,
"trial_days": 7
},
{
"id": 2,
"name": "Premium",
"description": "Unlimited speed, 100 GB",
"bandwidth_limit_gb": 100,
"speed_limit_mbps": null,
"trial_days": 0
}
]
}
GET /v1/plans/
Get details of a specific plan.
Path parameter: plan — plan ID
GET /v1/plans//cycles
Get billing cycles available for a plan.
Response (200):
{
"success": true,
"data": [
{
"id": 1,
"name": "Monthly",
"duration_days": 30,
"price": "9.99",
"currency": "USD"
},
{
"id": 2,
"name": "Yearly",
"duration_days": 365,
"price": "79.99",
"currency": "USD"
}
]
}
GET /v1/plan/cycles/
Get a specific billing cycle by ID.
POST /v1/promos/validate
Validate a promo code against a plan and cycle.
Request:
{
"code": "WELCOME20",
"plan_id": 1,
"cycle_id": 2
}
Response (200):
{
"success": true,
"data": {
"code": "WELCOME20",
"type": "percentage",
"value": 20,
"original_price": "79.99",
"discounted_price": "63.99",
"currency": "USD"
}
}
Invalid code (422):
{
"success": false,
"message": "Invalid or expired promo code."
}
Rate limit: 10 requests / minute