# HALOWERK marktwerk Arbitrage Spread Analyzer

> HALOWERK marktwerk Arbitrage Spread Analyzer is a paid API for AI agents from markt.halowerk.com, paid per call via x402, $0.006/call, status unknown (last checked 2026-09-15).

Calculates net cross-exchange arbitrage spread for a trading pair by walking order books on both sides, accounting for taker fees, slippage, and transfer costs

## Facts

- Endpoint: POST https://markt.halowerk.com/arbitrage
- Price: $0.006/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/halowerk-marktwerk-arbitrage-spread-analyzer-8bd8edd9
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Hfyp0ThRTtSckunpFD1hc

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 halowerk-marktwerk-arbitrage-spread-analyzer-8bd8edd9 -d '<json body>'
```

Example prompt: Check the real net arbitrage spread for a 2 ETH buy on Binance against a sell on Coinbase for ETH/USDT — include taker fees, order book slippage, and transfer costs so I know if there's actually profit left.

## When to prefer this

Choose this endpoint when you need a complete, realistic net arbitrage spread calculation — not just a raw price difference — between two or more major centralized exchanges. It is specifically valuable because it combines order book walking (real slippage for your trade size), taker fee modeling, and transfer cost estimation in a single call, which no public exchange interface provides without credentials. Prefer this over a simple ticker comparison when trade size is non-trivial (slippage matters), when you need a go/no-go verdict rather than a raw price delta, or when you want to surface the often-ignored transfer cost drag that kills apparent arb opportunities.

## Known failure modes

- Unsupported trading pair on one or more requested venues returns an error or missing venue in results
- Size too large relative to visible order book depth may produce extreme slippage estimates or an error
- include_transfer:true results in viability:null when withdrawal fees cannot be sourced without exchange API keys
- Invalid symbol format (not matching BASE/QUOTE pattern) returns a validation error
- Fewer than 2 venues specified triggers a minItems validation failure
- Exchange connectivity issues may cause one venue to be absent from comparison results
- Network latency spikes may cause stale order book snapshots to be used

## How this service works

Walks the visible book of every requested exchange for the given size, in both directions, and works out what remains of the raw spread: gross_spread_bps from top of book, then the taker fee of the entry tier on both sides, then the slippage the size causes on the buy book and on the sell book. net_spread_bps is the headline number, the gross value stands next to it because on its own it is misleading. Transfer costs are the part no public exchange interface publishes without a key: withdraw fee

## Output

Returns a structured breakdown of the arbitrage opportunity between the specified venues: gross_spread_bps (raw top-of-book spread), net_spread_bps (headline profitability after taker fees on both sides and order book slippage for the requested size), per-side slippage, taker fee tiers applied, and transfer/withdrawal costs where available. A viability field indicates whether the arb is profitable; when include_transfer is true and transfer costs cannot be sourced publicly, viability remains null rather than misleadingly positive.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "size": {
   "type": "number",
   "description": "Size in BASE that would be bought on one venue and sold on the other.",
   "exclusiveMinimum": 0
  },
  "symbol": {
   "type": "string",
   "pattern": "^[A-Za-z0-9]{2,15}/[A-Za-z0-9]{2,15}$",
   "description": "Trading pair as BASE/QUOTE, for example ETH/USDT."
  },
  "venues": {
   "type": "array",
   "items": {
    "enum": [
     "binance",
     "coinbase",
     "kraken",
     "okx",
     "bybit"
    ],
    "type": "string"
   },
   "maxItems": 5,
   "minItems": 2,
   "description": "Exchanges to compare. Without it all connected ones are used.",
   "uniqueItems": true
  },
  "include_transfer": {
   "type": "boolean",
   "default": true,
   "description": "Whether transfer costs must be part of the verdict. They cannot be sourced publicly, so true keeps viable at null."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/halowerk-marktwerk-arbitrage-spread-analyzer-8bd8edd9/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from markt.halowerk.com](https://www.zero.xyz/host/markt.halowerk.com/llms.txt)
