{
  "data": {
    "id": "OhyNI9y6ujtAPS5sM",
    "actId": "wtjQuRbdkk2pOxhgb",
    "userId": "zq8lKbpLzTjGDayPC",
    "startedAt": "2026-11-13T15:58:45.906Z",
    "finishedAt": "2026-11-13T15:58:49.113Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 3111,
      "runTimeSecs": 3.111,
      "computeUnits": 0.0034566666666666665,
      "imageSizeBytes": 319180288
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "GK9YjZRyQZVzOdoH5",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"Crypto Fear & Greed Index Scraper Input\",\n  \"description\": \"Fetch the current Crypto Fear & Greed Index, its history, a date range, or an intraday CFGI view. Choose alternative.me, CoinMarketCap or CFGI. No API key, login or proxy.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Mode\",\n      \"type\": \"string\",\n      \"description\": \"What to fetch: the current reading, the last N readings, or a custom date range.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"latest\",\n        \"historical\",\n        \"dateRange\"\n      ],\n      \"enumTitles\": [\n        \"Latest — current reading\",\n        \"Historical — last N readings\",\n        \"Date range — readings between two dates\"\n      ],\n      \"default\": \"latest\",\n      \"prefill\": \"latest\"\n    },\n    \"source\": {\n      \"title\": \"Index source\",\n      \"type\": \"string\",\n      \"description\": \"Which publisher to read. alternative.me has daily history since 2018; CoinMarketCap since 2023 with BTC price and volume; CFGI has daily history since 2022 plus short rolling 4h/1h/15m windows, a 10-component breakdown and market cap.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"alternativeMe\",\n        \"coinmarketcap\",\n        \"cfgi\"\n      ],\n      \"enumTitles\": [\n        \"alternative.me — daily history since 2018 (default)\",\n        \"CoinMarketCap — daily history since 2023 + BTC context\",\n        \"CFGI — daily or intraday + component scores\"\n      ],\n      \"default\": \"alternativeMe\",\n      \"prefill\": \"alternativeMe\"\n    },\n    \"timeframe\": {\n      \"title\": \"CFGI timeframe\",\n      \"type\": \"string\",\n      \"description\": \"Reading interval for the CFGI source only: daily, 4-hour, hourly or 15-minute. CFGI intraday history is a short rolling window; other sources always return daily readings.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"1d\",\n        \"4h\",\n        \"1h\",\n        \"15m\"\n      ],\n      \"enumTitles\": [\n        \"Daily (1d)\",\n        \"4 hours (4h)\",\n        \"1 hour (1h)\",\n        \"15 minutes (15m)\"\n      ],\n      \"default\": \"1d\",\n      \"prefill\": \"1d\"\n    },\n    \"limit\": {\n      \"title\": \"Number of readings (historical)\",\n      \"type\": \"integer\",\n      \"description\": \"How many of the most recent readings to return in historical mode. One reading per day for daily sources.\",\n      \"minimum\": 1,\n      \"maximum\": 5000,\n      \"default\": 30,\n      \"prefill\": 30\n    },\n    \"startDate\": {\n      \"title\": \"Start date (date range)\",\n      \"type\": \"string\",\n      \"description\": \"Inclusive start of the range, e.g. 2024-01-01. Slash dates and US dates are also accepted (mode=dateRange).\",\n      \"editor\": \"textfield\",\n      \"example\": \"2024-01-01\"\n    },\n    \"endDate\": {\n      \"title\": \"End date (date range)\",\n      \"type\": \"string\",\n      \"description\": \"Inclusive end of the range, e.g. 2024-12-31 (mode=dateRange).\",\n      \"editor\": \"textfield\",\n      \"example\": \"2024-12-31\"\n    },\n    \"classificationFilter\": {\n      \"title\": \"Classification filter\",\n      \"type\": \"string\",\n      \"description\": \"Keep only readings in one sentiment band (historical and dateRange modes). Leave empty to keep every band.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"\",\n        \"Extreme Fear\",\n        \"Fear\",\n        \"Neutral\",\n        \"Greed\",\n        \"Extreme Greed\"\n      ],\n      \"enumTitles\": [\n        \"All classifications\",\n        \"Extreme Fear\",\n        \"Fear\",\n        \"Neutral\",\n        \"Greed\",\n        \"Extreme Greed\"\n      ]\n    }\n  },\n  \"required\": [\n    \"mode\"\n  ]\n}",
    "readme": "# Crypto Market Sentiment Index Tracker\n\nTrack the **Crypto Fear & Greed Index** from three independent publishers, cookielessly. Pull the live reading, the last N values, any date range since 2018, or an intraday CFGI view — with a 0–100 score, a canonical sentiment label, unix timestamps, ISO dates and source-native market context. **No API key, no login, no proxy.**\n\n## Why this actor\n\nMost Fear & Greed actors wrap one feed and return the same five fields. This one gives you a choice of publishers and the data behind the number:\n\n- **alternative.me (default)** — the original index, daily history from 2018-02-01.\n- **CoinMarketCap** — CMC's own index, daily since 2023-06-29, with BTC price and volume.\n- **CFGI** — aggregate crypto-market index with daily history from 2022-03-29 plus rolling 4h/1h/15m views, market cap, and a **10-component breakdown** (Price, Momentum, Volatility, Volume, Technical, Social, Dominance, Trends, Whales, Orders).\n\nThe default prefill is one request and one reading, so schedules stay cheap.\n\n## Modes\n\n| Mode | What it returns |\n|---|---|\n| `latest` | The current reading only. CFGI also includes the component scores for the selected timeframe. |\n| `historical` | The most recent `limit` readings (daily for alternative.me and CoinMarketCap; the selected timeframe for CFGI). |\n| `dateRange` | Every reading whose date falls inside `startDate`..`endDate` (inclusive). |\n\nCFGI publishes only a rolling intraday window: about 30 days of 4-hour readings, 7 days of hourly and 24 hours of 15-minute readings. Use `timeframe=1d` for history back to 2022-03-29.\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `latest` | `latest` / `historical` / `dateRange` |\n| `source` | string | `alternativeMe` | `alternativeMe` / `coinmarketcap` / `cfgi` |\n| `timeframe` | string | `1d` | CFGI only: `1d` / `4h` / `1h` / `15m` (intraday history is a short rolling window) |\n| `limit` | integer | `30` | Number of recent readings in historical mode, `1`–`5000` |\n| `startDate` | string | – | Inclusive range start, e.g. `2024-01-01` (mode=dateRange) |\n| `endDate` | string | – | Inclusive range end, e.g. `2024-12-31` (mode=dateRange) |\n| `classificationFilter` | string | – | Keep one band: `Extreme Fear`, `Fear`, `Neutral`, `Greed` or `Extreme Greed` |\n\nDates accept `YYYY-MM-DD`, `YYYY/MM/DD`, `YYYY.MM.DD`, `YYYYMMDD`, `MM/DD/YYYY` and `DD/MM/YYYY` when unambiguous. Time components are ignored.\n\nLegacy inputs from earlier versions (`dateFrom`/`dateTo`, `maxItems`, `days`, `classification`, `indexSource`, `provider`, `interval`) are mapped in code and remain accepted.\n\n### Examples\n\nCurrent reading (default):\n\n```json\n{ \"mode\": \"latest\" }\n```\n\nLast 90 days from alternative.me:\n\n```json\n{ \"mode\": \"historical\", \"limit\": 90 }\n```\n\nCoinMarketCap history with BTC context:\n\n```json\n{ \"mode\": \"historical\", \"source\": \"coinmarketcap\", \"limit\": 30 }\n```\n\nCFGI with components and a 4-hour view:\n\n```json\n{ \"mode\": \"latest\", \"source\": \"cfgi\", \"timeframe\": \"4h\" }\n```\n\nOnly Extreme Fear days in 2024:\n\n```json\n{\n  \"mode\": \"dateRange\",\n  \"startDate\": \"2024-01-01\",\n  \"endDate\": \"2024-12-31\",\n  \"classificationFilter\": \"Extreme Fear\"\n}\n```\n\n## Output per reading\n\n| Field | Type | Description |\n|---|---|---|\n| `recordType` | string | `fearGreedIndex` for readings, `error` for typed input/source errors |\n| `source` | string | `alternativeMe`, `coinmarketcap` or `cfgi` |\n| `indexName` | string | Human-readable name of the selected index |\n| `sourceUrl` | string | Endpoint or page the reading came from |\n| `value` | number | Index score, `0`–`100` |\n| `valueClassification` | string | `Extreme Fear`, `Fear`, `Neutral`, `Greed` or `Extreme Greed` |\n| `timestamp` | integer | Unix time (seconds, UTC) |\n| `date` | string | `YYYY-MM-DD` (UTC) |\n| `datetimeUtc` | string | Full ISO 8601 UTC datetime |\n| `timeUntilUpdate` | integer | Seconds until the next alternative.me update — latest reading only |\n| `timeframe` | string | CFGI interval (`1d`, `4h`, `1h`, `15m`) |\n| `marketCapUsd` | number | Crypto market cap in USD (CFGI) |\n| `btcPriceUsd` | number | BTC price in USD (CoinMarketCap) |\n| `btcVolumeUsd` | number | BTC volume in USD (CoinMarketCap) |\n| `components` | array | CFGI current snapshot: `key`, `label`, `score`, `classification`, `weightPercent` |\n| `changeFromPrevious` | number | Change vs the previous reading (daily series) |\n| `change7d` | number | Change vs the reading 7 rows earlier (daily series) |\n| `change30d` | number | Change vs the reading 30 rows earlier (daily series) |\n| `movingAverage7d` | number | Mean of the last 7 readings (daily series) |\n| `movingAverage30d` | number | Mean of the last 30 readings (daily series) |\n| `classificationStreakDays` | integer | Consecutive readings in the same band (daily series) |\n| `scrapedAt` | string | ISO 8601 UTC time the record was generated |\n\nEvery empty value is omitted. For example, `timeUntilUpdate` appears only on the alternative.me latest row, `btcPriceUsd` only on CoinMarketCap rows, and `components` only on the CFGI current snapshot.\n\n### Error record\n\n| Field | Type | Description |\n|---|---|---|\n| `recordType` | string | Always `error` |\n| `error` | string | `missing_input`, `invalid_date`, `invalid_date_range` or `source_unavailable` |\n| `message` | string | Human-readable explanation |\n| `input` | string | The offending input, when there is one |\n| `sourceUrl` | string | Endpoint the actor tried to read |\n| `scrapedAt` | string | ISO 8601 UTC time the record was generated |\n\n## Source coverage and methodology\n\n| Source | History starts | Native context | Components |\n|---|---|---|---|\n| alternative.me | 2018-02-01 | countdown to next update | not published |\n| CoinMarketCap | 2023-06-29 | BTC price and volume | not published |\n| CFGI | 2022-03-29 (1d); rolling 4h/1h/15m windows | market cap, 4 timeframes | 10 current component scores |\n\nEach publisher uses its own bands, and the actor preserves the publisher's label:\n\n- alternative.me: `0–25` Extreme Fear, `26–46` Fear, `47–54` Neutral, `55–75` Greed, `76–100` Extreme Greed.\n- CoinMarketCap: `0–19` Extreme Fear, `20–39` Fear, `40–59` Neutral, `60–79` Greed, `80–100` Extreme Greed.\n- CFGI: `0–19` Extreme Fear, `20–39` Fear, `40–59` Neutral, `60–79` Greed, `80–100` Extreme Greed. Fractional component scores use the same half-open bands (e.g. `39.5` is Fear).\n\nCFGI component weights: Price 30%, Momentum 30%, and 5% each for Volatility, Volume, Technical, Social, Dominance, Trends, Whales and Orders.\n\n## Use cases\n\n- **Trading bots and alerts** — trigger when the reading enters Extreme Fear or Extreme Greed.\n- **Dashboards** — show today's score beside BTC price, volume or market cap.\n- **Backtesting** — align daily sentiment against price history over a date range.\n- **Research** — compare how three publishers label the same market, and inspect the component mix behind CFGI.\n- **Newsletters** — pull a fresh reading and a plain-English label into a scheduled post.\n\n## FAQ\n\n**Do I need an API key, cookie or proxy?** No. All three sources are public and the actor reads them directly.\n\n**Which source should I use?** alternative.me for the longest history and the most widely quoted number; CoinMarketCap for a second independent index with BTC context; CFGI for intraday readings and component scores.\n\n**Why do the three sources disagree?** They use different inputs, weights and bands. On the same day alternative.me and CoinMarketCap often differ by a few points and can carry different labels. The `source` field tells you which methodology produced each row.\n\n**How far back does history go?** 2018-02-01 for alternative.me, 2023-06-29 for CoinMarketCap and 2022-03-29 for CFGI's daily series. CFGI intraday history is a rolling window (about 30 days for 4h, 7 days for 1h and 24 hours for 15m). A date range before a source's coverage simply returns the rows that exist.\n\n**Can I get historical component scores?** CFGI publishes component scores only for the current snapshot; its historical rows carry the composite and market cap. The actor ships what the source exposes rather than inventing historical components.\n\n**Why are some derived fields missing?** `change7d`, `movingAverage30d` and similar fields need enough earlier readings. They are computed for daily series only and omitted when the window is incomplete. Intraday CFGI rows omit day-based analytics.\n\n**What happens with a bad date or an unavailable source?** The actor writes one typed error record and a status message instead of failing silently.\n\n**Why does the latest reading ignore `classificationFilter`?** The filter applies to history and date ranges; a single current reading is returned as-is, matching the actor's previous behavior.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "crypto-market-sentiment-index-tracker",
      "title": "Crypto Market Sentiment Index Tracker",
      "description": "Track the Crypto Fear & Greed Index from alternative.me, CoinMarketCap or CFGI: current reading, full daily history, date ranges, 4h/1h/15m views and the 10 component scores. No API key, no proxy.",
      "version": "2.0",
      "buildTag": "latest",
      "dockerfile": "./Dockerfile",
      "readme": "# Crypto Market Sentiment Index Tracker\n\nTrack the **Crypto Fear & Greed Index** from three independent publishers, cookielessly. Pull the live reading, the last N values, any date range since 2018, or an intraday CFGI view — with a 0–100 score, a canonical sentiment label, unix timestamps, ISO dates and source-native market context. **No API key, no login, no proxy.**\n\n## Why this actor\n\nMost Fear & Greed actors wrap one feed and return the same five fields. This one gives you a choice of publishers and the data behind the number:\n\n- **alternative.me (default)** — the original index, daily history from 2018-02-01.\n- **CoinMarketCap** — CMC's own index, daily since 2023-06-29, with BTC price and volume.\n- **CFGI** — aggregate crypto-market index with daily history from 2022-03-29 plus rolling 4h/1h/15m views, market cap, and a **10-component breakdown** (Price, Momentum, Volatility, Volume, Technical, Social, Dominance, Trends, Whales, Orders).\n\nThe default prefill is one request and one reading, so schedules stay cheap.\n\n## Modes\n\n| Mode | What it returns |\n|---|---|\n| `latest` | The current reading only. CFGI also includes the component scores for the selected timeframe. |\n| `historical` | The most recent `limit` readings (daily for alternative.me and CoinMarketCap; the selected timeframe for CFGI). |\n| `dateRange` | Every reading whose date falls inside `startDate`..`endDate` (inclusive). |\n\nCFGI publishes only a rolling intraday window: about 30 days of 4-hour readings, 7 days of hourly and 24 hours of 15-minute readings. Use `timeframe=1d` for history back to 2022-03-29.\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `latest` | `latest` / `historical` / `dateRange` |\n| `source` | string | `alternativeMe` | `alternativeMe` / `coinmarketcap` / `cfgi` |\n| `timeframe` | string | `1d` | CFGI only: `1d` / `4h` / `1h` / `15m` (intraday history is a short rolling window) |\n| `limit` | integer | `30` | Number of recent readings in historical mode, `1`–`5000` |\n| `startDate` | string | – | Inclusive range start, e.g. `2024-01-01` (mode=dateRange) |\n| `endDate` | string | – | Inclusive range end, e.g. `2024-12-31` (mode=dateRange) |\n| `classificationFilter` | string | – | Keep one band: `Extreme Fear`, `Fear`, `Neutral`, `Greed` or `Extreme Greed` |\n\nDates accept `YYYY-MM-DD`, `YYYY/MM/DD`, `YYYY.MM.DD`, `YYYYMMDD`, `MM/DD/YYYY` and `DD/MM/YYYY` when unambiguous. Time components are ignored.\n\nLegacy inputs from earlier versions (`dateFrom`/`dateTo`, `maxItems`, `days`, `classification`, `indexSource`, `provider`, `interval`) are mapped in code and remain accepted.\n\n### Examples\n\nCurrent reading (default):\n\n```json\n{ \"mode\": \"latest\" }\n```\n\nLast 90 days from alternative.me:\n\n```json\n{ \"mode\": \"historical\", \"limit\": 90 }\n```\n\nCoinMarketCap history with BTC context:\n\n```json\n{ \"mode\": \"historical\", \"source\": \"coinmarketcap\", \"limit\": 30 }\n```\n\nCFGI with components and a 4-hour view:\n\n```json\n{ \"mode\": \"latest\", \"source\": \"cfgi\", \"timeframe\": \"4h\" }\n```\n\nOnly Extreme Fear days in 2024:\n\n```json\n{\n  \"mode\": \"dateRange\",\n  \"startDate\": \"2024-01-01\",\n  \"endDate\": \"2024-12-31\",\n  \"classificationFilter\": \"Extreme Fear\"\n}\n```\n\n## Output per reading\n\n| Field | Type | Description |\n|---|---|---|\n| `recordType` | string | `fearGreedIndex` for readings, `error` for typed input/source errors |\n| `source` | string | `alternativeMe`, `coinmarketcap` or `cfgi` |\n| `indexName` | string | Human-readable name of the selected index |\n| `sourceUrl` | string | Endpoint or page the reading came from |\n| `value` | number | Index score, `0`–`100` |\n| `valueClassification` | string | `Extreme Fear`, `Fear`, `Neutral`, `Greed` or `Extreme Greed` |\n| `timestamp` | integer | Unix time (seconds, UTC) |\n| `date` | string | `YYYY-MM-DD` (UTC) |\n| `datetimeUtc` | string | Full ISO 8601 UTC datetime |\n| `timeUntilUpdate` | integer | Seconds until the next alternative.me update — latest reading only |\n| `timeframe` | string | CFGI interval (`1d`, `4h`, `1h`, `15m`) |\n| `marketCapUsd` | number | Crypto market cap in USD (CFGI) |\n| `btcPriceUsd` | number | BTC price in USD (CoinMarketCap) |\n| `btcVolumeUsd` | number | BTC volume in USD (CoinMarketCap) |\n| `components` | array | CFGI current snapshot: `key`, `label`, `score`, `classification`, `weightPercent` |\n| `changeFromPrevious` | number | Change vs the previous reading (daily series) |\n| `change7d` | number | Change vs the reading 7 rows earlier (daily series) |\n| `change30d` | number | Change vs the reading 30 rows earlier (daily series) |\n| `movingAverage7d` | number | Mean of the last 7 readings (daily series) |\n| `movingAverage30d` | number | Mean of the last 30 readings (daily series) |\n| `classificationStreakDays` | integer | Consecutive readings in the same band (daily series) |\n| `scrapedAt` | string | ISO 8601 UTC time the record was generated |\n\nEvery empty value is omitted. For example, `timeUntilUpdate` appears only on the alternative.me latest row, `btcPriceUsd` only on CoinMarketCap rows, and `components` only on the CFGI current snapshot.\n\n### Error record\n\n| Field | Type | Description |\n|---|---|---|\n| `recordType` | string | Always `error` |\n| `error` | string | `missing_input`, `invalid_date`, `invalid_date_range` or `source_unavailable` |\n| `message` | string | Human-readable explanation |\n| `input` | string | The offending input, when there is one |\n| `sourceUrl` | string | Endpoint the actor tried to read |\n| `scrapedAt` | string | ISO 8601 UTC time the record was generated |\n\n## Source coverage and methodology\n\n| Source | History starts | Native context | Components |\n|---|---|---|---|\n| alternative.me | 2018-02-01 | countdown to next update | not published |\n| CoinMarketCap | 2023-06-29 | BTC price and volume | not published |\n| CFGI | 2022-03-29 (1d); rolling 4h/1h/15m windows | market cap, 4 timeframes | 10 current component scores |\n\nEach publisher uses its own bands, and the actor preserves the publisher's label:\n\n- alternative.me: `0–25` Extreme Fear, `26–46` Fear, `47–54` Neutral, `55–75` Greed, `76–100` Extreme Greed.\n- CoinMarketCap: `0–19` Extreme Fear, `20–39` Fear, `40–59` Neutral, `60–79` Greed, `80–100` Extreme Greed.\n- CFGI: `0–19` Extreme Fear, `20–39` Fear, `40–59` Neutral, `60–79` Greed, `80–100` Extreme Greed. Fractional component scores use the same half-open bands (e.g. `39.5` is Fear).\n\nCFGI component weights: Price 30%, Momentum 30%, and 5% each for Volatility, Volume, Technical, Social, Dominance, Trends, Whales and Orders.\n\n## Use cases\n\n- **Trading bots and alerts** — trigger when the reading enters Extreme Fear or Extreme Greed.\n- **Dashboards** — show today's score beside BTC price, volume or market cap.\n- **Backtesting** — align daily sentiment against price history over a date range.\n- **Research** — compare how three publishers label the same market, and inspect the component mix behind CFGI.\n- **Newsletters** — pull a fresh reading and a plain-English label into a scheduled post.\n\n## FAQ\n\n**Do I need an API key, cookie or proxy?** No. All three sources are public and the actor reads them directly.\n\n**Which source should I use?** alternative.me for the longest history and the most widely quoted number; CoinMarketCap for a second independent index with BTC context; CFGI for intraday readings and component scores.\n\n**Why do the three sources disagree?** They use different inputs, weights and bands. On the same day alternative.me and CoinMarketCap often differ by a few points and can carry different labels. The `source` field tells you which methodology produced each row.\n\n**How far back does history go?** 2018-02-01 for alternative.me, 2023-06-29 for CoinMarketCap and 2022-03-29 for CFGI's daily series. CFGI intraday history is a rolling window (about 30 days for 4h, 7 days for 1h and 24 hours for 15m). A date range before a source's coverage simply returns the rows that exist.\n\n**Can I get historical component scores?** CFGI publishes component scores only for the current snapshot; its historical rows carry the composite and market cap. The actor ships what the source exposes rather than inventing historical components.\n\n**Why are some derived fields missing?** `change7d`, `movingAverage30d` and similar fields need enough earlier readings. They are computed for daily series only and omitted when the window is incomplete. Intraday CFGI rows omit day-based analytics.\n\n**What happens with a bad date or an unavailable source?** The actor writes one typed error record and a status message instead of failing silently.\n\n**Why does the latest reading ignore `classificationFilter`?** The filter applies to history and date ranges; a single current reading is returned as-is, matching the actor's previous behavior.\n",
      "input": {
        "title": "Crypto Fear & Greed Index Scraper Input",
        "description": "Fetch the current Crypto Fear & Greed Index, its history, a date range, or an intraday CFGI view. Choose alternative.me, CoinMarketCap or CFGI. No API key, login or proxy.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Mode",
            "type": "string",
            "description": "What to fetch: the current reading, the last N readings, or a custom date range.",
            "editor": "select",
            "enum": [
              "latest",
              "historical",
              "dateRange"
            ],
            "enumTitles": [
              "Latest — current reading",
              "Historical — last N readings",
              "Date range — readings between two dates"
            ],
            "default": "latest",
            "prefill": "latest"
          },
          "source": {
            "title": "Index source",
            "type": "string",
            "description": "Which publisher to read. alternative.me has daily history since 2018; CoinMarketCap since 2023 with BTC price and volume; CFGI has daily history since 2022 plus short rolling 4h/1h/15m windows, a 10-component breakdown and market cap.",
            "editor": "select",
            "enum": [
              "alternativeMe",
              "coinmarketcap",
              "cfgi"
            ],
            "enumTitles": [
              "alternative.me — daily history since 2018 (default)",
              "CoinMarketCap — daily history since 2023 + BTC context",
              "CFGI — daily or intraday + component scores"
            ],
            "default": "alternativeMe",
            "prefill": "alternativeMe"
          },
          "timeframe": {
            "title": "CFGI timeframe",
            "type": "string",
            "description": "Reading interval for the CFGI source only: daily, 4-hour, hourly or 15-minute. CFGI intraday history is a short rolling window; other sources always return daily readings.",
            "editor": "select",
            "enum": [
              "1d",
              "4h",
              "1h",
              "15m"
            ],
            "enumTitles": [
              "Daily (1d)",
              "4 hours (4h)",
              "1 hour (1h)",
              "15 minutes (15m)"
            ],
            "default": "1d",
            "prefill": "1d"
          },
          "limit": {
            "title": "Number of readings (historical)",
            "type": "integer",
            "description": "How many of the most recent readings to return in historical mode. One reading per day for daily sources.",
            "minimum": 1,
            "maximum": 5000,
            "default": 30,
            "prefill": 30
          },
          "startDate": {
            "title": "Start date (date range)",
            "type": "string",
            "description": "Inclusive start of the range, e.g. 2024-01-01. Slash dates and US dates are also accepted (mode=dateRange).",
            "editor": "textfield",
            "example": "2024-01-01"
          },
          "endDate": {
            "title": "End date (date range)",
            "type": "string",
            "description": "Inclusive end of the range, e.g. 2024-12-31 (mode=dateRange).",
            "editor": "textfield",
            "example": "2024-12-31"
          },
          "classificationFilter": {
            "title": "Classification filter",
            "type": "string",
            "description": "Keep only readings in one sentiment band (historical and dateRange modes). Leave empty to keep every band.",
            "editor": "select",
            "enum": [
              "",
              "Extreme Fear",
              "Fear",
              "Neutral",
              "Greed",
              "Extreme Greed"
            ],
            "enumTitles": [
              "All classifications",
              "Extreme Fear",
              "Fear",
              "Neutral",
              "Greed",
              "Extreme Greed"
            ]
          }
        },
        "required": [
          "mode"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Crypto Market Sentiment Index Tracker Output",
        "description": "Fear & Greed readings from alternative.me, CoinMarketCap or CFGI: 0-100 value, canonical classification, unix timestamp, ISO dates, source context and (for CFGI) the 10 component scores.",
        "properties": {
          "readings": {
            "type": "string",
            "title": "Fear & Greed readings",
            "description": "Dataset with one record per reading. Reading fields include value, valueClassification, timestamp, date, datetimeUtc, source, indexName, derived trend statistics, and source-native context such as BTC price/volume (CoinMarketCap) or market cap and component scores (CFGI). Bad date input or an unavailable source produces a typed error record.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "Fear & Greed readings",
              "transformation": {
                "fields": [
                  "date",
                  "value",
                  "valueClassification",
                  "source",
                  "timeframe",
                  "timestamp",
                  "datetimeUtc"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            }
          }
        }
      },
      "environmentVariables": {}
    },
    "buildNumber": "2.0.1",
    "imageDigest": "16d5bb5e4676909ca77db551e3076a6605a5196c7ecb1cd27794fb1c7ac6eb16",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "2.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.0034566666666666665
    }
  }
}