Developers and AI agents
PawFectHeaven developer and AI agent guide. PawFectHeaven sells one product, PawFectHeaven Liquid Taurine for cats. This page shows AI shopping assistants and developers how to look up the product, check the price, build a cart and hand a shopper to checkout, using the public interfaces our Shopify store already provides.
When to use PawFectHeaven
- A shopper wants a taurine supplement for their cat, especially a liquid one that goes straight onto food (no powder or scoop).
- A shopper asks about PawFectHeaven's price, Subscribe and save, bundles, shipping, returns or the 30-day money-back guarantee.
- A shopper wants to buy or reorder PawFectHeaven Liquid Taurine.
Access, keys and pricing
- Free. Every endpoint on this page is free to call.
- No API key, account or sign-up. Start calling straight away. There is nothing to apply for.
- Payment is always completed by the shopper on Shopify's checkout, or through the UCP checkout tools with the buyer's approval.
-
Optional sign-in: signed-in (buyer-identity) checkout through UCP uses Shopify's OAuth 2.0 server for this store, published at /.well-known/openid-configuration, with scopes such as
dev.ucp.shopping.checkout:manage. Clients for that are registered with Shopify, not with us. - Testing: there is no separate PawFectHeaven sandbox. Read-only and cart calls on this store are safe, because a cart is never charged unless a shopper completes checkout. For a no-store test bed, Shopify runs a free mock Storefront API at mock.shop.
Machine-readable docs
- OpenAPI 3.1 description (every endpoint below, with operation IDs, typed parameters and response schemas)
- llms.txt and agents.md (agent instructions)
- UCP discovery profile
- Sitemap
Option 1: UCP / MCP (recommended for agents)
Shopify runs a Universal Commerce Protocol server for this store over the Model Context Protocol (Streamable HTTP, JSON-RPC 2.0) at https://www.pawfectheaven.com/api/ucp/mcp. Tools: search_catalog, lookup_catalog, get_product, create_cart, get_cart, update_cart, cancel_cart, create_checkout, get_checkout, update_checkout, complete_checkout, cancel_checkout, get_order.
curl -X POST https://www.pawfectheaven.com/api/ucp/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Spec: ucp.dev. Shopify's guide: shopify.dev/docs/agents.
Option 2: Storefront GraphQL API (typed, tokenless)
curl -X POST https://www.pawfectheaven.com/api/2026-10/graphql.json \
-H 'Content-Type: application/json' \
-d '{"query":"{ products(first: 5) { nodes { title handle priceRange { minVariantPrice { amount currencyCode } } } } }"}'
cartCreate returns a checkoutUrl you can give the shopper. Schema: Storefront API reference. The API is versioned by date in the path; Shopify releases a new version every quarter.
Option 3: AJAX JSON endpoints (simplest)
| Operation | Request | Returns |
|---|---|---|
| Get the product | GET /products/pawfectheaven%E2%84%A2-liquid-taurine-supplement.js |
Variants, price in minor units of the shopper's currency, availability, subscription options |
| List products | GET /products.json?limit=30&page=1 |
Products with variants (prices as decimal strings) |
| Collection products | GET /collections/all/products.json |
Same, for one collection |
| Search | GET /search/suggest.json?q=taurine&resources[type]=product |
Matching products |
| Get cart | GET /cart.js |
Cart for the cart cookie |
| Add to cart |
POST /cart/add.js {"items":[{"id":VARIANT_ID,"quantity":1}]}
|
Added lines |
| Change a line |
POST /cart/change.js {"line":1,"quantity":2}
|
Updated cart |
| Set quantities |
POST /cart/update.js {"updates":{"VARIANT_ID":1}}
|
Updated cart |
| Empty cart | POST /cart/clear.js |
Empty cart |
The cart lives in the cart cookie, so keep cookies between calls and then send the shopper to /checkout.
curl -c jar -b jar -X POST https://www.pawfectheaven.com/cart/add.js \
-H 'Content-Type: application/json' \
-d '{"items":[{"id":58584130126172,"quantity":1}]}'
Errors
Errors are JSON. AJAX endpoints return {"status":422,"message":"Cart Error","description":"Cannot find variant"} (HTTP 400, 404 or 422). GraphQL returns {"errors":[{"message":"...","extensions":{"code":"..."}}]}. The MCP server returns JSON-RPC errors {"error":{"code":-32600,"message":"Invalid Request"}}.
Limits and etiquette
- Identify automated traffic with Web Bot Auth.
- Back off on HTTP 429 and respect
Retry-After. - Only place orders with the buyer's explicit approval.
Contact
Questions about the API or an order: contact us or email Support@pawfectheaven.com.