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

# Support Ticket Endpoints

> Create, view, and reply to support tickets.

All endpoints require authentication.

***

## GET /v1/tickets

List all support tickets for the authenticated user.

**Response (200):**

```json theme={null}
{
  "success": true,
  "data": [
    {
      "id": 1,
      "subject": "Cannot connect to server",
      "status": "open",
      "created_at": "2026-01-05T14:00:00Z",
      "last_reply_at": "2026-01-05T15:30:00Z"
    }
  ]
}
```

***

## POST /v1/tickets

Create a new support ticket.

**Request:**

```json theme={null}
{
  "subject": "Cannot connect to New York server",
  "message": "I keep getting a timeout when connecting to NYC-1. I've tried reinstalling the config."
}
```

**Response (201):**

```json theme={null}
{
  "success": true,
  "data": {
    "id": 2,
    "subject": "Cannot connect to New York server",
    "status": "open",
    "created_at": "2026-01-10T09:00:00Z"
  }
}
```

Rate limit: **10 requests / minute**

***

## GET /v1/tickets/{ticket}

Get a ticket and its full reply thread.

**Path parameter:** `ticket` — ticket ID

**Response (200):**

```json theme={null}
{
  "success": true,
  "data": {
    "id": 2,
    "subject": "Cannot connect to New York server",
    "status": "open",
    "replies": [
      {
        "id": 1,
        "message": "I keep getting a timeout...",
        "is_admin": false,
        "created_at": "2026-01-10T09:00:00Z"
      },
      {
        "id": 2,
        "message": "Hi Jane, please try switching to TCP mode.",
        "is_admin": true,
        "created_at": "2026-01-10T10:15:00Z"
      }
    ]
  }
}
```

***

## POST /v1/tickets/{ticket}/reply

Add a reply to an existing ticket.

**Request:**

```json theme={null}
{
  "message": "Switching to TCP mode fixed it, thank you!"
}
```

**Response (201):**

```json theme={null}
{
  "success": true,
  "data": {
    "id": 3,
    "message": "Switching to TCP mode fixed it, thank you!",
    "is_admin": false,
    "created_at": "2026-01-10T11:00:00Z"
  }
}
```

Rate limit: **10 requests / minute**

***

## PUT /v1/tickets/{ticket}/close

Close a ticket.

**Response (200):**

```json theme={null}
{
  "success": true,
  "message": "Ticket closed."
}
```

***

## GET /v1/faq

List all public FAQ entries. No authentication required.

**Response (200):**

```json theme={null}
{
  "success": true,
  "data": [
    {
      "id": 1,
      "question": "How do I connect on iOS?",
      "answer": "Download the WireGuard app from the App Store..."
    }
  ]
}
```
