CFGI Developer API

The Crypto Indicator Your Models Are Missing.

CFGI is a Fear and Greed indicator built from 10 underlying signals, across 100+ assets and every timeframe. One call adds a unique sentiment layer to the stack you already run.

Free to start, then pay only for what you call.

100 free credits No subscription Volume discounts

Scored every 15 minutes since 2022, across 100+ assets.

The call

One Call, the Whole Picture

One request returns the Fear and Greed score, the classification and all 10 sub-signals: unique data, as clean JSON.

Request

GET
GET https://cfgi.io/api/api_request_v2.php
  ?api_key=YOUR_API_KEY
  &token=BTC
  &period=4
  &fields=cfgi,price,volatility,volume,impulse,technical,social,dominance,trends,whales,orders
  &values=1

Response

JSON
[
  {
    "token": "BTC",
    "date": "2026-06-19 16:00:00",
    "price": 30000,
    "cfgi": 38,
    "classification": "Fear",
    "data_volatility": 41,
    "data_volume": 52,
    "data_impulse": 34,
    "data_technical": 47,
    "data_social": 55,
    "data_dominance": 60,
    "data_trends": 33,
    "data_whales": 72,
    "data_orders": 49
  }
]

Historical data

Backtest Against Years of Sentiment

100+

assets tracked

11

signals per asset

4

timeframes

Every 15 min

since 2022

200M+

data points

Price history is everywhere. Sentiment history is not. Every score and sub-signal CFGI has ever calculated is queryable, so you can study how the crowd behaved around past stress and euphoria and feed it straight into your models.

  • Every Fear and Greed score and all 10 sub-signals, back to 2022
  • 100+ assets, the whole market, and 15m / 1h / 4h / daily
  • Pull any date range with start and end, to backfill and backtest
  • Full history for every account, not gated behind a top tier

Historical range

GET
https://cfgi.io/api/api_request_v2.php?api_key=YOUR_API_KEY&token=BTC&period=4&fields=cfgi,price,whales&start=2022-01-01&end=2026-06-01

Live data, 24/7

React the Moment It Moves

Every new reading is available the instant it is scored. Poll the REST API on your own schedule, or skip polling entirely and let CFGI push events to your endpoint by webhook the moment a score updates.

  • Every new reading the moment it is scored, 24/7
  • Poll the REST API on your own schedule
  • Or get events pushed to your endpoint by webhook, no polling
  • Build bots, dashboards and alert engines that react in real time

Webhook event

POST
POST https://your-app.com/hooks/cfgi
{
  "event": "score.updated",
  "token": "BTC",
  "period": "4h",
  "cfgi": 38,
  "classification": "Fear",
  "date": "2026-06-19 16:00:00"
}

Pricing

Pay Only for What You Call

The unique-data shops lock you into a subscription, cap your calls and lag your history. CFGI does not.

  • No subscription and no monthly minimum
  • Full history included for everyone, no 30-day lag
  • Pay only for the exact fields you call
  • The more you buy, the cheaper each credit gets
PackCreditsPricePer 1kDiscount
Free100 credits$0
Starter100k credits$40$0.40 / 1k
Growth1M credits$300$0.30 / 1k25% off
Scale10M credits$2,000$0.20 / 1k50% off
Volume100M credits$15,000$0.15 / 1k62% off

How Credits Work

One credit = 1 field × 1 token × 1 value. You pay only for the exact data you request, and every response shows credits used and remaining.

Buy credits

Free to start, then pay only for what you call.

100 free credits No subscription Volume discounts

Example requests (at the $0.40 / 1k starter rate)

  • 1 token × 4 fields × 1 value4 credits · $0.0016
  • 5 tokens × 4 fields × 1 value20 credits · $0.0080
  • 2 tokens × 3 fields × 100 values600 credits · $0.2400

Documentation

Full API Documentation

Everything the endpoint accepts and returns. Every section is linkable. Jump straight to what you need.

