Twelve Data API: Get quote
Gets the latest stock, ETF, forex or crypto quote for a symbol from Twelve Data. Some instruments do not report currency or volume; the demo key covers only a few symbols.
Unofficial. Not affiliated with or endorsed by Twelve Data.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Symbol, required
symbol Ticker or currency pair to quote, for example AAPL or EUR/USD.
QQQ
Input as JSON
{ "symbol": "QQQ"}Output
{ "low": 731.63, "date": "2026-09-28", "high": 741.41998, "name": "Invesco QQQ Trust, Series 1", "open": 740.46002, "close": 736.53003, "change": -7.96997, "symbol": "QQQ", "volume": 41716200, "currency": "USD", "exchange": "NASDAQ", "page_link": "https://twelvedata.com/markets/958673/etf/nasdaq/qqq" , "percent_change": -1.070513, "previous_close": 744.5}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"twelvedata.com/get_quote","input":{"symbol":"QQQ"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "twelvedata.com/get_quote" , "input": { "symbol": "QQQ" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "twelvedata.com/get_quote" , "input": { "symbol": "QQQ" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run twelvedata.com/get_quote# with {"symbol":"QQQ"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "symbol" ], "properties": { "symbol": { "type": "string", "description": "Ticker or currency pair to quote, for example AAPL or EUR/USD." } }}Output schema
{ "type": "object", "required": [ "symbol", "name", "exchange", "currency", "date", "open", "high", "low", "close", "previous_close", "change", "percent_change", "volume", "page_link" ], "properties": { "low": { "type": [ "number", "null" ] }, "date": { "type": [ "string", "null" ], "format": "date", "description": "Date of the quoted market period." }, "high": { "type": [ "number", "null" ] }, "name": { "type": [ "string", "null" ], "description": "Instrument name." }, "open": { "type": [ "number", "null" ] }, "close": { "type": [ "number", "null" ] }, "change": { "type": [ "number", "null" ] }, "symbol": { "type": "string", "description": "Quoted ticker or pair." }, "volume": { "type": [ "number", "null" ], "description": "Volume when reported." }, "currency": { "type": [ "string", "null" ], "description": "Quote currency when reported." }, "exchange": { "type": [ "string", "null" ], "description": "Trading exchange or market." }, "page_link": { "type": [ "string", "null" ], "description": "Public Twelve Data market page when available." }, "percent_change": { "type": [ "number", "null" ], "description": "Change in percent." }, "previous_close": { "type": [ "number", "null" ] } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
twelvedata.com/get_quote- Returns
- symbol, name, exchange, currency, date, open, high, low, close, previous close, change, percent change, volume, market page link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method twelvedata.com/get_quote with the inputs above.
Ask your agent
- What's Apple's latest stock price and how much has it moved today?
- Pull the current quote for EUR/USD from Twelve Data, including open, high, low and previous close.
- How is Bitcoin trading against the dollar right now? I need the percent change and today's range.
- Get me the latest SPY quote with volume and change from yesterday's close.
- On twelvedata.com, check the most recent price for MSFT and link me to its market page.
See more
Looks up a stock, fund, index, or cryptocurrency by name or ticker and returns its latest displayed price and key statistics. Unavailable figures are null; quotes may be delayed.
finance.yahoo.com/get_quoteGets the current quoted price and key figures for a stock, fund, index, or cryptocurrency on Google Finance, by name or ticker. Prices may be delayed, and figures Google does not show are null.
google.com/get_quoteGets a stock's latest MSN Money quote and key facts by company name or ticker and listing country. Quotes may be delayed outside market hours.
msn.com/get_stock_quoteGets a Binance spot pair's latest price and rolling 24-hour trading statistics from a coin name or symbol. Only currently trading pairs are available.
binance.com/get_coin_priceGets a coin's price, market cap and 24-hour volume at 00:00 UTC on a past date. Non-USD currencies are available only for the last 365 days.
coingecko.com/get_coin_price_on_dateGets a cryptocurrency's price, changes, supply, market cap, volume and all-time high in a chosen currency. If a name or symbol is shared, returns the coin with the largest market cap.
coinmarketcap.com/get_coin_priceGets a coin's daily prices and price change over the last 7, 30, 90 or 365 days, with UTC dates. Today's price may change.
coingecko.com/get_coin_price_historyGets a coin's current Kraken price, bid and ask, and 24-hour trading statistics in a chosen currency, with change since today's midnight UTC open.
kraken.com/get_coin_price