Getting Started
From zero to published in four steps.
1 Register Your Account
Create a value adder account to receive your API key. The key is shown once — store it securely.
POST /accounts/v1/register Content-Type: application/json { "email": "you@example.com", "name": "Your Name or Firm", "account_type": "value_adder" }
Response:
{
"account_id": "va_abc123...",
"api_key": "baz_sk_...",
"warning": "Store this API key securely — it will not be shown again."
}
All subsequent API calls include the key as a Bearer token:
Authorization: Bearer baz_sk_...
2 Submit Your First Strategy
A strategy is an allocation template: tickers + weights + metadata. Strategies are data, not code.
POST /strategies/v1/submit Authorization: Bearer baz_sk_... { "strategy_id": "conservative-growth-v1", "name": "Conservative Growth", "publisher": "va_abc123", "description": "60/30/10 core allocation", "allocation": { "VTI": 0.60, "BND": 0.30, "GLD": 0.10 }, "rebalance": { "trigger": "drift_pct", "threshold": 10.0, "cadence": "quarterly" } }
Validation rules:
- Allocation weights must sum to 1.0 (tolerance: 0.01)
- No negative weights (no implicit leverage)
strategy_id,name,publisherrequired
Next, run the gauntlet to stress-test your strategy:
POST /strategies/v1/conservative-growth-v1/gauntlet
Authorization: Bearer baz_sk_...
If the gauntlet passes, publish to the marketplace:
POST /strategies/v1/conservative-growth-v1/publish
Authorization: Bearer baz_sk_...
3 Publish Your First Signal
Signals are external intelligence feeds. They start in shadow mode for at least 1 quarter. Promotion to active requires demonstrated accuracy improvement.
POST /signals/v1/register Authorization: Bearer baz_sk_... { "signal_id": "social-sentiment-tech", "signal_type": "sentiment", "description": "Social media sentiment for tech mega-caps", "asset_coverage": ["AAPL", "MSFT", "GOOGL", "AMZN", "NVDA"], "update_frequency": "daily" }
Submit data points daily (single or batch):
POST /signals/v1/social-sentiment-tech/submit { "points": [ {"ticker": "AAPL", "score": 0.72, "confidence": 0.85, "direction": "up", "timestamp": "2026-05-06T14:30:00Z"}, {"ticker": "MSFT", "score": -0.15, "confidence": 0.60, "direction": "down", "timestamp": "2026-05-06T14:30:00Z"} ] }
Signal lifecycle: shadow (data tracked, not active) → active (promoted after 1 quarter + accuracy review) → demoted (if accuracy degrades).
4 Build Your First Skill
Skills are sandboxed analysis tools. They read Axiom data and produce recommendations. Skills cannot modify user portfolios — recommendations only.
POST /skills/v1/register Authorization: Bearer baz_sk_... { "skill_id": "sector-rotation-v1", "name": "Sector Rotation Analyzer", "skill_type": "analyzer", "input_requires": ["holdings", "sector_grades", "regime"], "output_schema": { "type": "recommendations", "fields": { "action": "overweight | underweight | hold", "ticker": "string", "rationale": "string" } }, "skill_code": "def analyze(input_data): ..." }
Skill types:
screener— filters assets based on criteriaanalyzer— evaluates a portfolio or positionoptimizer— suggests allocation changes
Sandbox constraints: 30-second timeout, 256 MB memory, no network access, no filesystem access. Output validated against your declared schema.
Next Steps
Once your skill is registered, execute it against sample data to test, then publish:
# Execute against test data POST /skills/v1/sector-rotation-v1/execute # Publish (runs gauntlet validation) POST /skills/v1/sector-rotation-v1/publish