TABLE OF CONTENTS

How to Get Arc Chain Token Prices and Market Data With an API

Ru Jun Ang
|
Edited by
Brian Lee
-
Make us preferred on Google

TLDR

CoinGecko API covers Arc Chain token lookup, price data, and pool data:

Circle, the company behind USDC, launched Arc, a Layer-1 blockchain built for stablecoin finance. Developers now need a reliable way to access Arc token prices, market caps, and liquidity data programmatically.

This guide shows you how to use the CoinGecko and GeckoTerminal APIs to retrieve price and market data for any token deployed on Arc, whether it is a stablecoin, DeFi token, or future native network asset.

Note: CoinGecko has unified its API with the GeckoTerminal API, so standard market data and onchain DEX data are now accessible through a single CoinGecko API key. You don't need a separate account or API key.

How to Get Arc Chain Token Prices and Market Data With an API

Prerequisites

You'll need a CoinGecko API key. If you don't have one, follow the guide to get a free Demo API key. The Demo plan provides everything you need to follow this guide and run the examples.

Your API key type must match the base URL and authentication header used in your requests. All examples in this guide use the Demo configuration. For paid plans, use the Paid configuration instead.

Key type

Base URL

Header

Demo

https://api.coingecko.com/api/v3

x-cg-demo-api-key

Paid

https://pro-api.coingecko.com/api/v3

x-cg-pro-api-key

To run the full script included at the end of this guide, you'll need Python 3.8+. Install the official SDK and requests:

pip install coingecko-sdk requests

💡 Prefer less setup? You can call these endpoints with CoinGecko's official Python SDK or TypeScript SDK instead of raw HTTP requests. The SDK handles the base URL, headers, and authentication for you, so there is less boilerplate to write.


How to Identify a Token on Arc Chain by Contract Address

CoinGecko API and GeckoTerminal API provide two ways to look up a token on Arc Chain by contract address. Both calls use Circle Wrapped BTC (cirBTC) as the example token.

Coin Data by Token Address

/coins/{asset_platform_id}/contract/{contract_address} returns full metadata once a token has been reviewed and listed.

curl --request GET \
  --url 'https://api.coingecko.com/api/v3/coins/arc/contract/0x171a4217b86a807a64eb94757db6849fb4bdbaa0' \
  --header 'x-cg-demo-api-key: <api-key>'

Here’s what the response looks like:

