Skip to content

Arkham Intel API (1.0.0)

Arkham Intelligence official API documentation

The Arkham API provides direct query access to Ultra, our proprietary AI-powered algorithmic address matching engine, enabling sophisticated users to customize data flows and integrate them into their existing systems.

Through the API, users can write custom queries to access a list of Arkham labels, as well as transaction logs and historical balance data for addresses and entities.

Institutions that onboard to the Arkham Exchange automatically qualify for access to this API.

The deprecated API documentation is available here in multiple languages; however, please note that it is no longer being updated.


⚠️ IMPORTANT: API-Key

All API requests MUST include a valid API-Key header. Requests without this header will be rejected with an unauthorized response.

To authenticate with Arkham's API, simply provide a valid API-Key in the header of your request. To apply for API access to our platform, visit: https://info.arkm.com/api-platform.

Endpoints

Our root URL is https://api.arkm.com.

Rate limits

Our API uses tier-based rate limits with different limits for different endpoints:

Standard Rate Limits

For the Basic API tier, most endpoints allow up to 20 requests per second with a small additional burst allowance for occasional spikes beyond that threshold.

Heavy Endpoints Rate Limits

Some resource-intensive endpoints have lower rate limits of 1 request per second:

  • /transfers
  • /swaps
  • /counterparties/address/{address}
  • /counterparties/entity/{entity}
  • /token/top_flow/{id}
  • /token/top_flow/{chain}/{address}
  • /token/volume/{id}
  • /token/volume/{chain}/{address}
  • /transfers/histogram

Note: These heavy endpoints are computationally intensive and query large amounts of data, hence the stricter rate limits to ensure platform stability.

If you are consistently hitting the default rate limit we have set for our API you can apply for a rate limit increase here.


Security and Privacy

All data on our platform—including your private labels—is stored securely, using state-of-the-art encryption both at rest and in transit, along with strict access controls to ensure your information remains confidential. For further details on our security and privacy measures, please refer to our Privacy Policy.

Download OpenAPI description
Overview
License
Languages
Servers
Mock server
https://docs.intel.arkm.com/_mock/openapi/
Production server
https://api.arkm.com/

Health

API Health check

Operations

Chains

View full list of supported blockchains.

Operations

Transfers

Provides endpoints for retrieving blockchain transfer and swap activity. These include detailed transfer lists, aggregated histograms for analyzing transfer trends over time, and DEX swap data, all filterable by various query parameters.

Operations

Get transfers

Request

Retrieves a list of transfers based on various query filters.

Rate Limit: This endpoint has a stricter rate limit of 1 request per second.

Filter parameters:

  • base: Filter by specific entity or address. For example, "0x123abc" or "binance".
  • chains: Specify a comma-separated list of chains (e.g. "ethereum,bsc").
  • flow: Direction of the transfer. Valid values are "in" (incoming), "out" (outgoing), "self" (self-transfers), or "all".
  • from: Comma-separated list of addresses, entities, or deposit services for the 'from' side of a transfer. You can also use special syntax like "type:cex" to filter on entity types or "deposit:binance" to filter on deposit addresses.
  • to: Comma-separated list of addresses, entities, or deposit services for the 'to' side.
  • tokens: Comma-separated list of token addresses or token IDs. E.g. "ethereum", "usd-coin", or "0x...tokenAddress".
  • counterparties: Comma-separated list of addresses or entities to treat strictly as counterparties (only base <-> counterparty transfers).
  • timeLast: Filter transfers from a recent duration. For example, "24h" returns transfers from the last 24 hours.
  • timeGte/timeLte: Filter from/to a specific timestamp in milliseconds.
  • valueGte/valueLte: Numeric filters on the raw token amount (on-chain units).
  • usdGte/usdLte: Numeric filters on the historical USD value of the transfer.
  • sortKey: Field by which to sort the results. Options include "time", "value", or "usd".
  • sortDir: Sorting direction. Use "asc" for ascending or "desc" for descending.
  • limit: Maximum number of results to return (default is 50).
  • offset: Pagination offset (default is 0).
Security
ApiKeyAuth
Query
basestring

Filter by specific entity or address. For example: "0x123abc" or "binance".

chainsstring

Comma-separated list of chains. For example: "ethereum,bsc".

flowstring

Transfer direction: "in" for incoming, "out" for outgoing, "self" for self-transfers, or "all" for all transfers.

Enum"in""out""self""all"
fromstring

Comma-separated list of addresses, entities, or deposit services for the 'from' side. You can also use special syntax like "type:cex" to filter on entity types or "deposit:binance" to filter on deposit addresses.

tostring

Comma-separated list of addresses, entities, or deposit services for the 'to' side.

tokensstring

Comma-separated list of token addresses or token IDs. E.g. "ethereum", "usd-coin", or "0x...tokenAddress".

