# Crypto Sector Rotation Tracker (`gochujang/crypto-sector-rotation`) Actor

Track 700+ crypto market sectors (AI, L1, L2, DeFi, RWA, Memes, DePIN, Restaking, etc.) for 24h market cap changes and volume surges. Detect which narratives are leading and lagging. Catch sector rotations early. No API key required. $0.001/sector.

- **URL**: https://apify.com/gochujang/crypto-sector-rotation.md
- **Developed by:** [Hojun Lee](https://apify.com/gochujang) (community)
- **Categories:** Developer tools, Automation, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Crypto Sector Rotation Tracker

> Track **700+ CoinGecko market sectors** — AI, L1, L2, DeFi, RWA, Meme Coins, DePIN, Restaking, and more — for 24h market cap changes and volume surges. Catch which narratives are rotating in or out **before** the crowd. No API key required. **$0.001/sector** (28 major = $0.03/run).

---

### What Is Sector Rotation in Crypto?

When BTC stabilizes, capital flows from BTC → majors → altcoins → narrative plays. Within altcoins, it flows from sector to sector based on which narrative the market is pricing in. Understanding which sectors are gaining (inflow) vs. losing (outflow) market cap tells you where smart money is positioning **today**.

This actor makes that signal visible in seconds.

### Rotation Signals

Each sector gets a rotation signal:

| Signal | Meaning |
|--------|---------|
| `strong_inflow` | +10% mcap change + high volume (breakout narrative) |
| `inflow` | +5% to +10% (gaining traction) |
| `neutral` | -5% to +5% (sideways) |
| `outflow` | -5% to -10% (capital leaving) |
| `strong_outflow` | -10%+ with volume (active sell pressure) |
| `high_volume_flat` | Flat price but 20%+ volume/mcap — accumulation or distribution |

### Example Output

```json
{
  "rank": 1,
  "category_id": "ai-agents",
  "name": "AI Agents",
  "market_cap_b": 8.42,
  "volume_24h_b": 1.2,
  "change_24h_pct": 14.3,
  "volume_to_mcap": 0.143,
  "rotation_signal": "strong_inflow",
  "top_3_tokens": ["aixbt-by-virtuals", "zerebro", "ai16z"],
  "updated_at": "2026-07-08T15:00:00Z"
}
````

### Key Use Cases

**Morning rotation scan:**

```json
{
  "mode": "major",
  "sortBy": "change_24h_pct",
  "signalsOnly": true,
  "limit": 20
}
```

→ Quickly see which narratives are leading or lagging at market open.

**Volume momentum hunt:**

```json
{
  "mode": "major",
  "sortBy": "volume_to_mcap",
  "minMarketCapMillion": 200,
  "limit": 10
}
```

→ Find sectors with high volume relative to market cap (potential breakouts).

**Full category sweep (AI, DePIN, RWA focus):**

```json
{
  "mode": "custom",
  "categoryIds": ["artificial-intelligence", "ai-agents", "depin", "real-world-assets-rwa", "restaking"],
  "sortBy": "change_24h_pct"
}
```

**Sector screener for all 700+ categories:**

```json
{
  "mode": "all",
  "minMarketCapMillion": 500,
  "sortBy": "change_24h_pct",
  "limit": 30
}
```

### Major Sectors Covered (mode=major)

| Sector | Coverage |
|--------|---------|
| AI & Machine Learning | AI tokens, agent infrastructure |
| AI Agents | Virtuals, ai16z, autonomous agents |
| DeFi | Lending, DEX, yield protocols |
| Layer 1 | ETH, SOL, SUI, ADA, AVAX ecosystems |
| Layer 2 | ARB, OP, BASE, MATIC, starknet |
| Real World Assets (RWA) | Tokenized bonds, equities, commodities |
| Meme Coins | DOGE, SHIB, PEPE, WIF, BONK |
| DePIN | Physical infrastructure networks |
| Restaking | EigenLayer, LRT protocols |
| Bitcoin Ecosystem | WBTC, BRC-20, ordinals infrastructure |
| Solana Ecosystem | Native SOL protocols |
| Prediction Markets | Polymarket, Gnosis, Azuro |
| Oracles | Chainlink, Pyth, UMA |
| Perpetuals | dYdX, GMX, Hyperliquid |
| Gaming & Metaverse | Game tokens, virtual worlds |
| NFT | NFT marketplaces and infrastructure |
| DAO | Governance tokens |
| Privacy | Monero, ZCash, privacy DeFi |
| Interoperability | Cross-chain bridges |
| Liquid Staking | stETH, rETH, liquid staking tokens |
| Modular Blockchains | Celestia, EigenDA, data availability |
| Tokenized Commodities | Gold, oil, agricultural tokens |
| Infrastructure | General crypto infrastructure |
| DEX | Decentralized exchange protocols |
| Storage | Filecoin, Arweave, decentralized storage |

### Input Options

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `mode` | string | `major` | `major` (28 curated), `all` (700+), or `custom` |
| `categoryIds` | string\[] | `[]` | CoinGecko category IDs (for `custom` mode) |
| `sortBy` | string | `change_24h_pct` | Sort by change, volume, market cap, or vol/mcap |
| `minMarketCapMillion` | number | `100` | Min sector market cap in USD millions |
| `signalsOnly` | boolean | `false` | Skip neutral sectors, return only strong signals |
| `limit` | integer | `50` | Max results (up to 200) |

### Pricing

- **$0.001 per sector**
- 28 major sectors = **$0.028/run**
- Full 700+ sweep with mcap filter = ~$0.05–$0.20/run depending on filter

### Data Source

[CoinGecko Free API](https://www.coingecko.com/en/api) — 738 categories updated every 5–10 minutes, no API key required.

# Actor input Schema

## `mode` (type: `string`):

Which categories to track. 'major' covers 28 curated crypto sectors (AI, DeFi, L1, L2, RWA, Memes, etc.). 'all' returns all 700+ categories. 'custom' uses your specific categoryIds.

## `categoryIds` (type: `array`):

CoinGecko category IDs to track (only used when mode=custom). Find IDs from the CoinGecko categories list (e.g. 'artificial-intelligence', 'layer-2', 'meme-tokens').

## `sortBy` (type: `string`):

Ranking criterion for output.

## `minMarketCapMillion` (type: `number`):

Filter out tiny sectors. Default 100M to skip irrelevant niche categories.

## `signalsOnly` (type: `boolean`):

If true, skip 'neutral' sectors (< 2% change, normal volume). Returns only sectors with clear inflow or outflow signals.

## `limit` (type: `integer`):

Maximum number of sectors to return.

## Actor input object example

```json
{
  "mode": "major",
  "categoryIds": [],
  "sortBy": "change_24h_pct",
  "minMarketCapMillion": 100,
  "signalsOnly": false,
  "limit": 50
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("gochujang/crypto-sector-rotation").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("gochujang/crypto-sector-rotation").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call gochujang/crypto-sector-rotation --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=gochujang/crypto-sector-rotation",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Crypto Sector Rotation Tracker",
        "description": "Track 700+ crypto market sectors (AI, L1, L2, DeFi, RWA, Memes, DePIN, Restaking, etc.) for 24h market cap changes and volume surges. Detect which narratives are leading and lagging. Catch sector rotations early. No API key required. $0.001/sector.",
        "version": "0.1",
        "x-build-id": "8HVdBimSxNvn82t9C"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/gochujang~crypto-sector-rotation/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-gochujang-crypto-sector-rotation",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/gochujang~crypto-sector-rotation/runs": {
            "post": {
                "operationId": "runs-sync-gochujang-crypto-sector-rotation",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/gochujang~crypto-sector-rotation/run-sync": {
            "post": {
                "operationId": "run-sync-gochujang-crypto-sector-rotation",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "mode": {
                        "title": "Category Mode",
                        "enum": [
                            "major",
                            "all",
                            "custom"
                        ],
                        "type": "string",
                        "description": "Which categories to track. 'major' covers 28 curated crypto sectors (AI, DeFi, L1, L2, RWA, Memes, etc.). 'all' returns all 700+ categories. 'custom' uses your specific categoryIds.",
                        "default": "major"
                    },
                    "categoryIds": {
                        "title": "Custom Category IDs",
                        "type": "array",
                        "description": "CoinGecko category IDs to track (only used when mode=custom). Find IDs from the CoinGecko categories list (e.g. 'artificial-intelligence', 'layer-2', 'meme-tokens').",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "sortBy": {
                        "title": "Sort By",
                        "enum": [
                            "change_24h_pct",
                            "volume_24h_usd",
                            "market_cap_usd",
                            "volume_to_mcap"
                        ],
                        "type": "string",
                        "description": "Ranking criterion for output.",
                        "default": "change_24h_pct"
                    },
                    "minMarketCapMillion": {
                        "title": "Min Sector Market Cap (USD millions)",
                        "minimum": 0,
                        "type": "number",
                        "description": "Filter out tiny sectors. Default 100M to skip irrelevant niche categories.",
                        "default": 100
                    },
                    "signalsOnly": {
                        "title": "Signals Only",
                        "type": "boolean",
                        "description": "If true, skip 'neutral' sectors (< 2% change, normal volume). Returns only sectors with clear inflow or outflow signals.",
                        "default": false
                    },
                    "limit": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Maximum number of sectors to return.",
                        "default": 50
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
