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."
}
The API key is returned exactly once. If you lose it, you must register a new account. There is no key recovery.

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:

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_...
The gauntlet runs 10,000 Monte Carlo paths, historical crash scenarios, and generates a nutrition label. Strategies must achieve >= 50% survival rate and pass >= 3 of 6 stress tests.

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:

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