counterpartiesstring

Comma-separated list of addresses or entities to treat strictly as counterparties (only base <-> counterparty transfers).

timeLaststring

Time range filter using relative durations. For example: "24h" for transfers in the last 24 hours, "7d" for last 7 days.

timeGtestring

Time range filter (from) in milliseconds (e.g. 1696630274000).

timeLtestring

Time range filter (to) in milliseconds (e.g. 1696716674000).

valueGtenumber

Minimum raw token value (on-chain units).

valueLtenumber

Maximum raw token value (on-chain units).

usdGtenumber

Minimum historical USD value.

usdLtenumber

Maximum historical USD value.

sortKeystring
Enum"time""value""usd"
sortDirstring
Enum"asc""desc"
limitinteger

Maximum number of results to return.

Default 50
offsetinteger

Pagination offset.

Default 0
curl -i -X GET \
  'https://docs.intel.arkm.com/_mock/openapi/transfers?base=string&chains=string&flow=in&from=string&to=string&tokens=string&counterparties=string&timeLast=string&timeGte=string&timeLte=string&valueGte=0&valueLte=0&usdGte=0&usdLte=0&sortKey=time&sortDir=asc&limit=50&offset=0' \
  -H 'API-Key: YOUR_API_KEY_HERE'

Responses

Successful list of transfers

Bodyapplication/json
transfersArray of objects(Transfer)
countinteger
Example: 10
Response
application/json
{ "transfers": [ {} ], "count": 10 }

WebSocket Transfer Streaming

Request

WebSocket endpoint for streaming real-time blockchain transfers. Connect to wss://api.arkm.com/ws/transfers with API-Key header..

Authentication: Include your API-Key as a header during the WebSocket connection handshake.

Client Messages:

  • subscribe - Create a new filter to receive matching transfers

    {
      "id": "1",
      "type": "subscribe",
      "payload": {
        "filters": {
          "from": ["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"],
          "to": ["binance", "coinbase"],
          "chains": ["ethereum"],
          "tokens": ["USDT"],
          "usdGte": 100000
        }
      }
    }
  • unsubscribe - Remove an existing filter by ID

    {
      "id": "2",
      "type": "unsubscribe",
      "payload": {
        "filterId": 123
      }
    }
  • reconnect - Restore a previous session within 5 minutes of disconnection

    {
      "id": "3",
      "type": "reconnect",
      "payload": {
        "sessionId": "ws_abc_123"
      }
    }

Server Messages:

  • transfer - Real-time transfer notification matching your filters Example:

    {
      "type": "transfer",
      "payload": {
        "transfer": {
          "id": "0xc99175260fd56ae461c7dce8d5f79e8aee068225ac5237932594880b277a87d1_502",
          "transactionHash": "0xc99175260fd56ae461c7dce8d5f79e8aee068225ac5237932594880b277a87d1",
          "fromAddress": {
            "address": "0x28C6c06298d514Db089934071355E5743bf21d60",
            "chain": "ethereum",
            "arkhamEntity": {
              "name": "Binance",
              "note": "",
              "id": "binance",
              "type": "cex",
              "service": null,
              "addresses": null,
              "website": "https://binance.com",
              "twitter": "https://twitter.com/binance",
              "crunchbase": "https://www.crunchbase.com/organization/binance",
              "linkedin": "https://www.linkedin.com/company/binance"
            },
            "arkhamLabel": {
              "name": "Hot Wallet",
              "address": "0x28C6c06298d514Db089934071355E5743bf21d60",
              "chainType": "evm"
            },
            "isUserAddress": false,
            "contract": false
          },
          "fromIsContract": false,
          "toAddress": {
            "address": "0x401a39874f38a254a192bf58Dc52eD2A5078535D",
            "chain": "ethereum",
            "isUserAddress": false,
            "contract": false
          },
          "toIsContract": false,
          "tokenAddress": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
          "type": "token",
          "blockTimestamp": "2025-08-28T11:01:35Z",
          "blockNumber": 23239187,
          "blockHash": "0xb75f0e8d59bd5f1a72d4ba54e3576a750580735b3c1bf34a9fbd73b2251c963e",
          "tokenName": "Tether USD",
          "tokenSymbol": "USDT",
          "tokenDecimals": 6,
          "unitValue": 503.9,
          "tokenId": "tether",
          "historicalUSD": 503.9,
          "chain": "ethereum"
        },
        "alertId": 49
      }
    }
  • ack - Acknowledgment for successful operations Example (subscribe success):

    {
      "type": "ack",
      "payload": {
        "messageId": "1",
        "success": true,
        "message": "Filter created successfully",
        "data": {
          "filterId": 49,
          "sessionId": "ws_ad5c5dbb_1756378801"
        }
      }
    }
  • error - Error notifications for various failure scenarios Example (rate limited):

    {
      "type": "error",
      "payload": {
        "code": "TIER_RATE_LIMITED",
        "limitType": "minutely",
        "message": "You have reached your per-minute WebSocket notification limit. Limit resets in 45 seconds.",
        "resetIn": 45
      }
    }

