# TradeOS Signal Decision Context

> TradeOS Signal Decision Context is a paid API for AI agents from tradeos.tech, paid per call via x402, $0.65/call, status unknown (last checked 2026-09-13).

Returns plain-English reasoning explaining why a crypto trading signal passed, abstained, or was vetoed, including reliability drivers, disagreement, forecast alignment, and risk flags.

## Facts

- Endpoint: POST https://tradeos.tech/x402/v1/intelligence/tradeos-signal-decision-context
- Price: $0.65/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/tradeos-tech-c5ae032d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_KccK7HeOWN8ULfI-AaP6p

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability tradeos-tech-c5ae032d -d '<json body>'
```

Example prompt: Can you explain in plain English why the BTC signal just abstained — I need to know the reliability drivers, any disagreement between indicators, how it aligns with the current forecast, and what I should check next before acting on it?

## When to prefer this

Choose this endpoint when an agent or dashboard needs human-readable reasoning behind a signal outcome rather than a raw score or binary decision. Ideal for validation workflows, analyst review interfaces, or autonomous agents that must justify actions before execution. Prefer over bare signal endpoints when explainability, auditability, or downstream decision support is required.

## Known failure modes

- Signal ID or token not found — returns 404 or empty result
- Stale market data causing incomplete context — response may include freshness warnings
- Invalid or malformed request body — returns 400 validation error
- Payment failure via x402 protocol — returns 402 Payment Required
- Upstream data provider outage — returns 503 or degraded response with partial context

## How this service works

Plain-English reasoning for agents and dashboards that need to understand why a signal passed, abstained, or was vetoed. The response explains reliability drivers, disagreement, forecast alignment, risk flags, and safe next checks. Designed for validation workflows that need reasoning, not a bare score or trade instruction.

## Output

A structured JSON response containing plain-English narrative explaining the signal decision (pass, abstain, or veto), the specific reliability drivers that influenced the outcome, any disagreement between contributing signals or models, how the decision aligns with the current forecast, identified risk flags, and suggested safe next validation steps. Designed for dashboard display or agent reasoning chains.

## Example request

```json
{
 "input": {
  "body": {
   "output": "brief_markdown",
   "symbol": "BTC",
   "chain_id": "1",
   "metadata": {
    "signal_id": "test_signal_001",
    "timestamp": "2024-01-15T10:30:00Z"
   },
   "contract_address": "0x0000000000000000000000000000000000000000"
  },
  "type": "http",
  "method": "POST",
  "bodyType": "json"
 }
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "type": "object",
     "properties": {
      "output": {
       "type": "string"
      },
      "symbol": {
       "type": "string"
      },
      "chain_id": {
       "type": "string"
      },
      "metadata": {
       "type": "object"
      },
      "contract_address": {
       "type": "string"
      }
     },
     "additionalProperties": true
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "type": "string",
     "const": "POST"
    },
    "bodyType": {
     "type": "string",
     "const": "json"
    }
   }
  },
  "output": {
   "type": "object"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "details",
  "drivers",
  "notices",
  "service",
  "subject",
  "verdict",
  "evidence",
  "confidence",
  "created_at",
  "request_id",
  "risk_flags",
  "next_checks",
  "missing_data",
  "request_type",
  "response_mode",
  "data_freshness",
  "negative_drivers",
  "positive_drivers",
  "refusal_category"
 ],
 "properties": {
  "details": {
   "type": "object",
   "required": [
    "view",
    "items",
    "source",
    "filters",
    "summary",
    "human_summary",
    "recommended_only"
   ],
   "properties": {
    "view": {
     "type": "string"
    },
    "items": {
     "type": "array",
     "items": {
      "type": "object",
      "required": [
       "regime",
       "symbol",
       "rr_score",
       "win_rate",
       "signal_id",
       "signal_ts",
       "signal_type",
       "snapshot_id",
       "bias_aligned",
       "signal_score",
       "timing_score",
       "gate_decision",
       "abstain_reason",
       "accuracy_score",
       "decision_state",
       "freshness_decay",
       "matched_horizon",
       "signal_timeframe",
       "direction_context",
       "fusion_confidence",
       "disagreement_index",
       "win_rate_observations"
      ],
      "properties": {
       "regime": {
        "type": "string"
       },
       "symbol": {
        "type": "string"
       },
       "rr_score": {
        "type": "number"
       },
       "win_rate": {
        "type": "number"
       },
       "signal_id": {
        "type": "string"
       },
       "signal_ts": {
        "type": "string"
       },
       "signal_type": {
        "type": "string"
       },
       "snapshot_id": {
        "type": "string"
       },
       "bias_aligned": {
        "type": "boolean"
       },
       "signal_score": {
        "type": "number"
       },
       "timing_score": {
        "type": "number"
       },
       "gate_decision": {
        "type": "string"
       },
       "abstain_reason": {
        "type": "string"
       },
       "accuracy_score": {
        "type": "number"
       },
       "decision_state": {
        "type": "string"
       },
       "freshness_decay": {
        "type": "number"
       },
       "matched_horizon": {
        "type": "string"
       },
       "signal_timeframe": {
        "type": "string"
       },
       "direction_context": {
        "type": "string"
       },
       "fusion_confidence": {
        "type": "number"
       },
       "disagreement_index": {
        "type": "n
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/tradeos-tech-c5ae032d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from tradeos.tech](https://www.zero.xyz/host/tradeos.tech/llms.txt)