Request builder

Build Your Request

Pick your token, timeframe and signals — we write the URL. Paste in your key and go.

Timeframe

Signals (2 selected)

Your request URL

https://cfgi.io/api/api_request_v2.php?api_key=YOUR_API_KEY&token=BTC&period=4&fields=cfgi,price&values=1

Replace YOUR_API_KEY with your key. Estimated cost: 2 credits (2 fields × 1 row).

1. Authentication

Every request is authenticated with your API key, passed as the api_key parameter. Generate one from your account and claim 100 free credits. Keep it private, and regenerate it anytime if it is exposed.

2. Making a Request

The endpoint accepts GET and returns JSON from https://cfgi.io/api/api_request_v2.php.

ParameterExampleWhat it controls
api_keyYOUR_API_KEYAuthenticates the request.
tokenBTCThe market or asset. Comma-separate symbols for multi-token requests.
period4Selects 15m, 1h, 4h or 1d (period IDs, see Timeframes).
fieldscfgi,price,whalesWhich data to return, and the credit cost.
start / end2026-01-01 / 2026-06-01Pulls a historical range.
values100Number of rows when no date range is given.
ALL1Returns every 15-minute source row for a range, when supported.

Use ALL=1 only when you need every 15-minute source row; filtered hourly, 4-hour or daily snapshots are lighter.

3. Supported Tokens

Use token=MARKET for the whole crypto market index, or any supported symbol below. Pass one (token=BTC) or several (token=BTC,ETH,SOL). Unsupported symbols are returned explicitly in errors.

102 tokens + MARKET

MARKETAAVEADAAIXBTALGOAPEAPUARBASTERATOMAURAAVAXAXSBABYDOGEBCHBITCOINBNBBOBOBOMEBONKBTCBTTCHEEMSCROCRVCULTDOGDOGEDOTEGLDEIGENEOSETCETHFARTCOINFETFILFLOKIFLOWFTMFWOGGALAGIGAGRTHBARHNTHYPEICPINJIOTAJOEJUPKASKEYCATLINKLTCLUNAMANAMEWMICHIMOGMOODENGNEARNEIRONOTNPCOGPENGUPEPEPNUTPOPCATPUMPRETARDIORUNESSANDSEISHIBSIGMASNEKSOLSPXSUITAOTETTHETATONTOSHITRXTSTTURBOUFDUNIUSELESSVETVINEWIFWOJAKWOLFXLMXRPXTZZEC

4. Timeframes & Periods

The period parameter maps onto CFGI's four crypto timeframes.

PeriodTimeframeCadenceDefault rows
115mEvery 15 minutesEvery 15-minute data point
21hHourly snapshotsHourly rows filtered from the 15-minute feed
34h4-hour snapshotsRows at 00:00, 04:00, 08:00, 12:00, 16:00 and 20:00
41dDaily snapshotsDaily rows near the end of the UTC day

5. Fields

