{"name":"Proddata API","version":"v1","docs":"/developers","endpoints":[{"method":"GET","path":"/api/v1/products","description":"List and filter product records with spec query params"},{"method":"POST","path":"/api/v1/products/scan","description":"Scan-to-search: match extracted text against the ledger; never creates duplicates"},{"method":"GET","path":"/api/v1/products/{id}","description":"Full record by id, UPI, or flat handle"},{"method":"GET","path":"/api/v1/products/upi/{upi}","description":"Full record by Universal Product ID"},{"method":"GET","path":"/api/v1/products/handle/{handle}","description":"Full record by permanent handle; natural products use {commodity}/{handle}"},{"method":"GET","path":"/api/v1/products/{id}/gallery","description":"Gallery assets, filterable by asset_type and source"},{"method":"GET","path":"/api/v1/products/{id}/parametrics","description":"Physical dimensions, weight, volume, and packaging"},{"method":"GET","path":"/api/v1/products/{id}/bim","description":"BIM extension, construction products only"},{"method":"GET","path":"/api/v1/search","description":"Full-text search with every product filter"},{"method":"GET","path":"/api/v1/commodities/{slug}","description":"Commodity index with its product records"},{"method":"GET","path":"/api/v1/brands","description":"All registered brands"},{"method":"GET","path":"/api/v1/brands/{slug}","description":"Brand profile with its product records"},{"method":"GET","path":"/api/v1/stats","description":"Registry counts: products, brands, trust states, media"}]}