{"openapi":"3.0.3","info":{"title":"Shocker Hitch AI Product API","description":"Public machine-readable product data for ChatGPT Custom GPT Actions, AI search, and commerce agents. Live data from WooCommerce + YMM (same builders as Product Feed CSV/XML). Discovery: https://shockerhitch.com/.well-known/shockerhitch-ai.json","version":"1.0.53"},"externalDocs":{"description":"AI discovery document (.well-known)","url":"https://shockerhitch.com/.well-known/shockerhitch-ai.json"},"servers":[{"url":"https://shockerhitch.com"}],"components":{"schemas":{"BriefProduct":{"type":"object","properties":{"sku":{"type":"string"},"title":{"type":"string"},"price":{"type":"string"},"map_price":{"type":"string"},"url":{"type":"string","format":"uri"},"add_to_cart_url":{"type":"string","format":"uri","description":"Exact URL from product feed export (not rebuilt)."},"image":{"type":"string","format":"uri"},"category":{"type":"string"},"receiver_size":{"type":"string","nullable":true},"stem_size":{"type":"string","nullable":true},"short_description":{"type":"string"},"description":{"type":"string"},"install_pdf":{"type":"string","format":"uri"},"install_video":{"type":"string","format":"uri"},"video_url":{"type":"string","format":"uri"},"made_in_usa":{"type":"boolean"},"return_policy":{"type":"string"},"attributes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"}}}}}}}},"paths":{"/ai/products.json":{"get":{"summary":"Paginated product catalog (live WooCommerce, same rules as CSV feed)","operationId":"getProductsJson","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"description":"Page number (1-based)."},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"description":"Items per page (max 100)."},{"name":"schema","in":"query","required":false,"schema":{"type":"string","enum":["catalog","brief","feed","full"],"default":"catalog"},"description":"catalog (default): CSV/XML export columns and attributes[] (no image/category/stem_size aliases). brief: minimal ChatGPT field set. feed/full: export columns only."}],"responses":{"200":{"description":"products[] uses ChatGPT brief fields by default (see components/schemas/BriefProduct)."}}}},"/ai/product-feed.json":{"get":{"summary":"Product feed JSON alias (same as /ai/products.json)","operationId":"getProductFeedJson","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"description":"Page number (1-based)."},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"description":"Items per page (max 100)."},{"name":"schema","in":"query","required":false,"schema":{"type":"string","enum":["catalog","brief","feed","full"],"default":"catalog"},"description":"catalog (default): CSV/XML export columns and attributes[] (no image/category/stem_size aliases). brief: minimal ChatGPT field set. feed/full: export columns only."}],"responses":{"200":{"description":"products[] uses ChatGPT brief fields by default (see components/schemas/BriefProduct)."}}}},"/ai/products/{sku}.json":{"get":{"summary":"Single product by SKU","operationId":"getProductBySkuJson","parameters":[{"name":"sku","in":"path","required":true,"schema":{"type":"string"},"description":"Product SKU (item_id from feed)."},{"name":"schema","in":"query","required":false,"schema":{"type":"string","enum":["catalog","brief","feed","full"],"default":"catalog"},"description":"catalog (default): CSV/XML export columns and attributes[] (no image/category/stem_size aliases). brief: minimal ChatGPT field set. feed/full: export columns only."}],"responses":{"200":{"description":"product object with feed columns; YMM (symm) SKUs include ymm_applications[] (all fitment rows for that SKU)."},"404":{"description":"Unknown SKU."}}}},"/ai/products/{sku}":{"get":{"summary":"Single product by SKU (no .json suffix)","operationId":"getProductBySku","parameters":[{"name":"sku","in":"path","required":true,"schema":{"type":"string"}},{"name":"schema","in":"query","required":false,"schema":{"type":"string","enum":["catalog","brief","feed","full"],"default":"catalog"},"description":"catalog (default): CSV/XML export columns and attributes[] (no image/category/stem_size aliases). brief: minimal ChatGPT field set. feed/full: export columns only."}],"responses":{"200":{"description":"product object with feed columns; YMM (symm) SKUs include ymm_applications[] (all fitment rows for that SKU)."},"404":{"description":"Unknown SKU."}}}},"/ai/search-products":{"get":{"summary":"Search purchasable product SKUs (variations + simple; no parent-only listings)","operationId":"searchProducts","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"},"description":"Keyword or phrase (e.g. gooseneck, air receiver hitch)."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"description":"Max results (default 20)."},{"name":"schema","in":"query","required":false,"schema":{"type":"string","enum":["catalog","brief","feed","full"],"default":"catalog"},"description":"catalog (default): CSV/XML export columns and attributes[] (no image/category/stem_size aliases). brief: minimal ChatGPT field set. feed/full: export columns only."}],"responses":{"200":{"description":"results[] = purchasable SKUs only (variation/simple). Variable and YMM parent hits expand to child SKUs. Multi-fitment YMM rows include ymm_applications[], primary_ymm_app_id, and fitment_checkout_hint. Use ?schema=brief for minimal fields."},"400":{"description":"Missing q."}}}},"/ai/fitment":{"get":{"summary":"YMM fitment lookup","operationId":"getFitment","parameters":[{"name":"year","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}$"}},{"name":"make","in":"query","required":true,"schema":{"type":"string"}},{"name":"model","in":"query","required":true,"schema":{"type":"string"},"description":"Model (F150 matches F-150; Silverado matches Silverado 1500)."},{"name":"bed","in":"query","required":false,"schema":{"type":"string"},"description":"Optional bed filter (Custom_variant4_option)."},{"name":"options","in":"query","required":false,"schema":{"type":"string"},"description":"Optional options filter (Custom_variant8_option)."},{"name":"schema","in":"query","required":false,"schema":{"type":"string","enum":["catalog","brief","feed","full"],"default":"catalog"},"description":"catalog (default): CSV/XML export columns and attributes[] (no image/category/stem_size aliases). brief: minimal ChatGPT field set. feed/full: export columns only."}],"responses":{"200":{"description":"One product per matching YMM application with Custom_variant1–8 fields (same as YMM CSV feed). Use ?schema=brief for minimal fields."},"400":{"description":"Invalid parameters."}}}},"/ai/categories":{"get":{"summary":"WooCommerce product categories (nested tree by default)","operationId":"getCategories","parameters":[{"name":"simple","in":"query","required":false,"schema":{"type":"string","enum":["0","1","true","false"]},"description":"If 1/true: flat sorted names only. Default: nested tree (name, slug, path, level, children) plus paths[] breadcrumbs."}],"responses":{"200":{"description":"Default: categories[] nested tree (name, slug, path, level, children) + paths[]. ?simple=1: flat sorted names only."}}}},"/ai/categories.json":{"get":{"summary":"Product categories JSON alias","operationId":"getCategoriesJson","parameters":[{"name":"simple","in":"query","required":false,"schema":{"type":"string","enum":["0","1","true","false"]},"description":"If 1/true: flat sorted names only. Default: nested tree (name, slug, path, level, children) plus paths[] breadcrumbs."}],"responses":{"200":{"description":"Same as /ai/categories."}}}},"/ai/product-tags":{"get":{"summary":"WooCommerce product tags (nested tree by default)","operationId":"getProductTags","parameters":[{"name":"simple","in":"query","required":false,"schema":{"type":"string","enum":["0","1","true","false"]},"description":"If 1/true: flat sorted names only. Default: nested tree (name, slug, path, level, children) plus paths[] breadcrumbs."}],"responses":{"200":{"description":"Default: tags[] nested tree + paths[]. ?simple=1: flat sorted tag names only."}}}},"/ai/product-tags.json":{"get":{"summary":"Product tags JSON alias","operationId":"getProductTagsJson","parameters":[{"name":"simple","in":"query","required":false,"schema":{"type":"string","enum":["0","1","true","false"]},"description":"If 1/true: flat sorted names only. Default: nested tree (name, slug, path, level, children) plus paths[] breadcrumbs."}],"responses":{"200":{"description":"Same as /ai/product-tags."}}}},"/ai/openapi.json":{"get":{"summary":"This OpenAPI document","operationId":"getOpenApi","responses":{"200":{"description":"OpenAPI 3 JSON."}}}},"/.well-known/shockerhitch-ai.json":{"get":{"summary":"Discovery document","operationId":"getAiDiscovery","responses":{"200":{"description":"Brand, live JSON API map, and XML content feeds (product Q&A, Google reviews)."}}}}}}