openapi: 3.2.0 info: title: Bitculator Data Conversion API description: 'Programmatic access to Bitculator market data: coins, prices, history, exchanges, trust scores, tickers, pairs, wallets, sentiment, technical indicators, liquidations, editorial content, and calculators.' version: 1.0.0 servers: - url: https://bitculator.com security: - default: [] tags: - name: Conversion description: 'Convert between any two active assets (crypto AND fiat), and list the currencies usable as conversion legs. Values are decimal strings. Fiat FX rates refresh ~twice daily; crypto rates ~every minute.' paths: /api/v1/convert: get: summary: Convert between assets operationId: convertBetweenAssets description: 'Server-side conversion between any two active assets (crypto AND fiat). `to` accepts a CSV for multi-target conversion; reversing is just swapping `from`/`to`. Conversion is linear, so `value = unit_rate * amount`. Fiat FX rates refresh ~twice daily; crypto rates ~every minute.' parameters: - in: query name: from description: Source asset slug. example: bitcoin required: true schema: type: string description: Source asset slug. example: bitcoin - in: query name: to description: Target asset slug(s), comma-separated (up to 10). example: ethereum required: true schema: type: string description: Target asset slug(s), comma-separated (up to 10). example: ethereum - in: query name: amount description: Amount of the source asset to convert (default 1). example: 2.5 required: false schema: type: - number - 'null' description: Amount of the source asset to convert (default 1). example: 2.5 responses: '200': description: '' content: application/json: schema: type: object example: data: from: slug: bitcoin symbol: BTC amount: 1 results: - slug: ethereum symbol: ETH value: '37.980395960595' properties: data: type: object properties: from: type: object properties: slug: type: string example: bitcoin symbol: type: string example: BTC amount: type: integer example: 1 results: type: array example: - slug: ethereum symbol: ETH value: '37.980395960595' items: type: object properties: slug: type: string example: ethereum symbol: type: string example: ETH value: type: string example: '37.980395960595' '404': description: '' content: application/json: schema: type: object example: error: code: not_found message: 'Unknown currency: dogecoinx.' properties: error: type: object properties: code: type: string example: not_found message: type: string example: 'Unknown currency: dogecoinx.' tags: - Conversion /api/v1/fiats: get: summary: List fiat currencies operationId: listFiatCurrencies description: 'The active fiat currencies with their USD FX rates: `rate_per_usd` (units per USD) and its inverse `usd_value`. Fiat FX rates refresh ~twice daily.' parameters: [] responses: [] tags: - Conversion /api/v1/rates: get: summary: List conversion rates operationId: listConversionRates description: 'The vs-currencies usable as conversion legs — the top fiats, coins and tokens — each with a normalized `usd_value` (USD per one unit). Coin/token values refresh ~every minute; the slow fiat rates are cached separately (~twice daily).' parameters: [] responses: [] tags: - Conversion components: securitySchemes: default: type: http scheme: bearer description: Create a Data API key in your developer console — keys are Bearer-only and carry the data-api ability. Keep them server-side; they are never meant for client-side embedding.