LICENSED FARM? CALL OR TXT: (707) 841-7663

Developers & AI Agents

Everything on this site — live clone availability, the cultivar encyclopedia, breeders, testing policy, ordering terms — is available as plain JSON. No key, no sign-up, open CORS.

Quick start

Base URL: https://www.primecutsnursery.com/api/v1. All endpoints are GET and return JSON. Try it from a terminal:

# What is in stock right now?
curl -s https://www.primecutsnursery.com/api/v1/availability | jq '.data[] | select(.status=="InStock") | {name, ready_now}'

# Everything about one cultivar (encyclopedia or menu slug both work)
curl -s https://www.primecutsnursery.com/api/v1/strains/wedding-cake | jq '.data | {name, lineage, breeders, menu}'

# Search across strains, breeders and articles
curl -s "https://www.primecutsnursery.com/api/v1/search?q=gelato" | jq '.meta.total'

# Business facts: phone, hours, minimums, licence
curl -s https://www.primecutsnursery.com/api/v1/business | jq '.data | {phone, hours, ordering}'

Or from the browser / Node — CORS is open, so this works from any origin:

const r = await fetch("https://www.primecutsnursery.com/api/v1/inventory/mac-1-cannabis-clones");
const { data, meta } = await r.json();
console.log(data.status, data.ready_now, "as of", meta.as_of);

Response envelope

Every successful response has the same four top-level keys. meta.as_of is present on live inventory data and tells you when the underlying count was taken; meta.html_url is the human page for the same resource, so an agent can always cite a link. Errors are { api_version, error: { code, message, hint? } } with HTTP 400 / 404 / 503.

{
  "api_version": "1.0.0",
  "publisher": { "name": "Prime Cuts Nursery", "url": "https://www.primecutsnursery.com", "@id": "https://www.primecutsnursery.com/#organization" },
  "meta": {
    "generated_at": "2026-09-08T02:24:54.344Z",
    "source": "OrcaScan",
    "as_of": "2026-09-08T02:24:54.340Z",
    "html_url": "https://www.primecutsnursery.com/wedding-cake-cannabis-clones"
  },
  "data": {
    "slug": "wedding-cake-cannabis-clones",
    "name": "Wedding Cake",
    "status": "InStock",
    "schema_org": "https://schema.org/InStock",
    "ready_now": 100,
    "next_batch_ready": null,
    "as_of": "2026-09-08T02:24:54.340Z",
    "summary": "100 Wedding Cake clones ready now (inventory as of Sep 7, 2026)."
  }
}

Endpoints

Full parameter and schema detail is in the OpenAPI document. Path parameters accept either the encyclopedia slug (wedding-cake) or the menu slug (wedding-cake-cannabis-clones) wherever a strain is expected.

Business

PathReturnsQuery parameters
/api/v1API discovery documentLists every endpoint with a one-line description and links to the OpenAPI spec, developer docs, MCP server and llms.txt.
/businessBusiness profileContact details, address, hours, licence, ordering minimums and tiers, testing policy summary, social links and content counts.
/testingPathogen testing programHow mother plants and incoming genetics are tested for HLVd and other pathogens.
/locationsNursery location and delivery areaNursery address and visit policy, statewide delivery terms, and the regional landing pages.

Strains

PathReturnsQuery parameters
/strainsList / filter cultivarsThe full cultivar encyclopedia (331 entries). Each item says whether Prime Cuts sells it (`menu`). Filters combine with AND.q, type, breeder, terpene, on_menu, limit, offset
/strains/{slug}liveCultivar detailFull encyclopedia record. Accepts an encyclopedia slug (`wedding-cake`) or a menu slug (`wedding-cake-cannabis-clones`). When the cultivar is on the menu, `data.menu.availability` is live.

Breeders

PathReturnsQuery parameters
/breedersBreeder registryEvery breeder with a hub page, sorted by strains on the menu then by documented cultivars.
/breeders/{slug}Breeder detailAttributed cultivars, menu strains and collaborators (breeders sharing an attribution).

