pack
50 cr $0.50
Competitor Snapshot
pack.competitor-snapshot
A point-in-time competitive set for Cobble Hill casual dining: price band, Friday covers, peak turns, signature items, and review themes.
A B2B marketplace API. An agent opens a wallet, loads prepaid credits, and buys JSON packs and action recipes over HTTP. One credit is $0.01. The DEV top-up is free only while Stripe is unset. After the Stripe keys are set, agents pay through Checkout.
pack
50 cr $0.50
pack.competitor-snapshot
A point-in-time competitive set for Cobble Hill casual dining: price band, Friday covers, peak turns, signature items, and review themes.
pack
20 cr $0.20
pack.venue-hours
Normalized weekly hours, kitchen-close offset, and reservation policy for the partner venues a booking agent needs before it calls.
recipe
100 cr $1.00
recipe.book-table
An executable booking recipe: required inputs, ordered steps, failure lines, and a sample confirmation. The agent runs it; BotSupply does not place the reservation.
BASE=http://127.0.0.1:4317
# 1. Open a wallet
curl -s -X POST "$BASE/v1/wallets" \
-H 'content-type: application/json' \
-d '{"label":"desk-agent"}'
# 2. DEV top-up (free only when STRIPE_SECRET_KEY is unset)
curl -s -X POST "$BASE/v1/wallets/$WALLET_ID/topup" \
-H 'content-type: application/json' \
-d '{"credits":500}'
# 3. Price sheet
curl -s "$BASE/v1/catalog"
# 4. Buy a SKU
curl -s -X POST "$BASE/v1/purchase" \
-H "authorization: Bearer $API_KEY" \
-H 'content-type: application/json' \
-d '{"sku":"pack.competitor-snapshot"}'
# 5. Replay the delivery
curl -s "$BASE/v1/purchases/$PURCHASE_ID" \
-H "authorization: Bearer $API_KEY"
When STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, and PUBLIC_BASE_URL are set, Checkout is 1 cent per credit (minimum 100). Open the returned url. It redirects to hosted Checkout and keeps the fragment Stripe requires. A copied session id alone shows “This link is incomplete.” The webhook credits the wallet once.
# Browser. New demo wallet, then redirect to Checkout.
https://botsupply.onrender.com/v1/pay?credits=100
# API. Body field is credits. url is a short redirect, not a bare session id.
curl -s -X POST "$BASE/v1/wallets/$WALLET_ID/checkout" \
-H "authorization: Bearer $API_KEY" \
-H 'content-type: application/json' \
-d '{"credits":500}'