Choose what comes back with fields=. Every response also includes three fields automatically: token (the asset symbol), date (UTC time of the reading) and classification(the score's sentiment band: Extreme Fear, Fear, Neutral, Greed or Extreme Greed).

Each value is a 0 to 100 score. cfgi and price return under their own name; the ten indicators return prefixed data_ (so whales arrives as data_whales). Each field adds one credit per token, per value.

cfgi

The 0 to 100 Fear and Greed score.

price

Token price at the returned timestamp.

volatility

Price instability and fluctuation pressure.

volume

Trading participation behind the move.

impulse

Force of the latest market shift.

technical

Weighted trend and oscillator signals.

social

Crowd attention and social sentiment.

dominance

Risk concentration versus the wider market.

trends

Search-interest and intent signals.

whales

Large-holder exchange flow pressure.

orders

Order-book buying and selling pressure.

See the score, classification and all ten indicators live, with history, on any token page, for example the Bitcoin Fear and Greed Index, or the whole-market index.

6. How Credits Are Calculated

One credit = 1 field × 1 token × 1 value. The cost of any call is the product of the three.

RequestCreditsCost (starter)
1 token × 4 fields × 1 value4 credits$0.0016
5 tokens × 4 fields × 1 value20 credits$0.0080
2 tokens × 3 fields × 100 values600 credits$0.2400

7. Responses & Errors

Successful calls return a JSON array. Every response also carries billing headers: X-Credits-Used, X-Credits-Remaining, X-Fields-Requested and X-Tokens-Requested. Use them to track usage from each response.

Example response

JSON
[
  {
    "token": "BTC",
    "date": "2026-06-19 16:00:00",
    "price": 30000,
    "cfgi": 38,
    "classification": "Fear",
    "data_volatility": 41,
    "data_volume": 52,
    "data_impulse": 34,
    "data_technical": 47,
    "data_social": 55,
    "data_dominance": 60,
    "data_trends": 33,
    "data_whales": 72,
    "data_orders": 49
  }
]

402 insufficient credits

Error
{
  "error": "Insufficient credits.",
  "credits_needed": 20,
  "credits_available": 5,
  "calculation": "4 fields x 5 tokens = 20 credits"
}
StatusErrorMeaning
400Invalid Tokens / RangeA requested symbol is not supported, or a start/end range is malformed.
401Missing Authenticationapi_key, token or period is missing.
402Insufficient CreditsNot enough credits for the requested fields, tokens and values.
429Rate LimitedRequest frequency exceeded the documented limit.

8. Webhooks

Skip polling — have CFGI push each new reading to your endpoint the instant it is scored. Set one up in your account API tab: paste your URL, pick a token, a timeframe and the signals you want. We hand you a signing secret.

  1. Add a webhook in your account: URL · token · timeframe · fields.
  2. Each time that token and timeframe scores a new reading, we POST the JSON payload to your URL.
  3. Verify the X-CFGI-Signature header, then act on the data.

Payload (POST to your URL)

POST
POST https://your-app.com/hooks/cfgi
{
  "event": "score.updated",
  "token": "BTC",
  "period": "4h",
  "cfgi": 38,
  "classification": "Fear",
  "date": "2026-06-19 16:00:00"
}

Verify the signature

Node
import crypto from 'node:crypto'
// rawBody = the exact bytes you received (do not re-serialize)
const signature = req.headers['x-cfgi-signature']
const expected = 'sha256=' + crypto.createHmac('sha256', YOUR_SECRET).update(rawBody).digest('hex')
if (signature !== expected) return res.status(401).end()
// signature valid — handle JSON.parse(rawBody)

Billing and reliability

Each delivery is billed exactly like a call: fields × 1 row credits, so a webhook on just cfgi is 1 credit per push. If your credits run out we pause the webhook and flag it in your account — top up and hit Resume. Failed deliveries are retried 3 times; an endpoint that keeps failing is paused too.

Developer Questions

How do I start, and is it really free?

Generate an API key, claim 100 free credits, and make your first call. You only buy credits when you need more.

How do credits work?

One credit = one field × one token × one value. A call for 4 fields on 1 token costs 4 credits. Every response returns headers showing credits used and remaining, so usage is never a surprise.

Is there a subscription or monthly minimum?

No. The API is pay-as-you-go. Buy a credit pack when you need it, and bigger packs cost less per credit. There is no recurring fee and no minimum.

How far back does the historical data go?

Full history since 2022 for crypto sentiment, available to every account, with no top-tier gate and no data lag. Pull any date range with start and end.

Do you support webhooks?

Yes. CFGI can push events to your endpoint when a score updates, so your bots, dashboards and alerts react without polling.

Can I use CFGI data in a trading bot?

Yes, as one input in your own logic. CFGI provides unique structured sentiment data; it does not predict price or tell the bot when to trade.

Start With 100 Free Credits

Generate a key, make your first call, and inspect the credit headers. Buy more only when you need them.

Read the docs