# SpendGate > Score a planned spend before an autonomous agent pays. Verdicts are approve, ask_human, or block. SpendGate is a decision check, not a wallet and not the payment itself. Call it before a tool moves money. The underlying merchant charge is still yours to make or refuse. ## When to use - Before a crypto transfer, gift card, irreversible purchase, subscription, or paid API call. - When a planner proposes a spend and you have a daily or monthly budget left. Pass that remaining budget. Over budget is a block. - When the amount is under the free micro threshold (default $1) and you still want a recorded check. Those return approve unless they exceed a budget you supplied. - Skip it for pure reads that do not spend. status_check is the low-risk category when you do call. Do not reword purpose and retry to fish for approve. v1 scoring is deterministic. ## Verdicts - approve: pay. - ask_human: do not pay yet. Ask a person. - block: do not pay. ## Free tier - Anonymous: 100 scores per UTC day, no key. - Free key: POST https://spendgate.toolweather.workers.dev/v1/keys, then Authorization: Bearer sg_live_…. 1000 scores per UTC day. - Toolweather bundle proxy: a matching x-tw-bundle-secret charges x-tw-bundle-client. A hex client (Toolweather API key hash) gets the free-key cap (1000 scores per UTC day). An anonymous Toolweather caller whose client id starts with anon: gets the anonymous cap (100 scores per UTC day). get_quota still reports subject and tier bundle, with daily_limit set to that cap. A missing or wrong secret stays on the anonymous IP cap. An sg_live_ key still wins. - After the cap, each score costs 0.001 USDC on Base (eip155:8453) via x402. Facilitator: https://facilitator.payai.network. - get_quota, get_api_key, docs, and this file are not billed. - Paid calls require PAY_TO on the server. If it is unset, over-cap scores return 402 payment_not_configured and do not invent a wallet. ## API - [Score a spend](https://spendgate.toolweather.workers.dev/v1/score): POST JSON { amount, currency?, category?, purpose?, merchant?, agent_id?, daily_budget_remaining?, monthly_budget_remaining?, risk_hints? } - [Quota](https://spendgate.toolweather.workers.dev/v1/quota): GET remaining free scores. - [Mint a key](https://spendgate.toolweather.workers.dev/v1/keys): POST { label? } - [Policy](https://spendgate.toolweather.workers.dev/v1/policy): GET the v1 formula. - [OpenAPI](https://spendgate.toolweather.workers.dev/openapi.json) - [MCP server card](https://spendgate.toolweather.workers.dev/.well-known/mcp) - [x402 discovery](https://spendgate.toolweather.workers.dev/.well-known/x402) ## MCP Endpoint: https://spendgate.toolweather.workers.dev/mcp (streamable HTTP, protocol 2025-06-18). Tools: score_spend, get_quota, get_api_key. ## Categories High risk: crypto_transfer, irreversible, gift_card. Medium risk: api_call, saas, infra. Low risk: status_check. Anything else is unknown risk. ## Optional later Free spend watches are not in v1.