Skip to main content

Developers and agents

Everything here is public and needs no account or API key. This page explains which host does what, how to search the catalogue, where current prices live, and how a shopping agent hands a buyer to a supported checkout.

Two hosts

Browsing happens on this host. Carts, checkout and orders happen on the Shopify-run checkout host. Paths from one do not exist on the other.

TaskURLHost
Read a page in English or Dutchhttps://www.saltoftheearthnatural.com/en/...
https://www.saltoftheearthnatural.com/nl/...
Storefront
Read the same page as markdown

Send Accept: text/markdown to the page URL, or fetch its /api/md twin directly.

https://www.saltoftheearthnatural.com/api/md/en/...Storefront
Every current price in one tablehttps://www.saltoftheearthnatural.com/en/pricing
https://www.saltoftheearthnatural.com/nl/pricing
https://www.saltoftheearthnatural.com/pricing.md
Storefront
Search the catalogueGET https://www.saltoftheearthnatural.com/api/search?q=...Storefront
Buy on a customer's behalf (UCP)https://checkout.saltoftheearthnatural.com/.well-known/ucp
POST https://checkout.saltoftheearthnatural.com/api/ucp/mcp
Checkout (Shopify)
Shopify's own product JSON

Exists only on the checkout host. On this host, the product page carries the same facts as Product/Offer JSON-LD and as markdown.

https://checkout.saltoftheearthnatural.com/products/{handle}.jsonCheckout (Shopify)

Prices and availability

Every product page publishes schema.org Product and Offer JSON-LD with the current price, currency and availability for the storefront's default market. The price list shows every product in one table, in GBP on the English storefront and EUR on the Dutch one, and the same table is available as markdown. The delivery country chosen at checkout decides the final currency and total.

curl -sS -H "Accept: text/markdown" "https://www.saltoftheearthnatural.com/en/product/crystal-deodorant-classic"

Buying on a customer's behalf

Do not script the storefront's cart. Shopify runs a Universal Commerce Protocol (UCP) surface for this store on the checkout host:

  • https://checkout.saltoftheearthnatural.com/.well-known/ucp Discovery profile: supported versions, endpoints, capabilities and payment handlers.
  • POST https://checkout.saltoftheearthnatural.com/api/ucp/mcp MCP endpoint (Streamable HTTP, JSON-RPC). Call tools/list first; it lists catalogue search and lookup, product detail, cart, checkout and order tools with their input schemas.
  • Tool calls require an agent profile in meta.ucp-agent.profile. Without one the endpoint answers a structured JSON-RPC error rather than a result.
  • Payment always needs the buyer's explicit, contemporaneous approval. Never complete a checkout without it.
  • Use the identifiers the UCP tools return. A storefront handle or SKU is not a checkout identifier.
curl -sS -X POST "https://checkout.saltoftheearthnatural.com/api/ucp/mcp" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

The full agent instructions, including Shopify's managed document, are at https://www.saltoftheearthnatural.com/agents.md.

Authentication

Reading this host needs no credentials: pages, markdown, the price list, the search API and every discovery file are anonymous.

On the checkout host, UCP discovery and tools/list are anonymous too. Operations that act on a customer's account are governed by Shopify. The checkout host publishes RFC 9728 protected-resource metadata naming its authorization server, and that server's RFC 8414 metadata declares the supported scopes and PKCE methods:

This storefront host is not an authorization server and never issues or accepts tokens. Do not send credentials to it.

Rate limits and fair use

  • There are no API keys, quotas or quota headers on this host. Traffic is protected at the edge and abusive patterns receive 429 or 403 responses.
  • Cache what you fetch: search responses and discovery files carry Cache-Control headers that say how long they stay valid.
  • Identify your agent with a descriptive User-Agent and respect robots.txt.
  • The UCP MCP endpoint is rate limited per IP by Shopify; back off on 429.

Machine-readable files