# Update server weights via Data Plane API without reload

**URL:** <https://discourse.haproxy.org/t/update-server-weights-via-data-plane-api-without-reload/12151>\
**Category:** Help!\
**Created:** [March 31, 2026, 11:29am UTC](https://discourse.haproxy.org/t/update-server-weights-via-data-plane-api-without-reload/12151 "2026-03-31T11:29:24Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![ema-pe](https://avatars.discourse-cdn.com/v4/letter/e/7c8e57/32.png) [@ema-pe](https://discourse.haproxy.org/u/ema-pe)\
**Post date:** [April 24, 2026, 1:45pm UTC](https://discourse.haproxy.org/t/update-server-weights-via-data-plane-api-without-reload/12151/2 "2026-04-24T13:45:20Z")

</div>

Hi, after digging into the Data Plane API v3 documentation and doing some testing, I found the following two APIs:

- PUT `/services/haproxy/runtime/backends/{parent_name}/servers/{name}` ([doc](https://www.haproxy.com/documentation/dataplaneapi/enterprise/?v=v3#put-/services/haproxy/runtime/backends/-parent_name-/servers/-name-))
- POST `/services/haproxy/runtime/backends/{parent_name}/servers` ([doc](https://www.haproxy.com/documentation/dataplaneapi/enterprise/?v=v3#post-/services/haproxy/runtime/backends/-parent_name-/servers))

These are sufficient to avoid restarting the proxy. I was missing the “runtime” part of the API path.

The only minor issue is that the Data Plane API does not seem to expose the current weights, even though they are applied and used by HAProxy for load balancing. However, this is not really a problem for my use case.

> **cURL logs**
>
> ```auto
> $ curl -s -u admin:admin "http://localhost:30555/v3/services/haproxy/runtime/backends/function_figlet_forwarded/servers" | jq           
> [                                                                                                                                                                       
> {                                                                                                                                                                     
> "address": "IP_X",                                                                                                                                           
> "admin_state": "ready",                                                                                                                                             
> "id": "1",
> "name": "openfaas-local",
> "operational_state": "up",
> "port": 31112
> },
> {
> "address": "IP_Y",
> "admin_state": "ready",
> "id": "2",
> "name": "test",
> "operational_state": "up",
> "port": 31112
> }
> ]
> $ curl -s -u admin:admin -X PUT "http://localhost:30555/v3/services/haproxy/runtime/backends/function_figlet_forwarded/servers/openfaas-local" -H "Content-Type: application/json" -d '{"weight": 80}' | jq
> {
> "address": "IP_X",
> "admin_state": "ready",
> "id": "1",
> "name": "openfaas-local",
> "operational_state": "up",
> "port": 31112
> }
> $ curl -s -u admin:admin "http://localhost:30555/v3/services/haproxy/runtime/backends/function_figlet_forwarded/servers" | jq
> [
> {
> "address": "IP_X",
> "admin_state": "ready",
> "id": "1",
> "name": "openfaas-local",
> "operational_state": "up",
> "port": 31112
> },
> {
> "address": "IP_Y",
> "admin_state": "ready",
> "id": "2",
> "name": "test",
> "operational_state": "up",
> "port": 31112
> }
> ]
> 
> ```

---

_[View the full topic](https://discourse.haproxy.org/t/update-server-weights-via-data-plane-api-without-reload/12151)._
