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