Broker Descriptors
Complete schema reference for Datafye Broker Descriptors.
Overview
A BrokerSpec defines your broker connection and trading configuration, including:
Broker type and credentials
Order routing preferences
Position and risk management
Execution settings
Account configuration
Schema
Root Structure
apiVersion: datafye.io/v1
kind: BrokerSpec
metadata:
name: <string>
description: <string>
broker:
type: <string>
credentials:
apiKey: <string>
apiSecret: <string>
endpoint: <string>
account: <string>
routing:
defaultRoute: <string>
symbolRoutes:
<symbol>: <route>
execution:
orderType: market | limit | stop | stop_limit
timeInForce: day | gtc | ioc | fok
allowShortSelling: true | false
allowMarginTrading: true | false
risk:
maxPositionSize: <number>
maxOrderValue: <number>
maxDailyLoss: <number>
positionLimits:
<symbol>: <number>Field: apiVersion
apiVersionType: string
Required: Yes
Value:
datafye.io/v1Description: Schema version for this descriptor
Field: kind
kindType: string
Required: Yes
Value:
BrokerSpecDescription: Identifies this as a Broker Descriptor
Field: metadata
metadataType: object
Required: Yes
Description: Metadata about this broker configuration
metadata.name
metadata.nameType: string
Required: Yes
Format: lowercase alphanumeric with hyphens (DNS-1123 subdomain)
Description: Unique identifier for this broker configuration
Example:
alpaca-paper,ib-production
metadata.description
metadata.descriptionType: string
Required: No
Description: Human-readable description
Example:
Alpaca paper trading account
Field: broker
brokerType: object
Required: Yes
Description: Broker connection configuration
broker.type
broker.typeType: string
Required: Yes
Values:
alpaca|interactive-brokers|tradier|paperDescription: Broker type
alpaca
Alpaca Markets
interactive-brokers
Interactive Brokers
tradier
Tradier Brokerage
paper
Simulated paper trading
broker.credentials
broker.credentialsType: object
Required: Yes (except for
paperbroker)Description: API credentials for broker authentication
broker.credentials.apiKey
Type: string
Required: Yes
Description: API key for broker
Security: Store in secrets, not plain text
broker.credentials.apiSecret
Type: string
Required: Yes
Description: API secret for broker
Security: Store in secrets, not plain text
Note: For production deployments, use Datafye's secrets management instead of embedding credentials directly.
broker.endpoint
broker.endpointType: string
Required: No
Description: Broker API endpoint URL
Default: Standard endpoint for the broker type
Examples:
https://paper-api.alpaca.markets— Alpaca paper tradinghttps://api.alpaca.markets— Alpaca live trading
broker.account
broker.accountType: string
Required: No
Description: Account identifier (for brokers with multiple accounts)
Example:
U1234567(Interactive Brokers account)
Field: routing
routingType: object
Required: No
Description: Order routing configuration
routing.defaultRoute
routing.defaultRouteType: string
Required: No
Description: Default routing destination for all orders
Examples:
SMART— Interactive Brokers smart routingARCA— NYSE ArcaISLAND— NASDAQ
routing.symbolRoutes
routing.symbolRoutesType: object (map of symbol to route)
Required: No
Description: Symbol-specific routing overrides
Example:
Field: execution
executionType: object
Required: No
Description: Default execution parameters
execution.orderType
execution.orderTypeType: string
Required: No
Default:
marketValues:
market|limit|stop|stop_limitDescription: Default order type for submissions
execution.timeInForce
execution.timeInForceType: string
Required: No
Default:
dayValues:
day|gtc|ioc|fokDescription: Default time-in-force for orders
day
Good for day (cancel at market close)
gtc
Good till canceled
ioc
Immediate or cancel
fok
Fill or kill
execution.allowShortSelling
execution.allowShortSellingType: boolean
Required: No
Default:
falseDescription: Whether short selling is permitted
execution.allowMarginTrading
execution.allowMarginTradingType: boolean
Required: No
Default:
falseDescription: Whether margin trading is permitted
Field: risk
riskType: object
Required: No
Description: Risk management controls
risk.maxPositionSize
risk.maxPositionSizeType: number
Required: No
Description: Maximum position size (in shares) for any single position
Example:
1000
risk.maxOrderValue
risk.maxOrderValueType: number
Required: No
Description: Maximum order value (in dollars) for a single order
Example:
50000
risk.maxDailyLoss
risk.maxDailyLossType: number
Required: No
Description: Maximum daily loss (in dollars) before trading is halted
Example:
5000
risk.positionLimits
risk.positionLimitsType: object (map of symbol to limit)
Required: No
Description: Symbol-specific position size limits
Example:
Complete Examples
Example 1: Alpaca Paper Trading
Example 2: Interactive Brokers Production
Example 3: Tradier with Conservative Risk
Example 4: Pure Paper Trading (No Broker)
Validation Rules
Required Fields
apiVersionmust bedatafye.io/v1kindmust beBrokerSpecmetadata.nameis requiredbroker.typeis requiredbroker.credentialsrequired unlessbroker.typeispaper
Credential Rules
API keys and secrets should use environment variable substitution:
${VAR_NAME}For production, use Datafye secrets management
Never commit credentials to version control
Risk Management Rules
All risk limits are optional but recommended for live trading
maxPositionSizemust be positive if specifiedmaxOrderValuemust be positive if specifiedmaxDailyLossmust be positive if specifiedPosition limits must be positive and <=
maxPositionSize
Execution Rules
orderTypemust be valid for the brokertimeInForcemust be supported by the brokerSome brokers may not support all order types
Broker-Specific Notes
Alpaca
Endpoint: Use
https://paper-api.alpaca.marketsfor paper tradingCredentials: API key and secret from Alpaca dashboard
Routing: Not configurable (handled by Alpaca)
Interactive Brokers
Account: Required if you have multiple accounts
Routing: Supports SMART and specific exchanges
Credentials: Use IB API keys, not login credentials
Tradier
Endpoint: Automatically configured based on credentials
Routing: Limited configuration
Credentials: OAuth token from Tradier
Paper Broker
No credentials: Completely simulated
No routing: Orders executed instantly at market price
Fills: Simulated based on market data
Use case: Testing and development only
Security Best Practices
Credential Management
Never hardcode credentials in descriptors
Use environment variables for local development
Use Datafye secrets for production deployments
Rotate credentials regularly
Use separate credentials for paper vs. live
Example with Secrets
For production, reference Datafye secrets:
Risk Control Recommendations
By Trading Style
Conservative
500-1000
$25k-$50k
$2.5k-$5k
Moderate
1000-5000
$50k-$100k
$5k-$10k
Aggressive
5000-10000
$100k-$250k
$10k-$25k
HFT/Scalping
10000+
$250k+
$25k+
Note: Adjust based on account size. Common practice is to limit daily loss to 1-2% of account value.
Related Documentation
Concept guide: Broker Descriptors
Algo integration: Algo Descriptors
CLI usage: trading provision, trading start
Security: Private Cloud Deployments
Last updated

