80trust / 100

Commerce Availability

by Forest Commerce in Weather & location

x402 APIPassing, checked 2 h ago

Resolve public product or listing availability with explicit normalized states. It reports only provider evidence and never infers inventory, reserves items or places an order. Base mainnet USDC

POST https://http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/commerce/availability

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
43 ms typical, 169 ms slowest 5%
Last check
2 h ago
Next check
any minute now

How to call it

# See the payment challenge (nothing is charged)
curl -i -X POST "https://http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/commerce/availability" \
  -H "content-type: application/json" \
  -d '{"url":"https://http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/products/forest-demo-widget","variant":{"Color":"Black"}}'
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client().register(
  "eip155:8453",
  new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fhttp--forest-gas-station-mainnet--lcjl27p8lmjs.code.run%2Fcommerce%2Favailability
const res = await pay("https://http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/commerce/availability", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({"url":"https://http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/products/forest-demo-widget","variant":{"Color":"Black"}}),
});
console.log(await res.json());

Example input

{
  "url": "https://http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/products/forest-demo-widget",
  "variant": {
    "Color": "Black"
  }
}

Example output

{
  "capability": "commerce.availability",
  "data": {
    "available": false,
    "backorder": false,
    "quantity_available": 1,
    "quantity_known": false,
    "requested_variant": {},
    "resolved_variant": {},
    "status": "example"
  },
  "meta": {
    "cache": "miss",
    "checked_at": "2026-01-01T00:00:00.000Z",
    "duration_ms": 0,
    "provider": "shopify-ajax"
  },
  "ok": true,
  "version": "1"
}

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
2 h agoPassed402169 ms$0.002
6 h agoPassed40243 ms$0.002
10 h agoPassed402124 ms$0.002
13 h agoPassed402368 ms$0.002
17 h agoPassed40238 ms$0.002
21 h agoPassed40239 ms$0.002
24 h agoPassed40240 ms$0.002
29 h agoPassed402107 ms$0.002