{"info":{"title":"BeforePO API","version":"1.1.0","description":"Deterministic supplier purchase checks. The MPP route is a direct $0.50 agent purchase; the comparison route uses prepaid credits. No AI model is called. Discovery describes technical capability, not proven demand."},"openapi":"3.1.0","paths":{"/api/v1/purchase-preflight":{"post":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"50","currency":"usd","description":"BeforePO deterministic purchase preflight","intent":"charge","method":"stripe"}]},"summary":"Check a selected supplier before ordering; pay $0.50 through Stripe MPP","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["selected_quote_id","order"],"properties":{"selected_quote_id":{"type":"string","minLength":1,"maxLength":60},"order":{"type":"object","additionalProperties":false,"required":["quantity","currency","deadline_days","quotes"],"properties":{"quantity":{"type":"integer","minimum":1,"maximum":1000000},"currency":{"type":"string","enum":["USD","EUR","GBP"]},"deadline_days":{"type":["integer","null"],"minimum":0,"maximum":3650},"quotes":{"type":"array","minItems":2,"maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["id","supplier","pack_size","pack_price_cents","minimum_packs","shipping","other_costs","lead_days","same_spec_confirmed"],"properties":{"id":{"type":"string","minLength":1,"maxLength":60},"supplier":{"type":"string","minLength":1,"maxLength":120},"pack_size":{"type":"integer","minimum":1,"maximum":100000},"pack_price_cents":{"type":"integer","minimum":0,"maximum":100000000},"minimum_packs":{"type":"integer","minimum":1,"maximum":100000},"shipping":{"type":"object","additionalProperties":false,"required":["min_cents","max_cents"],"properties":{"min_cents":{"type":"integer","minimum":0,"maximum":100000000},"max_cents":{"type":["integer","null"],"minimum":0,"maximum":100000000}},"description":"Exact charge: min=max. Unknown: min=0,max=null. Bounds are caller-supplied."},"other_costs":{"type":"object","additionalProperties":false,"required":["min_cents","max_cents"],"properties":{"min_cents":{"type":"integer","minimum":0,"maximum":100000000},"max_cents":{"type":["integer","null"],"minimum":0,"maximum":100000000}},"description":"Exact charge: min=max. Unknown: min=0,max=null. Bounds are caller-supplied."},"lead_days":{"type":["integer","null"],"minimum":0,"maximum":3650},"same_spec_confirmed":{"type":"boolean"}}}}}}}}}}}}},"/api/v1/compare":{"post":{"operationId":"compare_supplier_quotes","summary":"Find missing costs that could change the cheapest supplier","security":[{"bearerAuth":[]}],"parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{8,128}$"},"description":"Reuse with identical request data for free retries. Changed data returns 409."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["quantity","currency","deadline_days","quotes"],"properties":{"quantity":{"type":"integer","minimum":1,"maximum":1000000},"currency":{"type":"string","enum":["USD","EUR","GBP"]},"deadline_days":{"type":["integer","null"],"minimum":0,"maximum":3650},"quotes":{"type":"array","minItems":2,"maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["id","supplier","pack_size","pack_price_cents","minimum_packs","shipping","other_costs","lead_days","same_spec_confirmed"],"properties":{"id":{"type":"string","minLength":1,"maxLength":60},"supplier":{"type":"string","minLength":1,"maxLength":120},"pack_size":{"type":"integer","minimum":1,"maximum":100000},"pack_price_cents":{"type":"integer","minimum":0,"maximum":100000000},"minimum_packs":{"type":"integer","minimum":1,"maximum":100000},"shipping":{"type":"object","additionalProperties":false,"required":["min_cents","max_cents"],"properties":{"min_cents":{"type":"integer","minimum":0,"maximum":100000000},"max_cents":{"type":["integer","null"],"minimum":0,"maximum":100000000}},"description":"Exact charge: min=max. Unknown: min=0,max=null. Bounds are caller-supplied."},"other_costs":{"type":"object","additionalProperties":false,"required":["min_cents","max_cents"],"properties":{"min_cents":{"type":"integer","minimum":0,"maximum":100000000},"max_cents":{"type":["integer","null"],"minimum":0,"maximum":100000000}},"description":"Exact charge: min=max. Unknown: min=0,max=null. Bounds are caller-supplied."},"lead_days":{"type":["integer","null"],"minimum":0,"maximum":3650},"same_spec_confirmed":{"type":"boolean"}}}}}}}}},"responses":{"200":{"description":"Cost ranges, eligibility, clarification questions, and a lowest-cost result only when strictly established by supplied bounds."},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient prepaid credits"},"422":{"description":"Invalid input"}}}}},"x-service-info":{"categories":["procurement","purchasing","decision-support"],"docs":{"homepage":"https://beforepo.com","apiReference":"https://beforepo.com/openapi.json","llms":"https://beforepo.com/llms.txt"}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"qg_ API key"}}},"x-beforepo-status":{"machine_payments":"disabled","execution":"deterministic_no_model_calls","demand":"unvalidated"}}