---
title: "Whitelist a client IP on a rental's VAST tenant"
method: POST
path: "/storage/client-ips"
tags: ["Storage"]
---

# Whitelist a client IP on a rental's VAST tenant

`POST /storage/client-ips`

## Request

- Base URL: `https://cloud-api.voltagepark.com/api/v1`
- URL: `https://cloud-api.voltagepark.com/api/v1/storage/client-ips`
- Auth: one of:
  - HTTP bearer
  - API key in header `UI-Authorization`
- TypeScript: <https://skmtc.dev/voltagepark/apis/voltage-park-on-demand-api/docs/storage/client-ips/post.ts> (a function with typed inputs; its response is checked against the schema)

Register a client IP (e.g. a VM's inband /32) so it is whitelisted on a
VAST tenant. Target the tenant by rental_id (via the rental's attached
storage) or by storage_id directly (for pools with no attached rental).
Idempotent: re-registering the same IP returns 200 instead of 201. The IP
becomes part of the authoritative client_ip_ranges set, so the periodic
audit keeps it.

## Request body

- RegisterStorageClientIPRequest
  - `ip_address` string, required: Client IP to whitelist on the VAST tenant (e.g. a VM's inband /32).
  - `rental_id` string, uuid, nullable: Bare-metal rental ID the IP belongs to; the tenant is resolved via the rental's attached storage. Provide exactly one of rental_id or storage_id.
  - `storage_id` string, uuid, nullable: Storage volume ID to whitelist the IP against directly (for pools with no attached rental). Provide exactly one of rental_id or storage_id.

## Response `200`

OK

## Other responses

- `201`: Successful Response
- `400`: Bad Request
- `404`: Not Found
- `409`: Conflict
- `422`: Validation Error

---

[API](https://skmtc.dev/voltagepark/apis/voltage-park-on-demand-api.md) - [All operations](https://skmtc.dev/voltagepark/apis/voltage-park-on-demand-api/llms.txt) - [OpenAPI document](https://skmtc.dev/voltagepark/apis/voltage-park-on-demand-api/revisions/11c2e9146826?raw)
