---
type: "firecrawl-provider"
description: "Latest price, quote, OHLCV history, and symbol search for stocks, forex, and crypto."
use_when: "A latest price, a quote with the session range, or an OHLCV series for one stock, forex pair, or cryptocurrency.\n\nResolve a ticker or a name fragment to the symbols Twelve Data can price, including the exchange and currency."
categories: "Finance"
capabilities: 4
pricing: "10 credits per billed unit; see each capability for its unit and maximum."
---
# Twelve Data on Firecrawl Alexandria

Latest price, quote, OHLCV history, and symbol search for stocks, forex, and crypto.

- Categories: Finance
- Category index: [Finance category](https://alexandria.firecrawl.dev/agents/categories/finance)
- Provider key: `twelvedata`
- Access: Firecrawl credits
- Cost (Quote): 10 credits per API credit
- Cost (Time series): 10 credits per API credit
- Cost (Latest price): 10 credits per API credit
- Cost (Symbol search): 10 credits per API credit

## More

- [Human guide](https://www.firecrawl.dev/app/alexandria/twelvedata)
- [OpenAPI spec](https://alexandria.firecrawl.dev/agents/providers/twelvedata/openapi.json)

## Capabilities

- [Quote](https://alexandria.firecrawl.dev/agents/providers/twelvedata/prices/quote): One quote. Prices are decimal strings. fifty_two_week is present for instruments that have a 52-week range. extended_price and the rolling change fields appear only when the request and the instrument support them. A 404 costs nothing.
- [Time series](https://alexandria.firecrawl.dev/agents/providers/twelvedata/prices/series): Bars in values, newest first unless order is asc. meta carries symbol, interval, currency, exchange_timezone, exchange, mic_code, and type. previous_close is on each bar only when requested. status is ok. An empty values list is still a billed request. A 404 costs nothing.
- [Latest price](https://alexandria.firecrawl.dev/agents/providers/twelvedata/prices/latest): One price as a decimal string. A 404 costs nothing.
- [Symbol search](https://alexandria.firecrawl.dev/agents/providers/twelvedata/symbols/search): Matches in data, most relevant first. access is present when show_plan is true. status is ok. An empty data list still costs one request. A 404 costs nothing.

## 1. Choose this provider when

A latest price, a quote with the session range, or an OHLCV series for one stock, forex pair, or cryptocurrency.

Resolve a ticker or a name fragment to the symbols Twelve Data can price, including the exchange and currency.

## 2. Minimal request

Call `POST https://api.firecrawl.dev/v2/scrape` with `{ alexandria: { provider, capability, options } }`. For a batch, send `{ alexandria: [...] }` with up to 10 calls.

```json
{
  "provider": "twelvedata",
  "capability": "prices/quote",
  "options": {
    "symbol": "<symbol>"
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `symbol` (string): Ticker. One instrument, such as AAPL, EUR/USD, or BTC/USD. A comma-separated list is not accepted. Example: `<symbol>`
- `figi` (string): FIGI for one instrument. Twelve Data limits this parameter to Ultra and Enterprise plans. Example: `<figi>`
- `isin` (string): ISIN for one instrument. Returning ISIN values in the body needs the ISIN add-on. Example: `<isin>`
- `cusip` (string): CUSIP for one instrument. Returning CUSIP values in the body needs the CUSIP add-on. Example: `<cusip>`
- `exchange` (string): Exchange name, such as NASDAQ. Example: `<exchange>`
- `mic_code` (string): ISO 10383 MIC, such as XNAS. Example: `<mic_code>`
- `country` (string): Country name or ISO code, such as United States or US. Example: `<country>`
- `type` (string): Asset class, used to disambiguate a ticker. Example: `American Depositary Receipt`
- `interval` (string): Bar size. Defaults to 1day when omitted. Example: `1min`
- `volume_time_period` (number): Periods used for average volume. The published default is 9. No maximum is published; values above 10000 are refused here. Example: `10`
- `prepost` (boolean): Include US equity pre-market and post-market data. Twelve Data limits this to Pro and Venture plans and above, at 1min, 5min, 15min, and 30min. Default false. Example: `false`
- `eod` (boolean): When true, return the closed session instead of the live bar. Default false. Example: `false`
- `rolling_period` (number): Hours for the crypto rolling change. Integer from 1 to 168. Default 24. Example: `10`
- `dp` (number): Decimal places from 0 to 11. Default 5. Example: `10`
- `timezone` (string): Exchange, UTC, or an IANA name. Ignored for 1day, 1week, and 1month. Default Exchange. Example: `<timezone>`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "twelvedata",
    capability: "prices/quote",
    options: {
      symbol: "<symbol>",
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "twelvedata",
  "capability": "prices/quote",
  "options": {
    "symbol": "<symbol>"
  }
})
```

### cURL

```sh
curl https://api.firecrawl.dev/v2/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "alexandria": {
    "provider": "twelvedata",
    "capability": "prices/quote",
    "options": {
      "symbol": "<symbol>"
    }
  }
}'
```

### CLI

```sh
firecrawl scrape 'twelvedata/prices/quote' \
  --options '{"symbol":"<symbol>"}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "twelvedata",
  "capability": "prices/quote",
  "options": {
    "symbol": "<symbol>"
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "twelvedata",
  "capability": "prices/quote",
  "options": {
    "symbol": "<symbol>"
  }
}
```

## 6. Response data

The response includes `success`, `provider`, `capability`, `creditsCost` and `data`. This example shows the provider payload in `data`:

```json
{
  "symbol": "<symbol>",
  "name": "<name>",
  "exchange": "<exchange>",
  "mic_code": "<mic_code>",
  "currency": "<currency>",
  "datetime": "<datetime>",
  "timestamp": 0,
  "last_quote_at": 0,
  "open": "<open>",
  "high": "<high>",
  "low": "<low>",
  "close": "<close>",
  "volume": "<volume>",
  "previous_close": "<previous_close>",
  "change": "<change>",
  "percent_change": "<percent_change>",
  "average_volume": "<average_volume>",
  "is_market_open": false,
  "fifty_two_week": {}
}
```

## API reference-derived contract

The following capability contract is generated from the same normalized Alexandria API reference exposed in the API spec.

### Quote

- Capability: `prices/quote`
- Description: One quote. Prices are decimal strings. fifty_two_week is present for instruments that have a 52-week range. extended_price and the rolling change fields appear only when the request and the instrument support them. A 404 costs nothing.
- Instructions: Read the latest quote for one stock, forex pair, or cryptocurrency: open, high, low, close, volume, change, and the 52-week range. A successful call costs 10 Firecrawl credits. Use prices/latest when only the price is needed, and symbols/search to resolve a name to a ticker.
- Cost: 10 credits per API credit
- Capability file: [Quote](https://alexandria.firecrawl.dev/agents/providers/twelvedata/prices/quote)

Accepted options:
- `symbol` (string): Ticker. One instrument, such as AAPL, EUR/USD, or BTC/USD. A comma-separated list is not accepted. Example: `<symbol>`
- `figi` (string): FIGI for one instrument. Twelve Data limits this parameter to Ultra and Enterprise plans. Example: `<figi>`
- `isin` (string): ISIN for one instrument. Returning ISIN values in the body needs the ISIN add-on. Example: `<isin>`
- `cusip` (string): CUSIP for one instrument. Returning CUSIP values in the body needs the CUSIP add-on. Example: `<cusip>`
- `exchange` (string): Exchange name, such as NASDAQ. Example: `<exchange>`
- `mic_code` (string): ISO 10383 MIC, such as XNAS. Example: `<mic_code>`
- `country` (string): Country name or ISO code, such as United States or US. Example: `<country>`
- `type` (string): Asset class, used to disambiguate a ticker. Example: `American Depositary Receipt`
- `interval` (string): Bar size. Defaults to 1day when omitted. Example: `1min`
- `volume_time_period` (number): Periods used for average volume. The published default is 9. No maximum is published; values above 10000 are refused here. Example: `10`
- `prepost` (boolean): Include US equity pre-market and post-market data. Twelve Data limits this to Pro and Venture plans and above, at 1min, 5min, 15min, and 30min. Default false. Example: `false`
- `eod` (boolean): When true, return the closed session instead of the live bar. Default false. Example: `false`
- `rolling_period` (number): Hours for the crypto rolling change. Integer from 1 to 168. Default 24. Example: `10`
- `dp` (number): Decimal places from 0 to 11. Default 5. Example: `10`
- `timezone` (string): Exchange, UTC, or an IANA name. Ignored for 1day, 1week, and 1month. Default Exchange. Example: `<timezone>`

Response schema example:
```json
{
  "symbol": "<symbol>",
  "name": "<name>",
  "exchange": "<exchange>",
  "mic_code": "<mic_code>",
  "currency": "<currency>",
  "datetime": "<datetime>",
  "timestamp": 0,
  "last_quote_at": 0,
  "open": "<open>",
  "high": "<high>",
  "low": "<low>",
  "close": "<close>",
  "volume": "<volume>",
  "previous_close": "<previous_close>",
  "change": "<change>",
  "percent_change": "<percent_change>",
  "average_volume": "<average_volume>",
  "is_market_open": false,
  "fifty_two_week": {}
}
```

### Time series

- Capability: `prices/series`
- Description: Bars in values, newest first unless order is asc. meta carries symbol, interval, currency, exchange_timezone, exchange, mic_code, and type. previous_close is on each bar only when requested. status is ok. An empty values list is still a billed request. A 404 costs nothing.
- Instructions: Read OHLCV history for one symbol at an interval from 1min to 1month. A successful call costs 10 Firecrawl credits, including a series with no bars. Use prices/quote for the latest bar and the 52-week range.
- Cost: 10 credits per API credit
- Capability file: [Time series](https://alexandria.firecrawl.dev/agents/providers/twelvedata/prices/series)

Accepted options:
- `symbol` (string): Ticker. One instrument, such as AAPL, EUR/USD, or BTC/USD. A comma-separated list is not accepted. Example: `<symbol>`
- `figi` (string): FIGI for one instrument. Twelve Data limits this parameter to Ultra and Enterprise plans. Example: `<figi>`
- `isin` (string): ISIN for one instrument. Returning ISIN values in the body needs the ISIN add-on. Example: `<isin>`
- `cusip` (string): CUSIP for one instrument. Returning CUSIP values in the body needs the CUSIP add-on. Example: `<cusip>`
- `exchange` (string): Exchange name, such as NASDAQ. Example: `<exchange>`
- `mic_code` (string): ISO 10383 MIC, such as XNAS. Example: `<mic_code>`
- `country` (string): Country name or ISO code, such as United States or US. Example: `<country>`
- `type` (string): Asset class, used to disambiguate a ticker. Example: `American Depositary Receipt`
- `interval` (string, required): Bar size. Required. Example: `1min`
- `outputsize` (number): Bars to return, from 1 to 5000. When omitted and no date is set, Twelve Data returns 30. A date range without outputsize returns up to the maximum. The credit is still one per symbol. Example: `10`
- `prepost` (boolean): Include US equity pre-market and post-market data. Twelve Data limits this to Pro and Venture plans and above, at 1min, 5min, 15min, and 30min. Default false. Example: `false`
- `dp` (number): Decimal places from 0 to 11. -1 lets Twelve Data choose. Default -1. Example: `10`
- `order` (string): Sort. Default desc, newest first. Example: `asc`
- `timezone` (string): Exchange, UTC, or an IANA name. Applies to intraday bars and to start_date and end_date. Default Exchange. Example: `<timezone>`
- `date` (string): One session: YYYY-MM-DD, YYYY-MM-DDTHH:MM:SS, today, or yesterday. Example: `<date>`
- `start_date` (string): Range start, YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS. Can be sent alone or with end_date. Example: `<start_date>`
- `end_date` (string): Range end, YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS. Example: `<end_date>`
- `previous_close` (boolean): Add the previous bar close on each point. Default false. Example: `false`
- `adjust` (string): Price adjustment. Default splits. Example: `all`

Response schema example:
```json
{
  "values": [
    {
      "datetime": "<datetime>",
      "open": "<open>",
      "high": "<high>",
      "low": "<low>",
      "close": "<close>",
      "volume": "<volume>"
    }
  ]
}
```

### Latest price

- Capability: `prices/latest`
- Description: One price as a decimal string. A 404 costs nothing.
- Instructions: Read one number, the latest trade or the most recent available price, for one symbol. A successful call costs 10 Firecrawl credits. Use prices/quote when the session range matters.
- Cost: 10 credits per API credit
- Capability file: [Latest price](https://alexandria.firecrawl.dev/agents/providers/twelvedata/prices/latest)

Accepted options:
- `symbol` (string): Ticker. One instrument, such as AAPL, EUR/USD, or BTC/USD. A comma-separated list is not accepted. Example: `<symbol>`
- `figi` (string): FIGI for one instrument. Twelve Data limits this parameter to Ultra and Enterprise plans. Example: `<figi>`
- `isin` (string): ISIN for one instrument. Returning ISIN values in the body needs the ISIN add-on. Example: `<isin>`
- `cusip` (string): CUSIP for one instrument. Returning CUSIP values in the body needs the CUSIP add-on. Example: `<cusip>`
- `exchange` (string): Exchange name, such as NASDAQ. Example: `<exchange>`
- `mic_code` (string): ISO 10383 MIC, such as XNAS. Example: `<mic_code>`
- `country` (string): Country name or ISO code, such as United States or US. Example: `<country>`
- `type` (string): Asset class, used to disambiguate a ticker. Example: `American Depositary Receipt`
- `prepost` (boolean): Include US equity pre-market and post-market data. Twelve Data limits this to Pro and Venture plans and above, at 1min, 5min, 15min, and 30min. Default false. Example: `false`
- `dp` (number): Decimal places from 0 to 11. Default 5. Example: `10`

Response schema example:
```json
{
  "price": "<price>"
}
```

### Symbol search

- Capability: `symbols/search`
- Description: Matches in data, most relevant first. access is present when show_plan is true. status is ok. An empty data list still costs one request. A 404 costs nothing.
- Instructions: Resolve a company name or ticker fragment to Twelve Data symbols, with exchange, MIC, currency, and instrument type. A successful call costs 10 Firecrawl credits even when nothing matches. Use prices/quote or prices/series with the symbol that comes back.
- Cost: 10 credits per API credit
- Capability file: [Symbol search](https://alexandria.firecrawl.dev/agents/providers/twelvedata/symbols/search)

Accepted options:
- `symbol` (string, required): Ticker, name fragment, or one identifier. One search string. A comma-separated list is not accepted. Example: `<symbol>`
- `outputsize` (number): Matches to return, from 1 to 120. Default 30. The credit is per request, not per match. Example: `10`
- `show_plan` (boolean): Include access.plan on each match. Default false. Example: `false`

Response schema example:
```json
{
  "data": [
    {
      "symbol": "<symbol>",
      "instrument_name": "<instrument_name>",
      "exchange": "<exchange>",
      "mic_code": "<mic_code>",
      "exchange_timezone": "<exchange_timezone>",
      "instrument_type": "<instrument_type>",
      "country": "<country>",
      "currency": "<currency>",
      "access": {}
    }
  ]
}
```
