# info.summary
Read-only, unauthenticated JSON for Prime Cuts Nursery's business facts, cultivar encyclopedia, breeders, guides and live clone inventory.

# info.description
Prime Cuts Nursery is a licensed California cannabis nursery (Sonoma, CA) selling HLVd-tested clones and teens to licensed cultivators.

Every endpoint returns the same facts the HTML pages render — there is one source of truth. Responses are wrapped in `{ api_version, publisher, meta, data }`.

No API key. CORS is open (`Access-Control-Allow-Origin: *`). Only GET and OPTIONS are supported.

Human documentation: https://www.primecutsnursery.com/developers. MCP server for AI agents: https://www.primecutsnursery.com/api/mcp.

# info.license.name
Free for informational and agent use with attribution (see terms)

# paths./.get.description
Lists every endpoint with a one-line description and links to the OpenAPI spec, developer docs, MCP server and llms.txt. Cached at the CDN for 1 hour (`Cache-Control: public, s-maxage=3600`).

# paths./business.get.description
Contact details, address, hours, licence, ordering minimums and tiers, testing policy summary, social links and content counts. Cached at the CDN for 1 hour (`Cache-Control: public, s-maxage=3600`).

# paths./testing.get.description
How mother plants and incoming genetics are tested for HLVd and other pathogens. Cached at the CDN for 1 hour (`Cache-Control: public, s-maxage=3600`).

# paths./locations.get.description
Nursery address and visit policy, statewide delivery terms, and the regional landing pages. Cached at the CDN for 1 hour (`Cache-Control: public, s-maxage=3600`).

# paths./strains.get.description
The full cultivar encyclopedia (331 entries). Each item says whether Prime Cuts sells it (`menu`). Filters combine with AND. Cached at the CDN for 1 hour (`Cache-Control: public, s-maxage=3600`).

# paths./strains.get.parameters[].description
Substring match on name, aliases or lineage (case/punctuation-insensitive)

# paths./strains.get.parameters[].description
true = only strains sold as clones; false = encyclopedia-only

# paths./strains.get.responses.200.description
Matching cultivars (meta.total = matches before paging)

# paths./strains/{slug}.get.description
Full 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. Live data from the nursery's inventory system; cached ~2 minutes (`s-maxage=120`). Times are ISO 8601 UTC.

# paths./breeders.get.description
Every breeder with a hub page, sorted by strains on the menu then by documented cultivars. Cached at the CDN for 1 hour (`Cache-Control: public, s-maxage=3600`).

# paths./breeders/{slug}.get.description
Attributed cultivars, menu strains and collaborators (breeders sharing an attribution). Cached at the CDN for 1 hour (`Cache-Control: public, s-maxage=3600`).

# paths./articles.get.summary
List guides, authority and regional pages

# paths./articles.get.description
Everything published as an article-style page. `kind`: authority (topic hubs), local (regional pages), guide, buying, article. Cached at the CDN for 1 hour (`Cache-Control: public, s-maxage=3600`).

# paths./articles/{slug}.get.description
Full text of an article (intro, sections, FAQ) with business facts already substituted. Cached at the CDN for 1 hour (`Cache-Control: public, s-maxage=3600`).

# paths./articles/{slug}.get.parameters[].description
Article slug (path segment of the HTML page)

# paths./search.get.description
Substring search across the three entity types; up to `limit` of each. Cached at the CDN for 1 hour (`Cache-Control: public, s-maxage=3600`).

# paths./search.get.parameters[].description
Max results per entity type (default 20, max 50)

# paths./inventory.get.description
Rooted 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. Live data from the nursery's inventory system; cached ~2 minutes (`s-maxage=120`). Times are ISO 8601 UTC.

# paths./inventory.get.responses.503.description
Inventory system unreachable — retry after 60 s

# paths./inventory/teens.get.description
Ready-to-flip teens available now and upcoming by ready date. Live data from the nursery's inventory system; cached ~2 minutes (`s-maxage=120`). Times are ISO 8601 UTC.

# paths./inventory/{strain}.get.description
schema.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. Live data from the nursery's inventory system; cached ~2 minutes (`s-maxage=120`). Times are ISO 8601 UTC.

# paths./inventory/{strain}.get.responses.200.content.application/json.schema.properties.data.allOf[].properties.summary.description
Human sentence describing availability, dated

# paths./availability.get.description
One call, one row per menu strain. Use this to answer "what does Prime Cuts have in stock right now?". Live data from the nursery's inventory system; cached ~2 minutes (`s-maxage=120`). Times are ISO 8601 UTC.

# components.schemas.Publisher.properties.@id.description
schema.org Organization @id used across the site's JSON-LD

# components.schemas.Meta.properties.source.description
Where the data came from (repo modules, OrcaScan, Supabase)

# components.schemas.Meta.properties.as_of.description
For live data: when the underlying inventory snapshot was taken

# components.schemas.Meta.properties.notes.description
Caveats an agent should surface to a user

# components.schemas.Business.properties.alternate_name.description
Historic long-form trade name (same entity)

# components.schemas.Business.properties.ordering.description
Minimums, tiers, deposit and delivery terms exactly as published on the site

# components.schemas.Business.properties.testing.description
Pathogen testing policy summary (see /testing)

# components.schemas.Testing.properties.incoming_positive_rate.description
Share of incoming genetics that test positive for HLVd on arrival

# components.schemas.Locations.properties.delivery.properties.clones_free_delivery_from.description
Order size at which clone delivery is free

# components.schemas.MenuLink.properties.api_availability_url.description
Live availability endpoint for this strain

# components.schemas.MenuLink.description
Present only when Prime Cuts sells this cultivar as clones

# components.schemas.Availability.properties.next_batch_ready.oneOf[].description
Ready date of the next scheduled batch when nothing is ready now

# components.schemas.StrainSummary.properties.breeder.description
Breeder as written in the encyclopedia (free text)

# components.schemas.StrainSummary.properties.breeders.description
Resolved breeder hub(s) — a strain may belong to several (collaborations/selections)

# components.schemas.StrainSummary.properties.parents.items.properties.slug.oneOf[].description
Encyclopedia slug when the parent is documented

# components.schemas.StrainDetail.allOf[].properties.notable_crosses.items.properties.slug.oneOf[].description
Encyclopedia slug when we document the cross

# components.schemas.StrainDetail.allOf[].properties.notable_crosses.description
Cultivars bred from this strain, as reported by the breeder/community

# components.schemas.StrainDetail.allOf[].properties.cultivar.oneOf[].description
Structured cultivation traits (present for menu strains and well-documented parents)

# components.schemas.BreederSummary.properties.summary.description
Documented public history of the breeder

# components.schemas.BreederSummary.properties.strain_count.description
Encyclopedia cultivars attributed to this breeder

# components.schemas.BreederSummary.properties.on_menu_count.description
Of those, how many Prime Cuts sells as clones

# components.schemas.BreederDetail.allOf[].properties.strains.items.properties.attribution.description
Free-text breeder field this attribution matched

# components.schemas.ArticleDetail.allOf[].properties.sections.items.properties.content.description
Plain text / light markup, business facts already substituted

# components.schemas.InventoryRow.properties.menu_slug.oneOf[].description
Menu-page slug when this strain is on the public menu

# components.schemas.InventoryRow.properties.quantity.description
Units available (fresh: rooted clones; tall: overgrown clearance)

# components.schemas.Inventory.properties.forecast.properties.strains.items.properties.by_date.description
Cumulative units ready on each forecast date