ToolAssay

Pre-execution decision for a metered search or browse tool call

Pre-execution decision for a metered search or browse tool call. Evaluates the proposal; does not execute the external tool.

Asked 2.0x its listed price for its own exampleour last check, 2026-10-04
1 of 1checks answered this week
649 msmedian answer time
$0.001listed price per call
$0.002price it asked us

Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.

Endpoint

POST https://api.agent-preflight.com/v0.2/preflight/tool-call

CategoryCode and developer
Provider hostapi.agent-preflight.com
Networkseip155:8453
Payment schemesexact
Self-reported calls, 30 days1 from 1 payers (the provider's figure, not ours)

Our checks, last 30 days

DayResultHTTPAskedTime
2026-10-04 valid payment request 402$0.002 649 ms

Example input (from the provider)

{
  "body": {
    "budget": {
      "maxToolCallsRemaining": 4,
      "remainingUsd": 0.08,
      "reservedUsd": 0.02
    },
    "history": [],
    "runId": "settlement-check-01",
    "stepId": "paid-call-01",
    "task": {
      "goalHash": "settlement-verification"
    },
    "tool": {
      "estimatedExternalCostUsd": 0.01,
      "estimatedModelCostUsd": 0.002,
      "operation": "web_search",
      "provider": "search",
      "request": {
        "max_results": 5,
        "query": "Acme Corp Series B funding"
      }
    }
  },
  "bodyType": "json",
  "method": "POST",
  "type": "http"
}

Promised output schema (from the provider)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "body": {
          "additionalProperties": false,
          "description": "Pre-execution tool-call decision input. This endpoint evaluates the proposed tool call and does not execute the external tool.",
          "properties": {
            "budget": {
              "additionalProperties": false,
              "properties": {
                "maxToolCallsRemaining": {
                  "minimum": 0,
                  "type": "integer"
                },
                "remainingUsd": {
                  "minimum": 0,
                  "type": "number"
                },
                "reservedUsd": {
                  "minimum": 0,
                  "type": "number"
                }
              },
              "required": [
                "remainingUsd"
              ],
              "type": "object"
            },
            "capabilities": {
              "additionalProperties": false,
              "properties": {
                "canReduceScope": {
                  "type": "boolean"
                },
                "canReusePriorResult": {
                  "type": "boolean"
                }
              },
              "type": "object"
            },
            "freshnessTtlSeconds": {
              "description": "Explicit positive TTL required for reuse. Omitted or zero disables reuse.",
              "maximum": 1000000000,
              "minimum": 0,
              "type": "number"
            },
            "history": {
              "description": "At most 100 caller-owned prior outcomes; reuse requires explicit permission, positive freshness TTL and matching nonempty goal hashes.",
              "items": {
                "additionalProperties": false,
                "properties": {
                  "ageSeconds": {
                    "minimum": 0,
                    "type": "number"
                  },
                  "fingerprint": {
                    "type": "string"
                  },
                  "goalHash": {
                    "type": "string"
                  },
                  "outcome": {
                    "enum": [
                      "success",
                      "terminal_failure",
                      "transient_failure"
                    ],
                    "type": "string"
                  },
                  "resultReference": {
                    "type": "string"
                  },
                  "toolCallId": {
                    "type": "string"
                  }
                },
                "required": [
                  "toolCallId",
                  "fingerprint",
                  "outcome",
                  "ageSeconds"
                ],
                "type": "object"
              },
              "maxItems": 100,
              "type": "array"
            },
            "preflightPriceUsd": {
              "default": 0.001,
              "description": "Modeled actionable fee only; cannot change the actual HTTP settlement price.",
              "minimum": 0,
              "type": "number"
            },
            "retryCap": {
              "default": 1,
              "minimum": 1,
              "type": "integer"
            },
            "runId": {
              "description": "Caller-scoped run identifier",
              "minLength": 1,
              "type": "string"
            },
            "stepId": {
              "description": "Caller-scoped step identifier within the run",
              "minLength": 1,
              "type": "string"
            },
            "task": {
              "additionalProperties": false,
              "properties": {
                "goalHash": {
                  "description": "Opaque goal correlation token",
                  "type": "string"
                }
              },
              "required": [
                "goalHash"
              ],
              "type": "object"
            },
            "tool": {
              "additionalProperties": false,
              "properties": {
                "estimatedExternalCostUsd": {
                  "description": "Estimated USD cost of the external tool call",
                  "minimum": 0,
                  "type": "number"
                },
                "estimatedModelCostUsd": {
                  "description": "Optional estimated USD model cost for this step",
                  "minimum": 0,
                  "type": "number"
                },
                "operation": {
                  "description": "Tool operation. Supported: search:web_search, browse:fetch",
                  "minLength": 1,
                  "type": "string"
                },
                "provider": {
                  "description": "Tool provider. Supported: search, browse",
                  "minLength": 1,
                  "type": "string"
                },
                "request": {
                  "additionalProperties": true,
                  "description": "Provider-specific payload. search/web_search requires query (string 1..500) and optional max_results (1..10). browse/fetch requires url (http/https).",
                  "properties": {
                    "max_results": {
                      "maximum": 10,
                      "minimum": 1,
                      "type": "integer"
                    },
                    "query": {
                      "maxLength": 500,
                      "minLength": 1,
                      "type": "string"
                    },
                    "url": {
                      "minLength": 1,
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "required": [
                "provider",
                "operation",
                "request",
                "es

This page as JSON