Check an execution spec
strategy_spec_validateCheck a strategy written as an execution spec v0 (POST /strategy/spec/validate). Free, no key, nothing stored. A spec is one JSON object: asset, venue, market, direction, size (nav_weight | fixed_usd | risk_per_stop), leverage, schedule (bar, fill, session, warmup), entry.all and exit.any rules from a CLOSED list (cross_above, cross_below, close_above, close_below, drawdown_from_high, range_bound, sequence, stop_from_entry, trailing_atr, time_in_trade; values sma, ema, atr, highest, lowest), max_positions, costs (fee bps, slippage by order size, funding). An unknown rule or field is refused with its path, never guessed. Returns {ok, spec_hash, normalized, errors[{path, rule, message}], warnings, edge_check}. spec_hash is the sha256 of the canonical normalized JSON. edge_check WARNS (status warn, ok stays true, warnings entry spec_cost_exceeds_edge) when one round trip of costs at its order size is more than 0.5 x the median bar move of its bar over the last 90 days; it never blocks an attach, so read the paper report card's net return; with no candles, or a NAV-based size and no context.nav_usd, it answers status not_evaluated with the reason. Use it before you attach a spec to a Forge signal, a Torii mandate or a gallery strategy template.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| spec | Yes | The execution spec v0 object (spec_version 0) | |
| nav_usd | No | Optional: account value in USD, to size a nav_weight or risk_per_stop spec for the cost-to-edge check |