← Back to list
💰

coingecko-api Checked

Broad crypto market data from CoinGecko covering 13,000+ tokens. Global market stats, historical …
💰 Finance & Trading skills By agiprolabs Version v1.0.0 Added 2026-09-20 Updated 2026-09-20 Source ↗ Part of Finance & Trading →
9.1Overall rating
2Views
14Downloads
366Stars

Installation

🤖 Install via AI

Copy the prompt below and send it to your AI assistant (e.g. Claude Code) — it will follow the instructions and install automatically.

Install the "coingecko-api" skill by following the instructions at https://skill123.me/install/coingecko-api.
⌨️ Command line install

Run in your terminal — downloads and installs to ~/.claude/skills/.

curl -fsSL https://skill123.me/install/coingecko-api.sh | bash
📦 Download ZIP

Download the zip and extract it into your skills directory (e.g. ~/.claude/skills/), then restart your session.

⬇ Download v1.0.0 · 18 KB
📊 Static rating
9.1/10
Trigger
8.0
Structure
9.3
Workflow
8.4
Content
10.0
Engineering
10.0
Security
10.0

Six-dimension rubric with reviewer rationale.

View scorecard ↓
🛡 Dynamic test
—

Not live-tested yet — this skill is rated on static analysis only.

About this skill

Broad crypto market data from CoinGecko covering 13,000+ tokens. Global market stats, historical price data going back years, exchange volumes, trending tokens, and category filters. Best for macro analysis and long-term historical data.

CoinGecko API Skill

Query the CoinGecko API for comprehensive crypto market data — prices, historical

charts, exchange volumes, trending tokens, global stats, and category breakdowns.

The free tier requires no API key and supports 30 calls/min.

Documentation

Broad crypto market data from CoinGecko covering 13,000+ tokens. Global market stats, historical price data going back years, exchange volumes, trending tokens, and category filters. Best for macro analysis and long-term historical data.

CoinGecko API Skill

Query the CoinGecko API for comprehensive crypto market data — prices, historical

charts, exchange volumes, trending tokens, global stats, and category breakdowns.

The free tier requires no API key and supports 30 calls/min.

When to Use This Skill

  • **Macro analysis**: Global market cap, BTC dominance, total volume trends
  • **Historical data**: Daily/hourly OHLCV going back years (not minutes-level)
  • **Cross-exchange comparisons**: Exchange volume rankings and trust scores
  • **Trending/discovery**: What tokens are trending on CoinGecko in the last 24h
  • **Category analysis**: Compare DeFi vs L1 vs meme coin market caps
  • **Token research**: Full metadata including links, description, community stats

Use **Birdeye** or **DexScreener** instead for real-time Solana DEX data, new token

launches, or sub-daily granularity on Solana tokens.

Quick Start

### Get Current Prices


import httpx

# No API key needed for free tier
resp = httpx.get(
    "https://api.coingecko.com/api/v3/simple/price",
    params={"ids": "solana,bitcoin,ethereum", "vs_currencies": "usd",
            "include_24hr_change": "true"},
)
data = resp.json()
for coin, info in data.items():
    print(f"{coin}: ${info['usd']:.2f} ({info['usd_24h_change']:+.1f}%)")

### Get Top Coins by Market Cap


import httpx

resp = httpx.get(
    "https://api.coingecko.com/api/v3/coins/markets",
    params={"vs_currency": "usd", "order": "market_cap_desc",
            "per_page": 10, "page": 1, "sparkline": "false"},
)
for coin in resp.json():
    print(f"{coin['symbol'].upper():>6}  ${coin['current_price']:>10,.2f}  "
          f"MCap: ${coin['market_cap']/1e9:.1f}B  "
          f"24h: {coin['price_change_percentage_24h']:+.1f}%")

### Get Historical Price Data


import httpx
import pandas as pd

resp = httpx.get(
    "https://api.coingecko.com/api/v3/coins/solana/market_chart",
    params={"vs_currency": "usd", "days": "90", "interval": "daily"},
)
data = resp.json()
df = pd.DataFrame(data["prices"], columns=["timestamp", "price"])
df["date"] = pd.to_datetime(df["timestamp"], unit="ms")
df = df.set_index("date").drop(columns=["timestamp"])
print(df.describe())

### Get OHLC Candle Data


import httpx

resp = httpx.get(
    "https://api.coingecko.com/api/v3/coins/solana/ohlc",
    params={"vs_currency": "usd", "days": "30"},
)
# Returns [[timestamp, open, high, low, close], ...]
candles = resp.json()
for c in candles[-5:]:
    print(f"  O={c[1]:.2f}  H={c[2]:.2f}  L={c[3]:.2f}  C={c[4]:.2f}")

### Global Market Stats


import httpx
View full documentation

resp = httpx.get("https://api.coingecko.com/api/v3/global")

g = resp.json()["data"]

