{"service":"liberty-agent-settlement","mode":"demo","money":false,"path":"/api/v0/quote","methods":["POST","OPTIONS"],"auth":{"required":false,"mode":"demo","headers":["Authorization: Bearer <key>","X-Liberty-Key"],"key_id":"sha256 hex prefix (k_ + 12 chars). Raw key is never stored.","missing":"key_optional"},"persistence":false,"dry_run":true,"actions":["create","fund","submit","release","dispute"],"note":"Dry-run of the same engine as POST /api/v0/transition. Computes the next status and fee math without mutating state. Create quote returns validated open job fields without a durable id. Optional Idempotency-Key is echoed only. Not live escrow custody. Optional demo API key identifies the adapter; omit it and the route still works (key_optional). Not production auth.","idempotency":{"header":"Idempotency-Key","body":"idempotency_key","persistence":false,"replay":false,"note":"Optional. Echoed on success. Create stays dry-check / dry-run and still has no durable id. Liberty does not replay stored responses. No persistence. No SSRF. No real money."},"protocol":"/api/settlement.json","discovery":"/.well-known/agent.json","schema":"/api/schemas/transition.json","quote":"/api/v0/quote","commit":"/api/v0/transition","verify":"/api/v0/verify","simulate":"/api/v0/simulate","validate":"/api/v0/validate"}