> ## Documentation Index
> Fetch the complete documentation index at: https://vpn-docs.wxapros.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Make your first IP lookup in under five minutes.

## 1. Get a key

Sign in at [wxaintel.wxapros.com](https://wxaintel.wxapros.com), open
**Dashboard → API Keys**, click **Generate Key**. Copy the key — you'll
see it only once.

## 2. Look up an IP

<CodeGroup>
  ```bash cURL theme={null}
  curl https://wxaintel.wxapros.com/api/v1/vpn/ip/1.1.1.1 \
    -H "X-API-Key: $WXA_API_KEY"
  ```

  ```python Python theme={null}
  import os, httpx

  resp = httpx.get(
      "https://wxaintel.wxapros.com/api/v1/vpn/ip/1.1.1.1",
      headers={"X-API-Key": os.environ["WXA_API_KEY"]},
  )
  print(resp.json())
  ```

  ```javascript Node.js theme={null}
  const res = await fetch(
    "https://wxaintel.wxapros.com/api/v1/vpn/ip/1.1.1.1",
    { headers: { "X-API-Key": process.env.WXA_API_KEY } },
  );
  console.log(await res.json());
  ```

  ```go Go theme={null}
  req, _ := http.NewRequest("GET",
      "https://wxaintel.wxapros.com/api/v1/vpn/ip/1.1.1.1", nil)
  req.Header.Set("X-API-Key", os.Getenv("WXA_API_KEY"))
  resp, _ := http.DefaultClient.Do(req)
  ```
</CodeGroup>

Response:

```json theme={null}
{
  "ip": "1.1.1.1",
  "classification": "cdn",
  "provider": "Cloudflare",
  "confidence": 0.99,
  "source": "asn",
  "asn": 13335,
  "asn_org": "CLOUDFLARENET",
  "observation_count": 1,
  "asn_abuse": null,
  "sanctions_risk": null
}
```

The pinned fields (`ip`, `classification`, `provider`, `confidence`, `source`,
`asn`, `asn_org`, `observation_count`, `asn_abuse`, `sanctions_risk`) are
contractually stable — see [CONTRACT.md](https://github.com/whois-api-llc/wxa_vpn/blob/main/CONTRACT.md).
Other fields are incidental and may be added or removed.

## 3. Batch lookups

For lists of IPs, use the batch endpoint (Starter tier and above):

```bash theme={null}
curl https://wxaintel.wxapros.com/api/v1/vpn/ip/batch \
  -H "X-API-Key: $WXA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ips": ["1.1.1.1", "8.8.8.8", "192.0.2.1"]}'
```

Up to 100 IPs per call. See the [batch endpoint reference](/api-reference/lookup-batch).

## 4. Common workflows

<CardGroup cols={2}>
  <Card title="Block residential proxy traffic" icon="shield" href="/guides/lookups">
    Filter signups, logins, or transactions where `is_residential_proxy=true`.
  </Card>

  <Card title="Daily MMDB mirror" icon="database" href="/guides/bulk-export">
    Pull the full dataset nightly for sub-millisecond local lookups.
  </Card>

  <Card title="ASN abuse triage" icon="chart-bar" href="/guides/asn-abuse">
    Identify the highest-abuse-density ASNs in your traffic.
  </Card>

  <Card title="Sanctions screening" icon="globe" href="/guides/lookups">
    Flag IPs in sanctioned-jurisdiction proxy pools.
  </Card>
</CardGroup>

## What's next

* [Authentication](/authentication) — key formats, rate limits
* [Tiers and pricing](/tiers) — what each tier unlocks
* [Error handling](/guides/error-handling) — retry strategy, status codes
