{"openapi":"3.1.0","info":{"title":"Lone Trail Hunting Gear API","version":"1.0.0","x-data-version":"2026-09-19.2","description":"Read-only knowledge API for Lone Trail hunting gear: binocular and rangefinder fit against the LT1/LT2 bino harness and its pouches, harness comparison, reviewed accessory compatibility, chest-rig configuration, gear weight, and live product price and stock from lonetrail.co. No authentication. No customer or order data. Fit results are calculated from published dimensions and are labeled as such; they are not physical tests.","contact":{"name":"Lone Trail","url":"https://lonetrail.co/pages/contact","email":"info@lonetrail.co"},"termsOfService":"https://lonetrail.co/policies/terms-of-service"},"externalDocs":{"description":"Connector documentation","url":"https://lonetrail.co/pages/gear-api"},"servers":[{"url":"https://lt-gear-api.awillen.workers.dev"}],"paths":{"/v1/products":{"get":{"operationId":"search_products","summary":"Search Lone Trail products","description":"Search Lone Trail's published hunting gear (bino harnesses, harness accessories, game bags, the SB1 backpack) with live price and in-stock status from lonetrail.co. Use for 'what does Lone Trail sell', 'in-stock gear under $X', or to find a product handle for get_product. Returns only published products; never exact inventory counts.","tags":["Lone Trail gear"],"responses":{"200":{"description":"Result envelope","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data_version":{"type":"string"},"result":{"type":"object","additionalProperties":true},"evidence":{"type":"array","items":{"type":"object","additionalProperties":true}},"warnings":{"type":"array","items":{"type":"string"}},"links":{"type":"array","items":{"type":"object","properties":{"handle":{"type":"string"},"url":{"type":"string","format":"uri"}}}}}}}}},"400":{"description":"Invalid input, unknown or ambiguous equipment model","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"candidates":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}}},"404":{"description":"Unknown product","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"candidates":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}}},"429":{"description":"Rate limited"}},"parameters":[{"name":"query","in":"query","required":false,"schema":{"type":"string","maxLength":120,"description":"Free text: product name, use, or feature (e.g. 'rangefinder pouch', 'bear spray', 'quiet')"},"description":"Free text: product name, use, or feature (e.g. 'rangefinder pouch', 'bear spray', 'quiet')"},{"name":"category","in":"query","required":false,"schema":{"type":"string","enum":["harness","accessory","game_bags","backpack"],"description":"harness | accessory | game_bags | backpack"},"description":"harness | accessory | game_bags | backpack"},{"name":"max_price","in":"query","required":false,"schema":{"type":"number","minimum":0,"maximum":10000,"description":"Maximum current price in USD"},"description":"Maximum current price in USD"},{"name":"in_stock","in":"query","required":false,"schema":{"type":"boolean","description":"Only products that are in stock right now"},"description":"Only products that are in stock right now"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":25,"description":"Max results (default 10)"},"description":"Max results (default 10)"}]}},"/v1/products/{handle}":{"get":{"operationId":"get_product","summary":"Get one Lone Trail product","description":"Structured facts for one Lone Trail product by handle: what it is, verified weight, dimensions with their meaning (exterior vs compartment vs usable), materials, what is in the box and what is not, where it mounts, care, plus live price, stock and images. Handles: lt1-bino-harness, lt2-bino-harness, universal-rangefinder-pouch, bottom-pouch, bear-spray-holster, binocular-tethers, rangefinder-tether-set, insulated-hand-muff, game-bags, sb1-25l-hunting-backpack.","tags":["Lone Trail gear"],"responses":{"200":{"description":"Result envelope","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data_version":{"type":"string"},"result":{"type":"object","additionalProperties":true},"evidence":{"type":"array","items":{"type":"object","additionalProperties":true}},"warnings":{"type":"array","items":{"type":"string"}},"links":{"type":"array","items":{"type":"object","properties":{"handle":{"type":"string"},"url":{"type":"string","format":"uri"}}}}}}}}},"400":{"description":"Invalid input, unknown or ambiguous equipment model","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"candidates":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}}},"404":{"description":"Unknown product","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"candidates":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}}},"429":{"description":"Rate limited"}},"parameters":[{"name":"handle","in":"path","required":true,"schema":{"type":"string"},"description":"Product handle (the last part of the lonetrail.co/products/... URL)"}]}},"/v1/fit/binoculars":{"post":{"operationId":"check_bino_fit","summary":"Will these binoculars fit a Lone Trail harness?","description":"Check whether a binocular fits the Lone Trail LT1 / LT2 bino harness (one shared 6 x 7.1 x 3 in compartment). Pass brand + model (database of 726 models with published dimensions) or the user's measurements. Result is a calculated fit from published dimensions, labeled calculated_fit / borderline / does_not_fit / unknown, never a physical test. When the model is unknown or ambiguous the tool says so and asks for dimensions instead of guessing.","tags":["Lone Trail gear"],"responses":{"200":{"description":"Result envelope","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data_version":{"type":"string"},"result":{"type":"object","additionalProperties":true},"evidence":{"type":"array","items":{"type":"object","additionalProperties":true}},"warnings":{"type":"array","items":{"type":"string"}},"links":{"type":"array","items":{"type":"object","properties":{"handle":{"type":"string"},"url":{"type":"string","format":"uri"}}}}}}}}},"400":{"description":"Invalid input, unknown or ambiguous equipment model","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"candidates":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}}},"404":{"description":"Unknown product","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"candidates":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}}},"429":{"description":"Rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"brand":{"type":"string","maxLength":60,"description":"Binocular manufacturer, e.g. Swarovski"},"model":{"type":"string","maxLength":120,"description":"Model incl. magnification and objective, e.g. NL Pure 10x42"},"dimensions":{"type":"object","description":"Measured binocular size in inches unless unit given: length (eyepiece to objective), width (across both barrels), depth (thickness).","properties":{"length":{"type":"number","minimum":0.1,"maximum":1000,"description":"length (default inches)"},"width":{"type":"number","minimum":0.1,"maximum":1000,"description":"width (default inches)"},"depth":{"type":"number","minimum":0.1,"maximum":1000,"description":"depth (default inches)"},"unit":{"type":"string","enum":["in","mm","cm"],"description":"Unit of the numbers (default in)"}}}},"description":"Provide at least one of: model, dimensions."}}}}}},"/v1/fit/rangefinders":{"post":{"operationId":"check_rangefinder_fit","summary":"Will this rangefinder fit a Lone Trail pouch?","description":"Check a handheld rangefinder against both Lone Trail pouches: the magnetic-lid pouch that ships on every LT1 / LT2 (3.3 W x 4 H in) and the standalone Universal Rangefinder Pouch (3.25 W x 5 H x 2.5 D in). Strict rule: a rangefinder may not exceed the pouch on any judged dimension. Pass brand + model (database of 147 hunting rangefinders) or measurements. Returns a verdict per pouch and a one-line summary (both / harness pouch only / universal only / neither / unknown). Calculated from published dimensions, not a physical test.","tags":["Lone Trail gear"],"responses":{"200":{"description":"Result envelope","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data_version":{"type":"string"},"result":{"type":"object","additionalProperties":true},"evidence":{"type":"array","items":{"type":"object","additionalProperties":true}},"warnings":{"type":"array","items":{"type":"string"}},"links":{"type":"array","items":{"type":"object","properties":{"handle":{"type":"string"},"url":{"type":"string","format":"uri"}}}}}}}}},"400":{"description":"Invalid input, unknown or ambiguous equipment model","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"candidates":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}}},"404":{"description":"Unknown product","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"candidates":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}}},"429":{"description":"Rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"brand":{"type":"string","maxLength":60,"description":"Rangefinder manufacturer, e.g. Vortex"},"model":{"type":"string","maxLength":120,"description":"Full model name, e.g. Razor HD 4000"},"dimensions":{"type":"object","description":"Measured size in inches unless unit given; any order, the tool sorts longest / next / thinnest.","properties":{"height":{"type":"number","minimum":0.1,"maximum":1000,"description":"height (default inches)"},"width":{"type":"number","minimum":0.1,"maximum":1000,"description":"width (default inches)"},"depth":{"type":"number","minimum":0.1,"maximum":1000,"description":"depth (default inches)"},"unit":{"type":"string","enum":["in","mm","cm"],"description":"Unit of the numbers (default in)"}}}},"description":"Provide at least one of: model, dimensions."}}}}}},"/v1/harnesses/compare":{"post":{"operationId":"compare_harnesses","summary":"Compare the LT1 and LT2","description":"Side-by-side LT1 vs LT2: fabric, weight, what ships in the box, storage, magnets, live price and stock, and (optionally) fit for a stated binocular. Both share one binocular compartment, so the comparison is about fabric, storage and price, not fit. Use for 'LT1 or LT2?', 'what's the difference'.","tags":["Lone Trail gear"],"responses":{"200":{"description":"Result envelope","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data_version":{"type":"string"},"result":{"type":"object","additionalProperties":true},"evidence":{"type":"array","items":{"type":"object","additionalProperties":true}},"warnings":{"type":"array","items":{"type":"string"}},"links":{"type":"array","items":{"type":"object","properties":{"handle":{"type":"string"},"url":{"type":"string","format":"uri"}}}}}}}}},"400":{"description":"Invalid input, unknown or ambiguous equipment model","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"candidates":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}}},"404":{"description":"Unknown product","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"candidates":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}}},"429":{"description":"Rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"binocular":{"type":"object","description":"A named binocular (brand + model) or its measurements. Give the model when you know it; give dimensions when the binocular is not in the database or the user measured it. Provide at least one of: model, dimensions.","properties":{"brand":{"type":"string","maxLength":60,"description":"binocular manufacturer, e.g. Vortex"},"model":{"type":"string","maxLength":120,"description":"Model name including magnification and objective, e.g. Viper HD 10x42"},"dimensions":{"type":"object","description":"Measured binocular size: length (eyepiece to objective), width (across both barrels, hinge open to the user's setting), depth (thickness).","properties":{"length":{"type":"number","minimum":0.1,"maximum":1000,"description":"length (default inches)"},"width":{"type":"number","minimum":0.1,"maximum":1000,"description":"width (default inches)"},"depth":{"type":"number","minimum":0.1,"maximum":1000,"description":"depth (default inches)"},"unit":{"type":"string","enum":["in","mm","cm"],"description":"Unit of the numbers (default in)"}}}}},"priority":{"type":"string","enum":["lightest","lowest_price","quiet_fabric","more_storage","balanced"],"description":"What the user cares about most"}}}}}}}},"/v1/products/{handle}/accessories":{"get":{"operationId":"get_compatible_accessories","summary":"What attaches to this Lone Trail product?","description":"Reviewed accessory relationships for a Lone Trail base product (LT1, LT2, SB1 or an accessory): which Lone Trail products attach, where they mount (side_left, side_right, bottom, tether_anchor, belt), constraints such as 'the bottom webbing takes one hanging accessory at a time', plus live price and stock. Only explicit reviewed relationships are returned; anything not reviewed is reported as unknown rather than inferred from matching MOLLE.","tags":["Lone Trail gear"],"responses":{"200":{"description":"Result envelope","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data_version":{"type":"string"},"result":{"type":"object","additionalProperties":true},"evidence":{"type":"array","items":{"type":"object","additionalProperties":true}},"warnings":{"type":"array","items":{"type":"string"}},"links":{"type":"array","items":{"type":"object","properties":{"handle":{"type":"string"},"url":{"type":"string","format":"uri"}}}}}}}}},"400":{"description":"Invalid input, unknown or ambiguous equipment model","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"candidates":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}}},"404":{"description":"Unknown product","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"candidates":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}}},"429":{"description":"Rate limited"}},"parameters":[{"name":"handle","in":"path","required":true,"schema":{"type":"string"},"description":"Base product handle, e.g. lt1-bino-harness"},{"name":"placement","in":"query","required":false,"schema":{"type":"string","enum":["side_left","side_right","bottom","tether_anchor","belt","any"],"description":"Filter to accessories that can mount here"},"description":"Filter to accessories that can mount here"}]}},"/v1/configure/chest-rig":{"post":{"operationId":"build_chest_rig","summary":"Build a Lone Trail chest rig","description":"Assemble a compatible Lone Trail chest rig for the user's binoculars and needs: picks the harness (fit is a hard constraint), decides whether the included rangefinder pouch takes their rangefinder or the Universal Rangefinder Pouch is needed, adds only reviewed-compatible accessories with a placement each (bear spray, extra storage, cold-weather hand muff, tethers), and returns known combined weight, live subtotal and stock. Never includes an accessory whose compatibility is unreviewed; never claims a total weight if a component weight is missing.","tags":["Lone Trail gear"],"responses":{"200":{"description":"Result envelope","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data_version":{"type":"string"},"result":{"type":"object","additionalProperties":true},"evidence":{"type":"array","items":{"type":"object","additionalProperties":true}},"warnings":{"type":"array","items":{"type":"string"}},"links":{"type":"array","items":{"type":"object","properties":{"handle":{"type":"string"},"url":{"type":"string","format":"uri"}}}}}}}}},"400":{"description":"Invalid input, unknown or ambiguous equipment model","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"candidates":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}}},"404":{"description":"Unknown product","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"candidates":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}}},"429":{"description":"Rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["binocular"],"properties":{"binocular":{"type":"object","description":"A named binocular (brand + model) or its measurements. Give the model when you know it; give dimensions when the binocular is not in the database or the user measured it. Provide at least one of: model, dimensions.","properties":{"brand":{"type":"string","maxLength":60,"description":"binocular manufacturer, e.g. Vortex"},"model":{"type":"string","maxLength":120,"description":"Model name including magnification and objective, e.g. Viper HD 10x42"},"dimensions":{"type":"object","description":"Measured binocular size: length (eyepiece to objective), width (across both barrels, hinge open to the user's setting), depth (thickness).","properties":{"length":{"type":"number","minimum":0.1,"maximum":1000,"description":"length (default inches)"},"width":{"type":"number","minimum":0.1,"maximum":1000,"description":"width (default inches)"},"depth":{"type":"number","minimum":0.1,"maximum":1000,"description":"depth (default inches)"},"unit":{"type":"string","enum":["in","mm","cm"],"description":"Unit of the numbers (default in)"}}}}},"rangefinder":{"type":"object","description":"A named rangefinder (brand + model) or its measurements. Give the model when you know it; give dimensions when the rangefinder is not in the database or the user measured it. Provide at least one of: model, dimensions.","properties":{"brand":{"type":"string","maxLength":60,"description":"rangefinder manufacturer, e.g. Vortex"},"model":{"type":"string","maxLength":120,"description":"Model name, e.g. Razor HD 4000"},"dimensions":{"type":"object","description":"Measured rangefinder size: height = longest axis, width = next largest, depth = thinnest.","properties":{"height":{"type":"number","minimum":0.1,"maximum":1000,"description":"height (default inches)"},"width":{"type":"number","minimum":0.1,"maximum":1000,"description":"width (default inches)"},"depth":{"type":"number","minimum":0.1,"maximum":1000,"description":"depth (default inches)"},"unit":{"type":"string","enum":["in","mm","cm"],"description":"Unit of the numbers (default in)"}}}}},"priority":{"type":"string","enum":["lightest","lowest_price","quiet_fabric","more_storage","balanced"],"description":"Harness choice driver"},"needs_bear_spray":{"type":"boolean","description":"Include the Bear Spray Holster"},"extra_storage":{"type":"boolean","description":"Include the Bottom Pouch"},"cold_weather":{"type":"boolean","description":"Include the Insulated Hand Muff"},"tethers":{"type":"boolean","description":"Include Binocular Tethers (and a Rangefinder Tether Set when a rangefinder is given)"},"budget":{"type":"number","minimum":0,"maximum":10000,"description":"Maximum subtotal in USD"},"max_weight_oz":{"type":"number","minimum":1,"maximum":500,"description":"Maximum combined gear weight in ounces"}}}}}}}},"/v1/weight":{"post":{"operationId":"calculate_gear_weight","summary":"Weigh a Lone Trail loadout","description":"Total known weight (ounces and pounds) for a list of Lone Trail products with quantities, using verified product weights only. Returns per-line weights, whether the total is complete, and which items had no weight on file.","tags":["Lone Trail gear"],"responses":{"200":{"description":"Result envelope","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data_version":{"type":"string"},"result":{"type":"object","additionalProperties":true},"evidence":{"type":"array","items":{"type":"object","additionalProperties":true}},"warnings":{"type":"array","items":{"type":"string"}},"links":{"type":"array","items":{"type":"object","properties":{"handle":{"type":"string"},"url":{"type":"string","format":"uri"}}}}}}}}},"400":{"description":"Invalid input, unknown or ambiguous equipment model","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"candidates":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}}},"404":{"description":"Unknown product","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"candidates":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}}},"429":{"description":"Rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","minItems":1,"maxItems":25,"items":{"type":"object","required":["handle"],"properties":{"handle":{"type":"string","maxLength":80},"quantity":{"type":"integer","minimum":1,"maximum":50}}}}}}}}}}}},"components":{"schemas":{"Envelope":{"type":"object","properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data_version":{"type":"string"},"result":{"type":"object","additionalProperties":true},"evidence":{"type":"array","items":{"type":"object","additionalProperties":true}},"warnings":{"type":"array","items":{"type":"string"}},"links":{"type":"array","items":{"type":"object","properties":{"handle":{"type":"string"},"url":{"type":"string","format":"uri"}}}}}},"Error":{"type":"object","properties":{"request_id":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"candidates":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}}}