GET /markets/{market_id}/changes
List scheduled changes for one market
List scheduled changes for one market.
operationId: fetchMarketChangesForMarket
Declared server:
https://api.testnet.nexus.xyz/v1. See Networks.
Not reachable through CCXT. Nexus scheduled parameter-change notices. CCXT has no unified shape for announced market-parameter changes.
Authentication: none. This endpoint is public.
The venue-wide feed filtered to one market; an empty changes array means nothing is scheduled. A projection of the venue's scheduled market-parameter changes, not a hand-authored post: every entry is a pending schedule read back, so a scheduled change cannot take effect without having appeared here first. Each field's notice_class is computed from the field and its direction of travel against the market's live parameters — the same check the venue enforces when the change activates — never set by an operator. An adverse change (one that can hurt a position already held, e.g. a lower leverage cap or a wider price band) is scheduled at least required_notice_hours ahead; a favourable one may take effect on publication. Only changes that have not yet taken effect are listed. Current values are on the market-parameter reads; activated, cancelled and failed schedules are history and are not carried here. A change applied immediately rather than scheduled appears only as a moved current value.
Market identifier (e.g. BTC-USDX-PERP, ETH-USDX-PERP). Uppercase ASCII alphanumeric segments joined by single hyphens, at most 64 characters. A value outside that set is rejected with 400 (INVALID_MARKET_ID) before any store is read — it cannot name a market, so an empty result would assert that nothing traded rather than that the question was malformed. A well-formed identifier that names no listed market is a 404, not a 400.
BTC-USDX-PERPPattern: ^[A-Z0-9]+(-[A-Z0-9]+)*$Scheduled changes that have not yet taken effect, soonest effective_at first.
The scheduled-change feed (ENG-9376).
The supplied market_id path or query value is not a well-formed market identifier: it must match ^[A-Z0-9]+(-[A-Z0-9]+)*$ and be at most 64 characters. Branch on the body's code, which is always INVALID_MARKET_ID; message restates the rule and is a diagnostic whose wording is not stable. The result for a well-formed identifier that is not currently available is operation-specific and documented by that operation.
Market not found
Rate limit exceeded. Retryable — honour retry-after and back off; this is what separates a 429 from the permanent 403 jurisdiction refusals. Branch on the body's code, which is always RATE_LIMIT_EXCEEDED, and on bucket to learn WHICH budget bottlenecked — the buckets are independent, so a caller at its read ceiling can still submit orders and should not back off the whole client. Do not parse message: it is a diagnostic whose wording is not stable. Requests are charged by weight, so exhausting a budget takes fewer heavy calls than x-ratelimit-limit suggests. See “Rate limits” in the API description.
GET /v1/markets/{market_id}/changes HTTP/1.1
Host: api.testnet.nexus.xyz
Accept: */*
{
"changes": [
{
"schedule_id": "6f1c2e3a-0d4b-4c1e-9a7f-2b8d5e6f7a90",
"market_id": "BTC-USDX-PERP",
"announced_at": 1758700800000,
"effective_at": 1758960000000,
"notice_given_hours": 72,
"actor": "operator",
"fields": [
{
"field": "price_band_bps",
"current_value": 5000,
"scheduled_value": 6000,
"value_at_announcement": 5000,
"notice_class": "adverse",
"required_notice_hours": 72,
"notice_satisfied": true
}
]
}
]
}API version 0.9.122
Last updated

