# Supported Providers

## Supported VPN Providers

These endpoints expose known VPN exit IPs for detection, filtering, or OSINT. Data is pulled from provider APIs and updated regularly.

**Base path:** `https://api.elliott.diy/v1/vpn/`

You can request either plaintext (default) or JSON output using the `?format=json` query parameter.

***

### Supported Endpoints

| Provider   | Endpoint          |
| ---------- | ----------------- |
| PIA        | `/vpn/pia`        |
| Mullvad    | `/vpn/mullvad`    |
| Windscribe | `/vpn/windscribe` |
| IVPN       | `/vpn/ivpn`       |
| NordVPN    | `/vpn/nordvpn`    |

Additional endpoints:

* `/vpn/all` – returns all combined IPs
* `/vpn/stats` – returns provider statistics

***

### Response Formats

#### Plain Text (default)

```http
GET /vpn/pia
```

```
138.199.32.166
62.133.47.18
84.239.5.9
...
```

#### JSON format

```http
GET /vpn/pia?format=json
```

```json
{
  "ips": [
    "138.199.32.167",
    "138.199.32.162",
    "173.239.226.149",
    ...
  ]
}
```

***

### Statistics Endpoint

```http
GET /vpn/stats
```

**Sample Response:**

```json
{
  "total_ips": 52341,
  "providers": {
    "mullvad": 6381,
    "pia": 12984,
    "windscribe": 8042,
    "ivpn": 2670,
    "nordvpn": 22364
  },
  "last_updated": "2025-06-08T04:10:00Z"
}
```

***

### Update Frequency

Feeds update approximately every 6 hours.

***

### Notes

* Append `?format=json` for JSON responses
* IP lists default to plain text
* `/vpn/stats` always returns JSON


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.elliott.diy/vpn-recon/supported-providers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
