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

# Static Proxies

> Allocate and release datacenter and ISP IPs against your concurrent capacity.

Alongside residential data you can resell **static proxies**:

| `productType` | What it is    |
| ------------- | ------------- |
| `datacenter`  | Shared IPs    |
| `isp`         | Dedicated IPs |

These work differently from residential data. Instead of a consumable GB pool, you hold a **concurrent capacity limit** per product — "may hold 100 datacenter + 20 ISP IPs at once". You draw an **allocation** (a batch of IPs for one end customer) against that limit, and release it when the customer churns. Released IPs free the capacity again.

## Your capacity

[`GET /reseller/account`](/reseller/basics#your-account) reports it:

```json theme={null}
"proxies": {
  "datacenter": { "limit": 100, "used": 13 },
  "isp": { "limit": 20, "used": 0 }
}
```

`used` counts IPs in **active** allocations. To raise a limit, contact your account manager.

Available regions and their stock are discoverable from the public `GET /region/availability?type=...` endpoint.

## Allocating proxies

### POST /reseller/proxies

Draws a batch of IPs for one end customer. Credentials are generated per IP.

```bash cURL theme={null}
curl -X POST https://api.roundproxies.com/reseller/proxies \
  -H "x-reseller-key: $KEY" \
  -H "Content-Type: application/json" \
  -d '{"productType": "datacenter", "regions": {"US": 5, "DE": 2}, "note": "customer #123"}'
```

### Request Fields

| Field         | Required | Rules                                                          |
| ------------- | -------- | -------------------------------------------------------------- |
| `productType` | yes      | `datacenter` or `isp`                                          |
| `regions`     | yes      | Map of region name → IP count. Max **1000** IPs per allocation |
| `note`        | no       | Free-text label, e.g. which customer this batch is for         |

**200 OK**

```json theme={null}
{
  "message": "Proxies allocated",
  "allocation": {
    "id": "...",
    "productType": "datacenter",
    "regions": { "US": 5, "DE": 2 },
    "ipCount": 7,
    "status": "active",
    "note": "customer #123",
    "createdAt": "..."
  },
  "proxies": [
    { "ip": "1.2.3.4", "port": 8080, "username": "a1b2c3", "password": "d4e5f6", "region": "US" }
  ],
  "capacity": {
    "datacenter": { "limit": 100, "used": 20 },
    "isp": { "limit": 20, "used": 0 }
  }
}
```

### Errors

| Status | Meaning                                                                                          |
| ------ | ------------------------------------------------------------------------------------------------ |
| `400`  | Not enough capacity, or not enough IPs available in a requested region. **Nothing is assigned.** |
| `502`  | Allocation failed upstream. **Nothing is assigned — retry safely.**                              |

<Note>
  Unlike the residential pool, static proxy capacity **is** enforced. Check `limit` against `used` before requesting a large batch.
</Note>

## Listing allocations

### GET /reseller/proxies

Paginated list of your allocations. Accepts `page` and `limit`. Proxy lists are omitted here — fetch one allocation for those.

```bash cURL theme={null}
curl "https://api.roundproxies.com/reseller/proxies?page=1&limit=25" \
  -H "x-reseller-key: $KEY"
```

## One allocation, with credentials

### GET /reseller/proxies/:id

Allocation detail **plus** the full `ip:port:username:password` list.

```bash cURL theme={null}
curl https://api.roundproxies.com/reseller/proxies/ALLOCATION_ID \
  -H "x-reseller-key: $KEY"
```

Released allocations still return, with an empty `proxies` array.

## Releasing an allocation

### DELETE /reseller/proxies/:id

Tears down all the allocation's IPs upstream and returns the capacity to your pool.

```bash cURL theme={null}
curl -X DELETE https://api.roundproxies.com/reseller/proxies/ALLOCATION_ID \
  -H "x-reseller-key: $KEY"
```

Returns `400` if the allocation is already released.

<Warning>
  Releasing kills the credentials for every IP in the batch. Your customer loses access immediately, and re-allocating gives them different IPs.
</Warning>
