Skip to content

Updating your whitelist IP

Your endpoint only accepts connections from a single whitelist IP — see Access & data handling for what it is and why it matters. You can change it at any time from the client area, or programmatically with the API below. The API is ideal when your public IP changes often (home connection, VPN, a new server) and you want to update it from a script.

The endpoint

POST https://dashboard.clearstreamer.com/zendrive-api/whitelist-ip/

You authenticate with the same S3 access key and secret key you use to connect to your storage (from your welcome email). The request must be over HTTPS — plain HTTP is rejected.

Quick examples

curl -X POST https://dashboard.clearstreamer.com/zendrive-api/whitelist-ip/ \
  -H "Content-Type: application/json" \
  -d '{
    "access_key": "YOUR_ACCESS_KEY",
    "secret_key": "YOUR_SECRET_KEY",
    "ip": "203.0.113.55"
  }'

Omit the IP entirely and the API uses the public IP the request came from — handy for a cron job on the machine that needs access:

curl -X POST https://dashboard.clearstreamer.com/zendrive-api/whitelist-ip/ \
  -H "Content-Type: application/json" \
  -d '{
    "access_key": "YOUR_ACCESS_KEY",
    "secret_key": "YOUR_SECRET_KEY"
  }'
curl -X POST https://dashboard.clearstreamer.com/zendrive-api/whitelist-ip/ \
  -H "Content-Type: application/json" \
  -d '{
    "access_key": "YOUR_ACCESS_KEY",
    "secret_key": "YOUR_SECRET_KEY",
    "ipv6": "2606:4700:4700::1111"
  }'
curl -X POST https://dashboard.clearstreamer.com/zendrive-api/whitelist-ip/ \
  -H "Content-Type: application/json" \
  -d '{
    "access_key": "YOUR_ACCESS_KEY",
    "secret_key": "YOUR_SECRET_KEY",
    "ipv4": "203.0.113.55",
    "ipv6": "2606:4700:4700::1111"
  }'

Parameters

Field Required Description
access_key Yes Your S3 access key.
secret_key Yes Your S3 secret key.
ip No An IPv4 or IPv6 address — routed to the matching family automatically.
ipv4 No Set the IPv4 whitelist specifically.
ipv6 No Set the IPv6 whitelist specifically.

If you send none of ip / ipv4 / ipv6, the API auto-detects from the IP your request arrives from. The address must be a public address — private and reserved ranges (e.g. 192.168.x.x, 10.x.x.x, 127.0.0.1) are rejected.

Updating one family leaves the other untouched

Sending only ipv6 updates your IPv6 whitelist and keeps your existing IPv4 (and vice-versa). To change both, send both — or use a single ip value to replace whichever family it belongs to.

A successful response

{
  "status": "ok",
  "service_id": 1234,
  "client_ipv4": "203.0.113.55",
  "client_ipv6": null
}

The change takes effect immediately — the next connection from the new IP is accepted, and the old IP stops working.

Errors

HTTP message Meaning
400 access_key and secret_key are required A credential field was missing.
400 ... must be a public address The IP was private, reserved, or malformed.
400 HTTPS is required The request wasn't over HTTPS.
401 Invalid credentials Access key or secret key didn't match.
403 Service is not active The service is suspended or cancelled.
405 POST is required Use POST, not GET.
429 Too many requests, slow down Wait a moment — there's a short per-key rate limit.

Generate an auto-updater with an AI assistant

Want a hands-off updater that keeps your whitelist IP in sync with your machine's changing public IP? Paste the prompt below into an AI assistant and fill in the bracketed details.

I need to keep my ZenDRIVE whitelist IP in sync with my machine's changing public IP.
Generate a dynamic-IP updater using the auto-detect API call.
Reference: https://wiki.clearstreamer.com/connecting/whitelist-ip/

My details:
- API endpoint: https://dashboard.clearstreamer.com/zendrive-api/whitelist-ip/
- My S3 access key + secret key: [paste — treat the secret like a password]
- OS / scheduler I want: [cron / systemd timer / NetworkManager dispatcher / other]
- Update frequency: [e.g. every 15 minutes]

Produce the script plus the scheduler unit/entry to run it, and a one-line way to test it.

Rules you must follow:
- POST over HTTPS only. Send just access_key + secret_key (omit the IP) so the API
  auto-detects my current public IP.
- Store my keys in a root-owned file with chmod 600 — never inline them in a
  world-readable script, a committed file, or logs.
- Respect the per-key rate limit: don't run more often than necessary (15 minutes is
  fine), and back off on HTTP 429.
- Only act on success; log failures (400/401/403/429) without printing the keys.
- Don't invent credentials — leave placeholders for anything I didn't provide.

Keeping it secure

  • The request carries your secret key, so the endpoint enforces HTTPS — never send it over plain HTTP, and don't log it. Treat any script holding these keys the same way you'd treat the keys themselves.
  • If your keys may have been exposed, rotate them — see Credentials & rotation.

Auto-update on a schedule

Run the auto-detect call from a cron job on the machine that needs access, and your whitelist IP follows that machine's public IP automatically:

*/15 * * * * curl -s -X POST https://dashboard.clearstreamer.com/zendrive-api/whitelist-ip/ \
  -H "Content-Type: application/json" \
  -d '{"access_key":"YOUR_ACCESS_KEY","secret_key":"YOUR_SECRET_KEY"}' >/dev/null