{"openapi":"3.1.0","info":{"title":"VaultXL Delivery quote API","version":"1.0.0","summary":"Instant furniture and item delivery prices for the Charlotte, NC area.","description":"Quotes only; nothing is booked or charged here. Send the customer to the bookingUrl in a served quote, or to https://vaultxl.com/furniture-delivery-charlotte. No API key.","contact":{"name":"VaultXL","url":"https://vaultxl.com"}},"servers":[{"url":"https://vaultxl.com"}],"paths":{"/delivery-quote":{"get":{"operationId":"getDeliveryQuote","summary":"Rate card (no parameters) or a quote (pickup + dropoff).","parameters":[{"name":"pickup","in":"query","required":true,"schema":{"type":"string","minLength":5,"maxLength":200},"description":"Pickup address: street number, city and ZIP for the best match. Pass \"VaultXL\" for an item bought from VaultXL; it is priced from the base with no address lookup."},{"name":"dropoff","in":"query","required":true,"schema":{"type":"string","minLength":5,"maxLength":200},"description":"Drop-off address."},{"name":"size","in":"query","required":false,"schema":{"type":"string","enum":["small","medium","heavy","large","set"],"default":"medium"},"description":"small: One person carries it, under about 50 lb; medium: Fits inside the SUV, one person can handle it; heavy: Fits inside the SUV but needs two people; large: Too big for the SUV, rides on the 5x8 trailer; set: Fills the 5x8 trailer"},{"name":"stairs","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":6,"default":0},"description":"Flights of stairs, both ends combined. Not charged on small items."}],"responses":{"200":{"description":"The rate card when no parameters are given; otherwise a quote outcome.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Rate card"},{"type":"object","required":["served","totalUsd","size","lineItems","routeMiles","legs","explain","bookingUrl"],"properties":{"served":{"const":true},"currency":{"const":"USD"},"totalUsd":{"type":"integer","description":"Whole dollars, rounded up to the next 5."},"size":{"type":"string","enum":["small","medium","heavy","large","set"]},"sizeLabel":{"type":"string"},"vehicle":{"type":"string"},"crew":{"type":"integer","enum":[1,2]},"pickup":{"type":"object","required":["address","milesFromBase"],"properties":{"address":{"type":"string","description":"The address as we resolved it."},"milesFromBase":{"type":"integer","description":"Estimated road miles from the base."}}},"dropoff":{"type":"object","required":["address","milesFromBase"],"properties":{"address":{"type":"string","description":"The address as we resolved it."},"milesFromBase":{"type":"integer","description":"Estimated road miles from the base."}}},"routeMiles":{"type":"integer","description":"Estimated round-trip road miles base → pickup → drop-off → base."},"legs":{"type":"array","items":{"type":"object","required":["from","to","miles"],"properties":{"from":{"type":"string","enum":["base","pickup","dropoff"]},"to":{"type":"string","enum":["base","pickup","dropoff"]},"miles":{"type":"integer"}}}},"lineItems":{"type":"array","items":{"type":"object","required":["label","amountUsd"],"properties":{"label":{"type":"string"},"amountUsd":{"type":"number"}}}},"explain":{"type":"string","description":"One sentence an assistant can quote verbatim."},"validDays":{"type":"integer","const":7},"runDays":{"type":"string"},"paymentTerms":{"type":"string"},"bookingUrl":{"type":"string","format":"uri","description":"Send the customer here; the page opens pre-filled."}}},{"type":"object","required":["served","reason","message"],"properties":{"served":{"const":false},"reason":{"type":"string","enum":["address_not_found","outside_service_area","outside_nc","geocoding_unavailable","same_address"]},"message":{"type":"string"},"pickup":{"type":"object","required":["address","milesFromBase"],"properties":{"address":{"type":"string","description":"The address as we resolved it."},"milesFromBase":{"type":"integer","description":"Estimated road miles from the base."}}},"dropoff":{"type":"object","required":["address","milesFromBase"],"properties":{"address":{"type":"string","description":"The address as we resolved it."},"milesFromBase":{"type":"integer","description":"Estimated road miles from the base."}}}}}]}}}},"400":{"description":"A missing or invalid parameter; the message names it.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"429":{"description":"Too many requests; Retry-After is set in seconds.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}}},"post":{"operationId":"postDeliveryQuote","summary":"Quote from a JSON body.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["pickup","dropoff"],"properties":{"pickup":{"type":"string","minLength":5,"maxLength":200},"dropoff":{"type":"string","minLength":5,"maxLength":200},"size":{"type":"string","enum":["small","medium","heavy","large","set"],"default":"medium"},"stairs":{"type":"integer","minimum":0,"maximum":6,"default":0}}}}}},"responses":{"200":{"description":"A quote outcome. served:false is still a 200: it is an answer, not an error.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["served","totalUsd","size","lineItems","routeMiles","legs","explain","bookingUrl"],"properties":{"served":{"const":true},"currency":{"const":"USD"},"totalUsd":{"type":"integer","description":"Whole dollars, rounded up to the next 5."},"size":{"type":"string","enum":["small","medium","heavy","large","set"]},"sizeLabel":{"type":"string"},"vehicle":{"type":"string"},"crew":{"type":"integer","enum":[1,2]},"pickup":{"type":"object","required":["address","milesFromBase"],"properties":{"address":{"type":"string","description":"The address as we resolved it."},"milesFromBase":{"type":"integer","description":"Estimated road miles from the base."}}},"dropoff":{"type":"object","required":["address","milesFromBase"],"properties":{"address":{"type":"string","description":"The address as we resolved it."},"milesFromBase":{"type":"integer","description":"Estimated road miles from the base."}}},"routeMiles":{"type":"integer","description":"Estimated round-trip road miles base → pickup → drop-off → base."},"legs":{"type":"array","items":{"type":"object","required":["from","to","miles"],"properties":{"from":{"type":"string","enum":["base","pickup","dropoff"]},"to":{"type":"string","enum":["base","pickup","dropoff"]},"miles":{"type":"integer"}}}},"lineItems":{"type":"array","items":{"type":"object","required":["label","amountUsd"],"properties":{"label":{"type":"string"},"amountUsd":{"type":"number"}}}},"explain":{"type":"string","description":"One sentence an assistant can quote verbatim."},"validDays":{"type":"integer","const":7},"runDays":{"type":"string"},"paymentTerms":{"type":"string"},"bookingUrl":{"type":"string","format":"uri","description":"Send the customer here; the page opens pre-filled."}}},{"type":"object","required":["served","reason","message"],"properties":{"served":{"const":false},"reason":{"type":"string","enum":["address_not_found","outside_service_area","outside_nc","geocoding_unavailable","same_address"]},"message":{"type":"string"},"pickup":{"type":"object","required":["address","milesFromBase"],"properties":{"address":{"type":"string","description":"The address as we resolved it."},"milesFromBase":{"type":"integer","description":"Estimated road miles from the base."}}},"dropoff":{"type":"object","required":["address","milesFromBase"],"properties":{"address":{"type":"string","description":"The address as we resolved it."},"milesFromBase":{"type":"integer","description":"Estimated road miles from the base."}}}}}]}}}},"400":{"description":"A missing or invalid field; the message names it.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"429":{"description":"Too many requests; Retry-After is set in seconds.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}}}}},"externalDocs":{"description":"The page, with the same rate card as HTML.","url":"https://vaultxl.com/furniture-delivery-charlotte"},"x-rate-card":"https://vaultxl.com/delivery-quote"}