POST /api/skill/trip-plannerBundled execution of the Multi-stop trip planner workflow — Plan a multi-stop journey deterministically: geocode each stop, sum the pairwise haversine distances, estimate arrival times by adding driving hours per leg, count business days from today to each arrival, and pull the weather forecast at every US stop. Six tools — three pure-CPU (math + time), three egress (geocoding + weather) — covering the deterministic skeleton of every road-trip / sales-tour / delivery-route planning problem. One x402 payment runs 6 underlying tools (geocode, geo-distance, add-time, business-days, time-convert, weather-forecast); partial-success per step.
| Field | Type | Description |
|---|---|---|
stops * | string | comma-separated ordered list of stops (e.g. 'New York NY, Pittsburgh PA, Cleveland OH, Chicago IL') |
startIso * | string | trip start time as UTC ISO 8601 (e.g. '2026-07-20T08:00:00Z') |
{
"pack": "trip-planner",
"args": {
"stops": "New York NY, Pittsburgh PA, Cleveland OH, Chicago IL",
"startIso": "2026-07-20T08:00:00Z"
},
"steps": [
{
"slug": "geocode",
"ok": true,
"result": {}
},
{
"slug": "geo-distance",
"ok": true,
"result": {}
},
{
"slug": "add-time",
"ok": true,
"result": {}
},
{
"slug": "business-days",
"ok": true,
"result": {}
},
{
"slug": "time-convert",
"ok": true,
"result": {}
},
{
"slug": "weather-forecast",
"ok": true,
"result": {}
}
],
"summary": "6/6 steps succeeded"
}
curl -i -X POST https://agent402.tools/api/skill/trip-planner \
-H "Content-Type: application/json" \
-d '{"stops":"New York NY, Pittsburgh PA, Cleveland OH, Chicago IL","startIso":"2026-07-20T08:00:00Z"}'
The response is HTTP 402 Payment Required with exact payment requirements. Any x402 v2 client pays automatically and retries:
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://agent402.tools/api/skill/trip-planner", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"stops": "New York NY, Pittsburgh PA, Cleveland OH, Chicago IL",
"startIso": "2026-07-20T08:00:00Z"
}),
});
This is a pure-CPU tool, so an agent without a wallet can pay with proof-of-work instead of USDC: fetch a challenge, solve the sha256 puzzle (16 leading zero bits — a fraction of a second of CPU, no money, no AI tokens), and resend with the X-Pow-Solution header.
import { createHash } from "node:crypto";
const lz = (b) => { let t = 0; for (const x of b) { if (!x) { t += 8; continue; } t += Math.clz32(x) - 24; break; } return t; };
const c = await (await fetch("https://agent402.tools/api/pow/challenge?slug=skill-trip-planner")).json();
let n = 0;
while (lz(createHash("sha256").update(c.challenge + ":" + n).digest()) < c.difficulty) n++;
await fetch("https://agent402.tools/api/skill/trip-planner", { method: "POST", headers: { "X-Pow-Solution": c.token + ":" + n, "Content-Type": "application/json" }, body: JSON.stringify({"stops":"New York NY, Pittsburgh PA, Cleveland OH, Chicago IL","startIso":"2026-07-20T08:00:00Z"}) });
POST /api/skill/security-auditBundled execution of the Security audit workflow — Enumerate a domain's external attack surface in one workflow: certs, …
POST /api/skill/email-deliverabilityBundled execution of the Email deliverability workflow — Diagnose why a domain's email lands in spam: SPF posture, DMARC…
POST /api/skill/financial-researchBundled execution of the Financial research workflow — Pull SEC filings, real-time quotes, historical prices, and macro …