Connect to Crypto.com via Vezgo API

Accounts

Positions

Transactions

Support for Accounts, Positions and Transactions enabled.

Support for Positions & Balances:

  • Spot
  • Staking


Supported Transaction Types:

  • Deposits/Withdrawals, Trades, Rewards, Staking & Unstaking.


Additional Notes:

  • Import accounts with non-null balances (includes staked balances) from crypto.com exchange (not the mobile app).
  • Retrieve transactions history starting from 2016 (expect a delay in initial complete sync if your starting transactions are in later years).
  • Sub-accounts are not retrieved together with the master account, a separate API key-secret pair has to be created for each of them.

Full List of Integrations

Data mapping

A field-level guide to the Vezgo API data for Crypto.com — what each attribute means and where to read it — so you can map it into your own system.

DataWhere to read itSource on Crypto.com
Account & walletaccount.wallets[]Crypto.com connects with an Exchange API key + secret (no OAuth, no wallet address); a read-only key is recommended. A connection is a single custodial account, surfaced as one entry in account.wallets[] (key on wallet.id).
Balances / positionsaccount.balances[]Per-asset balances on the Crypto.com Exchange account. Each balance has ticker, amount, decimals and fiat_value (USD). asset_type is "crypto", "staked" for staking balances (provider_ticker carries a .staked suffix, e.g. ticker CRO, provider_ticker CRO.staked), or "cash_equivalent" for the USD balance. No ticker_address — exchange holdings are identified by ticker. Only assets with a known USD price are returned.
TransactionsGET /accounts/:id/transactionsSpot trades, staking / unstaking, rewards and bonuses, and crypto & fiat deposits / withdrawals. A trade carries its two legs (base + quote) as parts. See "How to read a transaction" below.
Assets / securitiesbalance.tickerIdentified by ticker (e.g. BTC, CRO). Staking balances strip the .staked suffix to the base ticker (read provider_ticker / asset_type to tell a staking balance apart). No ticker_address — custodial exchange balances are not on-chain tokens.
KYC dataGET /accounts/:id/kyc-dataCrypto.com exposes KYC (email, name, mobile, address, country code, account label / status) via the feature-gated KYC endpoint. Opt-in per team.

How to read a transaction

Each Crypto.com activity maps to a Vezgo transaction. Read the value movement from parts[], and classify with transaction_type / transaction_subtype:

  • Value movement — parts[] (direction sent/received, ticker, provider_ticker, amount, fiat_value in USD). A trade has two parts (the base leg + the quote leg); staking / unstaking also have two legs that share the base ticker but differ by provider_ticker (base vs base.staked). Deposits, withdrawals, rewards and bonuses have one part.
  • Type — transaction_type (trade / deposit / withdrawal / staking / unstaking / reward / bonus / other) with a finer transaction_subtype: onchain_deposit / offchain_deposit / fiat_deposit / transfer_in, onchain_withdrawal / offchain_withdrawal / fiat_withdrawal / transfer_out, staking_reward / interest_income, distribution / referral_bonus, and fees / cancel (on type "other"). Trades carry no subtype (read buy / sell from parts[].direction).
  • Fees — fees[] (the trade / network fee; fiat_value in USD, plus the native fee asset and amount).
  • Crypto deposits carry the source from_address; crypto withdrawals carry the destination to_address; both carry the blockchain transaction_hash. misc.origin_type is the raw Crypto.com journal type, returned UPPERCASE (e.g. ONCHAIN_DEPOSIT, STAKING_REWARDS, TRADING). misc.origin_id is an order id (order:<id>) for trades, the on-chain txid for history-sourced crypto deposits / withdrawals, or the Crypto.com journal id otherwise.
  • Duplication — a single on-chain deposit / withdrawal is reported twice: once from the journal (misc.origin_type the UPPERCASE journal type, with a transaction_subtype, no misc.status) and once from the deposit / withdrawal history (misc.origin_type "deposit" / "withdrawal", no subtype, with misc.status). Both copies share the same transaction_hash but have different misc.origin_id — de-duplicate crypto deposits / withdrawals by transaction_hash, not misc.origin_id.
