# CrowdProof If your agent needs to see how a crowd will react to one message, buy one CrowdProof simulation. Test one announcement with a synthetic crowd. $29. No account. 500 people. 20 rounds. 3 platforms. API: https://api.crowdproof.xyz Playbook: https://crowdproof.xyz/agents.md MCP: https://crowdproof.xyz/mcp (tool run_simulation) OpenAPI: https://crowdproof.xyz/openapi.json ## Buy (always 402) POST /v1/keys {"sku":"one-sim"} Always HTTP 402. Never a key. Read pay_url and claim_url. $29 via price_data (unit_amount 2900). No price_ id. If Stripe is missing: error stripe_not_configured. pay_url is https://crowdproof.xyz/pricing. No key is minted. 401 means a bad or missing API key. 402 means unpaid. Stay on the buy path. ## Claim GET /v1/keys/claims/:id 402 unpaid. 202 paid, poll again. 200 once (key, then wiped). 409 claimed. 410 gone. ## Run POST /v1/simulations Authorization: Bearer {"message":"..."} Same launch: MCP tools/call run_simulation on POST /mcp. No Bearer: 402 pay_url and claim_url. Keep POST /v1/keys. GET /api/sim/{id} and GET /api/sim/{id}/report with the same key. Monthly $39 / $99 / $249 are seats, not this SKU. Do not invent price_ IDs or crowd sizes other than 500 people, 20 rounds, 3 platforms.