技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
tickerapi【数据与研究】Query TickerAPI.ai for pre-computed categorical market intelligence — scan for oversold stocks, breakouts, unusual volume, valuation extremes, and insider activity. Get single-asset summaries, compare multiple tickers, or monitor a watchlist. Use when the user asks about market conditions, stock signals, what's oversold or breaking out, asset compari…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
If the TICKERAPI_KEY environment variable is not set, walk the user through signup before doing anything else:
POST https://api.tickerapi.ai/auth with { "email": "<their email>" }.POST https://api.tickerapi.ai/auth/verify with { "email": "<their email>", "code": "<their code>" }.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.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 cronto 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).
USD suffix, e.g. BTCUSD), ETFsdaily (default), weeklyAll requests require a Bearer token in the Authorization header:
Authorization: Bearer $TICKERAPI_KEY
Unified accounts: TickerAPI and TickerArena 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).
https://api.tickerapi.ai/v1
| 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. |
USD suffix: BTCUSD, ETHUSD, SOLUSD. Using just BTC returns an error.TickerAPI never returns raw indicator values. All data uses categorical bands:
deep_oversold, oversold, neutral_low, neutral, neutral_high, overbought, deep_overboughtstrong_uptrend, uptrend, neutral, downtrend, strong_downtrendaligned_bullish, mixed, aligned_bearishfar_above, moderately_above, slightly_above, slightly_below, moderately_below, far_belowextremely_low, low, normal, elevated, high, extremely_highstrong_accumulation, accumulation, neutral, distribution, strong_distributionlow, normal, elevated, high, extremeat_level, very_close, near, moderate, far, very_farexpanding_positive, contracting_positive, expanding_negative, contracting_negativeaccelerating, steady, decelerating, bullish_reversal, bearish_reversaldeep_value, undervalued, fair_value, overvalued, extreme_premiumhigh_growth, moderate_growth, stable, declining, contractingaccelerating, steady, decelerating, contractingimminent, this_week, this_month, next_month, not_soonbig_beat, beat, met, missed, big_missstrong_buy, buy, hold, sell, strong_sellupgrading, stable, downgradingheavy_buying, moderate_buying, neutral, moderate_selling, heavy_sellingstrong_buying, buying, neutral, selling, strong_sellingextremely_rare, very_rare, rare, uncommon, occasional, commonFind 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"
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
Plus adds: level_price, level_type (horizontal/trendline/ma_derived), level_touch_count, held_count, broke_count, volume_ratio_band, rsi_zone, trend_context, earnings_proximity (stocks), growth_zone (stocks)
Pro adds: squeeze_context (active_squeeze/recent_squeeze_fire/no_squeeze), volume_vs_prior_breakouts (stronger/similar/weaker), sector_breakout_count, sector_total_count
Example:
curl https://api.tickerapi.ai/v1/scan/breakouts?direction=bullish&asset_class=stock&limit=10 \
-H "Authorization: Bearer $TICKERAPI_KEY"
Assets at significantly abnormal volume levels. Strategy: volume anomaly detection.
Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
asset_class | string | all | stock, crypto, etf, or all |
sector | string | none | Filter by sector (case-insensitive) |
min_ratio_band | string | elevated | elevated, high, or extremely_high |
sort_by | string | volume_percentile | volume_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, volume_ratio_band, condition_rarity, sector
Plus adds: volume_percentile, price_direction_on_volume (up/down/flat), consecutive_elevated_days, rsi_zone, trend_context, nearest_level_distance, nearest_level_type (support/resistance), earnings_proximity (stocks), last_earnings_surprise (stocks)
Pro adds: accumulation_state, historical_avg_elevated_streak, sector_elevated_volume_count, sector_total_count
Example:
curl https://api.tickerapi.ai/v1/scan/unusual-volume?min_ratio_band=high&asset_class=crypto&limit=5 \
-H "Authorization: Bearer $TICKERAPI_KEY"
Stocks at historically abnormal valuations. Strategy: value / mean reversion. Stocks only — crypto and ETFs have no fundamental valuation data.
Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
sector | string | none | Filter by sector (case-insensitive) |
direction | string | all | undervalued, overvalued, or all |
min_severity | string | none | undervalued/deep_value for cheap; overvalued/extreme_premium for expensive |
sort_by | string | valuation_percentile | valuation_percentile, pe_vs_history, or growth_zone |
limit | integer | 20 | Max results, max 50 |
date | string | latest | Historical snapshot (Plus+) |
Free tier fields: ticker, sector, valuation_zone, valuation_rarity, growth_zone, analyst_consensus
Plus adds: revenue_growth_direction, eps_growth_direction, earnings_proximity, rsi_zone, trend_context, sector_valuation_zone, sector_agreement (boolean)
Pro adds: pe_vs_historical_zone, pe_vs_sector_zone, pb_vs_historical_zone, last_earnings_surprise, analyst_consensus_direction
Example:
curl https://api.tickerapi.ai/v1/scan/valuation?direction=undervalued&min_severity=deep_value&limit=10 \
-H "Authorization: Bearer $TICKERAPI_KEY"
Stocks with significant insider buying or selling (SEC Form 4 filings). Stocks only.
Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
direction | string | all | all, buying, or selling |
sector | string | none | Filter by sector (case-insensitive) |
sort_by | string | zone_severity | zone_severity, shares_volume, or net_ratio |
limit | integer | 20 | Max results, max 50 |
timeframe | string | daily | daily or weekly |
date | string | latest | Historical snapshot (Plus+) |
Free tier fields: ticker, sector, insider_activity_zone, net_direction
Plus adds: quarter, buy_count, sell_count, shares_bought, shares_sold, rsi_zone, trend_context, volume_ratio_band, valuation_zone, earnings_proximity
Example:
curl https://api.tickerapi.ai/v1/scan/insider-activity?direction=buying&sort_by=zone_severity&limit=10 \
-H "Authorization: Bearer $TICKERAPI_KEY"
Comprehensive factual snapshot for a single asset. Every field is a verifiable fact.
Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
ticker | string | — | Required. In the URL path (e.g. /v1/summary/AAPL) |
timeframe | string | daily | daily or weekly |
date | string | latest | Plus: 2 years. Pro: 5 years. |
Tier access: Free gets core technical (trend, momentum, extremes, volatility, volume). Plus adds support/resistance and basic fundamentals. Pro adds sector_context and advanced fundamentals.
Response sections:
trend — direction, duration_days, ma_alignment, distance_from_ma_band (ma_20, ma_50, ma_200), volume_confirmation (confirmed/diverging/neutral)momentum — rsi_zone, stochastic_zone, rsi_stochastic_agreement, macd_state, direction, divergence_detected, divergence_type (bullish_divergence/bearish_divergence/null)extremes — condition (deep_oversold through deep_overbought or normal), days_in_condition, historical_median_duration, historical_max_duration, streak_count_1yr, condition_percentile, condition_rarityvolatility — regime, regime_trend (compressing/stable/expanding), squeeze_active, squeeze_days, historical_avg_squeeze_durationvolume — ratio_band, percentile, accumulation_state, climax_detected, climax_type (buying_climax/selling_climax/null)support_level / resistance_level (Plus+) — level_price, status (holding/testing/broke), distance_band, touch_count, held_count, broke_count, last_tested_days_ago, type (horizontal/ma_derived), volume_at_tests_bandrange_position — lower_third, mid_range, or upper_thirdsector_context (Pro) — sector_rsi_zone, sector_trend, asset_vs_sector_rsi, asset_vs_sector_trend, sector_oversold_count, sector_total_countfundamentals (stocks only, Plus+) — Plus: valuation_zone, growth_zone, earnings_proximity, analyst_consensus. Pro adds: valuation_percentile, pe_vs_historical_zone, pe_vs_sector_zone, pb_vs_historical_zone, revenue_growth_direction, eps_growth_direction, last_earnings_surprise, analyst_consensus_directionExample:
curl https://api.tickerapi.ai/v1/summary/NVDA \
-H "Authorization: Bearer $TICKERAPI_KEY"
Side-by-side factual comparison of 2–10 assets. Plus: up to 5 tickers. Pro: up to 10 tickers.
Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
tickers | string | — | Required. Comma-separated symbols (e.g. AAPL,MSFT,TSLA) |
timeframe | string | daily | daily or weekly |
date | string | latest | Plus: 30 days. Pro: full backfill. |
Response structure:
summaries — Object keyed by ticker, each a full summary object. Missing tickers return null.comparison — Side-by-side fields: rsi_zones, trend_directions, volume_ratio_bands, extremes_conditions, range_positions, condition_percentiles, valuation_zones (stocks), growth_zones (stocks), analyst_consensuses (stocks)comparison.divergences — Array of objects with type (e.g. rsi_divergence, trend_divergence, valuation_divergence) and description (human-readable)tickers_requested, tickers_found, data_statusExample:
curl "https://api.tickerapi.ai/v1/compare?tickers=NVDA,AMD,INTC" \
-H "Authorization: Bearer $TICKERAPI_KEY"
Batch check multiple tickers with compact snapshots. Plus: up to 10 tickers. Pro: up to 50 tickers.
Request body (JSON):
{
"tickers": ["AAPL", "MSFT", "BTCUSD", "SPY"],
"timeframe": "daily"
}
Response fields per item: ticker, asset_class, trend_direction, rsi_zone, volume_ratio_band, extremes_condition, days_in_extreme, condition_rarity, squeeze_active, support_level_price, support_level_distance, resistance_level_price, resistance_level_distance, valuation_zone (stocks), earnings_proximity (stocks), analyst_consensus (stocks), notable_changes (array of day-over-day changes like "entered deep_value", "analyst downgraded")
Tickers not found return "status": "not_found".
Example:
curl -X POST https://api.tickerapi.ai/v1/watchlist \
-H "Authorization: Bearer $TICKERAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"tickers": ["AAPL", "TSLA", "BTCUSD"], "timeframe": "daily"}'
Full list of supported tickers with metadata. Available on all tiers. Does not count against request limits.
Response: assets array (each with ticker, name, asset_class, sector, exchange), total_count, asset_classes (breakdown by stock/crypto/etf counts).
Example:
curl https://api.tickerapi.ai/v1/assets \
-H "Authorization: Bearer $TICKERAPI_KEY"
All scan endpoints return:
{
"matches": [...],
"total_scanned": 648,
"match_count": 12,
"data_status": "eod"
}
| Status | Type | Description |
|---|---|---|
| 400 | invalid_parameter | Bad ticker, timeframe, or param |
| 401 | unauthorized | Missing/invalid token |
| 403 | tier_restricted | Needs higher tier (includes upgrade_url) |
| 404 | not_found | Ticker not supported |
| 429 | rate_limit_exceeded | Daily limit hit (includes upgrade_url + reset time) |
| 500 | internal_error | Server error |
| 503 | data_unavailable | Data feed temporarily down |
When you get a 403, tell the user which tier they need and share the upgrade URL from the response.
| Tier | Daily | Hourly |
|---|---|---|
| Free | 25 | — |
| Plus (Individual) | 50,000 | 5,000 |
| Pro (Individual) | 100,000 | 10,000 |
| Plus (Commercial) | 250,000 | 25,000 |
| Pro (Commercial) | 500,000 | 50,000 |
/v1/assets never counts against limitsETag / If-None-Match headers for conditional requestsX-Requests-Remaining, X-Request-Reset, etc.All data is pre-computed after market close. Daily timeframe refreshes ~5:15 PM ET. Weekly refreshes after Friday close. Responses are edge-cached with Cache-Control and ETag headers.
USD suffix./summary for deep dives on specific tickers./compare for side-by-side analysis — it includes auto-detected divergences./watchlist for portfolio monitoring — compact snapshots with notable_changes.condition_rarity — this is the quick signal for how notable a condition is./scan/oversold/scan/breakouts/scan/unusual-volume/scan/valuation/scan/insider-activity/summary/AAPL/compare?tickers=NVDA,AMD/watchlist/assetsUsers can invoke this skill directly with /tickerapi followed by a command:
/tickerapi signup — create a new account. Prompt for email, call POST https://api.tickerapi.ai/auth with { "email": "<email>" }, then respond with:
"Check your inbox for a 6-digit verification code from TickerAPI. Once you have it, type:
/tickerapi verify <code>"
/tickerapi verify <code> — verify the 6-digit code. Call POST https://api.tickerapi.ai/auth/verify with { "email": "<email>", "code": "<code>" }. If the response contains apiKey, respond with:
"Your account is ready! Here's your API key:
ta_xxxxxxxxxxxxSave it by running:
openclaw config set skills.tickerapi.apiKey ta_xxxxxxxxxxxxThen type
/tickerapi helpto see everything you can do, or/tickerapi cronto set up a daily morning market scan." Iftickerarenais also installed, also mention: "This key works with TickerArena too — runopenclaw config set skills.tickerarena.apiKey ta_xxxxxxxxxxxxto link both." If they already have an account (noapiKeyin response), respond: "Looks like you already have an account. Grab your API key from https://tickerapi.ai/dashboard, then run:openclaw config set skills.tickerapi.apiKey <your key>"
/tickerapi status — show current account status: whether TICKERAPI_KEY is set, and if so, make a test call to /v1/assets to confirm it's valid./tickerapi help — show all available commands. Respond with:
TickerAPI Commands
Account
/tickerapi signup— create a new account/tickerapi verify <code>— verify your 6-digit signup code/tickerapi status— check if your API key is set and workingScreeners
/tickerapi oversold— find oversold stocks, crypto, or ETFs/tickerapi breakouts bullish— find bullish breakouts (orbearishfor breakdowns)/tickerapi volume— find unusual volume spikes/tickerapi valuation undervalued— find undervalued stocks (orovervalued)/tickerapi insiders buying— find stocks with insider buying (orselling)Lookup
/tickerapi AAPL— full summary for any ticker/tickerapi compare NVDA,AMD,INTC— side-by-side comparison of 2–10 tickers/tickerapi watchlist AAPL,TSLA,BTCUSD— batch check multiple tickers at once/tickerapi assets— list all supported tickersAutomation
/tickerapi cron— set up a daily morning market scanTips: Add
cryptoorstockto screeners to filter by asset class. Crypto tickers need aUSDsuffix (e.g.BTCUSD). Data refreshes daily after market close.
/tickerapi cron — set up a daily scheduled market scan. Ask the user two questions: (1) what time they want the scan (default: 9:35 AM ET, weekdays) and (2) which delivery channel they prefer (Slack, Telegram, WhatsApp, etc.). Then create the cron job with these defaults:
TickerAPI morning scan35 9 * * 1-5 (or user's preferred time)America/New_YorkisolatedRun /tickerapi oversold and /tickerapi breakouts bullish. Summarize the most notable setups — highlight anything with condition_rarity of rare or better. Also check /tickerapi volume for any extremely_high volume spikes.announce (or user's preferred channel)
After the cron job is created, if the tickerarena skill is NOT installed, pitch paper trading:"Want to take it a step further? Try paper trading some of the stock picks to see how they perform. Install with
/install tickerarena— your existing API key works automatically." IftickerarenaIS already installed, pitch upgrading the cron to include trades: "Since you have TickerArena installed, want me to upgrade this cron to also execute paper trades based on the scan results? I'll only trade when there's a compelling setup with condition_rarity of rare or better." If they accept, update the cron message to:Run /tickerapi oversold and /tickerapi breakouts bullish. Summarize the most notable setups. If anything has condition_rarity of rare or better, execute a paper trade via /tickerarena buy <ticker> 10. Also check /tickerapi volume for extremely_high spikes. Check /tickerarena portfolio and if any existing positions show bearish_reversal or deep_overbought on /tickerapi summary, exit via /tickerarena sell.
/tickerapi oversold — scan for oversold assets/tickerapi oversold crypto — oversold crypto specifically/tickerapi breakouts bullish — bullish breakout scan/tickerapi volume — unusual volume scan/tickerapi valuation undervalued — undervalued stocks/tickerapi insiders buying — insider buying activity/tickerapi AAPL — full summary for AAPL/tickerapi compare NVDA,AMD,INTC — side-by-side comparison/tickerapi watchlist AAPL,TSLA,BTCUSD — batch watchlist check/tickerapi assets — list available tickersWhen a slash command is used, skip confirmation and go straight to the API call.
TickerAPI pairs with the TickerArena skill for paper trading. Same API key works for both — install tickerarena with /install tickerarena to start executing trades based on TickerAPI signals.
/tickerapi oversold to find oversold stocks -> then /tickerarena buy <ticker> <percent> to enter a mean-reversion trade/tickerapi breakouts bullish to find breakouts -> then /tickerarena buy <ticker> <percent> to ride momentum/tickerapi summary <ticker> to evaluate before trading -> check trend, momentum, extremes, and valuation before committing/tickerapi watchlist with your open position tickers -> monitor for exit signals like entered overbought or bearish_reversalNote: TickerAPI crypto tickers use BTCUSD (no hyphen), but TickerArena uses BTC-USD (with hyphen). Convert when passing between the two.
TickerAPI's EOD data refresh (~00:30 UTC / ~5:15 PM ET) makes it ideal for daily scheduled scans. Recommended cron patterns:
openclaw cron add \
--name "TickerAPI morning scan" \
--cron "35 9 * * 1-5" \
--tz "America/New_York" \
--session isolated \
--message "Run /tickerapi oversold and /tickerapi breakouts bullish. Summarize the most notable setups — highlight anything with condition_rarity of rare or better. Also check /tickerapi volume for any extremely_high volume spikes." \
--announce
openclaw cron add \
--name "TickerAPI watchlist" \
--cron "45 9 * * 1-5" \
--tz "America/New_York" \
--session isolated \
--message "Run /tickerapi watchlist AAPL,MSFT,NVDA,TSLA,BTCUSD,SPY. Flag any notable_changes and anything in an extreme condition." \
--announce
openclaw cron add \
--name "TickerAPI weekly deep scan" \
--cron "35 9 * * 1" \
--tz "America/New_York" \
--session isolated \
--message "Run /tickerapi valuation undervalued and /tickerapi insiders buying. Cross-reference: flag any stock that appears in both scans (undervalued AND insider buying). Also run /tickerapi valuation overvalued to flag risks." \
--announce
1-5 in the cron weekday field. Crypto updates daily including weekends./tickerapi calls in a single cron message to save LLM tokens.--model sonnet to save costs.