// One Vezgo transaction = a Crypto.com activity (a trade's two legs reconciled into one)
const id   = tx.misc.origin_id;        // order:<id> (trade), on-chain txid (dep/wd history), or journal id
const kind = tx.misc.origin_type;      // raw Crypto.com journal type, UPPERCASE (ONCHAIN_DEPOSIT, STAKING_REWARDS, …)

const type    = tx.transaction_type;   // trade | deposit | withdrawal | staking | unstaking | reward | bonus | other
const subtype = tx.transaction_subtype;// onchain_deposit | fiat_withdrawal | staking_reward | … (trades: none)
const parts   = tx.parts ?? [];        // trade / staking / unstaking = 2 legs; else 1
const fees    = tx.fees ?? [];         // trade / network fee (fiat_value in USD)

if (tx.transaction_hash) { /* crypto deposit/withdrawal — parts carry from_address (deposit) / to_address (withdrawal) */ }
// A crypto deposit/withdrawal appears twice (journal + history copy) sharing transaction_hash —
// de-duplicate by transaction_hash, not misc.origin_id. No tokenTransfers/nftTransfers/internalTransfers arrays.
Where to read itAttributesWhat it is
tx.parts[]direction, ticker, provider_ticker, amount, fiat_value, from_address, to_addressValue movement. Trades, staking and unstaking have 2 legs (staking legs share ticker, differ by provider_ticker base vs base.staked); other activities have 1. Crypto deposits carry from_address, withdrawals carry to_address.
tx.transaction_type · transaction_subtypetrade/deposit/withdrawal/staking/unstaking/reward/bonus/other · onchain_deposit, fiat_withdrawal, staking_reward, referral_bonus, …Normalized classification — prefer these over the raw misc.origin_type. Subtypes refine non-trade activity; trades carry no subtype (read buy / sell from parts[].direction).
tx.fees[] · tx.transaction_hashfees: ticker, amount, fiat_value · transaction_hashTrade / network fee (native asset + USD value). transaction_hash is the blockchain hash, present on crypto deposits / withdrawals.

misc.origin_type is Crypto.com's raw journal type, returned UPPERCASE (history-sourced crypto deposits / withdrawals instead carry the lowercase "deposit" / "withdrawal"). Always classify off transaction_type. Common values:

  • ONCHAIN_DEPOSIT
  • ONCHAIN_WITHDRAWAL
  • TRANSFER_IN
  • TRANSFER_OUT
  • FIAT_CIRCLE_DEPOSIT
  • FIAT_CIRCLE_WITHDRAWAL
  • STAKING_REWARDS
  • CRO_LOCKUP_REWARD
  • SUPERCHARGER_REWARD
  • AIRDROP
  • REFERRAL_BONUS
  • TRADE_FEE
  • deposit
  • withdrawal

Supported

  • Crypto and USD (cash_equivalent) balances
  • Staking balances (asset_type staked) and staking / unstaking
  • Spot trades (legs reconciled into one transaction)
  • Crypto and fiat deposits / withdrawals (crypto with from / to address and transaction_hash)
  • Staking rewards, interest, airdrops and referral bonuses
  • KYC data (feature-gated)
  • USD fiat valuation for balances and transactions

Notes & limitations

  • Balances are the exchange's reported (custodial) holdings — there is no on-chain wallet address for balances.
  • Only assets with a known USD price are returned as balances; an asset with no price is omitted.
  • transaction_hash and the on-chain address are present only on crypto deposits / withdrawals (deposits carry from_address, withdrawals carry to_address); fiat and internal transfers have neither.
  • A single on-chain deposit / withdrawal is reported twice — once from the journal and once from the deposit / withdrawal history (sharing transaction_hash, different misc.origin_id); de-duplicate crypto deposits / withdrawals by transaction_hash.
  • Transactions are fetched in rolling one-year windows from the last sync; very old history is filled in incrementally over successive syncs.
  • Values are USD; balances are valued in USD.
See the full Vezgo object reference

Try to connect to Crypto.com in our Demo Sandbox

Open Demo

Let's get you started

To get your API Keys, sign up on the portal or reach out to the team at sales@vezgo.com

You have questions? Contact us