# PreReason - Bitcoin Factor Attribution API

> PreReason - Bitcoin Factor Attribution API is a paid API for AI agents from api.prereason.com, paid per call via x402, $0.03/call, status unknown (last checked 2026-10-11).

Returns a structured attribution breakdown of what is driving BTC price movements: macro factors, on-chain activity, or sentiment signals.

## Facts

- Endpoint: GET https://api.prereason.com/api/btc/factors?utm_source=zero.xyz
- Price: $0.03/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/prereason-bitcoin-factor-attribution-api-b9742458
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_5sZkDDxb_2wtHqGIIAoji

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 prereason-bitcoin-factor-attribution-api-b9742458
```

Example prompt: Can you pull the PreReason btc.factors briefing to break down what's driving Bitcoin's price right now — is it macro, on-chain activity, or sentiment — and give me the results in JSON format?

## When to prefer this

Use this endpoint when you specifically need to understand WHAT is driving Bitcoin price — not just what the price is. It is ideal for investment reasoning, report generation, or agent decision-making where cause attribution matters. Prefer over btc.quick-check (price snapshot only) or btc.momentum (trend direction only) when the user needs a causal or factor-level explanation of BTC price dynamics.

## Known failure modes

- Invalid briefing ID returns 400 error
- Date outside tier access range returns 403 or tier upgrade prompt
- Missing required 'briefing' query parameter returns 400
- Payment failure (x402) returns 402 Payment Required
- Invalid date format returns 400 with pattern validation error
- Server unavailable returns 503

## How this service works

Bitcoin price drivers. Multi-factor attribution across macro, on-chain, and sentiment. BTC causation analysis for research and trading agents.

## Output

Returns a structured JSON (or markdown) object containing Bitcoin price context, factor attribution signals identifying whether macro, on-chain, or sentiment is the primary driver, confidence scores per factor, and trend signals. Includes a generated_at timestamp and the briefing ID for reference.

## Example request

```json
{
 "input": {
  "type": "http",
  "method": "GET",
  "queryParams": {
   "format": "json",
   "briefing": "btc.factors"
  }
 }
}
```

## 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"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "date": {
       "type": "string",
       "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
       "description": "Historical date in YYYY-MM-DD format. A paid call serves today or any ?date= on record."
      },
      "format": {
       "enum": [
        "json",
        "markdown"
       ],
       "type": "string",
       "description": "Response format. markdown is token-optimized for LLMs, json is structured. Default is markdown."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "metrics": {
   "dxy": {
    "name": "dxy"
   },
   "spy": {
    "name": "spy"
   },
   "tga": {
    "name": "tga"
   },
   "etf-tlt": {
    "name": "etf-tlt"
   },
   "fed-balance": {
    "name": "fed-balance"
   },
   "hash-ribbon": {
    "name": "hash-ribbon"
   },
   "treasury-30y": {
    "name": "treasury-30y"
   },
   "bitcoin-price": {
    "name": "bitcoin-price"
   },
   "net-liquidity": {
    "name": "net-liquidity"
   },
   "bitcoin-hash-rate": {
    "name": "bitcoin-hash-rate"
   },
   "bitcoin-volume-24h": {
    "name": "bitcoin-volume-24h"
   },
   "deribit-btc-iv-30d": {
    "name": "deribit-btc-iv-30d"
   },
   "okx-btc-funding-rate": {
    "name": "okx-btc-funding-rate"
   },
   "btc-perp-oi-contracts": {
    "name": "btc-perp-oi-contracts"
   },
   "okx-btc-open-interest": {
    "name": "okx-btc-open-interest"
   },
   "btc-perp-funding-zscore-30d": {
    "name": "btc-perp-funding-zscore-30d"
   },
   "btc-perp-positioning-regime": {
    "name": "btc-perp-positioning-regime"
   }
  },
  "briefing_used": "btc.factors",
  "briefing_metadata": {
   "name": "Factor Attribution",
   "description": "Rule-based \"why is Bitcoin moving\" with macro factors (Fed balance, TGA, net liquidity, dollar), on-chain factors (hash rate, volume), BTC perp derivatives positioning (funding rate + open interest), and 30-day ATM implied volatility as a regime signal",
   "metrics_count": 17,
   "correlations_count": 6
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/prereason-bitcoin-factor-attribution-api-b9742458/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.prereason.com](https://www.zero.xyz/host/api.prereason.com/llms.txt)
