Versioning
Pin dated REST and WebSocket API versions so contract changes are explicit and your integration behaves consistently over time.
UDX publishes dated REST and WebSocket contracts. For REST, send a UDX-Version request header with a YYYY-MM-DD value; every response echoes the applied UDX-Version. For WebSocket, select a udx.json.YYYY-MM-DD subprotocol during the HTTP Upgrade; that version remains fixed for the connection.
| Interface | Version selector | Selection lifetime |
|---|---|---|
| REST | UDX-Version request header |
One request |
| WebSocket | Sec-WebSocket-Protocol during the HTTP Upgrade |
One connection |
REST Versioning
Send a version published in the OpenAPI specification:
UDX-Version: <YYYY-MM-DD>
If you omit this header, UDX uses the oldest supported REST version. An integration that omits the header will not adopt a newer contract automatically.
Every response includes the applied UDX-Version. An unsupported value returns 400 and lists the supported versions.
Set UDX-Version explicitly after testing your integration against a contract. Review and test the new OpenAPI contract before changing versions.
WebSocket Versioning
Select a subprotocol published in the AsyncAPI specification when opening the connection:
Sec-WebSocket-Protocol: udx.json.<YYYY-MM-DD>
The selected subprotocol sets the command and message contract for that connection. WebSocket messages do not carry a version header. To change versions, close the connection and reconnect with another supported subprotocol.
Most WebSocket clients accept the subprotocol as a connection option. Use the exact value published in AsyncAPI.