arazzo: 1.0.1 info: title: CryptoCompare Top Volume Deep Dive summary: Rank coins by 24h volume, pull full data, then branch into the news feed. description: >- A market-scanning flow that starts from the top cryptocurrencies by 24-hour total volume against a quote currency, reads the lighter ranked-volumes envelope for a fast overview, and then branches: when the ranking returns at least one coin it pulls the latest news articles to add narrative context, and otherwise it ends cleanly. Every step spells out its request inline, including the api_key, so the flow can be read and executed without opening the underlying OpenAPI description. version: 1.0.0 sourceDescriptions: - name: cryptocompareMinApi url: ../openapi/cryptocompare-min-api-openapi.yml type: openapi workflows: - workflowId: top-volume-deep-dive summary: Rank coins by total volume, read full data, and branch into news. description: >- Reads the top coins by 24-hour total volume with full ticker data, pulls a lighter ranked-volume overview for the same quote currency, and branches into the latest news feed only when the ranking returned results. inputs: type: object required: - apiKey - tsym properties: apiKey: type: string description: CryptoCompare API key supplied as the api_key query parameter. tsym: type: string description: Quote currency for the volume ranking, e.g. USD. limit: type: integer description: Number of coins to return in the ranking. default: 10 steps: - stepId: getTopByVolume description: >- Read the top coins by 24-hour total volume against the quote currency, including full ticker data per coin. operationId: getTopListByTotalVolumeFull parameters: - name: api_key in: query value: $inputs.apiKey - name: tsym in: query value: $inputs.tsym - name: limit in: query value: $inputs.limit successCriteria: - condition: $statusCode == 200 outputs: topCoins: $response.body#/Data count: $response.body#/MetaData/Count - stepId: getVolumeOverview description: >- Read the lighter ranked-volume envelope for the same quote currency for a fast overview, then branch on whether any coins were returned. operationId: getTopVolumesByCurrency parameters: - name: api_key in: query value: $inputs.apiKey - name: tsym in: query value: $inputs.tsym - name: limit in: query value: $inputs.limit successCriteria: - condition: $statusCode == 200 outputs: rankedVolumes: $response.body#/Data onSuccess: - name: hasResults type: goto stepId: getMarketNews criteria: - context: $response.body condition: $.Data.length > 0 type: jsonpath - name: noResults type: end criteria: - context: $response.body condition: $.Data.length == 0 type: jsonpath - stepId: getMarketNews description: >- Pull the latest news articles to add narrative context to the ranked coins, sorted by most recent. operationId: getLatestNewsArticles parameters: - name: api_key in: query value: $inputs.apiKey - name: lang in: query value: EN - name: sortOrder in: query value: latest - name: limit in: query value: 20 successCriteria: - condition: $statusCode == 200 outputs: articles: $response.body#/Data outputs: topCoins: $steps.getTopByVolume.outputs.topCoins rankedVolumes: $steps.getVolumeOverview.outputs.rankedVolumes articles: $steps.getMarketNews.outputs.articles