# InsiderCable ETF Flows

> InsiderCable ETF Flows is a paid API for AI agents from insidercable.com, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-15).

Returns point-in-time spot bitcoin ETF creation/redemption flow records, filterable by date and fund ticker, with no delay or cap on paid tier.

## Facts

- Endpoint: GET https://insidercable.com/paid/feed/etf_flows?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/insidercable-etf-flows-177de3ff
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_X_lJH9BLV5Agt-4yo9nsi

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 insidercable-etf-flows-177de3ff
```

Example prompt: Pull the latest spot bitcoin ETF creation and redemption flows from InsiderCable — give me all records for IBIT since 2024-11-01 with no delay or cap.

## When to prefer this

Choose this endpoint when you need fresh, uncapped, real-time spot bitcoin ETF creation/redemption flow data without the delay or record-count limits imposed by the free tier. It is ideal for time-sensitive trading signals, daily monitoring workflows, or multi-fund comparative analysis where completeness matters. Prefer this over the free tier when latency or data caps would compromise accuracy.

## Known failure modes

- Missing or invalid x402 payment header — returns 402 Payment Required
- Invalid ticker symbol — may return empty records array
- Invalid since date format — returns 400 or empty results
- Network timeout or upstream data unavailability — returns 5xx error
- Insufficient USDC balance on Base or Arbitrum — payment rejected, 402 returned

## How this service works

insidercable — Spot bitcoin ETF creation/redemption flows. Point-in-time records: every row carries observed_at (when this pipeline first saw it) separately from happened_at (when the event occurred). Pay per call, USDC on Base or Arbitrum; the same query grammar as the free tier, without the delay or the cap.

## Output

A JSON envelope (FeedEnvelope) containing a feed identifier, tier metadata (name, total records in feed, matched filters, returned count), and an array of flow records. Each record includes observed_at (when InsiderCable's pipeline first saw it), happened_at (when the event occurred), fund ticker, and flow details. Also includes provenance notes, snapshot SHA-256, and generation timestamp.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$defs": {
  "FeedEnvelope": {
   "type": "object",
   "required": [
    "feed",
    "tier",
    "records"
   ],
   "properties": {
    "feed": {
     "type": "string"
    },
    "tier": {
     "type": "object",
     "required": [
      "name",
      "total_in_feed",
      "matched_filters",
      "returned"
     ],
     "properties": {
      "name": {
       "enum": [
        "free",
        "token",
        "x402"
       ],
       "type": "string"
      },
      "returned": {
       "type": "integer"
      },
      "total_in_feed": {
       "type": "integer"
      },
      "matched_filters": {
       "type": "integer"
      },
      "truncated_by_cap": {
       "type": "integer"
      },
      "withheld_for_freshness": {
       "type": "integer"
      }
     }
    },
    "notes": {
     "type": "array",
     "items": {
      "type": "string"
     }
    },
    "rights": {
     "type": "string"
    },
    "source": {
     "type": "string"
    },
    "records": {
     "type": "array",
     "items": {
      "type": "object"
     }
    },
    "anchored_at": {
     "type": [
      "string",
      "null"
     ]
    },
    "generated_at": {
     "type": "string",
     "description": "when the publisher built this snapshot (ISO 8601)"
    },
    "provenance_note": {
     "type": "string"
    },
    "snapshot_sha256": {
     "type": [
      "string",
      "null"
     ],
     "description": "sha256 of the canonical records array as ingested; see /anchors"
    }
   }
  }
 },
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input",
  "output"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "const": "http"
    },
    "method": {
     "const": "GET"
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "since": {
       "type": "string",
       "description": "Only rows on/after this YYYY-MM-DD"
      },
      "ticker": {
       "type": "string",
       "description": "Fund ticker, e.g. IBIT"
      },
      "tickers": {
       "type": "string",
       "description": "Comma-separated fund tickers"
      }
     },
     "additionalProperties": false
    }
   }
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "const": "json"
    },
    "example": {
     "$ref": "#/$defs/FeedEnvelope"
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/insidercable-etf-flows-177de3ff/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from insidercable.com](https://www.zero.xyz/host/insidercable.com/llms.txt)
