---
title: "Evaluates caller-supplied policy, usage and request values only. No live allowance or balance is read, no destination is contacted, no budget or run is reserved, and no permission or execution authority is granted."
method: POST
path: "/api/agent-budget-guard"
---

# Evaluates caller-supplied policy, usage and request values only. No live allowance or balance is read, no destination is contacted, no budget or run is reserved, and no permission or execution authority is granted.

`POST /api/agent-budget-guard`

## Request

- Base URL: `https://weverlabs.com`
- URL: `https://weverlabs.com/api/agent-budget-guard`
- Auth: none declared

Direct access uses x402 Base USDC settlement or the verified-wallet free tier. Evaluates caller-supplied policy, usage and request values only. No live allowance or balance is read, no destination is contacted, no budget or run is reserved, and no permission or execution authority is granted. The API access fee is separate from any inspected payment or recorded invoice amount.

## Request body

- object
  - `mode` 'evaluate_action', required
  - `agent_id` string, required
  - `policy` object, required
    - `policy_id` string, required
    - `agent_id` string, required
    - `currency` 'USD', required
    - `budget_minor` integer, required
    - `max_action_fee_minor` integer, required
    - `max_runs` integer, required
    - `allowed_rails` string[], required
    - `allowed_callback_origins` string[], required
    - `callback_required` boolean, required
    - `not_before` string, required
    - `expires_at` string, required
  - `usage` object, required
    - `spent_minor` integer, required
    - `used_runs` integer, required
    - `as_of` string, required
  - `request` object, required
    - `rail_key` string, required
    - `fee_minor` integer, required: Total fee for this action request in USD cents, including all requested runs. It is not multiplied by run_count.
    - `run_count` integer, required
    - `callback_url` string, nullable, required: ASCII HTTPS URL without credentials, control characters, backslashes or fragment. Its normalized origin is compared exactly with allowed_callback_origins. No request is sent.

## Response `200`

Evaluates caller-supplied policy, usage and request values only. No live allowance or balance is read, no destination is contacted, no budget or run is reserved, and no permission or execution authority is granted.

- object
  - `ok` unknown, required
  - `service_id` 'com.weverlabs/agent-budget-guard', required
  - `version` '1.0.0', required
  - `operation` 'evaluate_action', required
  - `execution` 'completed', required
  - `input_sha256` string, required
  - `result_sha256` string, required
  - `result` object, required
    - `contract_version` '1.0.0', required
    - `artifact_state` 'prepared', required
    - `persisted` unknown, required
    - `external_action_performed` unknown, required
    - `operation` 'evaluate_action', required
    - `source` 'caller_supplied_policy_and_usage', required
    - `policy_id` string, required
    - `agent_id` string, required
    - `rail_key` string, required
    - `decision` 'would_allow' | 'would_deny', required
    - `reasons` string[], required
    - `currency` 'USD', required
    - `requested_fee_minor` integer, required
    - `requested_runs` integer, required
    - `remaining_budget_minor` integer, required
    - `projected_remaining_budget_minor` integer, required
    - `remaining_runs` integer, required
    - `projected_remaining_runs` integer, required
    - `callback_origin` string, nullable, required: Canonical HTTPS origin only, with no path, trailing slash, credentials, query or fragment. Matching uses the parsed request URL origin; no destination is contacted.
    - `callback_allowed` boolean, required
    - `as_of` string, required
    - `not_before` string, required
    - `expires_at` string, required
    - `authority_created` unknown, required
    - `permission_granted` unknown, required
    - `reservation_created` unknown, required
    - `balance_verified` unknown, required
    - `usage_verified` unknown, required
  - `provenance` object, required
    - `kind` 'deterministic_computation', required
    - `source` 'Wever Labs', required
    - `signature` 'none', required
    - `scope` 'Evaluates caller-supplied policy, usage and request values only. No live allowance or balance is read, no destination is contacted, no budget or run is reserved, and no permission or execution authority is granted.', required

## Other responses

- `400`: Malformed, unknown, inconsistent or out-of-bounds input rejected before billing
- `402`: x402 v2 payment or verified-wallet shared free allowance required; read PAYMENT-REQUIRED
- `413`: Request or result exceeds limits
- `415`: JSON content type required
- `503`: Payment, chain observation or durable storage dependency unavailable

---

[API](https://skmtc.dev/weverlabs/apis/wever-labs-agent-api.md) · [All operations](https://skmtc.dev/weverlabs/apis/wever-labs-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/weverlabs/apis/wever-labs-agent-api/revisions/e4eed0d1f6e3?raw)
