> For the complete documentation index, see [llms.txt](https://docs.yifi.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.yifi.io/api-reference/aggregator.md).

# Aggregator

## Get aggregator information

> Returns full aggregator information, including the list of all providers (exchangers), their statuses, statistics by engine type and other metadata. All providers come from cex-source and have engine: "off-chain".

```json
{"openapi":"3.0.0","info":{"title":"YiFi Swap Public API","version":"1.0.0"},"tags":[{"name":"Aggregator"}],"paths":{"/api/aggregator":{"get":{"description":"Returns full aggregator information, including the list of all providers (exchangers), their statuses, statistics by engine type and other metadata. All providers come from cex-source and have engine: \"off-chain\".","operationId":"AggregatorController_getAggregatorInfo","parameters":[],"responses":{"200":{"description":"Aggregator information retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AggregatorInfoResponseDto"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}}},"summary":"Get aggregator information","tags":["Aggregator"]}}},"components":{"schemas":{"AggregatorInfoResponseDto":{"type":"object","properties":{"providers":{"description":"List of providers","type":"array","items":{"$ref":"#/components/schemas/AggregatorProviderDto"}},"totalProviders":{"type":"number","description":"Total number of providers"},"aggregatedFrom":{"description":"List of aggregated engine types","type":"array","items":{"type":"string"}},"breakdown":{"type":"object","description":"Breakdown by engine types"}},"required":["providers","totalProviders","aggregatedFrom","breakdown"]},"AggregatorProviderDto":{"type":"object","properties":{"id":{"type":"string","description":"Provider ID"},"name":{"type":"string","description":"Provider name"},"logoUrl":{"type":"string","description":"Provider logo URL"},"engine":{"type":"string","description":"Engine type","enum":["on-chain","off-chain","private"]},"status":{"type":"string","description":"Provider status","enum":["active","inactive","maintenance"]},"supportedChains":{"description":"Supported chains","type":"array","items":{"type":"string"}},"supportedTokens":{"description":"Supported tokens","type":"array","items":{"type":"string"}},"averageFee":{"type":"string","description":"Average fee"},"estimatedTime":{"type":"string","description":"Estimated time to complete"},"features":{"description":"Provider features","type":"array","items":{"type":"string"}},"uptime":{"type":"string","description":"Provider uptime"},"refundAddressNeed":{"type":"boolean","description":"Whether refund address is required for swaps"},"baseUnits":{"type":"boolean","description":"If true, amounts in requests to the provider are in base units; if false, human-readable. For DEX, base units is assumed by default."},"kycLevel":{"type":"number","description":"Provider KYC level: 0 = No KYC, 1 = Rare KYC, 2 = Regular KYC","enum":[0,1,2]},"kycLevelName":{"type":"string","description":"Name of the provider's KYC level"},"legal":{"description":"Provider's legal documents (Terms of Use, etc.)","type":"array","items":{"$ref":"#/components/schemas/ProviderLegalDocumentDto"}},"description":{"type":"string","description":"Provider description for the public list"}},"required":["id","name","engine","status","supportedChains","supportedTokens","averageFee","estimatedTime","features","uptime"]},"ProviderLegalDocumentDto":{"type":"object","properties":{"docName":{"type":"string","description":"Document title"},"docLink":{"type":"string","description":"Link to the official document"}},"required":["docName","docLink"]}}}}
```

## Get quotes for a cryptocurrency pair

> Fetches swap quotes for the specified cryptocurrency pair from all available providers. Returns a single \`allQuotes\` array: private best v1/v2 first, followed by CEX/DEX sorted by \`rate\` descending. The element with the highest \`rate\` has \`best: true\`.

```json
{"openapi":"3.0.0","info":{"title":"YiFi Swap Public API","version":"1.0.0"},"tags":[{"name":"Aggregator"}],"paths":{"/api/aggregator/quote":{"get":{"description":"Fetches swap quotes for the specified cryptocurrency pair from all available providers. Returns a single `allQuotes` array: private best v1/v2 first, followed by CEX/DEX sorted by `rate` descending. The element with the highest `rate` has `best: true`.","operationId":"AggregatorController_getRatesForPair","parameters":[{"name":"tickerFrom","required":true,"in":"query","description":"Source cryptocurrency ticker","schema":{"type":"string"}},{"name":"networkFrom","required":false,"in":"query","description":"Source cryptocurrency network (optional)","schema":{"type":"string"}},{"name":"tickerTo","required":true,"in":"query","description":"Target cryptocurrency ticker","schema":{"type":"string"}},{"name":"networkTo","required":false,"in":"query","description":"Target cryptocurrency network (optional)","schema":{"type":"string"}},{"name":"amount","required":true,"in":"query","description":"Amount to swap (minimum value: 0.00000001)","schema":{"minimum":1e-8,"type":"number"}},{"name":"type","required":false,"in":"query","description":"Source type: \"cex\", \"dex\" or \"cex,dex\". Default: cex","schema":{"type":"string"}},{"name":"slippage","required":false,"in":"query","description":"Allowed slippage in percent (0.1–1)","schema":{"default":0.5,"type":"number"}},{"name":"addressFrom","required":false,"in":"query","description":"Sender wallet address (for getRate placeholders, e.g. Rango)","schema":{"type":"string"}},{"name":"addressTo","required":false,"in":"query","description":"Recipient wallet address (for getRate placeholders)","schema":{"type":"string"}},{"name":"quoteId","required":false,"in":"query","description":"Quote ID (for repeated requests)","schema":{"type":"string"}}],"responses":{"200":{"description":"Quotes retrieved successfully. Returns the best rate and all available options.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteResponseDto"}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","enum":["INVALID_PARAMS","INVALID_AMOUNT"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"404":{"description":"Coins not found or no quotes available","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","enum":["COIN_NOT_FOUND","NO_QUOTES_AVAILABLE"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"408":{"description":"Workflow execution timed out","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"500":{"description":"Internal server error or workflow execution error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","enum":["WORKFLOW_EXECUTION_FAILED","WORKFLOW_EXECUTION_ERROR","AGGREGATOR_INFO_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}}},"summary":"Get quotes for a cryptocurrency pair","tags":["Aggregator"]}}},"components":{"schemas":{"QuoteResponseDto":{"type":"object","properties":{"allQuotes":{"description":"All available quotes. Private best-per-version first (v1, v2), then CEX/DEX sorted by `rate` descending. The element with the highest `rate` has `best: true`. Empty array if there are no quotes.","type":"array","items":{"$ref":"#/components/schemas/QuoteItemDto"}},"finish":{"type":"boolean","description":"Progressive delivery: `false` means some sources are still responding (repeat the request with the same parameters), `true` means all sources have responded. Absent in synchronous mode."}},"required":["allQuotes"]},"QuoteItemDto":{"type":"object","properties":{"rateId":{"type":"string","description":"Internal rateId. Pass it as `rateId` when calling `/api/aggregator/swap` to record in the transaction history which quote the user saw. The snapshot is stored in Redis for 5 minutes."},"engine":{"type":"string","description":"Engine type: on-chain or off-chain","enum":["on-chain","off-chain"]},"provider":{"type":"string","description":"Provider name"},"exchangerName":{"type":"string","description":"Display name of the route/provider. For private — \"No on-chain traceability\" / \"Fragmented path\"; for CEX/DEX — the provider name."},"exchangerProvider":{"type":"string","description":"Original provider identifier from the quote (CEX/DEX name or `private-{routeUuid}` for private)."},"logoUrl":{"type":"string","description":"Provider logo URL"},"rate":{"type":"string","description":"Exchange rate"},"estimatedOutput":{"type":"string","description":"Estimated output amount"},"inUsdValue":{"type":"number","description":"USD equivalent of the IN amount. Rate of the reference provider to USDT (TRON, then ETH, then BSC); if the reference is unavailable, the quote provider's rate is used. `null` if the rate is unavailable.","nullable":true},"inUsdRateError":{"type":"string","description":"`\"Can't fetch USD-rate\"` if the IN rate is unavailable. The quote itself is still returned.","nullable":true},"outUsdValue":{"type":"number","description":"USD equivalent of `estimatedOutput`. Rate of this quote's provider to USDT (TRON, then ETH, then BSC). `null` if unavailable (including private).","nullable":true},"outUsdDeviationPercent":{"type":"number","description":"Deviation of `outUsdValue` from `inUsdValue` in %. Negative means the user receives less in USD than they sent.","nullable":true},"fromTokenUsdtRate":{"type":"number","description":"Raw rate of 1 IN coin to USDT (TRON → ETH → BSC) via the reference provider; if the reference is unavailable, via the quote provider. `null` if the IN rate is unavailable.","nullable":true},"toTokenUsdtRate":{"type":"number","description":"Raw rate of 1 OUT coin to USDT (TRON → ETH → BSC) via this quote's provider. `null` if unavailable (including private).","nullable":true},"rateReversed":{"type":"number","description":"Inverse rate: 1 / `rate` (1 OUT coin = Y IN coin)"},"quoteId":{"type":"string","description":"Provider-side quote identifier (for create swap / rate locking)"},"gasEstimated":{"type":"string","description":"Gas estimated from provider (if available)"},"protocolFee":{"type":"string","description":"Protocol fee (if available)"},"providerFee":{"type":"string","description":"Provider fee (if available)"},"slippageTolerance":{"type":"string","description":"Slippage tolerance (if available)"},"fee":{"type":"string","description":"Fee percentage"},"estimatedTime":{"type":"string","description":"Estimated time to complete"},"kycLevel":{"type":"number","description":"Provider KYC level: 0 = No KYC, 1 = Rare KYC, 2 = Regular KYC","enum":[0,1,2]},"kycLevelName":{"type":"string","description":"Name of the provider's KYC level"},"legal":{"description":"Provider's legal documents (Terms of Use, etc.)","type":"array","items":{"$ref":"#/components/schemas/ProviderLegalDocumentDto"}},"best":{"type":"boolean","description":"Flag for the best quote by `rate` across all sources. `true` on exactly one element in `allQuotes`, at its current position in the array (not necessarily the first)."},"dataForSign":{"type":"object","description":"EIP-712 typed data for client-side signing (cow-swap)"},"schemeSign":{"type":"string","description":"Signing scheme (e.g. eip712)"},"version":{"type":"string","description":"Private route version: v1 — Monero intermediate hop; v2 — stablecoin / non-XMR. Only when engine=private.","enum":["v1","v2"]}},"required":["rateId","engine","provider","exchangerName","exchangerProvider","rate","estimatedOutput","inUsdValue","inUsdRateError","outUsdValue","outUsdDeviationPercent","fromTokenUsdtRate","toTokenUsdtRate","rateReversed","fee","estimatedTime"]},"ProviderLegalDocumentDto":{"type":"object","properties":{"docName":{"type":"string","description":"Document title"},"docLink":{"type":"string","description":"Link to the official document"}},"required":["docName","docLink"]}}}}
```

## Get token pairs by filters

> Search available swap token pairs by filters. Filters work in pairs: if fromToken is provided, fromNetwork must also be provided, and vice versa. The same applies to toToken and toNetwork. You may provide only one pair (from or to) or both.

```json
{"openapi":"3.0.0","info":{"title":"YiFi Swap Public API","version":"1.0.0"},"tags":[{"name":"Aggregator"}],"paths":{"/api/aggregator/token-pairs":{"get":{"description":"Search available swap token pairs by filters. Filters work in pairs: if fromToken is provided, fromNetwork must also be provided, and vice versa. The same applies to toToken and toNetwork. You may provide only one pair (from or to) or both.","operationId":"AggregatorController_getTokenPairs","parameters":[{"name":"fromToken","required":false,"in":"query","description":"Source token ticker (required if fromNetwork is provided)","schema":{"type":"string"}},{"name":"fromNetwork","required":false,"in":"query","description":"Source token network (required if fromToken is provided)","schema":{"type":"string"}},{"name":"toToken","required":false,"in":"query","description":"Target token ticker (required if toNetwork is provided)","schema":{"type":"string"}},{"name":"toNetwork","required":false,"in":"query","description":"Target token network (required if toToken is provided)","schema":{"type":"string"}}],"responses":{"200":{"description":"Token pairs found successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenPairsResponseDto"}}}},"400":{"description":"Invalid request parameters (incomplete filter pairs)","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"500":{"description":"Internal server error or workflow execution error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","enum":["WORKFLOW_EXECUTION_FAILED","WORKFLOW_TIMEOUT","TOKEN_PAIRS_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}}},"summary":"Get token pairs by filters","tags":["Aggregator"]}}},"components":{"schemas":{"TokenPairsResponseDto":{"type":"object","properties":{"tokenPairs":{"description":"List of token pairs","type":"array","items":{"$ref":"#/components/schemas/TokenPairDto"}},"totalPairs":{"type":"number","description":"Total number of token pairs found"}},"required":["tokenPairs","totalPairs"]},"TokenPairDto":{"type":"object","properties":{"fromToken":{"type":"string","description":"Source token ticker"},"fromNetwork":{"type":"string","description":"Source network"},"toToken":{"type":"string","description":"Target token ticker"},"toNetwork":{"type":"string","description":"Target network"},"availableEngines":{"description":"Available engines for this pair","type":"array","items":{"type":"string"}},"providers":{"description":"Provider IDs supporting this pair","type":"array","items":{"type":"string"}},"minAmount":{"type":"string","description":"Minimum exchange amount"},"maxAmount":{"type":"string","description":"Maximum exchange amount"}},"required":["fromToken","fromNetwork","toToken","toNetwork","availableEngines","providers","minAmount","maxAmount"]}}}}
```

## Search coins for swapping

> Returns the list of coins available to swap from/to the specified token. Requires fromToken+fromNetwork (coins you can swap to) or toToken+toNetwork (coins you can swap from). Supports search and pagination.

```json
{"openapi":"3.0.0","info":{"title":"YiFi Swap Public API","version":"1.0.0"},"tags":[{"name":"Aggregator"}],"paths":{"/api/aggregator/token-pairs/search":{"get":{"description":"Returns the list of coins available to swap from/to the specified token. Requires fromToken+fromNetwork (coins you can swap to) or toToken+toNetwork (coins you can swap from). Supports search and pagination.","operationId":"AggregatorController_getTokenPairsSearch","parameters":[{"name":"fromToken","required":false,"in":"query","description":"Source token ticker (paired with fromNetwork)","schema":{"type":"string"}},{"name":"fromNetwork","required":false,"in":"query","description":"Source token network (paired with fromToken)","schema":{"type":"string"}},{"name":"toToken","required":false,"in":"query","description":"Target token ticker (paired with toNetwork)","schema":{"type":"string"}},{"name":"toNetwork","required":false,"in":"query","description":"Target token network (paired with toToken)","schema":{"type":"string"}},{"name":"search","required":false,"in":"query","description":"Search by coin ticker or name","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","description":"Number of items per page (1-100)","schema":{"minimum":1,"maximum":100,"default":20,"type":"number"}},{"name":"offset","required":false,"in":"query","description":"Pagination offset","schema":{"minimum":0,"default":0,"type":"number"}},{"name":"isPopular","required":false,"in":"query","description":"Popular coins only (with a popularRating)","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Coin list retrieved successfully","content":{"application/json":{"schema":{"type":"object","properties":{"tokens":{"type":"array","items":{"$ref":"#/components/schemas/CoinResDto"}},"totalTokens":{"type":"number"},"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"500":{"description":"Internal server error or workflow execution error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","enum":["WORKFLOW_EXECUTION_FAILED","WORKFLOW_TIMEOUT","TOKEN_PAIRS_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}}},"summary":"Search coins for swapping","tags":["Aggregator"]}}},"components":{"schemas":{}}}
```

## Create a swap order

> Creates a swap order through the specified provider (exchanger). Returns the transaction ID, status and expected swap parameters.

```json
{"openapi":"3.0.0","info":{"title":"YiFi Swap Public API","version":"1.0.0"},"tags":[{"name":"Aggregator"}],"paths":{"/api/aggregator/swap":{"post":{"description":"Creates a swap order through the specified provider (exchanger). Returns the transaction ID, status and expected swap parameters.","operationId":"AggregatorController_createSwap","parameters":[{"name":"X-Telegram-Init-Data","in":"header","description":"Telegram Mini App initData (window.Telegram.WebApp.initData). When present, the HMAC is validated and telegram_user_id is stored.","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Parameters for creating a swap order","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSwapDto"}}}},"responses":{"200":{"description":"Swap order created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwapResponseDto"}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"404":{"description":"Provider or coins not found","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","enum":["PROVIDER_NOT_FOUND","COIN_NOT_FOUND"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"408":{"description":"Workflow execution timed out","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"500":{"description":"Internal server error or workflow execution error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","enum":["WORKFLOW_EXECUTION_FAILED","WORKFLOW_TIMEOUT","SWAP_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}}},"summary":"Create a swap order","tags":["Aggregator"]}}},"components":{"schemas":{"CreateSwapDto":{"type":"object","properties":{"provider":{"type":"string","description":"Provider (exchanger) name"},"fromToken":{"type":"string","description":"Source token ticker"},"fromNetwork":{"type":"string","description":"Source token network"},"toToken":{"type":"string","description":"Target token ticker"},"toNetwork":{"type":"string","description":"Target token network"},"engine":{"type":"string","description":"Provider type (cex|dex|private)","enum":["cex","dex","private"]},"amount":{"type":"number","description":"Amount to swap","minimum":1e-8},"quoteId":{"type":"string","description":"Quote ID (optional)"},"rateId":{"type":"string","description":"Internal rateId from the `/api/aggregator/quote` response. Used to record in the transaction history which quote the user saw. The snapshot lives for 5 minutes after being issued. If the rateId is expired or invalid, the request is rejected with the `RATE_EXPIRED` code."},"receiveAddress":{"type":"string","description":"Address to receive funds"},"addressFrom":{"type":"string","description":"Legacy: address from"},"slippageTolerance":{"type":"string","description":"Allowed slippage in percent","default":"0.5"},"extraIdTo":{"type":"string","description":"Additional receive identifier (tag/memo)"},"refundAddress":{"type":"string","description":"Refund address"},"refundExtraId":{"type":"string","description":"Additional refund identifier (tag/memo)"},"signature":{"type":"string","description":"User signature using the signatureScheme (e.g. EIP-712), if required by the provider"},"signatureScheme":{"type":"string","description":"Signature scheme (e.g. eip712)"},"refCode":{"type":"string","description":"Partner referral code (or a URL with ?ref= / ?refCode=). Attributes the swap to a partner via the affiliate referral node."},"utmSource":{"type":"string","description":"UTM source (e.g. telegram)"},"utmMedium":{"type":"string","description":"UTM medium (e.g. tma)"},"utmCampaign":{"type":"string","description":"UTM campaign / start_param"}},"required":["fromToken","fromNetwork","toToken","toNetwork","engine","amount"]},"SwapResponseDto":{"type":"object","properties":{"fromToken":{"type":"string","description":"Source token ticker"},"fromNetwork":{"type":"string","description":"Source token network"},"toToken":{"type":"string","description":"Target token ticker"},"toNetwork":{"type":"string","description":"Target token network"},"provider":{"type":"string","description":"Provider (exchanger) slug"},"transactionId":{"type":"string","description":"Swap transaction ID"},"accessToken":{"type":"string","description":"Secret access token for the transaction. Issued once when the swap is created and required for the client's private operations on this transaction (viewing status, cancellation, refund). Store it only on the side of the party that initiated the swap."},"externalTransactionId":{"type":"string","description":"External provider-side transaction ID (if transactionId was replaced with a uuid from admin-service)"},"status":{"type":"string","description":"Swap status","enum":["pending","processing","completed","failed"]},"statusList":{"type":"object","description":"Map of swap statuses"},"receiveAmount":{"type":"string","description":"Expected receive amount"},"expirationTime":{"type":"object","description":"Order expiration time (value from the provider response; the field path is configured in the exchanger endpoint as expirationTimePath)","nullable":true},"estimatedOutput":{"type":"string","description":"Legacy: expected output amount (use receiveAmount)"},"estimatedTime":{"type":"string","description":"Estimated completion time"},"depositAddress":{"type":"object","description":"Address to deposit funds"},"extraIdTo":{"type":"string","description":"Additional receive identifier (tag/memo)"},"refundAddress":{"type":"string","description":"Refund address"},"refundExtraId":{"type":"string","description":"Additional refund identifier (tag/memo)"},"txCreateMeta":{"type":"object","description":"Transaction creation metadata (JSON string)","nullable":true},"extraIdDeposit":{"type":"string","description":"Additional deposit identifier (tag/memo)"},"tokenForTx":{"type":"string","description":"Token for the transaction (ticker from the createExchange response)"}},"required":["fromToken","fromNetwork","toToken","toNetwork","provider","transactionId","accessToken","status","receiveAmount","estimatedTime"]}}}}
```

## Set the deposit hash for an order

> Sets the deposit hash for an order. Request body: { from, to, hash, transactionId, ... }. engine: dex or cex.

```json
{"openapi":"3.0.0","info":{"title":"YiFi Swap Public API","version":"1.0.0"},"tags":[{"name":"Aggregator"}],"paths":{"/api/aggregator/swap/set-deposit/{transactionProvider}/{engine}":{"post":{"description":"Sets the deposit hash for an order. Request body: { from, to, hash, transactionId, ... }. engine: dex or cex.","operationId":"AggregatorController_setDepositHash","parameters":[{"name":"transactionProvider","required":true,"in":"path","schema":{"type":"string"}},{"name":"engine","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Data: from, to, hash (required)","content":{"application/json":{"schema":{"type":"object","required":["from","to","hash"],"properties":{"from":{"type":"string"},"to":{"type":"string"},"hash":{"type":"string"}}}}}},"responses":{"201":{"description":""}},"summary":"Set the deposit hash for an order","tags":["Aggregator"]}}}}
```
