Data API
The Data API uses HTTP for on-demand market data queries such as historical bars, snapshots, and tick data. For the complete endpoint list, see the Market Data API Reference.
For real-time streaming data via MQTT, see Data Streaming API.
Server-to-Server Base URLs
| Environment | URL |
|---|---|
| Production | https://api.webull.com |
| Sandbox | https://api.sandbox.webull.com |
Client-to-server integrations use different hosts. See SDKs and Tools for the complete environment matrix.
Request Format
Data API endpoints use standard HTTP GET or POST requests. Include the authentication headers described in Authentication Overview.
The following server-to-server example requests a stock snapshot:
GET /market-data/stocks/snapshots/list?symbols=AAPL&category=US_STOCK&extend_hour_required=false&overnight_required=false
x-app-key: <your_app_key>
x-timestamp: 2026-09-21T10:00:00Z
x-signature-algorithm: HMAC-SHA1
x-signature-version: 1.0
x-signature-nonce: <unique_nonce>
x-version: v3
x-signature: <computed_signature>
See List Stock Snapshots for the complete request and response schema.
The app_secret is used to compute the request signature. The SDK may also accept it as part of its higher-level request configuration so that it can create the required token and authentication headers automatically. Do not expose the App Secret in browser code, logs, source control, or public channels.
Response Format
Responses are returned as JSON. A successful stock snapshot response returns HTTP 200 with an array of snapshot objects:
[
{
"symbol": "AAPL",
"instrument_id": "913256135",
"price": "185.50",
"open": "184.00",
"high": "186.20",
"low": "183.80",
"volume": "52340000",
"change": "1.50",
"change_ratio": "0.0082",
"pre_close": "184.00",
"last_trade_time": 1710849600000
}
]
Timestamps and field formats vary by endpoint. Consult the corresponding API Reference schema rather than assuming every timestamp is expressed in milliseconds. Prices and other precision-sensitive numeric values are commonly returned as strings.
Asset Categories
Stock endpoints that accept a category parameter support:
| Category Value | Description |
|---|---|
US_STOCK | US stocks |
US_ETF | US ETFs |
Options, futures, crypto, and event contracts use their dedicated endpoint paths and parameters.
Rate Limits
Rate limits are applied per endpoint and can differ between Sandbox and Production. Exceeding a limit returns HTTP 429 Too Many Requests.
See Rate Limits for the current limits of each Market Data API endpoint.