---
type: "firecrawl-provider"
description: "End-of-day stock prices, dividends, splits, ticker search, company profiles, and exchanges from Marketstack."
use_when: "End-of-day OHLCV bars, raw and split and dividend adjusted, for one stock ticker.\n\nDividend and stock split history for one stock ticker.\n\nFind a ticker by name or symbol, and read a listed company's profile.\n\nStock exchanges with their MIC codes, country, city, and website."
categories: "Finance"
capabilities: 6
pricing: "10 credits per billed unit; see each capability for its unit and maximum."
---
# Marketstack on Firecrawl Alexandria

End-of-day stock prices, dividends, splits, ticker search, company profiles, and exchanges from Marketstack.

- Categories: Finance
- Category index: [Finance category](https://alexandria.firecrawl.dev/agents/categories/finance)
- Provider key: `marketstack`
- Access: Firecrawl credits
- Cost (End-of-day prices): 10 credits per Marketstack request
- Cost (Dividends): 10 credits per Marketstack request
- Cost (Stock splits): 10 credits per Marketstack request
- Cost (Ticker search): 10 credits per Marketstack request
- Cost (Ticker detail): 10 credits per Marketstack request
- Cost (Exchanges): 10 credits per Marketstack request

## More

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

## Capabilities

- [End-of-day prices](https://alexandria.firecrawl.dev/agents/providers/marketstack/prices/eod): One bar per trading day, newest first unless sort is ASC. pagination carries limit, offset, count, and total. Prices are numbers. LSE prices are often in pence. An empty data list is still a billed request. An HTTP error costs nothing.
- [Dividends](https://alexandria.firecrawl.dev/agents/providers/marketstack/corporate-actions/dividends): One row per dividend, newest first unless sort is ASC. date is the ex-dividend date. dividend is in the trading currency. pagination carries limit, offset, count, and total. An empty data list is still a billed request.
- [Stock splits](https://alexandria.firecrawl.dev/agents/providers/marketstack/corporate-actions/splits): One row per split, newest first unless sort is ASC. pagination carries limit, offset, count, and total. An empty data list is still a billed request.
- [Ticker search](https://alexandria.firecrawl.dev/agents/providers/marketstack/tickers/search): One row per ticker. stock_exchange holds the listing exchange with its MIC, country, and city. pagination carries limit, offset, count, and total. An empty data list is still a billed request.
- [Ticker detail](https://alexandria.firecrawl.dev/agents/providers/marketstack/tickers/detail): One company record in data. Text fields can be empty for smaller issuers. An HTTP error costs nothing.
- [Exchanges](https://alexandria.firecrawl.dev/agents/providers/marketstack/exchanges/list): One row per exchange. pagination carries limit, offset, count, and total. An empty data list is still a billed request.

## 1. Choose this provider when

End-of-day OHLCV bars, raw and split and dividend adjusted, for one stock ticker.

Dividend and stock split history for one stock ticker.

Find a ticker by name or symbol, and read a listed company's profile.

Stock exchanges with their MIC codes, country, city, and website.

## 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": "marketstack",
  "capability": "prices/eod",
  "options": {
    "symbols": "<symbols>",
    "limit": 10
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `symbols` (string, required): One ticker, such as AAPL. A comma-separated list is not accepted. Use a hyphen for a class share, such as BRK-B. Example: `<symbols>`
- `exchange` (string): Filter by exchange MIC, such as XNAS. Find one with exchanges/list. Example: `<exchange>`
- `sort` (string): Order by date. DESC, newest first, is the default. Example: `DESC`
- `date_from` (string): Earliest date, YYYY-MM-DD. Example: `<date_from>`
- `date_to` (string): Latest date, YYYY-MM-DD. Example: `<date_to>`
- `limit` (number): Rows per page, from 1 to 100. Default 100. The request costs the same whatever the row count. Example: `10`
- `offset` (number): Rows to skip for the next page. Default 0. Example: `10`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "marketstack",
    capability: "prices/eod",
    options: {
      symbols: "<symbols>",
      limit: 10,
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "marketstack",
  "capability": "prices/eod",
  "options": {
    "symbols": "<symbols>",
    "limit": 10
  }
})
```

### cURL

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

### CLI

```sh
firecrawl scrape 'marketstack/prices/eod' \
  --options '{"symbols":"<symbols>","limit":10}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "marketstack",
  "capability": "prices/eod",
  "options": {
    "symbols": "<symbols>",
    "limit": 10
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "marketstack",
  "capability": "prices/eod",
  "options": {
    "symbols": "<symbols>",
    "limit": 10
  }
}
```

## 6. Response data

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

```json
{
  "data": [
    {
      "date": "<date>",
      "symbol": "<symbol>",
      "exchange": "<exchange>",
      "open": 0,
      "high": 0,
      "low": 0,
      "close": 0,
      "volume": 0,
      "adj_open": 0,
      "adj_high": 0,
      "adj_low": 0,
      "adj_close": 0,
      "adj_volume": 0,
      "split_factor": 0,
      "dividend": 0,
      "name": "<name>",
      "exchange_code": "<exchange_code>",
      "asset_type": "<asset_type>",
      "price_currency": "<price_currency>"
    }
  ]
}
```

## API reference-derived contract

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

### End-of-day prices

- Capability: `prices/eod`
- Description: One bar per trading day, newest first unless sort is ASC. pagination carries limit, offset, count, and total. Prices are numbers. LSE prices are often in pence. An empty data list is still a billed request. An HTTP error costs nothing.
- Instructions: Read daily open, high, low, close, and volume for one stock ticker, with split and dividend adjusted values. Omit the dates and set limit 1 for the latest close. A successful call costs 10 Firecrawl credits, including an empty page. Use tickers/search to find a ticker, and corporate-actions/dividends or corporate-actions/splits for the events behind the adjustments.
- Cost: 10 credits per Marketstack request
- Capability file: [End-of-day prices](https://alexandria.firecrawl.dev/agents/providers/marketstack/prices/eod)

Accepted options:
- `symbols` (string, required): One ticker, such as AAPL. A comma-separated list is not accepted. Use a hyphen for a class share, such as BRK-B. Example: `<symbols>`
- `exchange` (string): Filter by exchange MIC, such as XNAS. Find one with exchanges/list. Example: `<exchange>`
- `sort` (string): Order by date. DESC, newest first, is the default. Example: `DESC`
- `date_from` (string): Earliest date, YYYY-MM-DD. Example: `<date_from>`
- `date_to` (string): Latest date, YYYY-MM-DD. Example: `<date_to>`
- `limit` (number): Rows per page, from 1 to 100. Default 100. The request costs the same whatever the row count. Example: `10`
- `offset` (number): Rows to skip for the next page. Default 0. Example: `10`

Response schema example:
```json
{
  "data": [
    {
      "date": "<date>",
      "symbol": "<symbol>",
      "exchange": "<exchange>",
      "open": 0,
      "high": 0,
      "low": 0,
      "close": 0,
      "volume": 0,
      "adj_open": 0,
      "adj_high": 0,
      "adj_low": 0,
      "adj_close": 0,
      "adj_volume": 0,
      "split_factor": 0,
      "dividend": 0,
      "name": "<name>",
      "exchange_code": "<exchange_code>",
      "asset_type": "<asset_type>",
      "price_currency": "<price_currency>"
    }
  ]
}
```

### Dividends

- Capability: `corporate-actions/dividends`
- Description: One row per dividend, newest first unless sort is ASC. date is the ex-dividend date. dividend is in the trading currency. pagination carries limit, offset, count, and total. An empty data list is still a billed request.
- Instructions: Read the dividend history of one stock ticker: amount, ex-dividend, record, payment, and declaration dates, and frequency. A successful call costs 10 Firecrawl credits, including a ticker with no dividends. Use corporate-actions/splits for splits and prices/eod for prices.
- Cost: 10 credits per Marketstack request
- Capability file: [Dividends](https://alexandria.firecrawl.dev/agents/providers/marketstack/corporate-actions/dividends)

Accepted options:
- `symbols` (string, required): One ticker, such as AAPL. A comma-separated list is not accepted. Use a hyphen for a class share, such as BRK-B. Example: `<symbols>`
- `sort` (string): Order by date. DESC, newest first, is the default. Example: `DESC`
- `date_from` (string): Earliest date, YYYY-MM-DD. Example: `<date_from>`
- `date_to` (string): Latest date, YYYY-MM-DD. Example: `<date_to>`
- `limit` (number): Rows per page, from 1 to 100. Default 100. The request costs the same whatever the row count. Example: `10`
- `offset` (number): Rows to skip for the next page. Default 0. Example: `10`

Response schema example:
```json
{
  "data": [
    {
      "date": "<date>",
      "dividend": 0,
      "payment_date": "<payment_date>",
      "record_date": "<record_date>",
      "declaration_date": "<declaration_date>",
      "distr_freq": "<distr_freq>",
      "symbol": "<symbol>"
    }
  ]
}
```

### Stock splits

- Capability: `corporate-actions/splits`
- Description: One row per split, newest first unless sort is ASC. pagination carries limit, offset, count, and total. An empty data list is still a billed request.
- Instructions: Read the stock split history of one ticker: the date, the ratio such as 4-for-1, and the numeric factor. A successful call costs 10 Firecrawl credits, including a ticker that never split. Use corporate-actions/dividends for dividends and prices/eod for adjusted prices.
- Cost: 10 credits per Marketstack request
- Capability file: [Stock splits](https://alexandria.firecrawl.dev/agents/providers/marketstack/corporate-actions/splits)

Accepted options:
- `symbols` (string, required): One ticker, such as AAPL. A comma-separated list is not accepted. Use a hyphen for a class share, such as BRK-B. Example: `<symbols>`
- `sort` (string): Order by date. DESC, newest first, is the default. Example: `DESC`
- `date_from` (string): Earliest date, YYYY-MM-DD. Example: `<date_from>`
- `date_to` (string): Latest date, YYYY-MM-DD. Example: `<date_to>`
- `limit` (number): Rows per page, from 1 to 100. Default 100. The request costs the same whatever the row count. Example: `10`
- `offset` (number): Rows to skip for the next page. Default 0. Example: `10`

Response schema example:
```json
{
  "data": [
    {
      "date": "<date>",
      "split_factor": 0,
      "stock_split": "<stock_split>",
      "symbol": "<symbol>"
    }
  ]
}
```

### Ticker search

- Capability: `tickers/search`
- Description: One row per ticker. stock_exchange holds the listing exchange with its MIC, country, and city. pagination carries limit, offset, count, and total. An empty data list is still a billed request.
- Instructions: Resolve a company name or symbol fragment to Marketstack tickers, or list the tickers on one exchange, with flags for end-of-day and intraday coverage. A successful call costs 10 Firecrawl credits even when nothing matches. Use prices/eod with the ticker that comes back, tickers/detail for the company profile, and exchanges/list to find a MIC.
- Cost: 10 credits per Marketstack request
- Capability file: [Ticker search](https://alexandria.firecrawl.dev/agents/providers/marketstack/tickers/search)

Accepted options:
- `search` (string): Company name or symbol fragment, such as apple or AAPL. Example: `<search>`
- `exchange` (string): Only tickers on this exchange MIC, such as XNAS. Example: `<exchange>`
- `limit` (number): Rows per page, from 1 to 100. Default 100. The request costs the same whatever the row count. Example: `10`
- `offset` (number): Rows to skip for the next page. Default 0. Example: `10`

Response schema example:
```json
{
  "data": [
    {
      "ticker": "<ticker>",
      "name": "<name>",
      "has_eod": false,
      "has_intraday": false,
      "stock_exchange": {}
    }
  ]
}
```

### Ticker detail

- Capability: `tickers/detail`
- Description: One company record in data. Text fields can be empty for smaller issuers. An HTTP error costs nothing.
- Instructions: Read the company profile behind one ticker: sector, industry, employees, IPO date, key executives, addresses, website, and the exchanges it lists on. A successful call costs 10 Firecrawl credits. A 404 or a plan refusal costs nothing. Use tickers/search first when only the company name is known.
- Cost: 10 credits per Marketstack request
- Capability file: [Ticker detail](https://alexandria.firecrawl.dev/agents/providers/marketstack/tickers/detail)

Accepted options:
- `ticker` (string, required): One ticker, such as AAPL. A comma-separated list is not accepted. Example: `AAPL`

Response schema example:
```json
{
  "data": {
    "ticker": "<ticker>",
    "name": "<name>",
    "item_type": "<item_type>",
    "sector": "<sector>",
    "industry": "<industry>",
    "exchange_code": "<exchange_code>",
    "full_time_employees": "<full_time_employees>",
    "ipo_date": "<ipo_date>",
    "date_founded": "<date_founded>",
    "key_executives": [],
    "incorporation": "<incorporation>",
    "start_fiscal": "<start_fiscal>",
    "end_fiscal": "<end_fiscal>",
    "reporting_currency": "<reporting_currency>",
    "previous_names": [],
    "address": {},
    "post_address": {},
    "stock_exchanges": [],
    "phone": "<phone>",
    "website": "<website>",
    "about": "<about>"
  }
}
```

### Exchanges

- Capability: `exchanges/list`
- Description: One row per exchange. pagination carries limit, offset, count, and total. An empty data list is still a billed request.
- Instructions: Find a stock exchange and its MIC code, country, city, and website, or page through all of them. A successful call costs 10 Firecrawl credits even when nothing matches. Use the MIC as exchange on prices/eod or tickers/search. Not every exchange listed has price coverage.
- Cost: 10 credits per Marketstack request
- Capability file: [Exchanges](https://alexandria.firecrawl.dev/agents/providers/marketstack/exchanges/list)

Accepted options:
- `search` (string): Exchange name, acronym, or MIC fragment, such as nasdaq. Example: `<search>`
- `limit` (number): Rows per page, from 1 to 100. Default 100. The request costs the same whatever the row count. Example: `10`
- `offset` (number): Rows to skip for the next page. Default 0. Example: `10`

Response schema example:
```json
{
  "data": [
    {
      "name": "<name>",
      "acronym": "<acronym>",
      "mic": "<mic>",
      "operating_mic": "<operating_mic>",
      "country": "<country>",
      "country_code": "<country_code>",
      "city": "<city>",
      "website": "<website>",
      "exchange_status": "<exchange_status>"
    }
  ]
}
```
