{"openapi":"3.1.0","info":{"title":"Jolt Rents public pricing & availability API","version":"1.0.0","summary":"Read-only prices, quotes and live availability for JOLT jobsite containers, offices, fence and equipment.","description":"Every number this API returns is the number printed on https://joltrents.com/pricing and charged by the reservation flow: the three endpoints read the one catalog the site reads and price through the same quote function the Configurator uses.\n\nRules of the road:\n- Service area: the Colorado mountains and Front Range (Zones A–E) and the Mountain West — Wyoming, Idaho, Utah and Montana (Zone F — Mountain West). JOLT does not deliver outside these states.\n- Standard delivery window: 2–4 weeks from reservation. JOLT Express ($750) puts a Base unit on site within 7 business days.\n- The reservation deposit is charged at checkout and applied to the first invoice; it is not an extra fee.\n- Delivery and pickup are each-way fees by zone in Zones A–E. Zone F — Mountain West delivery is $1,795 one way with pickup quoted in writing, and any unit placed out of state carries a 12-month minimum.\n- Cancellation is free by written notice more than 14 days before the delivery window opens.\n- All prices are plus applicable sales tax. Rent steps up 5% on each anniversary of delivery (Rental Agreement §3.4). All prices plus applicable sales tax.\n- Quote a price with its as-of date and link the source page.\n\nNo key. GET only. 120 requests per minute per IP. Any origin may call it from a browser (CORS `*`, no credentials). Data is licensed CC BY 4.0 — credit \"JOLT Price Book, Jolt Rents\" and link the source page.","termsOfService":"https://joltrents.com/legal/terms-of-service","contact":{"name":"Jolt Rents","url":"https://joltrents.com/developers","email":"reserve@joltrents.com"},"license":{"name":"CC BY 4.0","identifier":"CC-BY-4.0"}},"servers":[{"url":"https://joltrents.com/api/public/v1","description":"Production"}],"tags":[{"name":"Catalog","description":"Every published price."},{"name":"Quote","description":"One unit, one ZIP, priced like the reservation flow."},{"name":"Availability","description":"Live counts from the yard's unit ledger."}],"paths":{"/":{"get":{"operationId":"getIndex","summary":"Endpoint index","tags":["Catalog"],"responses":{"200":{"description":"The endpoints, rate limit and licence.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/catalog":{"get":{"operationId":"getCatalog","summary":"Every published price","description":"Units, upgrades, one-time fees, deposits, the four purchase builds, the six lease-to-own plans and the six delivery zones, with the terms behind them. Cached 300 s; send `If-None-Match` with the ETag to get a 304 while prices are unchanged.","tags":["Catalog"],"parameters":[{"name":"If-None-Match","in":"header","required":false,"schema":{"type":"string"},"description":"ETag from a previous response."}],"responses":{"200":{"description":"The catalog.","headers":{"ETag":{"schema":{"type":"string"},"description":"Changes only when a price revision publishes."},"Cache-Control":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Catalog"}}}},"304":{"description":"Not modified."},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Switched off or unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/quote":{"get":{"operationId":"getQuote","summary":"Price one unit at one ZIP","description":"Monthly rent with upgrades and the two percentage fees, delivery and pickup for the ZIP's zone, the reservation deposit, the first invoice and the term total, plus the delivery window and a Reserve deep link. Nothing is held: the link opens the reservation flow with this configuration.","tags":["Quote"],"parameters":[{"name":"sku","in":"query","required":true,"schema":{"type":"string","enum":["st20","st40","st12","st10","of20_base","of20_gridfree","of20_alpine","of40_bath","fence","light_tower","ground_heater","traffic_basic","traffic_standard","traffic_full","handwash"]},"description":"Catalog key from /catalog units[].key.","example":"of20_gridfree"},{"name":"zip","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{5}(-\\d{4})?$"},"description":"5-digit ZIP of the job site.","example":"81657"},{"name":"months","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":60},"description":"Term in months for the projection (termTotalCents, minTermEnd). Held up to the unit's minimum (and Zone F's 12) when shorter. Not carried into the reservation, which bills month to month after the minimum.","example":6},{"name":"upgrades","in":"query","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["watch","connect","power","ready","jolt_pack","second_camera","unlimited_starlink"]}},"description":"Comma-separated upgrade keys from /catalog upgrades[].key.","example":["watch","power"]},{"name":"brand","in":"query","required":false,"schema":{"type":"string","enum":["1","0","true","false"]},"description":"Add BRAND logo panels (one-time fee)."},{"name":"express","in":"query","required":false,"schema":{"type":"string","enum":["1","0","true","false"]},"description":"JOLT Express — Base units only, 7 business days."},{"name":"protection","in":"query","required":false,"schema":{"type":"string","enum":["waiver","deposit"],"default":"waiver"},"description":"Damage waiver (12% of rent + upgrades) or the refundable deposit + COI alternative."},{"name":"quantity","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":10},"description":"Units or traffic packages. Ignored for fence."},{"name":"linearFeet","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":5000},"description":"Fence only: run length in linear feet."},{"name":"start","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}(-\\d{2})?$"},"description":"Requested start month (YYYY-MM) or date. The quote assumes the first delivery day the reservation flow offers on or after it (weekdays 2–4 weeks out; the next 7 business days with Express) and says so in delivery.schedulable when the day is beyond what can be booked today.","example":"2026-11"},{"name":"source","in":"query","required":false,"schema":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,31}$"},"description":"Your product's slug — becomes utm_source on the Reserve link so the referral is credited."}],"responses":{"200":{"description":"The quote.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Quote"}}}},"400":{"description":"Bad parameter (invalid_request, unknown_sku, unknown_upgrade, invalid_zip).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"ZIP outside the published zones (outside_service_area) or an order the catalog refuses (unquotable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Switched off or unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/availability":{"get":{"operationId":"getAvailability","summary":"Live availability","description":"Units available now per SKU, the next delivery window each can make, and the first day a sold-out unit frees up. Cached 30 s.","tags":["Availability"],"responses":{"200":{"description":"The snapshot.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Availability"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Switched off or unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Catalog":{"type":"object","properties":{"apiVersion":{"type":"string","const":"v1"},"asOf":{"type":"string","format":"date","description":"Date of the price revision every figure reflects."},"revision":{"type":"string","description":"Decision number of the revision (matches the Price Book)."},"currency":{"type":"string","const":"USD"},"publisher":{"type":"object","properties":{"name":{"type":"string"},"legalName":{"type":"string"},"lessorOfRecord":{"type":"string"},"url":{"type":"string","format":"uri","description":"Site."},"phone":{"type":"string"},"email":{"type":"string"},"hours":{"type":"string"}},"required":["name","legalName","lessorOfRecord","url","phone","email","hours"],"additionalProperties":false},"license":{"type":"object","properties":{"name":{"type":"string"},"short":{"type":"string","const":"CC BY 4.0"},"spdx":{"type":"string","const":"CC-BY-4.0"},"url":{"type":"string","format":"uri","description":"Licence text."},"attribution":{"type":"string","description":"The credit line to print or link when a figure is republished."}},"required":["name","short","spdx","url","attribution"],"additionalProperties":false},"notes":{"type":"array","items":{"type":"string"},"description":"Business facts an assistant must carry into any answer."},"terms":{"type":"object","properties":{"standardWindowWeeks":{"type":"array","items":{"type":"integer"},"minItems":2,"maxItems":2},"expressBusinessDays":{"type":"integer"},"expressFeeCents":{"type":"integer","minimum":0,"description":"JOLT Express fee. In US cents (divide by 100 for dollars)."},"freeCancellationDays":{"type":"integer"},"annualEscalatorRate":{"type":"number"},"minTermMonths":{"type":"object","properties":{"office":{"type":"integer"},"storage":{"type":"integer"},"fence":{"type":"integer"},"equipment":{"type":"integer"}},"required":["office","storage","fence","equipment"],"additionalProperties":false},"zoneFMinTermMonths":{"type":"integer"},"salesTax":{"type":"string"},"damageWaiverRate":{"type":"number"},"damageWaiverAlternative":{"type":"string"},"environmentalFeeRate":{"type":"number"},"purchaseDelivery":{"type":"string"},"purchaseWarrantyMonths":{"type":"integer"}},"required":["standardWindowWeeks","expressBusinessDays","expressFeeCents","freeCancellationDays","annualEscalatorRate","minTermMonths","zoneFMinTermMonths","salesTax","damageWaiverRate","damageWaiverAlternative","environmentalFeeRate","purchaseDelivery","purchaseWarrantyMonths"],"additionalProperties":false},"units":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","enum":["st20","st40","st12","st10","of20_base","of20_gridfree","of20_alpine","of40_bath","fence","light_tower","ground_heater","traffic_basic","traffic_standard","traffic_full","handwash"],"description":"Catalog key — the `sku` parameter of /quote."},"code":{"type":"string","description":"Unit-number prefix (JLT-20OF …)."},"family":{"type":"string"},"familyName":{"type":"string"},"name":{"type":"string"},"shortName":{"type":"string"},"tier":{"oneOf":[{"type":"string"},{"type":"null"}]},"category":{"type":"string","enum":["office","storage","fence","equipment"]},"url":{"type":"string","format":"uri","description":"The page that sells it — the source to cite."},"monthlyCents":{"type":"integer","minimum":0,"description":"Monthly rent (per linear foot per month for fence). In US cents (divide by 100 for dollars)."},"monthly":{"type":"string","description":"Rent as printed on the site."},"billingUnit":{"type":"string","enum":["month","lf-month"]},"minTermMonths":{"type":"integer"},"reservationDepositCents":{"type":"integer","minimum":0,"description":"Deposit charged at checkout and applied to the first invoice. In US cents (divide by 100 for dollars)."},"expressEligible":{"type":"boolean","description":"JOLT Express (7 business days) is offered on Base units only."},"standardWindowWeeks":{"type":"array","items":{"type":"integer"},"minItems":2,"maxItems":2},"includedUpgrades":{"type":"array","items":{"type":"string"}},"allowedUpgrades":{"type":"array","items":{"type":"string"}},"reservable":{"type":"boolean","description":"False for units that quote by lead rather than online reservation."},"includes":{"type":"array","items":{"type":"string"}},"whoItsFor":{"oneOf":[{"type":"string"},{"type":"null"}]},"priceNote":{"oneOf":[{"type":"string"},{"type":"null"}]},"popular":{"type":"boolean"}},"required":["key","code","family","familyName","name","shortName","tier","category","url","monthlyCents","monthly","billingUnit","minTermMonths","reservationDepositCents","expressEligible","standardWindowWeeks","includedUpgrades","allowedUpgrades","reservable","includes","whoItsFor","priceNote","popular"],"additionalProperties":false}},"upgrades":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","enum":["watch","connect","power","ready","jolt_pack","second_camera","unlimited_starlink"],"description":"The `upgrades` parameter of /quote."},"name":{"type":"string"},"displayName":{"type":"string"},"tagline":{"type":"string"},"description":{"type":"string"},"monthlyCents":{"type":"integer","minimum":0,"description":"Monthly price. In US cents (divide by 100 for dollars)."},"monthly":{"type":"string"},"addOn":{"type":"boolean","description":"Add-ons need a parent upgrade (see requires)."},"requires":{"type":"array","items":{"type":"string"}},"replaces":{"type":"array","items":{"type":"string"}},"url":{"type":"string","format":"uri","description":"Source page."}},"required":["key","name","displayName","tagline","description","monthlyCents","monthly","addOn","requires","replaces","url"],"additionalProperties":false}},"oneTimeFees":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"cents":{"type":"integer","minimum":0,"description":"Fee. In US cents (divide by 100 for dollars)."},"when":{"type":"string"},"url":{"oneOf":[{"type":"string","format":"uri","description":"Source page."},{"type":"null"}]}},"required":["key","name","description","cents","when","url"],"additionalProperties":false}},"reservationDeposits":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"cents":{"type":"integer","minimum":0,"description":"Deposit. In US cents (divide by 100 for dollars)."}},"required":["label","cents"],"additionalProperties":false}},"purchases":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"sku":{"type":"string","description":"The rental build the purchase corresponds to."},"name":{"type":"string"},"tier":{"oneOf":[{"type":"string"},{"type":"null"}]},"priceCents":{"type":"integer","minimum":0,"description":"Purchase price, delivered within Zones A–B, before sales tax. In US cents (divide by 100 for dollars)."},"price":{"type":"string"},"currency":{"type":"string","const":"USD"},"url":{"type":"string","format":"uri","description":"Source page."},"delivery":{"type":"string"},"leadTimeWeeks":{"type":"array","items":{"type":"integer"},"minItems":2,"maxItems":2},"warrantyMonths":{"type":"integer"},"popular":{"type":"boolean"}},"required":["key","sku","name","tier","priceCents","price","currency","url","delivery","leadTimeWeeks","warrantyMonths","popular"],"additionalProperties":false}},"leaseToOwn":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"sku":{"type":"string"},"purchase":{"type":"string","description":"The purchase item the plan is the financed alternative to."},"tier":{"type":"string"},"months":{"type":"integer"},"monthlyCents":{"type":"integer","minimum":0,"description":"Monthly payment. In US cents (divide by 100 for dollars)."},"monthly":{"type":"string"},"totalCents":{"type":"integer","minimum":0,"description":"months × monthly. In US cents (divide by 100 for dollars)."},"total":{"type":"string"},"purchasePriceCents":{"type":"integer","minimum":0,"description":"Outright price of the same build. In US cents (divide by 100 for dollars)."},"url":{"type":"string","format":"uri","description":"Source page."},"popular":{"type":"boolean"}},"required":["key","sku","purchase","tier","months","monthlyCents","monthly","totalCents","total","purchasePriceCents","url","popular"],"additionalProperties":false}},"zones":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","enum":["A","B","C","D","E","F"]},"label":{"type":"string"},"deliveryFeeCents":{"type":"integer","minimum":0,"description":"One leg from the yard at Gypsum. In US cents (divide by 100 for dollars)."},"pickupFeeCents":{"oneOf":[{"type":"integer","minimum":0,"description":"Return leg; null when pickup is quoted per job (Zone F). In US cents (divide by 100 for dollars)."},{"type":"null"}]},"pickupNote":{"oneOf":[{"type":"string"},{"type":"null"}]},"minTermMonths":{"oneOf":[{"type":"integer","description":"Minimum the zone imposes on every unit (Zone F: 12)."},{"type":"null"}]},"url":{"type":"string","format":"uri","description":"Source page."}},"required":["code","label","deliveryFeeCents","pickupFeeCents","pickupNote","minTermMonths","url"],"additionalProperties":false}},"links":{"type":"object","properties":{"developers":{"type":"string","format":"uri","description":"Developer page (rate limits, attribution, examples)."},"openapiJson":{"type":"string","format":"uri","description":"This document as JSON."},"openapiYaml":{"type":"string","format":"uri","description":"This document as YAML."},"catalog":{"type":"string","format":"uri","description":"GET /catalog."},"quote":{"type":"string","format":"uri","description":"GET /quote."},"availability":{"type":"string","format":"uri","description":"GET /availability."},"mcp":{"type":"string","format":"uri","description":"Model Context Protocol endpoint (streamable HTTP)."},"pricing":{"type":"string","format":"uri","description":"The human pricing page."},"priceBook":{"type":"string","format":"uri","description":"The dated, CC BY 4.0 dataset of every price."},"priceBookJson":{"type":"string","format":"uri","description":"Price Book, JSON."},"priceBookCsv":{"type":"string","format":"uri","description":"Price Book, CSV."},"reserve":{"type":"string","format":"uri","description":"The reservation flow."},"llms":{"type":"string","format":"uri","description":"llms.txt — the short index for language models."},"llmsFull":{"type":"string","format":"uri","description":"llms-full.txt — the full text of every public page, with URLs and last-updated dates."},"feeds":{"type":"object","properties":{"googleMerchant":{"type":"string","format":"uri","description":"Google Merchant Center TSV — the four purchase builds."},"openaiProducts":{"type":"string","format":"uri","description":"OpenAI product feed (search only) — the four purchase builds."},"acpProducts":{"type":"string","format":"uri","description":"Agentic Commerce Protocol product feed — the four purchase builds."}},"required":["googleMerchant","openaiProducts","acpProducts"],"additionalProperties":false}},"required":["developers","openapiJson","openapiYaml","catalog","quote","availability","mcp","pricing","priceBook","priceBookJson","priceBookCsv","reserve","llms","llmsFull","feeds"],"additionalProperties":false}},"required":["apiVersion","asOf","revision","currency","publisher","license","notes","terms","units","upgrades","oneTimeFees","reservationDeposits","purchases","leaseToOwn","zones","links"],"additionalProperties":false},"Quote":{"type":"object","properties":{"apiVersion":{"type":"string","const":"v1"},"asOf":{"type":"string","format":"date","description":"Price revision the quote reflects."},"quotedOn":{"type":"string","format":"date","description":"Yard date (America/Denver) the quote was computed."},"currency":{"type":"string","const":"USD"},"input":{"type":"object","properties":{"sku":{"type":"string"},"zip":{"type":"string"},"termMonths":{"oneOf":[{"type":"integer"},{"type":"null"}]},"upgrades":{"type":"array","items":{"type":"string"}},"brand":{"type":"boolean"},"express":{"type":"boolean"},"protection":{"type":"string","enum":["waiver","deposit"]},"quantity":{"type":"integer"},"linearFeet":{"oneOf":[{"type":"integer"},{"type":"null"}]},"start":{"oneOf":[{"type":"string","format":"date","description":"Requested start (first of the month when a month was given)."},{"type":"null"}]}},"required":["sku","zip","termMonths","upgrades","brand","express","protection","quantity","linearFeet","start"],"additionalProperties":false},"unit":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"tier":{"oneOf":[{"type":"string"},{"type":"null"}]},"category":{"type":"string"},"billingUnit":{"type":"string","enum":["month","lf-month"]},"url":{"type":"string","format":"uri","description":"Source page."}},"required":["key","name","tier","category","billingUnit","url"],"additionalProperties":false},"zone":{"type":"object","properties":{"code":{"type":"string","enum":["A","B","C","D","E","F"]},"label":{"type":"string"},"town":{"oneOf":[{"type":"string"},{"type":"null"}]},"state":{"oneOf":[{"type":"string"},{"type":"null"}]},"deliveryFeeCents":{"type":"integer","minimum":0,"description":"Delivery leg. In US cents (divide by 100 for dollars)."},"pickupFeeCents":{"oneOf":[{"type":"integer","minimum":0,"description":"Pickup leg; null when quoted per job. In US cents (divide by 100 for dollars)."},{"type":"null"}]},"pickupNote":{"oneOf":[{"type":"string"},{"type":"null"}]},"minTermMonths":{"oneOf":[{"type":"integer"},{"type":"null"}]}},"required":["code","label","town","state","deliveryFeeCents","pickupFeeCents","pickupNote","minTermMonths"],"additionalProperties":false},"termMonths":{"type":"integer","description":"The term priced: the requested months held up to the minimum."},"minTermMonths":{"type":"integer"},"monthly":{"type":"object","properties":{"rentCents":{"type":"integer","minimum":0,"description":"Rent. In US cents (divide by 100 for dollars)."},"upgradesCents":{"type":"integer","minimum":0,"description":"Upgrades. In US cents (divide by 100 for dollars)."},"damageWaiverCents":{"type":"integer","minimum":0,"description":"Damage waiver (0 with the deposit alternative). In US cents (divide by 100 for dollars)."},"environmentalFeeCents":{"type":"integer","minimum":0,"description":"Environmental fee. In US cents (divide by 100 for dollars)."},"totalCents":{"type":"integer","minimum":0,"description":"Monthly total. In US cents (divide by 100 for dollars)."},"lines":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","description":"Stable line key (rent, upgrade_watch, damage_waiver, environmental_fee, delivery, pickup, express, brand, reservation_deposit …)."},"label":{"type":"string"},"cents":{"type":"integer","minimum":0,"description":"Line amount. In US cents (divide by 100 for dollars)."},"detail":{"oneOf":[{"type":"string"},{"type":"null"}]},"quantity":{"oneOf":[{"type":"integer"},{"type":"null"}]},"due":{"oneOf":[{"type":"string","enum":["reservation","delivery","final"]},{"type":"null"}]},"quoted":{"type":"boolean","description":"True when the amount is quoted per job (Zone F pickup) — cents is 0 and must not be printed as a price."}},"required":["key","label","cents","detail","quantity","due","quoted"],"additionalProperties":false}}},"required":["rentCents","upgradesCents","damageWaiverCents","environmentalFeeCents","totalCents","lines"],"additionalProperties":false},"oneTime":{"type":"object","properties":{"deliveryCents":{"type":"integer","minimum":0,"description":"Delivery. In US cents (divide by 100 for dollars)."},"pickupCents":{"oneOf":[{"type":"integer","minimum":0,"description":"Pickup; null when quoted per job (Zone F). In US cents (divide by 100 for dollars)."},{"type":"null"}]},"expressCents":{"type":"integer","minimum":0,"description":"JOLT Express. In US cents (divide by 100 for dollars)."},"brandCents":{"type":"integer","minimum":0,"description":"BRAND (logo panels). In US cents (divide by 100 for dollars)."},"otherCents":{"type":"integer","minimum":0,"description":"Fence install/removal and any other one-time line. In US cents (divide by 100 for dollars)."},"lines":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","description":"Stable line key (rent, upgrade_watch, damage_waiver, environmental_fee, delivery, pickup, express, brand, reservation_deposit …)."},"label":{"type":"string"},"cents":{"type":"integer","minimum":0,"description":"Line amount. In US cents (divide by 100 for dollars)."},"detail":{"oneOf":[{"type":"string"},{"type":"null"}]},"quantity":{"oneOf":[{"type":"integer"},{"type":"null"}]},"due":{"oneOf":[{"type":"string","enum":["reservation","delivery","final"]},{"type":"null"}]},"quoted":{"type":"boolean","description":"True when the amount is quoted per job (Zone F pickup) — cents is 0 and must not be printed as a price."}},"required":["key","label","cents","detail","quantity","due","quoted"],"additionalProperties":false}}},"required":["deliveryCents","pickupCents","expressCents","brandCents","otherCents","lines"],"additionalProperties":false},"depositCents":{"type":"integer","minimum":0,"description":"Reservation deposit charged at checkout. In US cents (divide by 100 for dollars)."},"depositNote":{"type":"string"},"firstInvoiceCents":{"type":"integer","minimum":0,"description":"First month + delivery-invoice lines − deposit credited. In US cents (divide by 100 for dollars)."},"dueAtReservationCents":{"type":"integer","minimum":0,"description":"Due at checkout: the deposit plus any JOLT Express fee. In US cents (divide by 100 for dollars)."},"dueAtDeliveryCents":{"type":"integer","minimum":0,"description":"Due on the delivery invoice. In US cents (divide by 100 for dollars)."},"dueAtFinalCents":{"type":"integer","minimum":0,"description":"Due on the final invoice. In US cents (divide by 100 for dollars)."},"termTotalCents":{"type":"integer","minimum":0,"description":"A projection: monthly × termMonths + every one-time line. The reservation itself is month to month after the minimum term; nothing in the flow fixes an end date. In US cents (divide by 100 for dollars)."},"delivery":{"type":"object","properties":{"mode":{"type":"string","enum":["standard","express"],"description":"\"express\" when JOLT Express is charged on this quote (eligible unit with express=true)."},"standardWindowWeeks":{"type":"array","items":{"type":"integer"},"minItems":2,"maxItems":2},"earliestWindowStart":{"type":"string","format":"date","description":"Start of the range the reservation flow offers today by its calendar rules: the first weekday 2 weeks out, or the next business day with Express. A boundary, not a promise — it may itself be a blackout or full truck day; windowStart is the first day that is actually bookable."},"latestWindowStart":{"type":"string","format":"date","description":"End of that range by the same rules: the last weekday 4 weeks out, or 7 business days out with Express. A boundary, not a promise of that day."},"windowStart":{"type":"string","format":"date","description":"First day of the window the quote assumes: `start` (or earliestWindowStart) moved forward to the first day the reservation flow can actually book — a weekday in the offered range that is not a yard blackout or a full truck day and has the unit(s) free, read from the live calendar and fleet ledger the flow itself reads. When it moved, `note` says why."},"windowEnd":{"type":"string","format":"date","description":"Last day of that window (windowStart + 2 business days)."},"windowLabel":{"type":"string","description":"\"Sept 25 – Sept 29\""},"schedulable":{"type":"boolean","description":"Whether the reservation flow can book windowStart today, checked the way its Step 3 checks: within the offered range, not a blackout or full truck day, and with the unit(s) free on that day. False when `start` is later than latestWindowStart, when no offered day fits the order, or when the live calendar could not be read — the quote still prices the job, `start` is left off reserveUrl, and `note` says why."},"minTermEnd":{"type":"string","format":"date","description":"windowStart + termMonths: the earliest day the minimum term is met. The rental runs month to month after it."},"freeCancellationUntil":{"oneOf":[{"type":"string","format":"date","description":"Last day a written cancellation is free; null when that day has already passed for this window."},{"type":"null"}]},"cancellationNote":{"type":"string","description":"The cancellation rule for this window, as the reservation flow states it."},"note":{"oneOf":[{"type":"string","description":"Why the window differs from what was asked: start beyond the bookable range, the wanted day full, closed or without a free unit (and which day was offered instead), or Express on an ineligible unit."},{"type":"null"}]},"express":{"type":"object","properties":{"eligible":{"type":"boolean"},"businessDays":{"type":"integer"},"feeCents":{"type":"integer","minimum":0,"description":"Express fee. In US cents (divide by 100 for dollars)."}},"required":["eligible","businessDays","feeCents"],"additionalProperties":false}},"required":["mode","standardWindowWeeks","earliestWindowStart","latestWindowStart","windowStart","windowEnd","windowLabel","schedulable","minTermEnd","freeCancellationUntil","cancellationNote","note","express"],"additionalProperties":false,"description":"Delivery timing in the reservation flow's own terms (Step 3 offers a first day; the window is that day plus two business days)."},"notes":{"type":"array","items":{"type":"string"},"description":"Non-fatal adjustments the catalog made (an included upgrade dropped, for example)."},"escalatorNote":{"type":"string"},"salesTax":{"type":"string"},"reserveUrl":{"type":"string","format":"uri","description":"Deep link that opens the reservation flow at the site-details step with this configuration preset: unit, quantity or footage, upgrades, BRAND, Express, protection, ZIP and — when schedulable — the first delivery day. The term is not carried (rentals run month to month after the minimum). Nothing is held until the deposit is paid there."},"sourceUrl":{"type":"string","format":"uri","description":"The unit's page — cite it."},"pricingUrl":{"type":"string","format":"uri","description":"The pricing page."},"license":{"type":"object","properties":{"name":{"type":"string"},"short":{"type":"string","const":"CC BY 4.0"},"spdx":{"type":"string","const":"CC-BY-4.0"},"url":{"type":"string","format":"uri","description":"Licence text."},"attribution":{"type":"string","description":"The credit line to print or link when a figure is republished."}},"required":["name","short","spdx","url","attribution"],"additionalProperties":false}},"required":["apiVersion","asOf","quotedOn","currency","input","unit","zone","termMonths","minTermMonths","monthly","oneTime","depositCents","depositNote","firstInvoiceCents","dueAtReservationCents","dueAtDeliveryCents","dueAtFinalCents","termTotalCents","delivery","notes","escalatorNote","salesTax","reserveUrl","sourceUrl","pricingUrl","license"],"additionalProperties":false},"Availability":{"type":"object","properties":{"apiVersion":{"type":"string","const":"v1"},"asOf":{"type":"string","format":"date-time","description":"When the counts were read."},"quotedOn":{"type":"string","format":"date","description":"Yard date."},"note":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"sku":{"type":"string"},"name":{"type":"string"},"url":{"type":"string","format":"uri","description":"Source page."},"pool":{"type":"string"},"available":{"type":"integer"},"total":{"type":"integer"},"status":{"type":"string","enum":["available","limited","waitlist"]},"leadTime":{"type":"string"},"nextAvailableOn":{"oneOf":[{"type":"string","format":"date","description":"First day a unit frees up when none is available now."},{"type":"null"}]},"nextWindowStart":{"type":"string","format":"date","description":"Monday the next delivery window for this unit opens."},"nextWindowLabel":{"type":"string"}},"required":["sku","name","url","pool","available","total","status","leadTime","nextAvailableOn","nextWindowStart","nextWindowLabel"],"additionalProperties":false}},"links":{"type":"object","properties":{"availability":{"type":"string","format":"uri","description":"This endpoint."},"reserve":{"type":"string","format":"uri","description":"Reservation flow."},"developers":{"type":"string","format":"uri","description":"Developer page."}},"required":["availability","reserve","developers"],"additionalProperties":false}},"required":["apiVersion","asOf","quotedOn","note","items","links"],"additionalProperties":false},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["invalid_request","unknown_sku","unknown_upgrade","invalid_zip","outside_service_area","unquotable","not_found","method_not_allowed","rate_limited","disabled","unavailable","internal"]},"message":{"type":"string"},"status":{"type":"integer"},"details":{}},"required":["code","message","status"],"additionalProperties":false},"apiVersion":{"type":"string","const":"v1"},"docs":{"type":"string","format":"uri","description":"Developer page."}},"required":["error","apiVersion","docs"],"additionalProperties":false},"QuoteLine":{"type":"object","properties":{"key":{"type":"string","description":"Stable line key (rent, upgrade_watch, damage_waiver, environmental_fee, delivery, pickup, express, brand, reservation_deposit …)."},"label":{"type":"string"},"cents":{"type":"integer","minimum":0,"description":"Line amount. In US cents (divide by 100 for dollars)."},"detail":{"oneOf":[{"type":"string"},{"type":"null"}]},"quantity":{"oneOf":[{"type":"integer"},{"type":"null"}]},"due":{"oneOf":[{"type":"string","enum":["reservation","delivery","final"]},{"type":"null"}]},"quoted":{"type":"boolean","description":"True when the amount is quoted per job (Zone F pickup) — cents is 0 and must not be printed as a price."}},"required":["key","label","cents","detail","quantity","due","quoted"],"additionalProperties":false},"Unit":{"type":"object","properties":{"key":{"type":"string","enum":["st20","st40","st12","st10","of20_base","of20_gridfree","of20_alpine","of40_bath","fence","light_tower","ground_heater","traffic_basic","traffic_standard","traffic_full","handwash"],"description":"Catalog key — the `sku` parameter of /quote."},"code":{"type":"string","description":"Unit-number prefix (JLT-20OF …)."},"family":{"type":"string"},"familyName":{"type":"string"},"name":{"type":"string"},"shortName":{"type":"string"},"tier":{"oneOf":[{"type":"string"},{"type":"null"}]},"category":{"type":"string","enum":["office","storage","fence","equipment"]},"url":{"type":"string","format":"uri","description":"The page that sells it — the source to cite."},"monthlyCents":{"type":"integer","minimum":0,"description":"Monthly rent (per linear foot per month for fence). In US cents (divide by 100 for dollars)."},"monthly":{"type":"string","description":"Rent as printed on the site."},"billingUnit":{"type":"string","enum":["month","lf-month"]},"minTermMonths":{"type":"integer"},"reservationDepositCents":{"type":"integer","minimum":0,"description":"Deposit charged at checkout and applied to the first invoice. In US cents (divide by 100 for dollars)."},"expressEligible":{"type":"boolean","description":"JOLT Express (7 business days) is offered on Base units only."},"standardWindowWeeks":{"type":"array","items":{"type":"integer"},"minItems":2,"maxItems":2},"includedUpgrades":{"type":"array","items":{"type":"string"}},"allowedUpgrades":{"type":"array","items":{"type":"string"}},"reservable":{"type":"boolean","description":"False for units that quote by lead rather than online reservation."},"includes":{"type":"array","items":{"type":"string"}},"whoItsFor":{"oneOf":[{"type":"string"},{"type":"null"}]},"priceNote":{"oneOf":[{"type":"string"},{"type":"null"}]},"popular":{"type":"boolean"}},"required":["key","code","family","familyName","name","shortName","tier","category","url","monthlyCents","monthly","billingUnit","minTermMonths","reservationDepositCents","expressEligible","standardWindowWeeks","includedUpgrades","allowedUpgrades","reservable","includes","whoItsFor","priceNote","popular"],"additionalProperties":false},"Upgrade":{"type":"object","properties":{"key":{"type":"string","enum":["watch","connect","power","ready","jolt_pack","second_camera","unlimited_starlink"],"description":"The `upgrades` parameter of /quote."},"name":{"type":"string"},"displayName":{"type":"string"},"tagline":{"type":"string"},"description":{"type":"string"},"monthlyCents":{"type":"integer","minimum":0,"description":"Monthly price. In US cents (divide by 100 for dollars)."},"monthly":{"type":"string"},"addOn":{"type":"boolean","description":"Add-ons need a parent upgrade (see requires)."},"requires":{"type":"array","items":{"type":"string"}},"replaces":{"type":"array","items":{"type":"string"}},"url":{"type":"string","format":"uri","description":"Source page."}},"required":["key","name","displayName","tagline","description","monthlyCents","monthly","addOn","requires","replaces","url"],"additionalProperties":false},"Purchase":{"type":"object","properties":{"key":{"type":"string"},"sku":{"type":"string","description":"The rental build the purchase corresponds to."},"name":{"type":"string"},"tier":{"oneOf":[{"type":"string"},{"type":"null"}]},"priceCents":{"type":"integer","minimum":0,"description":"Purchase price, delivered within Zones A–B, before sales tax. In US cents (divide by 100 for dollars)."},"price":{"type":"string"},"currency":{"type":"string","const":"USD"},"url":{"type":"string","format":"uri","description":"Source page."},"delivery":{"type":"string"},"leadTimeWeeks":{"type":"array","items":{"type":"integer"},"minItems":2,"maxItems":2},"warrantyMonths":{"type":"integer"},"popular":{"type":"boolean"}},"required":["key","sku","name","tier","priceCents","price","currency","url","delivery","leadTimeWeeks","warrantyMonths","popular"],"additionalProperties":false},"LeaseToOwnPlan":{"type":"object","properties":{"key":{"type":"string"},"sku":{"type":"string"},"purchase":{"type":"string","description":"The purchase item the plan is the financed alternative to."},"tier":{"type":"string"},"months":{"type":"integer"},"monthlyCents":{"type":"integer","minimum":0,"description":"Monthly payment. In US cents (divide by 100 for dollars)."},"monthly":{"type":"string"},"totalCents":{"type":"integer","minimum":0,"description":"months × monthly. In US cents (divide by 100 for dollars)."},"total":{"type":"string"},"purchasePriceCents":{"type":"integer","minimum":0,"description":"Outright price of the same build. In US cents (divide by 100 for dollars)."},"url":{"type":"string","format":"uri","description":"Source page."},"popular":{"type":"boolean"}},"required":["key","sku","purchase","tier","months","monthlyCents","monthly","totalCents","total","purchasePriceCents","url","popular"],"additionalProperties":false},"Zone":{"type":"object","properties":{"code":{"type":"string","enum":["A","B","C","D","E","F"]},"label":{"type":"string"},"deliveryFeeCents":{"type":"integer","minimum":0,"description":"One leg from the yard at Gypsum. In US cents (divide by 100 for dollars)."},"pickupFeeCents":{"oneOf":[{"type":"integer","minimum":0,"description":"Return leg; null when pickup is quoted per job (Zone F). In US cents (divide by 100 for dollars)."},{"type":"null"}]},"pickupNote":{"oneOf":[{"type":"string"},{"type":"null"}]},"minTermMonths":{"oneOf":[{"type":"integer","description":"Minimum the zone imposes on every unit (Zone F: 12)."},{"type":"null"}]},"url":{"type":"string","format":"uri","description":"Source page."}},"required":["code","label","deliveryFeeCents","pickupFeeCents","pickupNote","minTermMonths","url"],"additionalProperties":false},"AvailabilityItem":{"type":"object","properties":{"sku":{"type":"string"},"name":{"type":"string"},"url":{"type":"string","format":"uri","description":"Source page."},"pool":{"type":"string"},"available":{"type":"integer"},"total":{"type":"integer"},"status":{"type":"string","enum":["available","limited","waitlist"]},"leadTime":{"type":"string"},"nextAvailableOn":{"oneOf":[{"type":"string","format":"date","description":"First day a unit frees up when none is available now."},{"type":"null"}]},"nextWindowStart":{"type":"string","format":"date","description":"Monday the next delivery window for this unit opens."},"nextWindowLabel":{"type":"string"}},"required":["sku","name","url","pool","available","total","status","leadTime","nextAvailableOn","nextWindowStart","nextWindowLabel"],"additionalProperties":false},"License":{"type":"object","properties":{"name":{"type":"string"},"short":{"type":"string","const":"CC BY 4.0"},"spdx":{"type":"string","const":"CC-BY-4.0"},"url":{"type":"string","format":"uri","description":"Licence text."},"attribution":{"type":"string","description":"The credit line to print or link when a figure is republished."}},"required":["name","short","spdx","url","attribution"],"additionalProperties":false},"Links":{"type":"object","properties":{"developers":{"type":"string","format":"uri","description":"Developer page (rate limits, attribution, examples)."},"openapiJson":{"type":"string","format":"uri","description":"This document as JSON."},"openapiYaml":{"type":"string","format":"uri","description":"This document as YAML."},"catalog":{"type":"string","format":"uri","description":"GET /catalog."},"quote":{"type":"string","format":"uri","description":"GET /quote."},"availability":{"type":"string","format":"uri","description":"GET /availability."},"mcp":{"type":"string","format":"uri","description":"Model Context Protocol endpoint (streamable HTTP)."},"pricing":{"type":"string","format":"uri","description":"The human pricing page."},"priceBook":{"type":"string","format":"uri","description":"The dated, CC BY 4.0 dataset of every price."},"priceBookJson":{"type":"string","format":"uri","description":"Price Book, JSON."},"priceBookCsv":{"type":"string","format":"uri","description":"Price Book, CSV."},"reserve":{"type":"string","format":"uri","description":"The reservation flow."},"llms":{"type":"string","format":"uri","description":"llms.txt — the short index for language models."},"llmsFull":{"type":"string","format":"uri","description":"llms-full.txt — the full text of every public page, with URLs and last-updated dates."},"feeds":{"type":"object","properties":{"googleMerchant":{"type":"string","format":"uri","description":"Google Merchant Center TSV — the four purchase builds."},"openaiProducts":{"type":"string","format":"uri","description":"OpenAI product feed (search only) — the four purchase builds."},"acpProducts":{"type":"string","format":"uri","description":"Agentic Commerce Protocol product feed — the four purchase builds."}},"required":["googleMerchant","openaiProducts","acpProducts"],"additionalProperties":false}},"required":["developers","openapiJson","openapiYaml","catalog","quote","availability","mcp","pricing","priceBook","priceBookJson","priceBookCsv","reserve","llms","llmsFull","feeds"],"additionalProperties":false}}}}