add_features_batch
Batch-add up to 2000 tickers to the catalog in one parallel call, returning added, already-existed, and failure details to build a research universe quickly.
Instructions
Batch-add multiple tickers to the catalog in one call. Parallel ingest with a 10-wide semaphore — much faster than looping add_feature from the model side, and avoids the per-call tool-use overhead.
Returns a three-bucket breakdown:
• added: tickers newly inserted (catalog + training_data populated)
• already_existed: tickers that were already in the catalog (409s from the single-add path; not a failure)
• failed: [{ticker, reason}] for symbols yfinance/FRED rejected
Use this when you want to register a research universe in the catalog without committing to a portfolio — e.g. 'add the S&P 500 constituents' or 'add these 200 tickers from my CSV'. For portfolio-bound bulk imports prefer create_portfolio with auto_add=true — same parallel ingest, but the result also creates the portfolio in one round-trip.
Per-ticker taxonomy fields (category, sector, asset_type, region) apply uniformly to every ticker in the batch. For heterogeneous batches leave them unset so each ticker gets its own auto-detected taxonomy from yfinance.
Typical wall-time: 100 tickers ≈ 10-30s, 1000 tickers ≈ 2-5 min.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | Optional. Valid values: 'US', 'Europe', 'Global', 'Asia', 'EM', 'Japan', 'China', 'Brazil', 'India', 'Korea', 'Taiwan', 'Vietnam', 'Latin America', 'Australia'. | |
| sector | No | Required when is_asset=true. Valid values: 'Technology', 'Healthcare', 'Financials', 'Consumer Discretionary', 'Consumer Staples', 'Industrials', 'Energy', 'Materials', 'Communication Services', 'Utilities', 'Real Estate', 'Fixed Income', 'FX', 'Commodities', 'Cryptocurrency', 'Alternatives', 'Broad Market', 'International Equity', 'Factor'. | |
| source | No | Applied uniformly. 'yahoo' for stocks/ETFs/futures, 'fred' for rates/economic. | yahoo |
| tickers | Yes | Ticker symbols to add (e.g. ['AAPL', 'MSFT', 'NVDA', ...]). Up to 2000 per call. | |
| category | No | Required when is_asset=true. Same enum as add_feature: 'equity', 'fixed_income', 'credit', 'rates', 'fx', 'commodity', 'volatility', 'economic', 'crypto', 'inflation', 'employment', 'growth', 'corporate', 'thematic', 'sector', 'region'. | |
| is_asset | No | Leave unset for yfinance auto-detection (recommended for heterogeneous batches). Pass True/False only to override for every ticker in the batch. | |
| asset_type | No | Required when is_asset=true. Valid values: 'Stock', 'ETF', 'Bond ETF', 'Crypto', 'Commodity', 'Currency ETF', 'Futures'. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |