intents

Trip Skeleton Intent

The bones of a trip in one call: priced flight itineraries and hotel options for the same dates, plus local events when a location is supplied.

GET/api/public/v1/trip-skeleton
price
$0.015
atomic
15000
free tier
3 calls / agent
chain
base mainnet
asset
USDC
scheme
exact

agent brief

Give route and dates, get flights and hotels (and events when location is set).

engine: · results key: results · settlement: USDC / base / exact

use this when you need to

  • -Draft an itinerary before human approval
  • -Travel budget estimation
  • -Compare trip windows

query parameters

nametyperequireddescription
networkbase | base-sepoliano · default "base"Payment network. base-sepolia returns mock data for testing.
departure_idstringyesOrigin airport or city code, e.g. ORD
arrival_idstringyesDestination airport or city code, e.g. LAX
outbound_datedateyesYYYY-MM-DD
return_datedatenoYYYY-MM-DD for round trips. Omit for one-way.
destinationstringnoHotel search destination. Defaults to arrival_id.
check_in_datedatenoHotel check-in. Defaults to outbound_date.
check_out_datedatenoHotel check-out. Defaults to return_date or outbound_date.
locationstringnoWhen set, adds a Google Events step for that location.
currencystringno · default "USD"Currency code

call it — curl

bash
# Free tier — first 3 calls per agent identity, no payment header
curl "https://marketplaceforaiagents.com/api/public/v1/trip-skeleton?departure_id=JFK&arrival_id=LHR&outbound_date=2026-09-15"

# Sandbox — signed testnet USDC, mock response, no real spend
curl "https://marketplaceforaiagents.com/api/public/v1/trip-skeleton?departure_id=JFK&arrival_id=LHR&outbound_date=2026-09-15&network=base-sepolia" \
  -H "X-PAYMENT: <base64 signed base-sepolia USDC authorization>"

# Production — signed x402 payment header, real data
curl "https://marketplaceforaiagents.com/api/public/v1/trip-skeleton?departure_id=JFK&arrival_id=LHR&outbound_date=2026-09-15" \
  -H "X-PAYMENT: <base64 signed USDC authorization>"

call it — typescript + x402-fetch

typescript
import { wrapFetchWithPayment } from "x402-fetch";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount(process.env.AGENT_PRIVATE_KEY as `0x${string}`);
const fetchWithPayment = wrapFetchWithPayment(fetch, account);

const res = await fetchWithPayment(
  "https://marketplaceforaiagents.com/api/public/v1/trip-skeleton?departure_id=JFK&arrival_id=LHR&outbound_date=2026-09-15"
);
const data = await res.json();
console.log(data.results);

response — 200 ok

application/json
{
  "intent": "trip-skeleton",
  "chain": [
    "google-flights",
    "google-hotels",
    "google-events"
  ],
  "steps_run": 3,
  "results": {
    "google-flights": {
      "note": "Normalized response of /api/public/v1/google-flights"
    },
    "google-hotels": {
      "note": "Normalized response of /api/public/v1/google-hotels"
    },
    "google-events": {
      "note": "Normalized response of /api/public/v1/google-events"
    }
  }
}

status codes

200data returned, response includes X-PAYMENT-RESPONSE receipt when paid
400missing or invalid required parameters
402free tier exhausted or invalid X-PAYMENT — body contains accepts[] payment requirements
404unknown endpoint slug
429upstream rate limit — retry with backoff
500upstream or settlement error