Calico Platform API

website·Indexed 31 days ago

https://docs.getcalico.com

API 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.

Tokens
26.9K
Snippets
132
Records
204
Agent score
44%

What's inside Calico

  1. Overview of the Calico Platform API

    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.
  2. 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.
  3. 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.
  4. Use TransactionCategorization for contract and network details

    The TransactionCategorization object 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 to STAKING or GENERIC_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 }
  5. 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).
  6. 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.
  7. Interpret AssetPosition details in GetAssets response

    The AssetPosition object 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.
  8. Manage account asset position providers

    Calico provides endpoints to manage providers used for querying account asset positions. You can add new providers by specifying the provider_id and connection details, list all providers currently connected to an account, or remove existing providers by passing the relevant provider information in the request body.
  9. 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.
  10. Reference IntegrationData object properties

    The IntegrationData object 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_code
  11. Understand 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.
  12. Understand the GetAssetsData response structure

    The GetAssetsData object returns a list of asset positions. Each AssetPosition contains 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