Skill

TotalClaw 作者 tickerapi v0.1.0

查询 TickerAPI.ai 以获取预先计算的分类市场情报 - 扫描超卖股票、突破、异常交易量、极端估值和内部活动。获取单一资产摘要、比较多个股票代码或监控观察列表。当用户询问市场状况、股票信号、超卖或突破、资产比较、投资组合检查或任何派生指标数据时使用。涵盖美国股票、加密货币和 ETF,每日/每周时间范围。与tickerarena配对以自动执行交易。

源码 ↗

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install totalclaw:tickerapi~tickerapi
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atickerapi~tickerapi/file -o tickerapi.md
Git 仓库获取源码
git clone https://github.com/openclaw/skills/commit/81795b877294716c0f613067ec13bb9ac7b70998
## 概述(中文)

查询 TickerAPI.ai 以获取预先计算的分类市场情报 - 扫描超卖股票、突破、异常交易量、极端估值和内部活动。获取单一资产摘要、比较多个股票代码或监控观察列表。当用户询问市场状况、股票信号、超卖或突破、资产比较、投资组合检查或任何派生指标数据时使用。涵盖美国股票、加密货币和 ETF,每日/每周时间范围。与tickerarena配对以自动执行交易。

## 原文

# TickerAPI Skill

## First Run Setup

If the `TICKERAPI_KEY` environment variable is not set, walk the user through signup before doing anything else:

1. Ask for their email address.
2. Call `POST https://api.tickerapi.ai/auth` with `{ "email": "<their email>" }`.
3. Tell them to check their inbox for a 6-digit code.
4. Once they provide the code, call `POST https://api.tickerapi.ai/auth/verify` with `{ "email": "<their email>", "code": "<their code>" }`.
5. If the response contains an `apiKey` field (new users), display the key and tell them to save it: `openclaw config set skills.tickerapi.apiKey <key>`. If they already have an account (no `apiKey` in response), tell them to grab their key from https://tickerapi.ai/dashboard.
6. If the `tickerarena` skill is also installed, tell them to save the same key there too: `openclaw config set skills.tickerarena.apiKey <key>` — one account works for both services.

After the first successful request, offer to set up a daily morning scan:
> "Want me to scan the market for you every morning before it opens? I'll check for oversold stocks, breakouts, and volume spikes and summarize the best setups. Type `/tickerapi cron` to set it up."

---

TickerAPI provides pre-computed, categorical market data designed for LLMs and AI agents. Every response contains verifiable facts — no OHLCV, no raw indicator values, just derived categorical bands (e.g. `oversold`, not `RSI: 24`).

- **Asset classes:** US Stocks, Crypto (tickers require `USD` suffix, e.g. `BTCUSD`), ETFs
- **Timeframes:** `daily` (default), `weekly`
- **Update frequency:** End-of-day (~00:30 UTC)
- **Response format:** JSON
- **Data is factual, not predictive** — no scores, no recommendations, no bias

## Authentication

All requests require a Bearer token in the Authorization header:

```
Authorization: Bearer $TICKERAPI_KEY
```

