twelvedata

Real-time and historical stock and forex market data with quotes, time series, and reference lookups. Provides 10 tools covering real-time quotes, historical OHLCV time series, end-of-day prices, symbol search, and reference data for stocks, forex pairs, and exchanges Supports batch queries for up to 120 symbols in a single request, plus multiple time intervals (1-minute to monthly) and output sizes (compact 30-point or full 5000-point datasets) Requires TWELVEDATA_API_KEY environment variable; note that crypto assets are not supported (use CoinGecko instead) Returns standardized response fields including price, OHLC data, volume, change percentages, and timestamps for programmatic analysis

INSTALLATION
npx skills add https://github.com/starchild-ai-agent/official-skills --skill twelvedata
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

$2a

Time series (last 30 daily candles)

series = twelvedata_time_series(symbol="AAPL", interval="1day", outputsize=30)

print(json.dumps(series.get("values", [])[:3], indent=2))

EOF

Available functions in `exports.py`: `twelvedata_price`, `twelvedata_quote`,

`twelvedata_time_series`, `twelvedata_eod`, `twelvedata_quote_batch`,

`twelvedata_price_batch`, `twelvedata_search`, `twelvedata_stocks`,

`twelvedata_forex_pairs`, `twelvedata_exchanges`. Read `exports.py`

directly when you need exact signatures.

## Function Reference (signatures)

All functions are in `exports.py`. Symbols use TwelveData format (e.g. `AAPL`,

`EUR/USD`, `XAU/USD`). Use `prepost=True` for pre/post-market data on

US stocks.

| Function | Description |

|---|---|

| `twelvedata_price(symbol, prepost=False)` | Current price for one symbol. |

| `twelvedata_price_batch(symbols, prepost=False)` | Prices for multiple symbols (`symbols` = comma-separated string). |

| `twelvedata_quote(symbol, prepost=False)` | Detailed quote: price, volume, 52w high/low, change %. |

| `twelvedata_quote_batch(symbols, prepost=False)` | Detailed quotes for multiple symbols. |

| `twelvedata_time_series(symbol, interval='1day', outputsize=30, start_date=None, end_date=None, prepost=False)` | OHLCV bars. `interval` = `1min`/`5min`/`15min`/`30min`/`1h`/`2h`/`4h`/`1day`/`1week`/`1month`. |

| `twelvedata_eod(symbol, date=None, prepost=False)` | End-of-day price for a date (default: latest). |

| `twelvedata_search(query)` | Search symbols by name or ticker. |

| `twelvedata_stocks(exchange=None, country=None)` | List supported stocks (filterable). |

| `twelvedata_forex_pairs()` | List all supported forex pairs. |

| `twelvedata_exchanges()` | List supported exchanges. |

## Keyword → Tool Lookup

| User asks about | Tool | NOT this |

|----------------|------|----------|

| "AAPL 股价", "current price" (single) | `twelvedata_quote` | Not `twelvedata_price` (less detail) |

| "just the price number" | `twelvedata_price` | — |

| "多只股票对比" (2+ symbols) | `twelvedata_quote_batch` | Not multiple `twelvedata_quote` calls |

| "K线", "历史数据", "time series" | `twelvedata_time_series` | — |

| "收盘价" | `twelvedata_eod` | — |

| "找股票代码" | `twelvedata_search` | — |

| "NASDAQ 有哪些股票" | `twelvedata_stocks` | — |

| "汇率", "EUR/USD" | `twelvedata_quote(symbol="EUR/USD")` | — |

| "外汇对列表" | `twelvedata_forex_pairs` | — |

| "金价", "oil price" | `twelvedata_quote(symbol="XAU/USD")` | Not CoinGecko |

| "BTC price", any crypto | **CoinGecko** `coin_price` | ❌ Never twelvedata for crypto |

## TwelveData vs CoinGecko — Boundary

| Asset class | Use | Why |

|-------------|-----|-----|

| Stocks (AAPL, TSLA) | **TwelveData** | CoinGecko has no stocks |

| Forex (EUR/USD) | **TwelveData** | CoinGecko has no forex |

| Commodities (gold, oil) | **TwelveData** | CoinGecko has no commodities |

