# Excelexi Analytics History API

> Excelexi Analytics History API is a paid API for AI agents from api.excelexi.com, paid per call via x402, $0.00005/call, status unknown (last checked 2026-09-15).

Computes and returns historical financial technical indicator data for a given asset, requiring a USDC micropayment via x402 on Base.

## Facts

- Endpoint: POST https://api.excelexi.com/api/v1/analytics/history
- Price: $0.00005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/excelexi-analytics-history-api-b9689d8c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_zpEXpy_J1fHiUK8hReSLZ

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 excelexi-analytics-history-api-b9689d8c -d '<json body>'
```

Example prompt: Pull the historical RSI(14) values for BTC/USD over the last 90 days from Excelexi so I can backtest a mean-reversion strategy.

## When to prefer this

Choose this endpoint when you need historical technical indicator computations on demand without managing your own time-series database or indicator library. It is ideal for AI agents doing backtesting, signal research, or chart generation that need pre-computed indicator history rather than raw OHLCV data. Prefer this over raw market data APIs when you need indicator math (RSI, MACD, ATR, Bollinger Bands, etc.) already applied to historical prices. The per-call micropayment model suits low-frequency or exploratory use better than a subscription.

## Known failure modes

- 402 Payment Required — x402 gate active, must submit signed EIP-3009 transferWithAuthorization proof in X-Payment header
- Invalid or unsupported indicator slug — returns 400 or 404
- Asset symbol not found or unsupported — returns 404
- Date range too large or malformed — returns 400
- Insufficient USDC balance for micropayment — payment authorization fails
- Network or compute timeout on complex indicator history — returns 503

## How this service works

**Excelexi** — Financial technical indicators API marketplace.

Agent-consumable OpenAPI document for the public Excelexi indicator surface.

**x402 Payment**: Indicator compute endpoints require a USDC micropayment on Base (Coinbase L2, chain 8453). When the x402 gate is active, a 402 Payment Required response is returned with a payment challenge. Submit the signed EIP-3009 transferWithAuthorization proof in the `X-Payment` header and retry the request.

**Discovery**: `GET /.well-known/x402` returns the current per-slug prices.

**Regulatory notice**: All indicator outputs are informational only and do not constitute financial advice. Responses include `regulatory_notice` = `"information_only_not_financial_advice"`.

## Output

Returns a time-series array of computed technical indicator values for the requested asset and date range, along with a regulatory_notice field set to 'information_only_not_financial_advice'. Each data point includes a timestamp and the computed indicator output(s) for that period.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "to": {
   "type": "string",
   "description": "To date (UTC, inclusive). Optional."
  },
  "from": {
   "type": "string",
   "description": "From date (UTC, inclusive). Optional."
  },
  "limit": {
   "type": "string",
   "description": "Page size. Max 100. Default 100."
  },
  "metric": {
   "type": "string",
   "description": "Metric ID (e.g. \"rsi_rsi\")."
  },
  "offset": {
   "type": "string",
   "description": "Zero-based page offset. Default 0."
  },
  "symbol": {
   "type": "string",
   "description": "Asset symbol."
  },
  "interval": {
   "type": "string",
   "description": "Candle interval: \"1h\", \"4h\", \"1d\"."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "data": {
   "type": "array",
   "items": {
    "type": "object",
    "properties": {
     "time": {
      "type": "string",
      "format": "date-time",
      "description": "UTC timestamp of the closed bar."
     },
     "value": {
      "type": [
       "null",
       "number",
       "string"
      ],
      "format": "double",
      "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
      "description": "Metric value as a decimal (numeric metrics only; null if the value is categorical).\nSerialized as JSON number."
     }
    },
    "description": "One time-series data point in the analytics history response."
   },
   "description": "Time-series data points ordered by time ascending."
  },
  "meta": {
   "type": "object",
   "properties": {
    "limit": {
     "type": [
      "integer",
      "string"
     ],
     "format": "int32",
     "pattern": "^-?(?:0|[1-9]\\d*)$",
     "description": "Page size used."
    },
    "total": {
     "type": [
      "integer",
      "string"
     ],
     "format": "int32",
     "pattern": "^-?(?:0|[1-9]\\d*)$",
     "description": "Total number of rows matching the window (before paging)."
    },
    "offset": {
     "type": [
      "integer",
      "string"
     ],
     "format": "int32",
     "pattern": "^-?(?:0|[1-9]\\d*)$",
     "description": "Zero-based offset used."
    }
   },
   "description": "Pagination metadata for the analytics history response."
  },
  "prov_meta": {
   "oneOf": [
    {
     "type": "null"
    },
    {
     "type": "object",
     "required": [
      "computed_at",
      "schema_version",
      "request_id",
      "latency_ms"
     ],
     "properties": {
      "is_live": {
       "type": [
        "null",
        "boolean"
       ],
       "description": "True when ALL contributing sources are live Binance feeds. Null when no sources."
      },
      "query_id": {
       "type": [
        "null",
        "string"
       ],
       "description": "Deterministic 12-hex-char SHA-256 of the canonical IR/query. Same input → same value (D-ARM-9)."
      },
      "bar_closed": {
       "type": [
        "null",
        "boolean"
       ],
       "description": "True when the last bar has closed (now &gt;= as_of). Null when no as_of."
      },
      "latency_ms": {
       "type": [
        "integer",
        "string"
       ],
       "format": "int32",
       "pattern": "^-?(?:0|[1-9]\\d*)$",
       "description": "Server-side processing time in milliseconds (n
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/excelexi-analytics-history-api-b9689d8c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.excelexi.com](https://www.zero.xyz/host/api.excelexi.com/llms.txt)
