openapi: 3.2.0
info:
title: Bitculator Data Prices 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: Prices
description: 'The lightweight price hot path — current price, marketcap, 24h volume and recent
changes for a requested set of coins. `/prices` requires a selector (ids, slugs or
symbols); `/prices/{slug}` targets one coin. Optionally `convert` into a fiat
currency (crypto prices refresh ~every minute, fiat FX ~twice daily). Prices and
marketcap are decimal strings.'
paths:
/api/v1/prices:
get:
summary: Get prices
operationId: getPrices
description: 'Prices for a requested set of coins. Pass at least one selector — `ids`, `slugs`
or `symbols` (up to 100 combined). `meta.currency` echoes the conversion target
(USD unless `convert` is set).'
parameters:
- in: query
name: ids
description: Coin ids to price (CSV). At least one of ids, slugs or symbols is required; the three lists cap at 100 selectors combined. This field is required when none of slugs and symbols are present. Must not be greater than 1000 characters.
example: 38,39
required: false
schema:
type:
- string
- 'null'
description: Coin ids to price (CSV). At least one of ids, slugs or symbols is required; the three lists cap at 100 selectors combined. This field is required when none of slugs and symbols are present. Must not be greater than 1000 characters.
example: 38,39
- in: query
name: slugs
description: Coin slugs to price (CSV). At least one of ids, slugs or symbols is required. This field is required when none of ids and symbols are present. Must not be greater than 2000 characters.
example: bitcoin,ethereum
required: false
schema:
type:
- string
- 'null'
description: Coin slugs to price (CSV). At least one of ids, slugs or symbols is required. This field is required when none of ids and symbols are present. Must not be greater than 2000 characters.
example: bitcoin,ethereum
- in: query
name: symbols
description: Coin symbols to price (CSV, case-insensitive). At least one of ids, slugs or symbols is required. This field is required when none of ids and slugs are present. Must not be greater than 1000 characters.
example: BTC,ETH
required: false
schema:
type:
- string
- 'null'
description: Coin symbols to price (CSV, case-insensitive). At least one of ids, slugs or symbols is required. This field is required when none of ids and slugs are present. Must not be greater than 1000 characters.
example: BTC,ETH
- in: query
name: convert
description: Convert prices/marketcap into an active fiat currency by symbol (default USD). FX rates refresh ~twice daily.
example: EUR
required: false
schema:
type:
- string
- 'null'
description: Convert prices/marketcap into an active fiat currency by symbol (default USD). FX rates refresh ~twice daily.
example: EUR
enum:
- USD
- EUR
- JPY
- BGN
- CZK
- DKK
- GBP
- HUF
- PLN
- RON
- SEK
- CHF
- ISK
- NOK
- HRK
- RUB
- TRY
- AUD
- BRL
- CAD
- CNY
- HKD
- IDR
- ILS
- INR
- KRW
- MXN
- MYR
- NZD
- PHP
- SGD
- THB
- ZAR
- ARS
- DZD
- MAD
- TWD
responses:
'200':
description: ''
content:
application/json:
schema:
type: object
example:
data:
- id: 38
slug: bitcoin
symbol: BTC
name: Bitcoin
rank: 1
price: '63520.780763913'
marketcap: 1264646594448.5
volume_24h: 5345161962
change_24h: 1.35
change_7d: 4.98
change_rank_24h: 0
change_rank_7d: 0
last_updated: '2026-06-27T10:34:17+00:00'
- id: 39
slug: ethereum
symbol: ETH
name: Ethereum
rank: 2
price: '1672.4623100248'
marketcap: 203243220990.49
volume_24h: 69585141532
change_24h: 1.42
change_7d: 7.56
change_rank_24h: 0
change_rank_7d: 0
last_updated: '2026-06-12T09:32:14+00:00'
meta:
currency: USD
count: 2
properties:
data:
type: array
example:
- id: 38
slug: bitcoin
symbol: BTC
name: Bitcoin
rank: 1
price: '63520.780763913'
marketcap: 1264646594448.5
volume_24h: 5345161962
change_24h: 1.35
change_7d: 4.98
change_rank_24h: 0
change_rank_7d: 0
last_updated: '2026-06-27T10:34:17+00:00'
- id: 39
slug: ethereum
symbol: ETH
name: Ethereum
rank: 2
price: '1672.4623100248'
marketcap: 203243220990.49
volume_24h: 69585141532
change_24h: 1.42
change_7d: 7.56
change_rank_24h: 0
change_rank_7d: 0
last_updated: '2026-06-12T09:32:14+00:00'
items:
type: object
properties:
id:
type: integer
example: 38
slug:
type: string
example: bitcoin
symbol:
type: string
example: BTC
name:
type: string
example: Bitcoin
rank:
type: integer
example: 1
price:
type: string
example: '63520.780763913'
marketcap:
type: number
example: 1264646594448.5
volume_24h:
type: integer
example: 5345161962
change_24h:
type: number
example: 1.35
change_7d:
type: number
example: 4.98
change_rank_24h:
type: integer
example: 0
change_rank_7d:
type: integer
example: 0
last_updated:
type: string
example: '2026-06-27T10:34:17+00:00'
meta:
type: object
properties:
currency:
type: string
example: USD
count:
type: integer
example: 2
'422':
description: ''
content:
application/json:
schema:
type: object
example:
error:
code: validation
message: The request parameters are invalid.
details:
errors:
ids:
- 'Pass at least one selector: ids, slugs or symbols.'
properties:
error:
type: object
properties:
code:
type: string
example: validation
message:
type: string
example: The request parameters are invalid.
details:
type: object
properties:
errors:
type: object
properties:
ids:
type: array
example:
- 'Pass at least one selector: ids, slugs or symbols.'
items:
type: string
tags:
- Prices
/api/v1/prices/{slug}:
parameters:
- in: path
name: slug
description: The coin slug.
example: bitcoin
required: true
schema:
type: string
get:
summary: Get a coin price
operationId: getACoinPrice
description: 'Single-coin price snapshot. Optionally `convert` into an active fiat currency by
symbol (default USD).'
parameters:
- in: query
name: convert
description: Active fiat currency symbol to price in (default USD).
example: EUR
required: false
schema:
type:
- string
- 'null'
description: Active fiat currency symbol to price in (default USD).
example: EUR
responses:
'200':
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 38
slug: bitcoin
symbol: BTC
name: Bitcoin
rank: 1
price: '63520.780763913'
marketcap: 1264646594448.5
volume_24h: 5345161962
change_24h: 1.35
change_7d: 4.98
change_rank_24h: 0
change_rank_7d: 0
last_updated: '2026-06-27T10:34:17+00:00'
meta:
currency: USD
count: 1
properties:
data:
type: object
properties:
id:
type: integer
example: 38
slug:
type: string
example: bitcoin
symbol:
type: string
example: BTC
name:
type: string
example: Bitcoin
rank:
type: integer
example: 1
price:
type: string
example: '63520.780763913'
marketcap:
type: number
example: 1264646594448.5
volume_24h:
type: integer
example: 5345161962
change_24h:
type: number
example: 1.35
change_7d:
type: number
example: 4.98
change_rank_24h:
type: integer
example: 0
change_rank_7d:
type: integer
example: 0
last_updated:
type: string
example: '2026-06-27T10:34:17+00:00'
meta:
type: object
properties:
currency:
type: string
example: USD
count:
type: integer
example: 1
'404':
description: ''
content:
application/json:
schema:
type: object
example:
error:
code: not_found
message: Coin not found.
properties:
error:
type: object
properties:
code:
type: string
example: not_found
message:
type: string
example: Coin not found.
tags:
- Prices
/api/v1/historical-price:
get:
summary: Historical price
operationId: historicalPrice
description: 'The coin''s USD price on a given date, read from the daily history (exact day,
±3-day fallback — the same resolver the portfolio uses). Crypto only: fiat rows
have no daily history.'
parameters:
- in: query
name: slug
description: The coin's slug identifier.
example: bitcoin
required: true
schema:
type: string
description: The coin's slug identifier.
example: bitcoin
- in: query
name: date
description: date The lookup date (after 2008-12-31, not in the future).
example: '2021-04-14'
required: true
schema:
type: string
description: date The lookup date (after 2008-12-31, not in the future).
example: '2021-04-14'
responses:
'200':
description: ''
content:
application/json:
schema:
type: object
example:
data:
slug: bitcoin
symbol: BTC
date: '2021-04-14'
price: '63109.7'
currency: USD
properties:
data:
type: object
properties:
slug:
type: string
example: bitcoin
symbol:
type: string
example: BTC
date:
type: string
example: '2021-04-14'
price:
type: string
example: '63109.7'
currency:
type: string
example: USD
tags:
- Prices
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.