CoinMarketCap
Read-only CoinMarketCap market data through Thirdfy provider cmc. Quotes, global metrics, fear and greed, and composed briefs.
Category: Market data · signals
CoinMarketCap exposes read-only crypto market data through Thirdfy provider cmc. Agents call get_cmc_* on the Thirdfy catalog. These actions do not move capital.
Actions
| Action | Purpose |
|---|---|
get_cmc_search | Resolve CMC id from symbol or slug |
get_cmc_quotes | Latest quotes (canonical CLI read) |
get_cmc_info | Profile metadata |
get_cmc_global_metrics | Total market cap and BTC dominance |
get_cmc_fear_greed | Fear and Greed index |
get_cmc_metrics | Crypto metrics for a CMC id |
get_cmc_technicals | Technical analysis for a CMC id |
get_cmc_marketcap_technicals | Market-cap technical analysis |
get_cmc_derivatives_metrics | Global derivatives snapshot |
get_cmc_news | Latest headlines |
get_cmc_search_info | Site search |
get_cmc_narratives | Trending narrative categories |
get_cmc_upcoming_events | Macro catalysts from news |
get_cmc_skill | Allowlisted Skill Hub brief by unique_name |
get_cmc_daily_market_overview | Daily market overview brief |
get_cmc_btc_etf_demand | BTC ETF institutional demand brief |
get_cmc_perp_contract_analysis | Perp contract analysis (requires symbol or cmcid) |
get_cmc_market_regime | Market regime brief |
get_cmc_derivatives_crowding | Derivatives crowding brief |
Composed briefs cost more than quote and metrics reads. Command shows the USD charge after the turn. See Credits and balance.
Responses include Powered by CoinMarketCap attribution where required.
Signals
These reads publish signals in the signal manifest (app cmc, manifest version 2). The tables come from the production catalog (api.thirdfy.com).
- Typed reads. Signal paths under
typed.are parsed numbers and dates. Display strings such as"+6.26%"arrive as6.26. CheckparseIssuesbefore you use a value. - Context only.
cmc.news,cmc.narratives,cmc.technicalsandcmc.etf_demandpoint at the raw reply. They inform an agent but never drive a rule. - One read, several signals.
get_cmc_derivatives_metricsfeedscmc.market_funding,cmc.open_interest_changeandcmc.liquidationsin one call. - Display. Values may be shown to users (
displayValues: true) with the line "Powered by CoinMarketCap". The raw reply may not (displayRaw: false).
| Signal | What it measures | Read | Scope | Refresh / max age | Roles |
|---|---|---|---|---|---|
cmc.btc_dominance | BTC share of total crypto market cap, and its 24h change in percentage points. | get_cmc_global_metrics | market | 5 min / 30 min | filter, context |
cmc.derivatives_crowding | Funding crowding state and 90-day percentile, 7-day open interest change and the dominant liquidation side, per asset. | get_cmc_derivatives_crowding | per asset (any) | 1 day / 2 days | filter, context |
cmc.etf_demand | CMC brief on spot BTC ETF net flows over the last completed U.S. sessions. Context only until it has a typed reading. | get_cmc_btc_etf_demand | per asset: BTC | 1 day / 2 days | context |
cmc.events_blackout | Dated macro catalysts from the news, soonest first, for a no-entry window around them. Not an official calendar. | get_cmc_upcoming_events | market | 15 min / 2 h | filter, context |
cmc.fear_greed | Market-wide sentiment, 0 (extreme fear) to 100 (extreme greed). | get_cmc_fear_greed | market | 15 min / 1 h | filter, context |
cmc.liquidations | BTC liquidations in USD over 1, 4 and 24 hours, the 24h long/short split, and the 24h change against the day before. | get_cmc_derivatives_metrics | per asset: BTC | 1 min / 15 min | filter, context |
cmc.market_funding | Market-wide perps funding rate and 24h open interest change. | get_cmc_derivatives_metrics | market | 1 min / 15 min | filter, context |
cmc.market_regime | CMC regime read (risk on, risk off, transition) with its conviction and the metrics behind it. | get_cmc_market_regime | market | 30 min / 2 h | filter, context |
cmc.narratives | Ranked trending narrative categories with market cap and performance. Raw display strings: context only. | get_cmc_narratives | market | 15 min / 2 h | context |
cmc.news | Recent news items for one coin. Raw and loosely matched to the asset: context only. | get_cmc_news | per asset (any) | 1 min / 1 h | context |
cmc.open_interest_change | Total derivatives open interest in USD and its change over 24 hours and 7 days. | get_cmc_derivatives_metrics | market | 1 min / 15 min | filter, context |
cmc.perp_contract_bias | CMC read of one perp market: bias, direction and confidence. Context for a side, never an order. | get_cmc_perp_contract_analysis | per asset (any) | 30 min / 2 h | filter, context |
cmc.technicals | Technical indicator state per asset (moving averages, MACD, RSI, pivots), as narrative context. | get_cmc_technicals | per asset (any) | 5 min / 1 h | context |
Signal fields
| Signal | Field | Path | Type | Unit or values |
|---|---|---|---|---|
cmc.btc_dominance | btcDominancePct | typed.btcDominancePct | number | %. 0 to 100 |
cmc.btc_dominance | btcDominanceChange24hPts | typed.btcDominanceChange24hPts | number | percentage points |
cmc.btc_dominance | ethDominancePct | typed.ethDominancePct | number | %. 0 to 100 |
cmc.btc_dominance | as of | typed.asOf | datetime | UTC |
cmc.derivatives_crowding | asset | typed.asset | string | The asset the brief covers, as CMC names it ("Bitcoin") |
cmc.derivatives_crowding | crowdingState | typed.funding.crowdingState | enum | e.g. "normal", "crowded_long", "crowded_short" |
cmc.derivatives_crowding | latestFundingBps | typed.funding.latestRateBps | number | bps |
cmc.derivatives_crowding | fundingPercentile90d | typed.funding.percentile90d | number | percentile. 0 to 100 |
cmc.derivatives_crowding | openInterestChange7dPct | typed.openInterest.change7dPct | number | % |
cmc.derivatives_crowding | liquidationDominantSide | typed.liquidations.dominantSide | enum | long, short, balanced |
cmc.derivatives_crowding | as of | typed.asOf | datetime | UTC |
cmc.etf_demand | brief | result | json | The raw Skill Hub brief (either envelope) |
cmc.etf_demand | conclusion | result.data.data.decision_report.conclusion | string | Set in the { ok, data } envelope |
cmc.etf_demand | confidence | result.data.data.confidence | enum | Set in the { ok, data } envelope |
cmc.etf_demand | as of | freshness.fetchedAt | datetime | UTC |
cmc.events_blackout | eventAt | typed.events[].eventAt | datetime | Event time, UTC; null when the date could not be read |
cmc.events_blackout | allDay | typed.events[].allDay | boolean | — |
cmc.events_blackout | title | typed.events[].title | string | — |
cmc.events_blackout | as of | freshness.fetchedAt | datetime | UTC |
cmc.fear_greed | index | typed.index | number | index. 0 to 100 |
cmc.fear_greed | label | typed.label | enum | CMC label for the index ("Fear", "Neutral", "Greed", …) |
cmc.fear_greed | as of | typed.asOf | datetime | UTC |
cmc.liquidations | total1hUsd | typed.btcLiquidations.total1hUsd | number | USD. 0 to 100000000000 |
cmc.liquidations | total4hUsd | typed.btcLiquidations.total4hUsd | number | USD. 0 to 100000000000 |
cmc.liquidations | total24hUsd | typed.btcLiquidations.total24hUsd | number | USD. 0 to 100000000000 |
cmc.liquidations | long24hUsd | typed.btcLiquidations.long24hUsd | number | USD. 0 to 100000000000. Longs liquidated over 24 hours. Null when CMC gives totals only |
cmc.liquidations | short24hUsd | typed.btcLiquidations.short24hUsd | number | USD. 0 to 100000000000. Shorts liquidated over 24 hours. Null when CMC gives totals only |
cmc.liquidations | change24hPct | typed.btcLiquidations.change24hPct | number | %. -100 to 100000 |
cmc.liquidations | as of | freshness.fetchedAt | datetime | UTC |
cmc.market_funding | fundingRatePct | typed.funding.ratePct | number | % per funding interval. -1 to 1. One blended funding rate, percent per funding interval (0.0044 = 0.0044%) |
cmc.market_funding | fundingChange24hPct | typed.funding.change24hPct | number | % |
cmc.market_funding | openInterestChange24hPct | typed.openInterest.change24hPct | number | %. -100 to 100000 |
cmc.market_funding | as of | freshness.fetchedAt | datetime | UTC |
cmc.market_regime | regime | typed.regime | enum | e.g. "risk_on", "risk_off", "mixed_transition" |
cmc.market_regime | conviction | typed.conviction | enum | low, medium, high |
cmc.market_regime | leverageState | typed.leverageState | string | — |
cmc.market_regime | fearGreedIndex | typed.metrics.fearGreedIndex | number | index. 0 to 100 |
cmc.market_regime | averageFunding7dBps | typed.metrics.averageFunding7dBps | number | bps |
cmc.market_regime | as of | typed.asOf | datetime | UTC |
cmc.narratives | categories | payload | json | The raw reply: headers and positional rows |
cmc.narratives | as of | freshness.fetchedAt | datetime | UTC |
cmc.news | items | payload | json | The raw reply: a list of items, or headers and rows |
cmc.news | as of | freshness.fetchedAt | datetime | UTC |
cmc.open_interest_change | totalUsd | typed.openInterest.totalUsd | number | USD. 0 to 10000000000000 |
cmc.open_interest_change | change24hPct | typed.openInterest.change24hPct | number | %. -100 to 100000 |
cmc.open_interest_change | change7dPct | typed.openInterest.change7dPct | number | %. -100 to 100000 |
cmc.open_interest_change | as of | freshness.fetchedAt | datetime | UTC |
cmc.perp_contract_bias | symbol | typed.symbol | string | — |
cmc.perp_contract_bias | bias | typed.bias | enum | bullish, bearish, neutral |
cmc.perp_contract_bias | direction | typed.direction | enum | up, down, none |
cmc.perp_contract_bias | confidence | typed.confidence | enum | low, medium, high |
cmc.perp_contract_bias | as of | typed.asOf | datetime | UTC |
cmc.technicals | indicators | payload | json | The raw reply: five indicator blocks of display strings |
cmc.technicals | as of | freshness.fetchedAt | datetime | UTC |
Credential model
CoinMarketCap reads use the same Thirdfy session as other catalog actions. CLI and MCP do not take a CoinMarketCap key. Thirdfy credits pay the catalog action.
| Layer | Model |
|---|---|
| CLI / MCP | Thirdfy auth (email OTP or agent API key). |
| Credits | Thirdfy credits on the agent wallet. |
| Execution | None from CoinMarketCap. |
Discovery
| Surface | Example |
|---|---|
| MCP | getProviderActions { provider: "cmc" } |
| CLI | thirdfy-agent run --action get_cmc_quotes --params '{"symbol":"BTC","convert":"USD"}' --provider cmc --json |
| CLI (brief) | thirdfy-agent run --action get_cmc_daily_market_overview --params '{}' --provider cmc --json |
Use it
Ask your agent:
Or call it yourself:
Trimmed result from a real read on 2026-10-08:
What to check: read typed.index (0 to 100) and typed.label. Show values with the line "Powered by CoinMarketCap".
The market regime read takes no params either (get_cmc_market_regime). Its typed block carries the verdict and the inputs behind it:
Use typed, not the raw result text. dataGaps names any input that was missing for this read.
Readiness checklist
- Agent authenticated for discovery and run (email OTP
agent_walletor agent API key per lane). - Strategy treats CoinMarketCap output as advisory evidence.
Execution lanes
CoinMarketCap actions are read-only and fanoutSafe. They do not require delegation binding for research reads.