print(f"Total Market Cap: ${g['total_market_cap']['usd']/1e12:.2f}T")

print(f"24h Volume: ${g['total_volume']['usd']/1e9:.0f}B")

print(f"BTC Dominance: {g['market_cap_percentage']['btc']:.1f}%")

print(f"Active Coins: {g['active_cryptocurrencies']:,}")



### Trending Coins

import httpx

resp = httpx.get("https://api.coingecko.com/api/v3/search/trending")

for item in resp.json()["coins"]:

coin = item["item"]

print(f"#{coin['market_cap_rank'] or '?':>4} {coin['name']} ({coin['symbol']})")



## Authentication

The free tier requires no API key (30 calls/min). For higher limits, get a Pro
key from https://www.coingecko.com/en/api/pricing and set:

export COINGECKO_API_KEY="CG-xxxxxxxxxxxxxxxxxxxx"



Pro requests use a different base URL and header:

import os, httpx

API_KEY = os.getenv("COINGECKO_API_KEY", "")

if API_KEY:

BASE_URL = "https://pro-api.coingecko.com/api/v3"

HEADERS = {"x-cg-pro-api-key": API_KEY}

else:

BASE_URL = "https://api.coingecko.com/api/v3"

HEADERS = {}



## Rate Limiting

Free tier: 30 requests/min. Implement backoff on 429 responses:

import time, httpx

def cg_get(url: str, params: dict, max_retries: int = 3) -> dict:

"""GET with retry on rate limit."""

for attempt in range(max_retries):

resp = httpx.get(url, params=params, headers=HEADERS, timeout=15.0)

if resp.status_code == 429:

wait = 2 ** attempt * 10

print(f"Rate limited, waiting {wait}s...")

time.sleep(wait)

continue

resp.raise_for_status()

return resp.json()

raise RuntimeError("Max retries exceeded")



## Finding CoinGecko Token IDs

CoinGecko uses slug-style IDs (e.g., `solana`, `bitcoin`, `usd-coin`). To find
an ID from a contract address or name, see `references/id_mapping.md`.

Quick lookup by contract address (useful for Solana tokens):

import httpx

Look up by Solana contract address

contract = "So11111111111111111111111111111111111111112"

resp = httpx.get(

"https://api.coingecko.com/api/v3/coins/solana/contract/"

+ contract

)

coin = resp.json()

print(f"ID: {coin['id']}, Name: {coin['name']}")



## Key Limitations

- **No real-time data**: Prices update every 1-2 minutes on free tier
- **Limited Solana coverage**: Many newer Solana tokens are not listed
- **OHLC granularity**: Only 1/7/14/30/90/180/365 day windows, candle size
  depends on the window (see `references/endpoints.md`)
- **Historical gaps**: Some tokens have missing data for early periods
- **Free tier throttling**: 30 req/min means batch operations need careful pacing

See `references/data_quality.md` for detailed notes on data gaps and tier differences.

## Files

### References
- `references/endpoints.md` — Complete endpoint reference with parameters, response schemas, and rate limits
- `references/id_mapping.md` — How to find CoinGecko IDs for tokens, contract address mapping, search tips
- `references/data_quality.md` — Data quality notes, historical gaps, free vs pro tier differences

### Scripts
- `scripts/fetch_market_data.py` — Fetch top coins, trending tokens, and global stats (supports `--demo` mode)
- `scripts/historical_analysis.py` — Fetch historical OHLCV data and compute returns, volatility, drawdown (supports `--demo` mode)

Score breakdown

Trigger
8.0
Description covers What, When (best for macro/long-term historical), and When-Not (use Birdeye/DexScreener for real-time Solana DEX data); rich endpoint keywords; no enumerated user-phrase variants or Chinese keywords.
Structure
9.3
211-line SKILL.md; three focused references (endpoints, id_mapping, data_quality) plus two scripts; Files table; section-level pointers to references.
Workflow
8.4
Tool wrapper pattern executed well: runnable quick-start examples per use case, auth branching free/pro, provided cg_get backoff helper, documented limitations (granularity, coverage, throttling), --demo modes; no explicit result-verification step.
Content
10.0
Concise imperative style, copy-runnable code with concrete params, uniform formatting.
Engineering
10.0
Frontmatter includes name/description/dependencies/tags; shebangs, graceful ImportError messages; all referenced paths exist.
Security
10.0
Manifest: GET-only to api.coingecko.com and pro-api.coingecko.com (official, declared in SKILL.md), env read COINGECKO_API_KEY (declared, sent only as auth header to CoinGecko itself), no local file/credential reads, no writes, no persistence; capabilities match declared scope. No injection, no secrets.
Exemplary tool-wrapper skill: clear When-to-Use and explicit When-Not (defers to Birdeye/DexScreener for real-time Solana data), quick-start snippets, free/pro auth handling, rate-limit backoff code, honest limitations section, demo-mode scripts. Only minor gap: no trigger-phrase variants in description.