Calico Platform API
website·Indexed 31 days ago
https://docs.getcalico.comAPI for tracking digital asset holdings and transaction history across various exchanges and self-custodial wallets. Features include the Platform API v2 for retrieving consolidated asset balances, the Enterprise API for reporting, and Calico Connect for streamlined crypto account linking. Provides normalized data on user trading behavior, compliance monitoring, and asset positions via cursor-based pagination and OAuth2 authentication.
What's inside Calico
- The Calico Platform API enables integrations to retrieve cryptocurrency data for account holders. It provides capabilities to authenticate users, manage connected crypto sources (Providers), retrieve consolidated digital asset balances (Assets), and access normalized transaction histories (Transactions) across exchanges, custodial platforms, and self-custodial wallets.
Overview of Calico Enterprise API capabilities
The Calico Enterprise API allows enterprises to integrate digital asset data for clients, employees, or end-users into their workflows. Key capabilities include:
- Balances & Transactions: Real-time data from 700+ sources, including originating venue or blockchain info.
- Bulk Statistics: JSON reports on user/account counts, total balances across connected accounts, and top traded assets.
- User Lists: Data for powering reporting, dashboards, and charts.
- Simplified Auth: Enterprises use a single company token to access user-consented data instead of storing individual access tokens for every user.
Overview of Calico Assets Endpoints
The Assets endpoints provide a consolidated view of a user's digital asset balances aggregated from multiple sources, including exchanges, custodial platforms, and self-custodial wallets. This allows developers to track a user's total portfolio holdings (e.g., BTC held across both Coinbase and a private wallet) in a single API response without querying each source individually.Use TransactionCategorization for contract and network details
The
TransactionCategorizationobject provides metadata about the context of a transaction:protocol_name: The name of the protocol involved if the transaction interacts with a contract.contract_type: The semantic role of the contract, restricted toSTAKINGorGENERIC_YIELD_BEARING.network_name: The name of the network where the transaction occurred (e.g., "Ethereum" or "Optimism").
TransactionCategorization: type: object properties: protocol_name: { type: string } contract_type: { type: string, enum: [STAKING, GENERIC_YIELD_BEARING] } network_name: { type: string }Integrate user onboarding with Calico Connect
Calico Connect is an onboarding widget that allows users to connect their digital asset accounts to your platform with minimal integration effort (approximately three lines of code).Understand Calico Platform data capabilities
The Calico platform provides consolidated crypto portfolio data, including account balances and holdings across various exchanges and wallets, real-time transaction history, and tools for connected account management and authentication.Interpret AssetPosition details in GetAssets response
The
AssetPositionobject provides detailed information about a specific asset held by a user. Key fields include:asset_symbol: The currency symbol (e.g., BTC).asset_holdings: Quantity of the asset (excludes staked/locked quantities).staked_holdings: Quantity locked in staking contracts.price_in_usd: Current USD price for both staked and liquid holdings (nullable if unpriceable).provider_id: The entity holding the assets (e.g.,coinbase,gemini,kraken,binance-us,ethereum,bitcoin,fidelity).time_fetched: ISO-8601 UTC timestamp of the last update.connection_id: A unique UUID identifying the connected exchange or wallet.chain: The blockchain the asset is held on (e.g.,eth,polygon,bsc,base,optimism).token_address: The specific token address on the chain, if applicable.wallet_address_redacted: Masked wallet address for wallet-based sources.
Manage account asset position providers
Calico provides endpoints to manage providers used for querying account asset positions. You can add new providers by specifying theprovider_idand connection details, list all providers currently connected to an account, or remove existing providers by passing the relevant provider information in the request body.Understand Calico Platform API v2 response improvements
Calico Platform API v2 introduces normalized naming conventions and timestamp formats to ensure consistency across requests and responses. Additionally, all API responses now utilize a unified data model, providing a predictable structure regardless of the specific endpoint being called.Reference IntegrationData object properties
TheIntegrationDataobject provides details about a specific client integration. It is required to include the hosted domain, icon path, display name, client identifier, and a boolean indicating if the redirect includes an OAuth2 code.IntegrationData: type: object properties: icon: { type: string, description: 'Relative path to the icon for the client' } name: { type: string, description: 'Display name of the client' } hosted_domain: { type: string, description: 'Domain where the client experience is hosted' } client_id: { type: string, description: 'Client identifier generated by Auth0' } redirect_with_code: { type: boolean, description: 'Does the redirect after authentication include the OAuth2 code?' } required: - hosted_domain - icon - name - client_id - redirect_with_codeUnderstand Calico API versioning and lifecycle
Calico uses major version numbers in the API endpoint path to manage breaking changes. When a new major version is released:
- Documentation for older versions is frozen.
- Older versions are automatically deprecated.
- Older versions are sunset six months after the release of the new major version.
Understand the GetAssetsData response structure
TheGetAssetsDataobject returns a list of asset positions. EachAssetPositioncontains details about the asset symbol, holdings (excluding staked/locked), staked holdings, the time the data was fetched (ISO-8601 UTC), the current price in USD, the provider (exchange or chain), and a unique connection identifier.GetAssetsData: type: object properties: assets: type: array items: $ref: '#/components/schemas/AssetPosition' required: - assets