> ## 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.

# Service Endpoints

> View and manage the authenticated user's VPN subscriptions.

All endpoints require authentication.

***

## GET /v1/services

List all services (subscriptions) for the authenticated user.

**Response (200):**

```json theme={null}
{
  "success": true,
  "data": [
    {
      "id": 1,
      "plan": {
        "id": 2,
        "name": "Premium"
      },
      "cycle": {
        "name": "Monthly",
        "duration_days": 30,
        "price": "9.99"
      },
      "status": "active",
      "starts_at": "2026-01-01T00:00:00Z",
      "expires_at": "2026-02-01T00:00:00Z",
      "auto_renew": true
    }
  ]
}
```

***

## GET /v1/services/current

Get the user's current active service.

**Response (200):**

```json theme={null}
{
  "success": true,
  "data": {
    "id": 1,
    "plan": {
      "id": 2,
      "name": "Premium",
      "bandwidth_limit_gb": 100,
      "speed_limit_mbps": null
    },
    "status": "active",
    "expires_at": "2026-02-01T00:00:00Z",
    "auto_renew": true
  }
}
```

Returns `404` if no active service exists.

***

## GET /v1/services/{service}

Get details of a specific service by ID.

***

## PUT /v1/services/{service}/auto-renew

Toggle auto-renewal for a service.

**Request:**

```json theme={null}
{
  "auto_renew": false
}
```

**Response (200):**

```json theme={null}
{
  "success": true,
  "message": "Auto-renewal disabled.",
  "data": {
    "auto_renew": false
  }
}
```

***

## GET /v1/services/{service}/bandwidth

Get bandwidth usage for a specific service.

**Response (200):**

```json theme={null}
{
  "success": true,
  "data": {
    "used_bytes": 5368709120,
    "limit_bytes": 107374182400,
    "used_formatted": "5.00 GB",
    "limit_formatted": "100.00 GB",
    "percentage": 5.0,
    "unlimited": false,
    "reset_date": "2026-02-01"
  }
}
```
