Learn
Obsidian Academy

REST API

HTTP/JSON surface for reading protocol state + submitting signed write intents.

Base URL

https://api.obsidian.trading for production, and obsidian-api:8080 on the homelab internal network. All endpoints are documented in docs/AGENTS.md and exposed via OpenAPI at /docs.

Read endpoints

Open, no auth. Rate-limited to 60 req/min/IP.

  • GET /market/summary — spot, IV, spread, option count.
  • GET /options/:id — full state of a single option NFT.
  • GET /options/:id/greeks — Black-Scholes pricing + greeks.
  • GET /portfolio/:address — aggregate positions for a wallet.
  • GET /marketplace/listings — active listings.
  • GET /lending/markets — Magma markets.
  • GET /lending/positions/:user — Magma positions.

Signed-write endpoints

Require X-API-Key header plus an EIP-712-signed intent. The API verifies the signature and relays on-chain.

  • POST /v2/signed/write-call — relay a signed call-write intent.
  • POST /v2/signed/write-put — relay a signed put-write intent.
  • GET /v2/signed/domain — fetch the EIP-712 domain + types for signing.