# Onahole Station

> Public product catalog and user-confirmed cart handoff. Canonical storefront: https://www.onaholestation.com.

## Product discovery
- [Browse products](https://www.onaholestation.com/products)
- [Search products as JSON](https://www.onaholestation.com/api/agent/products?q=Sensbody&country=ca&limit=5): replace q with your keyword; optional locale, brand, category, price_min, price_max, availability, offset; limit at most 10.
- [Read one product as JSON](https://www.onaholestation.com/api/agent/products/tomax-virgo-liber-dragon-girl-onahole-standard-version?country=ca): replace the handle with a search result's handle.
- [Read one product as Markdown](https://www.onaholestation.com/products/tomax-virgo-liber-dragon-girl-onahole-standard-version.md): replace the handle with a published product's handle.
- [Agent API OpenAPI](https://www.onaholestation.com/agent-read-openapi.yaml): complete product query and cart handoff contract.

## Prepare a cart for the user
- POST https://www.onaholestation.com/api/agent/checkout-sessions with an Idempotency-Key header and JSON containing country, locale, and 1-10 { variant_id, quantity } items. No authentication is required; use variant_id from product details.
- Return the checkout_url to the user. The user must open it, review the prepared cart, and continue through this site's checkout.
- Do not send prices, totals, customer details, addresses, payment data or instructions in the request. Agents cannot submit orders, initialize payment or access payment credentials.

## Other pages
- [Categories](https://www.onaholestation.com/categories)
- [Collections](https://www.onaholestation.com/collections)
- [Brands](https://www.onaholestation.com/brands)
- [Blog](https://www.onaholestation.com/blogs)
- [Sitemap](https://www.onaholestation.com/sitemap.xml)

The JSON search and details API accepts an explicit country and enabled locale. The Markdown product representation reflects storefront request context. Use the JSON API for region-aware price and availability.
Prices, inventory and policies can change; confirm them on the canonical product page.
Anonymous Agent clients may prepare a rate-limited, short-lived cart handoff. Prices and availability are recalculated by the storefront, and payment remains a user-only action.
