Get Exchange Status
Returns the current operational status of the exchange. This endpoint is available even when the exchange is under maintenance and other public endpoints are returning HTTP 503 — making it suitable for polling-based health checks or pre-flight status gates.
Endpoint
| Surface | Method | URL |
|---|---|---|
| REST service | GET | https://papi.synthetix.io/v1/exchange/status |
| WebSocket service | GET | https://papi.synthetix.io/v1/ws/exchange/status |
Both variants are plain HTTP GET requests — the WebSocket service URL does not require or accept a WebSocket upgrade for this path.
No Authentication Required
This is a public endpoint that does not require authentication.
Request
No request body or parameters.
cURL
curl https://papi.synthetix.io/v1/exchange/status# Via the WebSocket service URL (plain HTTP, no upgrade)
curl https://papi.synthetix.io/v1/ws/exchange/statusJavaScript
const response = await fetch('https://papi.synthetix.io/v1/exchange/status');
const data = await response.json();
console.log(data);Python
import requests
response = requests.get('https://papi.synthetix.io/v1/exchange/status')
data = response.json()
print(data)Response
Success Response
{
"status": "ok"
}Response Fields
| Field | Type | Description |
|---|---|---|
status | string | Exchange operational status. "ok" when the exchange is operating normally |
Implementation Notes
- This endpoint remains accessible when other public endpoints return HTTP 503 during maintenance windows
- Poll this endpoint to determine when the exchange returns to normal operation after a maintenance window
- Both the REST service URL and the WebSocket service URL serve the same response — use whichever base URL your client already connects to
Error Handling
| HTTP Status | Description |
|---|---|
200 | Exchange is operational |
503 | Exchange is under maintenance (endpoint itself may also return 503 in extreme cases) |
Use Cases
Pre-flight Status Check
async function waitForExchange(pollIntervalMs = 5000) {
while (true) {
const response = await fetch('https://papi.synthetix.io/v1/exchange/status');
const data = await response.json();
if (response.ok && data.status === 'ok') return;
await new Promise(resolve => setTimeout(resolve, pollIntervalMs));
}
}Health Monitor
async function isExchangeOperational() {
try {
const response = await fetch('https://papi.synthetix.io/v1/exchange/status');
return response.ok;
} catch {
return false;
}
}