**Unified accounts:** TickerAPI and [TickerArena](https://tickerarena.com) share the same account system. One API key (prefixed `ta_`) works for both services. If a user already has a TickerArena account, their existing key works here — and vice versa.

Errors: `401` = missing/invalid token. `403` = endpoint requires higher tier (response includes `upgrade_url`).

## Base URL

```
https://api.tickerapi.ai/v1
```

## Common Parameters (all endpoints)

| Parameter | Type | Description |
|-----------|------|-------------|
| `ticker` | string | Asset symbol, uppercase. Crypto needs `USD` suffix (e.g. `BTCUSD`). Required on per-asset endpoints. |
| `timeframe` | string | `daily` or `weekly`. Default: `daily`. |
| `asset_class` | string | `stock`, `crypto`, `etf`, or `all`. Auto-detected on per-asset endpoints. |
| `date` | string | ISO 8601 (`YYYY-MM-DD`) for historical snapshot. Plus: 30 days. Pro: full backfill. |
| `limit` | integer | Max results. Default: 20, max: 50. Scan endpoints only. |

## Important: Asset Class Rules

- **Stocks** get all technical + fundamental data (valuation, growth, earnings, analyst consensus).
- **Crypto and ETFs** get technical data only. Fundamental fields are **omitted entirely** (keys absent, not null).
- Crypto tickers MUST include `USD` suffix: `BTCUSD`, `ETHUSD`, `SOLUSD`. Using just `BTC` returns an error.

---

## Categorical Bands Reference

TickerAPI never returns raw indicator values. All data uses categorical bands:

- **RSI/Stochastic zones:** `deep_oversold`, `oversold`, `neutral_low`, `neutral`, `neutral_high`, `overbought`, `deep_overbought`
- **Trend direction:** `strong_uptrend`, `uptrend`, `neutral`, `downtrend`, `strong_downtrend`
- **MA alignment:** `aligned_bullish`, `mixed`, `aligned_bearish`
- **MA distance:** `far_above`, `moderately_above`, `slightly_above`, `slightly_below`, `moderately_below`, `far_below`
- **Volume ratio:** `extremely_low`, `low`, `normal`, `elevated`, `high`, `extremely_high`
- **Accumulation state:** `strong_accumulation`, `accumulation`, `neutral`, `distribution`, `strong_distribution`
- **Volatility regime:** `low`, `normal`, `elevated`, `high`, `extreme`
- **Support/resistance distance:** `at_level`, `very_close`, `near`, `moderate`, `far`, `very_far`
- **MACD state:** `expanding_positive`, `contracting_positive`, `expanding_negative`, `contracting_negative`
- **Momentum direction:** `accelerating`, `steady`, `decelerating`, `bullish_reversal`, `bearish_reversal`
- **Valuation zone (stocks only):** `deep_value`, `undervalued`, `fair_value`, `overvalued`, `extreme_premium`
- **Growth zone (stocks only):** `high_growth`, `moderate_growth`, `stable`, `declining`, `contracting`
- **Growth direction (stocks only):** `accelerating`, `steady`, `decelerating`, `contracting`
- **Earnings proximity (stocks only):** `imminent`, `this_week`, `this_month`, `next_month`, `not_soon`
- **Earnings surprise (stocks only):** `big_beat`, `beat`, `met`, `missed`, `big_miss`
- **Analyst consensus (stocks only):** `strong_buy`, `buy`, `hold`, `sell`, `strong_sell`
- **Analyst consensus direction (stocks only):** `upgrading`, `stable`, `downgrading`
- **Insider activity zone (stocks only):** `heavy_buying`, `moderate_buying`, `neutral`, `moderate_selling`, `heavy_selling`
- **Insider net direction (stocks only):** `strong_buying`, `buying`, `neutral`, `selling`, `strong_selling`
- **Condition rarity:** `extremely_rare`, `very_rare`, `rare`, `uncommon`, `occasional`, `common`

---

## Scan Endpoints

### GET /v1/scan/oversold

Find assets in oversold conditions with per-asset historical context. Strategy: mean reversion / bounce.

**Parameters:**

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `asset_class` | string | `all` | `stock`, `crypto`, `etf`, or `all` |
| `sector` | string | none | Filter by sector (case-insensitive), e.g. `Semiconductors` |
| `min_severity` | string | `oversold` | `oversold` or `deep_oversold` |
| `sort_by` | string | `severity` | `severity`, `days_oversold`, or `condition_percentile` |
| `limit` | integer | 20 | Max results, max 50 |
| `timeframe` | string | `daily` | `daily` or `weekly` |
| `date` | string | latest | Historical snapshot (Plus+) |

**Free tier fields:** `ticker`, `asset_class`, `rsi_zone`, `condition_rarity`, `sector`, `valuation_zone` (stocks only)

**Plus adds:** `stochastic_zone`, `days_in_oversold`, `oversold_streaks_count`, `volume_context` (`capitulation`/`elevated`/`normal`/`drying_up`), `volume_ratio_band`, `trend_context`, `nearest_support_distance`, `sector_rsi_zone`, `earnings_proximity` (stocks), `growth_zone` (stocks), `analyst_consensus` (stocks)

**Pro adds:** `accumulation_state`, `historical_median_oversold_days`, `historical_max_oversold_days`, `sector_agreement` (boolean), `sector_oversold_count`, `sector_total_count`

**Example:**
```
curl https://api.tickerapi.ai/v1/scan/oversold?asset_class=stock&min_severity=deep_oversold&limit=5 \
  -H "Authorization: Bearer $TICKERAPI_KEY"
```

---

### GET /v1/scan/breakouts

Assets testing or breaking key levels with volume confirmation. Strategy: momentum / breakout.

**Parameters:**

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `asset_class` | string | `all` | `stock`, `crypto`, `etf`, or `all` |
| `sector` | string | none | Filter by sector (case-insensitive) |
| `direction` | string | `all` | `bullish` (resistance), `bearish` (support), or `all` |
| `sort_by` | string | `volume_ratio` | `volume_ratio`, `level_strength`, or `condition_percentile` |
| `limit` | integer | 20 | Max results, max 50 |
| `timeframe` | string | `daily` | `daily` or `weekly` |
| `date` | string | latest | Historical snapshot (Plus+) |

**Free tier fields:** `ticker`, `asset_class`, `breakout_type` (`resistance_break`/`support_break`/`resistance_test`/`support_test`), `condition_rarity`, `sector`

**Plu