# Crypto Fundamentals API - Artemis Stablecoin and Protocol Data (`nabeelbaghoor/crypto-fundamentals-stablecoin-api`) Actor

Crypto fundamentals API for Artemis data: protocol fees and revenue, chain users and TVL, stablecoin supply and transfer volume, DEX, lending, perps and prediction market metrics, equity financials and multiples, chain flows, ATH and streak insights. Bring your own key.

- **URL**: https://apify.com/nabeelbaghoor/crypto-fundamentals-stablecoin-api.md
- **Developed by:** [Nabeel Hassan](https://apify.com/nabeelbaghoor) (community)
- **Categories:** Developer tools, Business, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 metric value returneds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Crypto Fundamentals API - Artemis Stablecoin and Protocol Data

Export crypto protocol fees and revenue, chain users and TVL, stablecoin supply and transfer volume, DeFi sector metrics and public equity financials into an Apify dataset with your own Artemis API key.

Works with the Artemis data API (data-svc.artemisxyz.com), the institutional crypto fundamentals source behind the Artemis Terminal and Artemis Sheets. Crypto and equities share one namespace, so a single run can put Bitcoin, Hyperliquid, USDC and Coinbase side by side. Download the rows as JSON, CSV or Excel, schedule them daily, or feed them to dashboards, investment models and AI agents. Bring your own API key.

### What it does

- **Metric time series**: daily, weekly, monthly, quarterly or yearly values of any Artemis metric for up to 500 symbols: price, market cap, FDV, fees, revenue, daily active users, transactions, TVL, stablecoin supply, perp volume, open interest, lending deposits and more.
- **Snapshots and leaderboards**: the end date value of each metric for every symbol plus its percent change since the start date, in one call (the API's summarize view).
- **Stablecoin data**: supply (total, circulating, bridged, premint, peg stability), transfer volume, active addresses and transactions for 119 stablecoins, split by chain when you want.
- **Sector presets**: ready-made metric sets for chains, stablecoins, lending, spot DEX, perpetuals, prediction markets (Kalshi, Polymarket and others), equity financials and equity valuation multiples.
- **Dimension cuts**: split a series by chain, protocol version, category, token, ETF and other documented dimensions.
- **Chain capital flows**: inflows, outflows or netflows for Ethereum, Solana, Arbitrum, Base and 22 more chains.
- **Insight cards**: the API's all-time-high, all-time-low, growth streak, decline streak and acceleration feeds, filtered by domain, cadence, entity and metric.
- **Discovery**: every supported asset with sectors and links, and every metric a symbol supports with unit, aggregation type and available cuts.
- **Pay only for results**: empty lookups, unavailable metrics and refusals are recorded as a free row that says why, never charged.

### How to get an API key

Sign in at artemis.ai, click your user profile in the top right and open Settings; the API key is listed there. API access comes with the Managing Director plan and with the Artemis Sheets plugin. Paste the key into the API key field or set the `DATA_API_KEY` environment secret. This actor never ships a shared key.

### Input

| Field | Used by | What it does |
| --- | --- | --- |
| `mode` | all | `timeseries`, `snapshot`, `flows`, `insights`, `assets` or `supportedMetrics` |
| `symbols` | time series, snapshot, metrics for a symbol | Artemis symbols such as `btc`, `eth`, `usdc`, `hype`, `eq-coin` |
| `metricPreset` | time series, snapshot | Market, chain activity, chain base layer, stablecoins, stablecoin supply, lending, spot DEX, perps, prediction markets, equity financials, equity valuation, or custom |
| `metrics` | time series, snapshot, insights | Extra metric names (up to 25 in total); in insights mode, a metric filter |
| `startDate`, `endDate`, `lookbackDays` | time series, snapshot, flows | Date range (default the last 30 days) |
| `granularity` | time series, flows | `DAY`, `WEEK`, `MONTH`, `QUARTER` or `YEAR` |
| `dimensionType` | time series, snapshot | Split by `CHAIN`, `VERSION`, `CATEGORY`, `TOKEN` and more |
| `includeNulls` | time series | Keep still-open periods with a null value |
| `sourceChains`, `flowType`, `flowLimit` | flows | Chains, `netflow`, `inflow` or `outflow`, optional limit |
| `insightType`, `insightDomain`, `insightCadence`, `entityIds` | insights | Feed, domain, cadence and entity filters |
| `sector`, `assetType`, `search` | assets | Sector tag, asset type and text filters |
| `maxResults` | all | Row ceiling for the run (default 100) |
| `requestsPerMinute` | all | Pacing (default 60) |
| `apiKey` | all | Your Artemis API key, stored as a secret |

An endpoint only receives the parameters its documentation lists; an input that belongs to another mode is left off with a warning.

Example input, a stablecoin leaderboard:

```json
{
    "mode": "snapshot",
    "symbols": ["usdt", "usdc", "usds", "dai", "usde", "pyusd"],
    "metricPreset": "stablecoins",
    "lookbackDays": 30,
    "maxResults": 100
}
```

### Example output

A time series row:

```json
{
    "mode": "timeseries",
    "modeLabel": "Metric time series",
    "recordType": "metricPoint",
    "identifier": "kalshi OPEN_INTEREST",
    "found": true,
    "id": "kalshi|OPEN_INTEREST|2026-08-01",
    "symbol": "kalshi",
    "name": "Kalshi",
    "metric": "OPEN_INTEREST",
    "metricLabel": "Open Interest",
    "value": 700293307.0,
    "date": "2026-08-01",
    "timestamp": 1785542400000,
    "granularity": "DAY",
    "dimensionType": null,
    "retrievedAt": "2026-10-12T09:00:00.000Z",
    "note": null
}
```

A snapshot row carries `value` (the end date value), `pctChange`, `startDate` and `endDate`. A flow row carries `symbol` (the chain), `flowType` and `value`. An insight card keeps every provider field (`ENTITY_ID`, `METRIC_NAME`, `NEW_VALUE`, `PREVIOUS_ATH_VALUE`, `PERCENT_ABOVE_PREVIOUS`, `DURATION`, `SPARKLINE` and so on). An asset row carries `symbol`, `artemisId`, `coingeckoId`, `assetTypes`, `sectors`, `description` and links. A metric definition carries `metric`, `name` (label), `unit`, `aggregationType`, `source`, `dimensionTypes` and `methodology`.

A metric the API cannot serve for a symbol arrives as a free row with `found: false` and the API's own words, such as "Metric not available for asset."

### FAQ

#### What is Artemis?

Artemis (Artemis Analytics) is a crypto and fintech data platform that models fundamental metrics for 12,000+ tokens, 112 chains, 119 stablecoins, DeFi protocols, prediction markets and public equities. Its data is used by investment firms, consultancies and stablecoin issuers, and powers the S\&P Pantera Digital Asset Index fundamentals.

#### Do I need my own API key?

Yes. The actor reads the Artemis API with your own key. A run without a key ends straight away with a message that says where to find one, and nothing is charged.

#### How do I find the right symbol and metric name?

Run the supported assets mode (filter by sector, such as stablecoin, lending or perpetuals) to get each symbol, then the metrics for a symbol mode to list its metric names, units, aggregation types and available cuts. Symbols often differ from tickers: Hyperliquid is `hype`, Uniswap is `uni`, Maker is `sky`, and equities use the `eq-` prefix.

#### How do I build a sector leaderboard?

Use the snapshot mode with every protocol in the sector as symbols and a preset such as lending or perps. Each row is the end date value with its percent change over the range. Snapshot values are the end date value, not a period total; use time series with a monthly granularity for totals.

#### How do I get stablecoin supply by chain?

Use the time series mode with `usdc` (or any stablecoin), the stablecoins preset or `STABLECOIN_SUPPLY`, and split by Chain. Each row's symbol reads `<chain>-<stablecoin>`, such as `ethereum-usdc`.

#### Can I pull equity fundamentals and crypto in one run?

Yes. Add `eq-` symbols (`eq-coin`, `eq-nvda`, `eq-meta`) with the equity financials or equity valuation preset, or any company KPI the metrics for a symbol mode lists. Fundamentals are dated by fiscal period end.

#### Why are some values missing for today?

The current period is returned with a null value until it closes. Those points are left out unless you turn on `includeNulls`.

#### What do I pay?

Pay per result: 0.005 USD per metric value, snapshot value or chain flow figure, 0.01 USD per insight card, and 0.005 USD per asset or metric definition. Empty lookups and refusals are never charged. Your Artemis subscription is billed separately by Artemis.

#### What happens if my key is wrong?

A rejected key (HTTP 401) or a plan without API access ends the run cleanly with a status message that explains what to change. Rate limits (HTTP 429) and server errors are waited out and retried.

### Pricing

| Event | Price |
| --- | --- |
| Metric value, snapshot value or chain flow figure | 0.005 USD |
| Insight card | 0.01 USD |
| Asset or metric definition | 0.005 USD |

### Keyword map

crypto fundamentals API, crypto data API, stablecoin data API, stablecoin supply API, protocol revenue API, crypto fees and revenue, DeFi TVL API, chain daily active users, perpetuals open interest, DEX volume API, lending protocol data, prediction market data, Kalshi and Polymarket volume, crypto equities comps, Coinbase financials, chain capital flows, crypto all-time high alerts, Artemis API, Artemis Analytics.

### Terms and data use

Use of Artemis data is governed by your agreement with Artemis. The public Terms of Service grant a personal, non-commercial, non-transferable licence and forbid redistributing, reselling or sublicensing data, and redistributing third-party provider data (such as S\&P Global Market Intelligence financials) to anyone; API access is sold on the Managing Director plan and the Sheets plugin, and commercial use needs an enterprise licence from Artemis (team@artemis.xyz). Keep the datasets for your own use under the terms of your plan. This actor is not affiliated with or endorsed by Artemis.

BYOK, not live-tested: the routes and response shapes come from the Artemis documentation and from probes of the live service with an invalid key; no paid key was used to build this actor.

# Actor input Schema

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

Metric time series returns dated values for each symbol and metric. Metric snapshot returns the end date value of each metric with its percent change since the start date, ideal for leaderboards. Chain capital flows returns inflows, outflows or netflows per chain. Insight cards returns the API all-time-high, all-time-low, growth streak, decline streak or acceleration feed. Supported assets lists every symbol with sectors. Metrics for a symbol lists the metric names, units and dimension cuts a symbol supports.

## `symbols` (type: `array`):

Time series, snapshot and metrics for a symbol modes. Artemis symbols such as btc, eth, sol, usdc, usdt, aave, hype, uni, kalshi, polymarket, or equities with the eq- prefix such as eq-coin, eq-nvda. The supported assets mode lists every symbol; symbols differ from tickers for many assets (Hyperliquid is hype, Maker is sky).

## `metricPreset` (type: `string`):

Time series and snapshot modes. A ready-made set of documented metric names. Custom uses only the metrics input; any metrics you list are added to the preset.

## `metrics` (type: `array`):

Time series and snapshot modes: extra metric names such as PRICE, MC, FEES, REVENUE, TVL, DAU, PERP_VOLUME, OPEN_INTEREST, LENDING_DEPOSITS or company KPIs such as DATA_CENTER_REVENUE (up to 25 in total). Insight cards mode: only keep cards for these metric names. The metrics for a symbol mode lists every metric name.

## `startDate` (type: `string`):

Time series, snapshot and flows modes. First day, YYYY-MM-DD. Leave empty to use the lookback days before the end date.

## `endDate` (type: `string`):

Time series, snapshot and flows modes. Last day, YYYY-MM-DD. Leave empty for today (UTC).

## `lookbackDays` (type: `integer`):

Days before the end date to start from when no start date is set.

## `granularity` (type: `string`):

Time series and flows modes. Rolls each metric up by its own aggregation type: sums for flows like volume and fees, the last value for stocks like TVL and open interest, averages for users and rates. Periods are labelled by their first day; equity fundamentals by fiscal period end.

## `dimensionType` (type: `string`):

Time series and snapshot modes. Splits each series into one per chain, protocol version, category, token and so on. Only works for metrics whose cuts list the dimension (see the metrics for a symbol mode); otherwise the API answers 422 or a not-available note.

## `includeNulls` (type: `boolean`):

Time series mode. Keep points whose value is still null because the period has not closed yet (usually today). Off by default.

## `sourceChains` (type: `array`):

Chain capital flows mode. Chains to read inflows, outflows or netflows for.

## `flowType` (type: `string`):

Chain capital flows mode. Netflow is inflow minus outflow.

## `flowLimit` (type: `integer`):

Chain capital flows mode. Optional limit parameter; the provider notes it may cause issues with some chain combinations, so leave empty unless needed.

## `insightType` (type: `string`):

Insight cards mode. All-time highs and lows carry the new and previous record with the percent move; streaks carry the start and end value over consecutive periods; acceleration flags a rising rate of change.

## `insightDomain` (type: `string`):

Insight cards mode. Only keep cards for protocols and chains, stablecoins (aggregate or per chain) or equities.

## `insightCadence` (type: `string`):

Insight cards mode. Only keep daily, weekly, monthly or quarterly cards.

## `entityIds` (type: `array`):

Insight cards mode. Only keep cards for these entity IDs, such as ethereum, solana, usdt, hyperliquid or a ticker such as COIN.

## `sector` (type: `string`):

Supported assets mode. Only keep assets tagged with this sector.

## `assetType` (type: `string`):

Supported assets mode. Only keep apps, chains, stablecoins or equities.

## `search` (type: `string`):

Supported assets mode. Only keep assets whose symbol, name or ID contains this text.

## `maxResults` (type: `integer`):

The most rows this run returns and charges for.

## `requestsPerMinute` (type: `integer`):

Pacing. Artemis does not publish a rate limit; a 429 answer is waited out and retried.

## `apiKey` (type: `string`):

Your own Artemis API key, from the Settings page of your Artemis account (artemis.ai, user profile, Settings). API access comes with the Managing Director plan and the Artemis Sheets plugin. Stored as a secret, sent only as the documented APIKey parameter and never logged. You can instead set the DATA_API_KEY environment secret.

## Actor input object example

```json
{
  "mode": "timeseries",
  "symbols": [
    "btc",
    "eth",
    "usdc"
  ],
  "metricPreset": "market",
  "lookbackDays": 30,
  "granularity": "DAY",
  "dimensionType": "TOTAL",
  "includeNulls": false,
  "sourceChains": [
    "ethereum",
    "solana",
    "arbitrum",
    "base"
  ],
  "flowType": "netflow",
  "insightType": "ath",
  "insightDomain": "any",
  "insightCadence": "any",
  "sector": "any",
  "assetType": "any",
  "maxResults": 100,
  "requestsPerMinute": 60
}
```

# Actor output Schema

## `records` (type: `string`):

One row per metric point, snapshot, chain flow, insight card, asset or metric definition.

# 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 = {
    "symbols": [
        "btc",
        "eth",
        "usdc"
    ],
    "sourceChains": [
        "ethereum",
        "solana",
        "arbitrum",
        "base"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("nabeelbaghoor/crypto-fundamentals-stablecoin-api").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 = {
    "symbols": [
        "btc",
        "eth",
        "usdc",
    ],
    "sourceChains": [
        "ethereum",
        "solana",
        "arbitrum",
        "base",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("nabeelbaghoor/crypto-fundamentals-stablecoin-api").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "symbols": [
    "btc",
    "eth",
    "usdc"
  ],
  "sourceChains": [
    "ethereum",
    "solana",
    "arbitrum",
    "base"
  ]
}' |
apify call nabeelbaghoor/crypto-fundamentals-stablecoin-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,nabeelbaghoor/crypto-fundamentals-stablecoin-api"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/3Ie91PzOvjcfL4frN/builds/ySNheA6bbyANgfkEd/openapi.json
