Settings
The Market Data Python SDK provides flexible configuration options for customizing API requests. You can configure universal parameters like output format, date format, data mode, and more through multiple methods with different priority levels.
Configuration Priority
The SDK supports multiple ways to configure universal parameters. These configuration methods follow a priority hierarchy, where higher priority settings override lower priority ones.
Priority Order (Lowest to Highest)
-
Environment Variables (Lowest Priority)
- Set via environment variables like
MARKETDATA_OUTPUT_FORMAT,MARKETDATA_DATE_FORMAT, etc. - Applied globally to all API calls unless overridden
- Set via environment variables like
-
Client Default Parameters (
client.default_params)- Set via
client.default_paramsproperty - Applied to all API calls made with that client instance unless overridden
- Set via
-
Direct Method Parameters (Highest Priority)
- Passed directly as keyword arguments to resource methods
- Applied only to that specific API call
How It Works
When making an API call, the SDK merges parameters in the following order:
-
Start with environment variables (lowest priority)
- Parameters are read from environment variables like
MARKETDATA_OUTPUT_FORMAT,MARKETDATA_DATE_FORMAT, etc.
- Parameters are read from environment variables like
-
Override with
client.default_params(medium priority)- Parameters set via
client.default_paramsoverride environment variables - Example:
client.default_params.output_format = OutputFormat.JSON
- Parameters set via
-
Override with direct method parameters (highest priority)
- Parameters passed directly to resource methods override both environment variables and
client.default_params - Example:
client.stocks.prices("AAPL", output_format=OutputFormat.DATAFRAME)
- Parameters passed directly to resource methods override both environment variables and
Examples
- Environment Variables
- Client Default Params
- Direct Method Parameters
Set universal parameters via environment variables:
import os
os.environ["MARKETDATA_OUTPUT_FORMAT"] = "json"
os.environ["MARKETDATA_DATE_FORMAT"] = "timestamp"
from marketdata.client import MarketDataClient
client = MarketDataClient()
# All calls will use JSON format and timestamp date format
# (unless overridden by client.default_params or method parameters)
prices = client.stocks.prices("AAPL")
# Uses: output_format=JSON, date_format=TIMESTAMP
Set universal parameters via client.default_params:
from marketdata.client import MarketDataClient
from marketdata.input_types.base import OutputFormat, DateFormat
client = MarketDataClient()
# Set default parameters for this client instance
client.default_params.output_format = OutputFormat.JSON
client.default_params.date_format = DateFormat.TIMESTAMP
# All calls will use JSON format and timestamp date format
# (unless overridden by method parameters)
prices = client.stocks.prices("AAPL")
# Uses: output_format=JSON, date_format=TIMESTAMP
quotes = client.stocks.quotes("AAPL")
# Uses: output_format=JSON, date_format=TIMESTAMP
Note: client.default_params overrides environment variables.
Pass parameters directly to resource methods:
from marketdata.client import MarketDataClient
from marketdata.input_types.base import OutputFormat, DateFormat
client = MarketDataClient()
# Set default parameters
client.default_params.output_format = OutputFormat.JSON
client.default_params.date_format = DateFormat.TIMESTAMP
# Direct method parameters override client.default_params
prices = client.stocks.prices(
"AAPL",
output_format=OutputFormat.DATAFRAME, # Overrides JSON
date_format=DateFormat.UNIX # Overrides TIMESTAMP
)
# Uses: output_format=DATAFRAME, date_format=UNIX
# This call still uses client.default_params
quotes = client.stocks.quotes("AAPL")
# Uses: output_format=JSON, date_format=TIMESTAMP
Note: Direct method parameters override both environment variables and client.default_params.
Available Configuration Options
Output Format
Controls the format of the API response data.
Available Values:
OutputFormat.DATAFRAME(default): Returns data as a pandas DataFrameOutputFormat.JSON: Returns data as JSONOutputFormat.CSV: Returns data as CSV (saves to file)OutputFormat.INTERNAL: Returns data in internal format
Configuration Methods:
- Environment Variable:
MARKETDATA_OUTPUT_FORMAT(values:dataframe,internal,json,csv) - Client Default:
client.default_params.output_format = OutputFormat.JSON - Direct Parameter:
client.stocks.quotes("AAPL", output_format=OutputFormat.JSON)
Example:
from marketdata.client import MarketDataClient
from marketdata.input_types.base import OutputFormat
client = MarketDataClient()
# Method 1: Environment variable
# export MARKETDATA_OUTPUT_FORMAT=json
# Method 2: Client default params
client.default_params.output_format = OutputFormat.JSON
# Method 3: Direct parameter (highest priority)
quotes = client.stocks.quotes("AAPL", output_format=OutputFormat.DATAFRAME)
For more details, see the API Format documentation.
Date Format
Specifies the format for date and time information in responses.
Available Values:
DateFormat.TIMESTAMP: ISO 8601 timestamp format (e.g.,2020-12-30 16:00:00 -05:00)DateFormat.UNIX: Unix timestamp in seconds (e.g.,1609362000)DateFormat.SPREADSHEET: Excel spreadsheet format (e.g.,44195.66667)
Configuration Methods:
- Environment Variable:
MARKETDATA_DATE_FORMAT(values:timestamp,unix,spreadsheet) - Client Default:
client.default_params.date_format = DateFormat.UNIX - Direct Parameter:
client.stocks.candles("AAPL", date_format=DateFormat.UNIX)
Example:
from marketdata.client import MarketDataClient
from marketdata.input_types.base import DateFormat
client = MarketDataClient()
# Method 1: Environment variable
# export MARKETDATA_DATE_FORMAT=unix
# Method 2: Client default params
client.default_params.date_format = DateFormat.UNIX
# Method 3: Direct parameter (highest priority)
candles = client.stocks.candles("AAPL", date_format=DateFormat.TIMESTAMP)
For more details, see the API Date Format documentation.