Developers & agents
Public API
Oh My Sod exposes public JSON endpoints for discovery, nursery browsing, and lead submission. There is no OAuth for these APIs — see auth.md.
Machine-readable discovery
/.well-known/api-catalog— RFC 9727 linkset/openapi.json— OpenAPI 3.1/api/health— liveness / version/.well-known/agent-skills/index.json/.well-known/mcp/server-card.json/.well-known/mcp.json— same card (alias)/.well-known/mcp/server-cards.json— single-card index
Useful GET endpoints
GET /api/nursery-inventory— public plant/tree list (no wholesale pricing)GET /api/big-box-sod-prices— big-box sod price comparisonGET /api/maps-public-config— browser Maps / Turnstile public keysGET /api/sod-stack-leaderboard— game leaderboardGET /api/calendar/new-sod.ics— new-sod care calendar
Lead POST endpoints
/api/contact, /api/sod-order, /api/tree-order,
/api/install-estimate, /api/stump-estimate, and
/api/hub-question accept JSON leads. When Turnstile is configured, include a
valid captcha token. Prefer the HTML forms on
/estimate-request, /sod-order,
/order-trees, and /stump-estimate
for humans.
Not for public agents
/api/admin/* is operator-only (shared bearer token). Robots are asked not to
crawl /api/ or /admin/ in robots.txt.