| Crypto (BTC, ETH, SOL) | **CoinGecko** | TwelveData crypto data is limited/unreliable |

## MISTAKES — Read Before Calling

### ❌ MISTAKE 1: Using TwelveData for crypto

User: "BTC 价格"

❌ WRONG: twelvedata_quote(symbol="BTC/USD")

✅ RIGHT: coin_price(ids="bitcoin") ← CoinGecko

### ❌ MISTAKE 2: Calling quote individually for multiple stocks

User: "AAPL MSFT GOOGL 现在什么价"

❌ WRONG: twelvedata_quote("AAPL"), twelvedata_quote("MSFT"), twelvedata_quote("GOOGL") ← 3 calls

✅ RIGHT: twelvedata_quote_batch(symbols=["AAPL", "MSFT", "GOOGL"]) ← 1 call, up to 120 symbols

### ❌ MISTAKE 3: Forex without slash

❌ WRONG: twelvedata_quote(symbol="EURUSD")

✅ RIGHT: twelvedata_quote(symbol="EUR/USD") ← always slash format

Also: `USD/CNH` not `USDCNH`, `GBP/JPY` not `GBPJPY`.

### ❌ MISTAKE 4: Expecting bid/ask from quote

❌ WRONG: "EUR/USD bid: 1.0850, ask: 1.0852" ← quote only returns close

✅ RIGHT: "EUR/USD current price: 1.0851 (close/last price — bid/ask spread not available)"

### ❌ MISTAKE 5: Wrong interval format

❌ WRONG: twelvedata_time_series(interval="1D") ← uppercase

✅ RIGHT: twelvedata_time_series(interval="1day")

Valid: `1min`, `5min`, `15min`, `30min`, `1h`, `2h`, `4h`, `8h`, `1day`, `1week`, `1month`

### ❌ MISTAKE 6: Using full output when compact suffices

User: "AAPL 最近走势"

❌ WRONG: twelvedata_time_series(symbol="AAPL", interval="1day", outputsize="full") ← 5000 candles

✅ RIGHT: twelvedata_time_series(symbol="AAPL", interval="1day", outputsize="compact") ← 30 candles

Use `full` only when user explicitly needs deep history.

## Symbol Reference

### Commodities (verified)

| Asset | Symbol |

|-------|--------|

| Gold | `XAU/USD` |

| Silver | `XAG/USD` |

| Platinum | `XPT/USD` |

| Palladium | `XPD/USD` |

| Crude Oil (WTI) | `WTI/USD` |

| Natural Gas | `NG/USD` |

### Popular Forex Pairs

| Pair | Symbol |

|------|--------|

| Euro / USD | `EUR/USD` |

| GBP / USD | `GBP/USD` |

| USD / JPY | `USD/JPY` |

| USD / CNH | `USD/CNH` |

Use `twelvedata_search` to discover others.

## Pre/Post-Market Data

twelvedata_quote(symbol="AAPL", prepost=true)

twelvedata_time_series(symbol="AAPL", interval="1min", prepost=true)

Returns `premarket_change`, `premarket_change_percent`, `postmarket_change`, `postmarket_change_percent` when available.

## Output Sizes

- `compact` — Last 30 data points (default, faster). Use for "最近走势".

- `full` — Up to 5000 data points. Use for deep analysis / charting.

## Proxy-Safe Usage

1. **Agent tool calls**: Always prefer `twelvedata_*` tools (this skill).

2. **Platform code** (`skills/`, `tools/`): use `core.http_client`.

3. **Workspace scripts** (`bash`): Do NOT call TwelveData directly. Use skill tools.

## Compound Queries

### Stock Comparison
  • twelvedata_quote_batch(symbols=["AAPL", "MSFT", "GOOGL", "TSLA"])
  • twelvedata_time_series(symbol="AAPL", interval="1day", outputsize="compact") ← only for the one user cares most about
### Macro Dashboard (stocks + forex + commodities)
  • twelvedata_quote_batch(symbols=["SPY", "QQQ"]) → US indices
  • twelvedata_quote_batch(symbols=["EUR/USD", "USD/JPY"]) → Forex
  • twelvedata_quote(symbol="XAU/USD") → Gold
BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card