{

  "id": "circle-wrapped-btc",

  "symbol": "cirbtc",

  "name": "Circle Wrapped BTC",

  "asset_platform_id": "ethereum",

  "platforms": {

    "arc": "0x171a4217b86a807a64eb94757db6849fb4bdbaa0",   

    "ethereum": "0x72dfb2e44f59c5ad2bafe84314e5b99a7cd5075e"

  }

Token Data by Token Address

/onchain/networks/{network}/tokens/{address} automatically indexes tokens once they have an active liquidity pool.

curl --request GET \
  --url 'https://api.coingecko.com/api/v3/onchain/networks/arc/tokens/0x171a4217b86a807a64eb94757db6849fb4bdbaa0' \
  --header 'x-cg-demo-api-key: <api-key>'

Here’s what the response looks like:

{

  "data": {

    "id": "arc_0x171a4217b86a807a64eb94757db6849fb4bdbaa0",

    "type": "token",

    "attributes": {

      "address": "0x171a4217b86a807a64eb94757db6849fb4bdbaa0",

      "name": "Circle Wrapped BTC",

      "symbol": "cirbtc",

      "decimals": 8,

      "coingecko_coin_id": "circle-wrapped-btc",

      "price_usd": "75748.9838130729",

      "fdv_usd": "9156840.63875057",

      "market_cap_usd": null

    }

  }

}

How to Get a Coin's ID and Metadata on Arc Chain

The token's id comes from the Coin Data by Token Address response in the previous section. In this example, the id is circle-wrapped-btc. This id is used with other endpoints that require a coin ID. The contract address should not be used in place of the id, and the id should be resolved from the contract address rather than hardcoded.

Coin Data by ID

/coins/{id} returns the token's metadata, including the platforms field, which lists the chains where the token is deployed. USDC, which is used to pay gas fees on Arc is deployed on 30+ chains:

curl --request GET \
  --url 'https://api.coingecko.com/api/v3/coins/usd-coin?localization=false&market_data=false&tickers=false' \
  --header 'x-cg-demo-api-key: <api-key>'

The API returns the following:

{

  "id": "usd-coin",

  "symbol": "usdc",

  "name": "USDC",

  "platforms": {

    "ethereum": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",

    "base": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",

    "solana": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",

    "arc": "0x3600000000000000000000000000000000000000"

  }

}

Token Info by Token Address

/onchain/networks/{network}/tokens/{address}/info provides an independent way to verify whether a token has been reviewed and listed on CoinGecko using its contract address.

It also includes the image object (logo thumbnails), description, websites, social links, categories, and holder distribution, providing the metadata needed to build a fuller token profile beyond price and market data.

curl --request GET \
  --url 'https://api.coingecko.com/api/v3/onchain/networks/arc/tokens/0x171a4217b86a807a64eb94757db6849fb4bdbaa0/info' \
  --header 'x-cg-demo-api-key: <api-key>'

The API returns the following:

{

  "data": {

    "attributes": {

      "name": "Circle Wrapped BTC",

      "symbol": "cirbtc",

      "coingecko_coin_id": "circle-wrapped-btc",

      "gt_score": 71.58,

      "gt_verified": true

    }

  }

}

How to Fetch Real-Time Price and Market Cap for Tokens on Arc Chain

For tokens already listed on CoinGecko, use /simple/token_price/{id} to retrieve current price and market cap. For tokens that aren't listed yet, use /onchain/simple/networks/{network}/token_price/{addresses} to access onchain price and market data

Coin Price by Token Addresses

/simple/token_price/{id} where {id} is the asset platform ID.

curl --request GET \
  --url 'https://api.coingecko.com/api/v3/simple/token_price/arc?contract_addresses=0x171a4217b86a807a64eb94757db6849fb4bdbaa0&vs_currencies=usd&include_market_cap=true&include_24hr_vol=true&include_24hr_change=true' \
  --header 'x-cg-demo-api-key: <api-key>'

Here’s what the response looks like:

{

  "0x171a4217b86a807a64eb94757db6849fb4bdbaa0": {

    "usd": 75772,

    "usd_market_cap": 0,

    "usd_24h_vol": 6210950.34,

    "usd_24h_change": null

  }

}

Token Price by Token Addresses

/onchain/simple/networks/{network}/token_price/{addresses} for tokens with active onchain markets.

curl --request GET \
  --url 'https://api.coingecko.com/api/v3/onchain/simple/networks/arc/token_price/0x171a4217b86a807a64eb94757db6849fb4bdbaa0?include_market_cap=true' \
  --header 'x-cg-demo-api-key: <api-key>'

Here’s what the response looks like:

{

  "data": {

    "attributes": {

      "token_prices": {

        "0x171a4217b86a807a64eb94757db6849fb4bdbaa0": "75748.9838130729"

      },

      "market_cap_usd": {

        "0x171a4217b86a807a64eb94757db6849fb4bdbaa0": "0.0"

      }

    }

  }

}

How to Retrieve Historical Price Data for Arc Chain Tokens

CoinGecko API provides two endpoints for historical token data, depending on whether you need time-series data or OHLC data.

For line charts, dashboards, or alerts: Coin Historical Chart Data by Token Address ( /coins/{asset_platform_id}/contract/{contract_address}/market_chart) returns simple [timestamp, value] pairs for price, market cap, and volume.

curl --request GET \
  --url 'https://api.coingecko.com/api/v3/coins/arc/contract/0x171a4217b86a807a64eb94757db6849fb4bdbaa0/market_chart?vs_currency=usd&days=7' \
  --header 'x-cg-demo-api-key: <api-key>'

The API returns the following:

{

  "prices": [

    [1789524000000, 75639.72013073205],

    [1789527600000, 75744.87899694742],

    [1789531200000, 75680.90709845201]

  ]

}

Even though days=7 was requested, the response only contains 16 hourly points spanning roughly 14 hours (from 02:00 UTC to 16:15 UTC on September 16, 2026) — because that's all the trading history that exists. This is exactly the shorter-history behavior newly launched Arc tokens will show until more trading history accumulates.

Each timestamp is in milliseconds. Convert it to a readable date and time before plotting or printing it. Here’s the prices array in code and as a chart:

from datetime import datetime, timezone

timestamp_ms, price = 1789524000000, 75639.72013073205
readable_date = datetime.fromtimestamp(timestamp_ms / 1000, tz=timezone.utc)
print(f"{readable_date}: ${price}")

Circle Wrapped BTC (cirBTC) hourly price history for the last 7 days on Arc Chain, returned by the CoinGecko API market_chart endpoint

For candlestick charts or technical-analysis indicators: Coin OHLC Chart by ID (/coins/{id}/ohlc) returns [timestamp, open, high, low, close]per interval. The candle interval is determined by the requested date range: 30-minute candles for 1–2 days, 4-hour candles for 3–30 days, and 4-day candles for 31+ days.

curl --request GET \
  --url 'https://api.coingecko.com/api/v3/coins/circle-wrapped-btc/ohlc?vs_currency=usd&days=7' \
  --header 'x-cg-demo-api-key: <api-key>'

The API returns the following:

[

  [1789531200000, 75640.0, 75883.0, 75632.0, 75684.0],

  [1789545600000, 75681.0, 75906.0, 75587.0, 75632.0],

  [1789560000000, 75620.0, 76054.0, 75283.0, 76053.0],

  [1789574400000, 76053.0, 76087.0, 75413.0, 75791.0]

]

Each candle represents the open, high, low, and close (OHLC) for that interval, rather than a single price point:

Circle Wrapped BTC (cirBTC) 4-hour OHLC candlestick chart for the last 7 days on Arc Chain, returned by the CoinGecko API ohlc endpoint

If you need an exact date range with a fixed interval instead of auto-selected granularity, use Coin OHLC Chart within Time Range by ID (/coins/{id}/ohlc/range). It requires the Analyst plan or above.

For newly launched tokens on Arc Chain, historical data will build up as trading activity begins. If only a few hours or days of data are available, the response will reflect that shorter history. With auto-selected granularity, the API automatically adjusts the candle interval to match the requested date range, giving you finer-grained data when the available history is still limited.

💡 Token not listed on CoinGecko yet? The endpoints above use a CoinGecko id for listed tokens. For unlisted tokens, Pool OHLCV Chart by Pool Address and Token OHLCV Chart by Token Address let you retrieve candlestick data using a pool or token address.

Subscribe to CoinGecko API now!


How to Find Liquidity Pools for Tokens on Arc Chain

Top Pools by Token Address (/onchain/networks/{network}/tokens/{token_address}/pools) returns the pools where a token trades, ranked by liquidity. Price data typically comes from these liquidity pools on decentralized exchanges.

curl --request GET \
  --url 'https://api.coingecko.com/api/v3/onchain/networks/arc/tokens/0x171a4217b86a807a64eb94757db6849fb4bdbaa0/pools' \
  --header 'x-cg-demo-api-key: <api-key>'

The endpoint returns:

{

  "data": [

    {

      "attributes": {

        "name": "cirbtc / USDC 0.01%",

        "address": "0x82916bee18fcef517b26c72d7cb5f13694e1db41",

        "reserve_in_usd": "10941775.8789",

        "fdv_usd": "9178493.07404261"

      }

    }

  ]

}

If you need to filter pools across a network by liquidity, volume, age, or other criteria, Pool Megafilter (/onchain/pools/megafilter) lets you filter across thousands of pools in a single request. It requires the Analyst plan or above.

This can be useful when evaluating newly launched tokens, where liquidity may be limited and prices can vary between pools. The checks parameter supports additional screening, including no_honeypot, which excludes pools flagged by GoPlus and De.Fi Scanner, and good_gt_score, which requires a GT Score of at least 75.

The GT Score ranges from 0 to 100 and combines market activity and liquidity with security and supply signals, including honeypot status, buy and sell taxes, unverified contracts, mint or freeze authority, and supply concentration. The score is calculated at the pool level, so the same token can have different scores across pools.

These capabilities help developers quickly identify pools that meet specific liquidity, market activity, and security criteria, making Megafilter useful for monitoring newly launched tokens across multiple networks.


What to Do If a Token on Arc Chain Isn't Indexed Yet

If a token isn’t listed on CoinGecko, the API response is different from a standard token lookup. Here’s a real example using a currently unlisted token on Arc to show the actual response.

A contract-address lookup using CoinGecko's API returns a 404 when the token isn't listed:

curl --request GET \
  --url 'https://api.coingecko.com/api/v3/coins/arc/contract/0xa39c8e2ceb2a0f9d6e9d059f5e470edfda691c15' \
  --header 'x-cg-demo-api-key: <api-key>'

The endpoint returns:

{

  "error": "coin not found"

}

The same token already exists on GeckoTerminal because its onchain indexing doesn't require a review. Tokens are indexed automatically once a pool exists:

curl --request GET \
  --url 'https://api.coingecko.com/api/v3/onchain/networks/arc/tokens/0xa39c8e2ceb2a0f9d6e9d059f5e470edfda691c15/info' \
  --header 'x-cg-demo-api-key: <api-key>'

The endpoint returns:

{

  "data": {

    "attributes": {

      "name": "Arc Inu",

      "symbol": "AI",

      "image_url": null,

      "websites": [],

      "description": null,

      "coingecko_coin_id": null,

      "gt_score": 39.8,

      "gt_verified": false,

      "is_honeypot": "unknown"

    }

  }

}

The gt_score and gt_verified fields provide additional context about a token without affecting whether it is indexed. Tokens remain queryable for price and pool data regardless of their gt_score or gt_verified value. GeckoTerminal automatically indexes tokens and syncs basic information from onchain and third-party sources when they launch, making it useful for accessing market data for newly launched tokens before they are listed on CoinGecko.

A gt_verified: true value means CoinGecko has verified the submitted token information, including its website, social links, and contract address. This confirms the information provided by the project but does not represent an endorsement or guarantee the project's safety. See GT Verified Badge for details.

For Arc Inu, image_url, websites, and description return null because no token information has been submitted or synced yet. Other unverified tokens may already have automatically synced information in these fields. The is_honeypot provides an additional security signal and may return "unknown" when there is no definitive result. To exclude pools flagged as honeypots, use Megafilter endpoint's checks=no_honeypot parameter.


How to Build a Reusable Token Lookup Script

The official CoinGecko Python SDK combines the steps above into a single workflow. Pass in a contract address and network to retrieve token identification and metadata. You can also retrieve price, historical data, and pool information for tokens on Arc Chain.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import os
from coingecko_sdk import Coingecko

client = Coingecko(
    demo_api_key=os.environ["COINGECKO_DEMO_API_KEY"],
    environment="demo",
)

def lookup_token(asset_platform_id: str, network_id: str, contract_address: str) -> None:
    """Look up a token by contract address across CoinGecko and GeckoTerminal."""

    # Step 1: try CoinGecko's curated database first
    try:
        coin = client.coins.contract.get(contract_address, id=asset_platform_id)
        coingecko_id = coin.id
        print(f"Listed on CoinGecko as '{coingecko_id}' ({coin.name})")
    except Exception:
        coingecko_id = None
        print("Not yet listed on CoinGecko's curated database.")

    # Step 2: always check GeckoTerminal, which indexes independently and faster
    onchain_info = client.onchain.networks.tokens.info.get(
        contract_address, network=network_id
    )
    token_attrs = onchain_info.data.attributes
    print(f"Onchain as '{token_attrs.symbol}': GT Score {token_attrs.gt_score:.1f}, "
          f"honeypot status: {token_attrs.is_honeypot}")

    # Step 3: current price and market cap
    if coingecko_id:
        price = client.simple.token_price.get_id(
            asset_platform_id,
            contract_addresses=contract_address,
            vs_currencies="usd",
            include_market_cap=True,
        )
        print("Price (CoinGecko):", price)
    else:
        onchain_price = client.onchain.simple.networks.token_price.get_addresses(
            contract_address, network=network_id, include_market_cap=True,
            mcap_fdv_fallback=True,
        )
        print("Price (GeckoTerminal, FDV fallback):", onchain_price.data.attributes.token_prices)

    # Step 4: historical data, only if listed on CoinGecko
    if coingecko_id:
        history = client.coins.contract.market_chart.get(
            contract_address, id=asset_platform_id, vs_currency="usd", days="7",
        )
        print(f"{len(history.prices)} historical price points over the last 7 days")

    # Step 5: pools and liquidity
    pools = client.onchain.networks.tokens.pools.get(
        contract_address, network=network_id, include="base_token,quote_token",
    )
    for pool in pools.data[:3]:
        print(f"Pool: {pool.attributes.name}: ${float(pool.attributes.reserve_in_usd):,.0f} liquidity")

if __name__ == "__main__":
    # Circle Wrapped BTC (cirBTC) on Arc Chain — Circle's institutional
    # wrapped-BTC asset, live on Arc since launch.
    lookup_token(
        asset_platform_id="arc",
        network_id="arc",
        contract_address="0x171a4217b86a807a64eb94757db6849fb4bdbaa0",
    )
token_lookup.py hosted with ❤ by GitHub view raw

Running this script produces output like the following:

Listed on CoinGecko as 'circle-wrapped-btc' (Circle Wrapped BTC)

Onchain as 'cirbtc': GT Score 71.6, honeypot status: unknown

Price (CoinGecko): {'0x171a4217b86a807a64eb94757db6849fb4bdbaa0': TokenPriceGetIDResponseItem(last_updated_at=None, usd=75784.0, usd_24h_change=None, usd_24h_vol=None, usd_market_cap=0.0)}

16 historical price points over the last 7 days

Pool: cirbtc / USDC 0.01%: $10,942,823 liquidity

Pool: PIZZA / cirbtc: $18,318 liquidity

Pool: cirbtc / USDC: $29,393 liquidity

Conclusion

CoinGecko API gives you the tools to identify tokens on Arc Chain, retrieve their metadata, and access current and historical market data. When a token isn't listed on CoinGecko yet, the onchain endpoints can still return its price, market cap, and historical data directly from onchain sources. Pool data provides additional context for evaluating the reliability of prices for newly launched tokens.

You can also track newly created pools across Arc Chain and 260+ other networks in real time, check token holder concentration as an additional signal when evaluating new tokens, or check out our API troubleshooting guide to handle common errors and edge cases.

Ready to start building? Sign up for a free Demo API plan and start building with CoinGecko. As your application grows, upgrade to a paid API plan for higher rate limits, more call credits, access to more data delivery methods like Webhooks and WebSocket, and exclusive endpoints such as Pool Megafilter for advanced pool discovery and filtering.

CoinGecko's Content Editorial Guidelines
CoinGecko’s content aims to demystify the crypto industry. While certain posts you see may be sponsored, we strive to uphold the highest standards of editorial quality and integrity, and do not publish any content that has not been vetted by our editors.
Learn more
Want to be the first to know about upcoming airdrops?
Subscribe to the CoinGecko Daily Newsletter!
Join 600,000+ crypto enthusiasts, traders, and degens in getting the latest crypto news, articles, videos, and reports by subscribing to our FREE newsletter.
Tell us how much you like this article!
Ru Jun Ang
Ru Jun Ang
Ru Jun is a growth marketer who’s curious about crypto, APIs, and the technology behind digital assets, with a focus on market data, on-chain trends, and products shaping the Web3 space.

More Articles

Select Currency
Suggested Currencies
USD
US Dollar
IDR
Indonesian Rupiah
TWD
New Taiwan Dollar
EUR
Euro
KRW
South Korean Won
JPY
Japanese Yen
RUB
Russian Ruble
CNY
Chinese Yuan
Fiat Currencies
AED
United Arab Emirates Dirham
ARS
Argentine Peso
AUD
Australian Dollar
BDT
Bangladeshi Taka
BHD
Bahraini Dinar
BMD
Bermudian Dollar
BRL
Brazil Real
CAD
Canadian Dollar
CHF
Swiss Franc
CLP
Chilean Peso
CZK
Czech Koruna
DKK
Danish Krone
GBP
British Pound Sterling
GEL
Georgian Lari
HKD
Hong Kong Dollar
HUF
Hungarian Forint
ILS
Israeli New Shekel
INR
Indian Rupee
KWD
Kuwaiti Dinar
LKR
Sri Lankan Rupee
MMK
Burmese Kyat
MXN
Mexican Peso
MYR
Malaysian Ringgit
NGN
Nigerian Naira
NOK
Norwegian Krone
NZD
New Zealand Dollar
PHP
Philippine Peso
PKR
Pakistani Rupee
PLN
Polish Zloty
SAR
Saudi Riyal
SEK
Swedish Krona
SGD
Singapore Dollar
THB
Thai Baht
TRY
Turkish Lira
UAH
Ukrainian hryvnia
VND
Vietnamese đồng
ZAR
South African Rand
XDR
IMF Special Drawing Rights
Cryptocurrencies
BTC
Bitcoin
ETH
Ether
LTC
Litecoin
BCH
Bitcoin Cash
BNB
Binance Coin
EOS
EOS
XRP
XRP
XLM
Lumens
LINK
Chainlink
DOT
Polkadot
YFI
Yearn.finance
SOL
Solana
Bitcoin Units
BITS
Bits
SATS
Satoshi
Commodities
XAG
Silver - Troy Ounce
XAU
Gold - Troy Ounce
Select Language
Popular Languages
EN
English
RU
Русский
DE
Deutsch
PL
język polski
ES
Español
VI
Tiếng việt
FR
Français
PT-BR
Português
All Languages
AR
العربية
BG
български
CS
čeština
DA
dansk
EL
Ελληνικά
FI
suomen kieli
HE
עִבְרִית
HI
हिंदी
HR
hrvatski
HU
Magyar nyelv
ID
Bahasa Indonesia
IT
Italiano
JA
日本語
KO
한국어
LT
lietuvių kalba
NL
Nederlands
NO
norsk
RO
Limba română
SK
slovenský jazyk
SL
slovenski jezik
SV
Svenska
TH
ภาษาไทย
TR
Türkçe
UK
украї́нська мо́ва
ZH
简体中文
ZH-TW
繁體中文
Welcome to CoinGecko
Welcome back!
Login or Sign up in seconds
or
Sign in with . Not you?
Forgot your password?
Didn't receive confirmation instructions?
Resend confirmation instructions
Password must contain at least 8 characters including 1 uppercase letter, 1 lowercase letter, 1 number, and 1 special character
By continuing, you acknowledge that you've read and agree fully to our Terms of Service and Privacy Policy.
Get Price Alerts with CoinGecko App
Forgot your password?
You will receive an email with instructions on how to reset your password in a few minutes.
Resend confirmation instructions
You will receive an email with instructions for how to confirm your email address in a few minutes.
Get the CoinGecko app.
Scan this QR code to download the app now App QR Code Or check it out in the app stores
Add NFT
CoinGecko
Better on the app
Real-time price alerts and a faster, smoother experience.