{"openapi":"3.1.0","info":{"title":"Moveroo public quote API","version":"2026-06-30","description":"Official host-aware public API for customer-authorised household removals and vehicle transport quote submissions."},"servers":[{"url":"https:\/\/quoting.removalsinterstate.com.au"}],"externalDocs":{"description":"Official public agent quote API guide","url":"https:\/\/quoting.removalsinterstate.com.au\/agents"},"paths":{"\/api\/v1\/household-quotes\/assistant\/submit":{"post":{"summary":"Submit a household removals quote request","description":"Creates a host-aware household quote entry for staff review. Requires customer consent fields and does not require a customer login.","operationId":"submitHouseholdQuote","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/HouseholdQuoteSubmission"}}}},"responses":{"200":{"description":"Duplicate or idempotent submission accepted."},"201":{"description":"Quote submission accepted."},"422":{"description":"Validation failed. Check required fields, consent, conditional requirements, and any locality suggestions returned for ambiguous vehicle pickup or delivery locations."},"429":{"description":"Rate limited. Retry later with the same idempotency key where possible."}}}},"\/api\/v1\/vehicle-quotes\/assistant\/submit":{"post":{"summary":"Submit a vehicle transport quote request","description":"Creates a host-aware vehicle quote request using the current vehicle workflow. Requires customer consent fields and does not require a customer login.","operationId":"submitVehicleQuote","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/VehicleQuoteSubmission"}}}},"responses":{"200":{"description":"Duplicate or idempotent submission accepted."},"201":{"description":"Quote submission accepted."},"422":{"description":"Validation failed. Check required fields, consent, conditional requirements, and any locality suggestions returned for ambiguous vehicle pickup or delivery locations."},"429":{"description":"Rate limited. Retry later with the same idempotency key where possible."}}}}},"components":{"schemas":{"CustomerConsent":{"type":"object","required":["confirmed","basis"],"properties":{"confirmed":{"type":"boolean","const":true,"description":"Must be true when the customer has asked the agent to request a quote."},"basis":{"type":"string","enum":["customer_requested_quote"]}}},"Customer":{"type":"object","required":["name","email","phone"],"properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"},"phone":{"type":"string"}}},"Location":{"type":"object","properties":{"city":{"type":"string"},"state":{"type":"string"},"postcode":{"type":"string"},"locality_id":{"type":"integer"}},"description":"Supply either city\/state\/postcode style fields or a known locality_id. Vehicle quote submissions can auto-confirm strong locality matches and may return suggestions when a pickup or delivery locality is ambiguous."},"HouseholdQuoteSubmission":{"type":"object","required":["origin_domain","customer","pickup","delivery","move_date","inventory","customer_consent"],"properties":{"origin_domain":{"type":"string","description":"The quote host where the customer journey originated."},"tenant":{"type":"string","description":"Optional. Omit tenant for public host-aware submissions unless Moveroo has supplied a tenant slug."},"idempotency_key":{"type":"string","description":"Optional stable key supplied by the agent. If omitted, Moveroo computes a quote-type-specific fingerprint."},"customer_consent":{"$ref":"#\/components\/schemas\/CustomerConsent"},"customer":{"$ref":"#\/components\/schemas\/Customer"},"pickup":{"$ref":"#\/components\/schemas\/Location"},"delivery":{"$ref":"#\/components\/schemas\/Location"},"move_date":{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["exact","asap","unknown","vague"]},"date":{"type":"string","format":"date"}}},"inventory":{"type":"object","required":["method"],"properties":{"method":{"type":"string","enum":["m3","pasted_list","unknown"]},"cubic_meters":{"type":"number"},"text":{"type":"string"}}},"channel":{"type":"string"},"surface":{"type":"string"},"notes":{"type":"string"}}},"VehicleQuoteSubmission":{"type":"object","required":["origin_domain","customer","pickup","delivery","vehicle","customer_consent"],"properties":{"origin_domain":{"type":"string","description":"The quote host where the customer journey originated."},"tenant":{"type":"string","description":"Optional. Omit tenant for public host-aware submissions unless Moveroo has supplied a tenant slug."},"idempotency_key":{"type":"string","description":"Optional stable key supplied by the agent. If omitted, Moveroo computes a quote-type-specific fingerprint."},"customer_consent":{"$ref":"#\/components\/schemas\/CustomerConsent"},"customer":{"$ref":"#\/components\/schemas\/Customer"},"pickup":{"$ref":"#\/components\/schemas\/Location"},"delivery":{"$ref":"#\/components\/schemas\/Location"},"vehicle":{"type":"object","required":["make","model","year","is_drivable"],"properties":{"category":{"type":"string"},"make":{"type":"string"},"model":{"type":"string"},"year":{"type":"integer"},"is_drivable":{"type":"boolean"},"condition":{"type":"string"},"has_working_brakes":{"type":"boolean"},"can_roll":{"type":"boolean"},"has_keys":{"type":"boolean"},"is_damaged":{"type":"boolean"},"damage_details":{"type":"string"}}},"timing":{"type":"object","properties":{"preferred_date":{"type":"string","format":"date"},"is_flexible":{"type":"boolean"}}},"channel":{"type":"string"},"surface":{"type":"string"},"notes":{"type":"string"}}}}}}