{"asyncapi":"3.0.0","channels":{"market":{"address":"/v1/stream","messages":{"checkpoint":{"payload":{"properties":{"cursor":{"type":"string"},"type":{"const":"checkpoint"}},"required":["type","cursor"],"type":"object"}},"quote":{"payload":{"description":"Quote schema in /openapi.json; sequence is a decimal string","type":"object"}},"resync_required":{"payload":{"properties":{"reason":{"type":"string"},"type":{"const":"resync_required"}},"required":["type","reason"],"type":"object"}},"subscribe":{"payload":{"properties":{"assets":{"items":{"type":"string"},"type":"array"},"channels":{"items":{"type":"string"},"type":"array"},"mode":{"enum":["reliable","display"]},"type":{"const":"subscribe"}},"required":["type","assets"],"type":"object"}}}}},"info":{"description":"Ordered canonical quote/status delivery, scoped cursor replay, explicit stale states and bounded slow-consumer recovery. See /docs for the handshake and limits.","title":"Trading Provider WebSocket","version":"1.0.0"},"operations":{"receiveSubscription":{"action":"receive","channel":{"$ref":"#/channels/market"},"messages":[{"$ref":"#/channels/market/messages/subscribe"}]},"sendQuotes":{"action":"send","channel":{"$ref":"#/channels/market"},"messages":[{"$ref":"#/channels/market/messages/quote"},{"$ref":"#/channels/market/messages/checkpoint"},{"$ref":"#/channels/market/messages/resync_required"}]}}}