Articles

PathReturnsQuery parameters
/articlesList guides, authority and regional pagesEverything published as an article-style page. `kind`: authority (topic hubs), local (regional pages), guide, buying, article.kind, q, limit, offset
/articles/{slug}Article textFull text of an article (intro, sections, FAQ) with business facts already substituted.

Search

PathReturnsQuery parameters
/searchSearch strains, breeders and articlesSubstring search across the three entity types; up to `limit` of each.q, limit

Inventory

PathReturnsQuery parameters
/inventoryliveLive clone inventoryRooted clones available now (fresh), talls/clearance, and a 17-day rooting forecast, with menu links. The same numbers as https://www.primecutsnursery.com/live-inventory. Customer/reservation details are never included.
/inventory/teensliveLive teen inventoryReady-to-flip teens available now and upcoming by ready date.
/inventory/{strain}liveLive availability for one menu strainschema.org availability status, units ready now and next scheduled batch for a strain on the clone menu. Accepts a menu or encyclopedia slug. 404 when the strain is not sold.
/availabilityliveLive availability for every menu strainOne call, one row per menu strain. Use this to answer "what does Prime Cuts have in stock right now?".

Freshness, caching and limits

  • Repo-derived data (business, strains, breeders, articles, search) changes when we publish; it is served with Cache-Control: public, s-maxage=3600, stale-while-revalidate=86400. Each record carries updated_at from our publishing history.
  • Live inventory (/inventory*, /availability, /strains/{slug}) is read from the nursery's inventory system on every uncached request and cached for about two minutes (s-maxage=120). Always show users meta.as_of alongside a quantity.
  • Status values are schema.org ItemAvailability terms: InStock (rooted clones ready today), PreOrder (none ready, a batch is scheduled — see next_batch_ready), OutOfStock.
  • No authentication, no rate-limit key. Please poll live endpoints no more often than once a minute; they are CDN-cached, so faster polling only returns the same snapshot.
  • The API is versioned in the path. Additive changes (new fields, new endpoints) ship under /api/v1; anything breaking would be a new version with the old one kept alive.

MCP server for AI agents

The same data is exposed as a Model Context Protocol server at https://www.primecutsnursery.com/api/mcp (Streamable HTTP, no auth). Tools include get_business, search, get_strain, list_strains, get_breeder, get_availability, get_inventory and get_article, each returning the exact JSON the REST endpoint returns. Add it to a client config as:

{
  "mcpServers": {
    "prime-cuts-nursery": { "url": "https://www.primecutsnursery.com/api/mcp" }
  }
}

Setup notes per client and the tool catalogue are in the MCP guide.

For crawlers and answer engines

  • /llms.txt — a curated map of the most useful pages and endpoints, in the llms.txt format.
  • /sitemap.xml — sitemap index with honest per-URL lastmod; /robots.txt welcomes search and AI crawlers.
  • Every HTML page carries JSON-LD (Organization, WebPage, Product with live offers.availability, Brand for breeders, FAQPage, BreadcrumbList) with stable @ids — the same identifiers the API returns as publisher.@id.
  • Canonical facts live in one place: if the API and a page ever disagree, tell us at sales@primecutsnursery.com.

Terms of use

  • The API is provided free for informational, research, comparison and agent use. Attribute "Prime Cuts Nursery" with a link to meta.html_url when you display our data.
  • Inventory figures are informational and change continuously; they are not an offer to sell. Sales are to licensed California cultivators only, subject to the terms on /onboarding.
  • Do not use the API to build a service that misrepresents itself as Prime Cuts Nursery, or to republish the encyclopedia wholesale without attribution.
  • We may change or retire endpoints with notice on this page; /api/v1 will remain stable for additive changes.
  • Questions, bugs, feature requests: sales@primecutsnursery.com.