Examples

Copy-paste building blocks for the R&D API. Replace zvrd_… with your key.

cURL: forward + vol + carry

# Forward mid (13 weeks). on defaults to today; if staging returns
# VALIDATION_FAILED "No forward rates available", pass a prior day.
curl -sS -H "Authorization: Bearer zvrd_…" \
  'https://staging.api.zerovar.com/api/v1/market/forward?base=USD&foreign=SEK&horizon_weeks=13&on=2026-08-10'

# Annualised vol
curl -sS -H "Authorization: Bearer zvrd_…" \
  'https://staging.api.zerovar.com/api/v1/market/volatility?base=USD&foreign=SEK'

# Carry (pure calc)
curl -sS -X POST -H "Authorization: Bearer zvrd_…" \
  -H "Content-Type: application/json" \
  -d '{"spot":9.52,"forward":9.48,"tenor_weeks":13}' \
  'https://staging.api.zerovar.com/api/v1/analytics/carry'

Sheets: paste into cells

=ZV_WHOAMI()
=ZV_SPOT("USD","SEK")
=ZV_FORWARD("USD","SEK",13,TODAY()-1)
=ZV_VOL("USD","SEK")
=ZV_CARRY(B3,B4,13)
=ZV_SPOT_HISTORY("USD","SEK",TODAY()-30,TODAY())
=ZV_SPOT("USD","MXN")
=ZV_TCA_PNL(1000000,"SELL_USD",9.52,9.55)

TCA narrative

For USD notional and rates as foreign per 1 USD (e.g. USDSEK):

When ZV_TICK is live on staging, put the trade time in a cell and use it as arrival. Until then, paste an arrival mid manually into ZV_TCA_PNL.

Claude / MCP prompts

On claude.ai: + → Connectors → Add custom connector (no API key). See Claude. Keep the first prompt tiny; use a new chat for bigger work. Host tool budgets vs ZeroVaR access: usage limits.

Using only ZeroVaR staging MCP tools (do not web search), call whoami, then market_spot for USD/SEK MID. Report kind, level_name, rate, and as_of.