# Stocks REST Overview

CuteMarkets supports stock market-data endpoints under `/v1/stocks/`. Stocks are a separate subscription product from options, with their own Stocks API keys, while sharing the same account, response envelope, pagination model, and dashboard billing workflow.

## Base path

```text
https://api.cutemarkets.com/v1/stocks/
```

Authenticate with a Stocks API key:

```bash
curl "https://api.cutemarkets.com/v1/stocks/snapshot/AAPL/" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

## Plans

Stocks use the same plan ladder as options, purchased independently.

| Stock plan | Requests / min | Requests / day | Freshness | Lookback | Quotes |
|---|---:|---:|---|---|---|
| Free | 10 | 5,000 | 15 min delayed | 3 years | - |
| Developer | Unlimited | Unlimited | 15 min delayed | 7 years | - |
| Expert | Unlimited | Unlimited | Live | 10 years | Yes |
| Commercial | Unlimited | Unlimited | Live | 10 years | Yes + commercial applications |

Quote endpoints require an Expert or Commercial **Stocks API** subscription. A paid options subscription does not unlock stock quotes by itself.

## Endpoint map

| Category | Endpoints |
|---|---|
| Snapshots | `/snapshot/`, `/snapshot/{ticker}/`, `/snapshot/movers/{direction}/` |
| Ticker reference | `/tickers/`, `/tickers/types/`, `/tickers/{ticker}/`, `/tickers/{ticker}/related/` |
| Trades | `/trades/{ticker}/`, `/trades/{ticker}/last/` |
| Quotes | `/quotes/{ticker}/`, `/quotes/{ticker}/last/` |
| Aggregates | `/aggs/grouped/{date}/`, `/aggs/{ticker}/prev/`, `/aggs/{ticker}/{multiplier}/{timespan}/{from_date}/{to_date}/` |
| Open-close | `/open-close/{ticker}/{date}/` |
| Indicators | `/indicators/sma/{ticker}/`, `/indicators/ema/{ticker}/`, `/indicators/macd/{ticker}/`, `/indicators/rsi/{ticker}/` |

## Response envelope

Most stock endpoints return the standard CuteMarkets envelope:

```json
{
  "status": "OK",
  "request_id": "cm_6a7e466379af0a71039d60cc78e72282",
  "results": []
}
```

Paginated endpoints include `next_url` when more rows are available. Request that URL as-is with the same `Authorization` header.

```json
{
  "status": "OK",
  "request_id": "cm_6a7e466379af0a71039d60cc78e72282",
  "results": [],
  "next_url": "https://api.cutemarkets.com/v1/stocks/trades/AAPL/?page=..."
}
```

## Limit defaults and caps

| Endpoint family | Default `limit` | Maximum `limit` |
|---|---:|---:|
| Trades and quotes | 1000 | 10000 |
| Aggregates | 5000 | 10000 |
| Indicators | 10 | 1000 |
| Ticker reference | 100 | 1000 |

## Related docs

- [Stock snapshots](/docs/stock-snapshots)
- [Stock reference](/docs/stock-reference)
- [Stock trades and quotes](/docs/stock-trades-quotes)
- [Stock aggregates and indicators](/docs/stock-aggregates-indicators)
- [Rate limits and plans](/docs/rate-limits)
