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.