Rate Limits:

  • 10,000 transfers per hour
  • 1,000,000 transfers per month
  • 1 API credit consumed per transfer sent

Filter Requirements:

  • Must include at least one of: from, to, tokens, base, or usdGte >= 10,000,000
  • Initial transfers may take up to 90 seconds after subscribing
Security
ApiKeyAuth
curl -i -X GET \
  https://docs.intel.arkm.com/_mock/openapi/ws/transfers \
  -H 'API-Key: YOUR_API_KEY_HERE'

Responses

WebSocket connection upgrade successful

Response
No content

Get a simple histogram of transfers (Public)

Request

Returns a simplified aggregated histogram of transfers over time. This is a public endpoint with basic rate limiting.

Note: For the full-featured histogram endpoint with all filter options, use /transfers/histogram which requires API authentication.

Security
ApiKeyAuth
Query
basestring

Filter by specific entity or address

chainsstring

Comma-separated list of chains

flowstring

Transfer direction

Enum"in""out""self""all"
timeLaststring

Time range filter (e.g. "24h", "7d")

timeGtestring

Start time in milliseconds

timeLtestring

End time in milliseconds

curl -i -X GET \
  'https://docs.intel.arkm.com/_mock/openapi/transfers/histogram/simple?base=string&chains=string&flow=in&timeLast=string&timeGte=string&timeLte=string' \
  -H 'API-Key: YOUR_API_KEY_HERE'

Responses

Successful histogram data

Bodyapplication/jsonArray [
timestring(date-time)
Example: "2025-03-31T00:00:00Z"
countinteger
Example: 17
usdnumber
Example: 983
]
Response
application/json
[ { "time": "2025-03-31T00:00:00Z", "count": 17, "usd": 983 } ]

Transaction

Provides an endpoint for retrieving detailed information about a specific blockchain transaction using its hash. The response includes metadata such as block number, timestamp, sender and recipient addresses, gas usage, fees, value in native units and USD, and token details.

Operations

Token exchange movements

Provides an endpoint for analyzing token activity across centralized and decentralized exchanges. This includes ranking tokens by volume, inflows, outflows, netflows, and other metrics over customizable time intervals, with support for filtering by chain, market cap, and specific tokens.

Operations

User entities

Provides endpoints for managing custom entities created by an authenticated user. Entities can be retrieved in bulk or individually, with support for including associated blockchain addresses.

Operations

Entity bulk update

Provides endpoints for updating custom entities in bulk. Entities can be fully overwritten (replacing details and address sets) or incrementally updated by adding new addresses without removing existing ones.

Operations

Intelligence

Provides AI-powered intelligence endpoints for analyzing blockchain addresses, entities, contracts, and tokens. These endpoints return enriched insights such as tagging data, entity associations, predicted addresses, contract metadata, and token information across multiple chains.

Operations

History

Provides endpoints for retrieving historical analytics on blockchain entities and addresses. Returns time-series USD value snapshots to help analyze changes over time.

Operations

Portfolio

Provides endpoints for managing and tracking entity and address portfolios. Includes historical snapshots, daily time-series data, and cross-chain portfolio analytics.

Operations

Token

Provides endpoints for retrieving token-related information, including holders, flows, volumes, trending tokens, and balances across chains. These endpoints allow analysis of token distribution, trading activity, and ownership at both entity and address levels.

Operations

Market Data

Provides an endpoint for accessing market data and analytics, including indices and metrics that track token and altcoin performance relative to the broader market.

Operations

ARKM

Provides endpoints related to the ARKM token and Arkham Exchange tokens, including supply information and token listings.

Operations

Networks

Provides endpoints for monitoring blockchain networks and retrieving chain-specific historical data, including current status and historical quotes.

Operations

Balances

Provides endpoints for tracking and retrieving token balances for blockchain addresses and entities, with optional filtering by chain.

Operations

Loans

Provides endpoints for tracking loan and borrow positions on-chain, including supplied, borrowed, and outstanding assets for addresses and entities.

Operations

Counterparties

Provides endpoints for analyzing counterparty activity, aggregating top counterparties by volume for addresses and entities. Supports filtering by transfer direction, chain, token, time range, and transaction value.

Operations

Labels

Provides endpoints for managing user-defined labels, including creating, retrieving, updating, and deleting labels associated with blockchain addresses.

Operations

Flow

Provides endpoints for analyzing historical USD flows for addresses and entities across supported chains, including inflows, outflows, and running totals over time.

Operations