Outdoorsy Quotes API
The quotes API from Outdoorsy — 1 operation(s) for quotes.
The quotes API from Outdoorsy — 1 operation(s) for quotes.
openapi: 3.2.0
info:
description: 'The Outdoorsy API (or simply "API") is organized around REST. It uses
predictable, resource-oriented URLs and implements standard HTTP response
codes, verbs, authentication mechanisms, and a variety of request encodings.
## Versioning
The API implements semantic versioning.'
title: Outdoorsy API Documentation Quotes API
version: 0.0.1
servers:
- url: /v0
security:
- Bearer:
- '[]'
- API-Key:
- '[]'
tags:
- name: quotes
paths:
/quotes:
post:
tags:
- quotes
summary: Generates a quote for a given rental based on start and stop dates.
operationId: createQuote
responses:
'200':
$ref: '#/components/responses/quoteResponse'
'400':
$ref: '#/components/responses/badRequestError'
'404':
$ref: '#/components/responses/notFoundError'
default:
$ref: '#/components/responses/genericError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Request'
components:
schemas:
Response:
type: object
properties:
addons:
type: array
items:
$ref: '#/components/schemas/BookingItem'
x-go-name: Addons
block_discount_code:
type: boolean
x-go-name: BlockDiscountCode
bundle_id:
type: string
x-go-name: BundleID
calculated_day_price:
type: integer
format: uint64
x-go-name: CalculatedDayPrice
can_apply_credits:
type: boolean
x-go-name: CanApplyCredits
can_generate_weather_quote:
type: boolean
x-go-name: CanGenerateWeatherQuote
dealer_minimum_days:
type: integer
format: uint64
x-go-name: DealerMinimumDays
deliverable_campgrounds:
type: array
items:
$ref: '#/components/schemas/ExternalCampground'
x-go-name: DeliverableCampgrounds
delivery:
$ref: '#/components/schemas/Delivery'
delivery_campground_id:
type: integer
format: int64
x-go-name: DeliveryCampgroundId
delivery_item:
$ref: '#/components/schemas/BookingItem'
discount_code:
type: string
x-go-name: DiscountCode
discount_code_amount:
type: integer
format: uint64
x-go-name: DiscountCodeAmount
discount_code_applied_to:
type: string
x-go-name: DiscountCodeAppliedTo
discount_code_message:
type: string
x-go-name: DiscountCodeMessage
discount_message:
$ref: '#/components/schemas/Warning'
duration:
type: integer
format: uint64
x-go-name: Duration
estimated_generator_cost:
type: integer
format: uint64
x-go-name: EstimatedGeneratorCost
estimated_mileage_cost:
type: integer
format: uint64
x-go-name: EstimatedMileageCost
fees_total:
type: integer
format: uint64
x-go-name: FeesTotal
festival_friendly:
type: boolean
x-go-name: FestivalFriendly
final_payment_amount:
type: integer
format: uint64
x-go-name: FinalPaymentAmount
final_payment_due_date:
type: string
from:
type: string
from_time:
type: integer
format: int64
x-go-name: FromTime
generator_item:
$ref: '#/components/schemas/BookingItem'
generator_total_included:
type: number
format: double
x-go-name: GeneratorTotalIncluded
id:
type: string
x-go-name: ID
instant_book:
type: boolean
x-go-name: InstantBook
insurance_bundle:
$ref: '#/components/schemas/BookingBundle'
is_request_less_than_minimum_days:
type: boolean
x-go-name: IsRequestLessThanMinimumDays
items:
type: array
items:
$ref: '#/components/schemas/BookingItem'
x-go-name: Items
locale_base_currency:
type: string
x-go-name: LocaleBaseCurrency
make:
type: string
x-go-name: Make
mileage_item:
$ref: '#/components/schemas/BookingItem'
mileage_total_included:
type: number
format: double
x-go-name: MileageTotalIncluded
model:
type: array
items:
type: string
x-go-name: Model
occupancy:
$ref: '#/components/schemas/Occupancy'
offer_affirm:
type: boolean
x-go-name: OfferAffirm
offer_paypal_pay_later:
type: boolean
x-go-name: OfferPayPalPayLater
original_day_override_price:
type: integer
format: uint64
x-go-name: OriginalDayOverridePrice
original_day_price:
type: integer
format: uint64
x-go-name: OriginalDayPrice
original_month_price:
type: integer
format: uint64
x-go-name: OriginalMonthPrice
original_service_fee:
type: integer
format: uint64
x-go-name: OriginalServiceFee
original_week_price:
type: integer
format: uint64
x-go-name: OriginalWeekPrice
outdoorsy_fee:
type: integer
format: uint64
x-go-name: RenterIntegrationsFee
owner_fee:
type: integer
format: uint64
x-go-name: OwnerFee
owner_fees:
type: array
items:
$ref: '#/components/schemas/BookingItem'
x-go-name: OwnerFees
owner_integrations_fee:
type: integer
format: uint64
x-go-name: OwnerIntegrationsFee
pet_friendly:
type: boolean
x-go-name: PetFriendly
pets:
type: integer
format: int64
x-go-name: Pets
presentment_currency:
type: string
x-go-name: PresentmentCurrency
remainder_amount:
type: integer
format: uint64
x-go-name: RemainderAmount
remainder_due_date:
type: string
rental_amount:
type: integer
format: uint64
x-go-name: RentalAmount
rental_amount_item:
$ref: '#/components/schemas/BookingItem'
rental_summary:
$ref: '#/components/schemas/RentalSummary'
renter_credits_applied:
type: integer
format: uint64
x-go-name: RenterCreditsApplied
renter_reserve_amount:
type: integer
format: uint64
x-go-name: RenterReserveAmount
requested_duration:
type: integer
format: uint64
x-go-name: RequestedDuration
reserve_amount:
type: integer
format: uint64
x-go-name: ReserveAmount
security_deposit:
type: integer
format: uint64
x-go-name: SecurityDeposit
service_fee:
type: integer
format: uint64
x-go-name: ServiceFee
services:
type: array
items:
$ref: '#/components/schemas/BookingService'
x-go-name: Services
settlement_currency:
type: string
x-go-name: SettlementCurrency
sibling_quote_group_id:
type: integer
format: int64
x-go-name: SiblingQuoteGroupID
sibling_quotes_totals:
$ref: '#/components/schemas/SiblingTotals'
siblings:
$ref: '#/components/schemas/SiblingQuotes'
smoking_allowed:
type: boolean
x-go-name: SmokingAllowed
subtotal:
type: integer
format: uint64
x-go-name: Subtotal
tailgate_friendly:
type: boolean
x-go-name: TailgateFriendly
tax:
type: integer
format: uint64
x-go-name: Tax
tax_rates:
type: array
items:
$ref: '#/components/schemas/TaxRateTotalItem'
x-go-name: TaxRates
to:
type: string
to_time:
type: integer
format: int64
x-go-name: ToTime
total:
type: integer
format: uint64
x-go-name: Total
total_after_credits:
type: integer
format: uint64
x-go-name: TotalAfterCredits
total_after_deductions:
description: 'the total amount that we will take from user card/paypal account for a given booking
deprecated use TotalAfterCredits'
type: integer
format: uint64
x-go-name: TotalAfterDeductions
towing_capacity:
type: integer
format: int64
x-go-name: TowingCapacity
towing_vehicle_make:
type: string
x-go-name: TowingVehicleMake
towing_vehicle_model:
type: string
x-go-name: TowingVehicleModel
towing_vehicle_year:
type: integer
format: int64
x-go-name: TowingVehicleYear
travelers:
type: integer
format: int64
x-go-name: Travelers
use_day_price:
type: boolean
x-go-name: UseDayPrice
use_day_pricing:
type: boolean
x-go-name: UseDayPricing
use_system_tax_rates:
type: boolean
x-go-name: UseSystemTaxRates
use_tax_inclusive_pricing:
type: boolean
x-go-name: UseTaxInclusivePricing
user_notice_events:
type: array
items:
$ref: '#/components/schemas/NoticeResponse'
x-go-name: UserNoticeEvents
waiver_summary:
$ref: '#/components/schemas/WaiverSummary'
warning:
$ref: '#/components/schemas/Warning'
year_max:
type: integer
format: int64
x-go-name: YearMax
year_min:
type: integer
format: int64
x-go-name: YearMin
x-go-package: github.com/outdoorsy/api/internal/quote
IMap:
type: object
additionalProperties: {}
x-go-package: github.com/outdoorsy/api/pkg/jsonb
TaxRateItem:
type: object
properties:
description:
type: string
x-go-name: Description
original_tax_rate_id:
type: integer
format: int64
x-go-name: TaxRateID
tax_amount:
type: integer
format: int64
x-go-name: Amount
tax_name:
type: string
x-go-name: Name
tax_rate:
type: number
format: double
x-go-name: Rate
x-go-package: github.com/outdoorsy/api/internal/tax_rates
Locale:
type: object
properties:
base_currency:
type: string
x-go-name: BaseCurrency
date_format:
type: string
x-go-name: DateFormat
distance_unit:
type: string
x-go-name: DistanceUnit
language:
type: string
x-go-name: Language
length_unit:
type: string
x-go-name: LengthUnit
liquid_unit:
type: string
x-go-name: LiquidUnit
time_format:
type: string
x-go-name: TimeFormat
timezone:
type: string
x-go-name: Timezone
weight_unit:
type: string
x-go-name: WeightUnit
x-go-package: github.com/outdoorsy/api/model
BookingTaxRate:
type: object
properties:
booking_id:
type: integer
format: int64
x-go-name: BookingID
created:
type: string
x-go-name: Created
x-go-type: github.com/outdoorsy/api/clocks.RfcTime
deleted:
type: boolean
x-go-name: Deleted
id:
type: integer
format: int64
x-go-name: ID
object_id:
type: integer
format: int64
x-go-name: ObjectID
object_type:
type: string
x-go-name: ObjectType
payable_to:
type: string
x-go-name: PayableTo
source:
type: string
x-go-name: Source
state:
type: string
x-go-name: State
tax_amount:
type: integer
format: int64
x-go-name: Amount
tax_description:
type: string
x-go-name: Description
tax_name:
type: string
x-go-name: Name
tax_rate:
type: number
format: double
x-go-name: Rate
tax_rate_id:
type: integer
format: int64
x-go-name: TaxRateID
updated:
type: string
x-go-name: Updated
x-go-type: github.com/outdoorsy/api/clocks.RfcTime
zip_code:
type: string
x-go-name: ZipCode
x-go-package: github.com/outdoorsy/api/internal/tax_rates
CampgroundActivityFeature:
type: object
properties:
feature:
type: string
x-go-name: Slug
name:
type: string
x-go-name: Name
x-go-package: github.com/outdoorsy/api/internal/seeker/client
Delivery:
type: object
properties:
comment:
type: string
x-go-name: Comment
estimated_distance:
type: number
format: double
x-go-name: EstimatedDistance
location:
$ref: '#/components/schemas/DeliveryLocation'
stationary:
type: boolean
x-go-name: Stationary
x-go-package: github.com/outdoorsy/api/internal/quote
Warning:
description: Warning used for quote and booking
type: object
properties:
message:
type: string
x-go-name: Message
x-go-package: github.com/outdoorsy/api/types
DBInterfaceMap:
description: DBInterfaceMap is a map[string]interface{} with database conversion methods
type: object
additionalProperties: {}
x-go-package: github.com/outdoorsy/api/utils
ProcessedCampgroundAmenity:
type: object
properties:
available:
type: boolean
x-go-name: Available
category:
type: string
x-go-name: Category
id:
type: string
x-go-name: ID
name:
type: string
x-go-name: Name
x-go-package: github.com/outdoorsy/api/internal/seeker/client
TaxRateTotalItem:
description: 'Used when calculated booking/quote
and storing calculated result on booking'
type: object
properties:
amount:
type: integer
format: int64
x-go-name: Amount
name:
type: string
x-go-name: Name
rates:
$ref: '#/components/schemas/TaxRateItems'
x-go-package: github.com/outdoorsy/api/internal/tax_rates
BookingFeesVariantModification:
description: BookingFeesVariantModification defines how to modify a price
type: object
properties:
modification_type:
type: string
x-go-name: ModificationType
target:
type: string
x-go-name: Target
value:
type: number
format: double
x-go-name: Value
x-go-package: github.com/outdoorsy/api/model
WaiverSummary:
type: object
properties:
description:
type: string
x-go-name: Description
owner_completed:
type: boolean
x-go-name: OwnerCompleted
owner_terms:
type: string
x-go-name: OwnerTerms
renter_completed:
type: boolean
x-go-name: RenterCompleted
renter_confirmation_description:
type: string
x-go-name: RenterConfirmationDescription
renter_confirmation_title:
type: string
x-go-name: RenterConfirmationTitle
renter_terms:
type: string
x-go-name: RenterTerms
x-go-package: github.com/outdoorsy/api/types
BookingService:
type: object
properties:
booking_id:
type: integer
format: int64
x-go-name: BookingID
bundle_id:
type:
- string
- 'null'
category:
type: string
x-go-name: Category
charge_to:
type: string
x-go-name: ChargeTo
created:
type: string
x-go-name: Created
x-go-type: github.com/outdoorsy/api/clocks.RfcTime
daily:
type: boolean
x-go-name: Daily
dealer_flat_split:
type: integer
format: int64
x-go-name: DealerFlatSplit
dealer_percent_split:
type: number
format: double
x-go-name: DealerPercentSplit
dealer_split_type:
type: string
x-go-name: DealerSplitType
deleted_at:
$ref: '#/components/schemas/NullTime'
description:
type: string
x-go-name: Description
discount_amount:
type: integer
format: int64
x-go-name: DiscountAmount
external_reference_id:
type: string
x-go-name: ExternalReferenceID
fee_locked:
type: boolean
x-go-name: FeeLocked
id:
type: integer
format: int64
x-go-name: ID
is_taxable:
description: 'IsTaxable determines whether this service is taxable. This is defaulted
to the service''s IsTaxable field on BookingService create'
type: boolean
x-go-name: IsTaxable
last_service_log:
x-go-name: LastServiceLog
lock_on_booking_status:
type: string
x-go-name: LockOnBookingStatus
minimum_price:
type: integer
format: int64
x-go-name: MinimumPrice
missing_fields:
type: object
additionalProperties:
type: array
items:
type: string
x-go-name: MissingFields
name:
type: string
x-go-name: Name
payable_to:
type: string
x-go-name: PayableTo
percent:
type: number
format: double
x-go-name: Percent
percent_type:
type: string
x-go-name: PercentType
policy_start_date:
type: string
x-go-name: PolicyStartDate
x-go-type: github.com/outdoorsy/api/clocks.RfcTime
premium_amount:
description: PremiumAmount is the daily rate
type: integer
format: int64
x-go-name: PremiumAmount
premium_total:
description: PremiumTotal is what we pay to the dealer
type: integer
format: int64
x-go-name: PremiumTotal
prevent_delete:
type: boolean
x-go-name: PreventDelete
price:
type: integer
format: int64
x-go-name: Price
quantity:
type: integer
format: int64
x-go-name: Quantity
required:
type: boolean
x-go-name: Required
revision:
type: integer
format: int64
x-go-name: Revision
roamly_weather_quote:
$ref: '#/components/schemas/DBInterfaceMap'
service_data:
$ref: '#/components/schemas/DBInterfaceMap'
service_id:
type: integer
format: int64
x-go-name: ServiceID
tax_amount:
type: integer
format: int64
x-go-name: TaxAmount
tax_rates:
type: array
items:
$ref: '#/components/schemas/BookingTaxRate'
x-go-name: TaxRates
total:
description: Total is the full amount of what the renter pays (total + premium total) - does not include taxes
type: integer
format: int64
x-go-name: Total
updated:
type: string
x-go-name: Updated
x-go-type: github.com/outdoorsy/api/clocks.RfcTime
variant_price:
description: Calculated price considering pricing variant
type: integer
format: int64
x-go-name: VariantPrice
x-go-package: github.com/outdoorsy/api/internal/booking_services
CampgroundSceneryFeature:
type: object
properties:
feature:
type: string
x-go-name: Slug
name:
type: string
x-go-name: Name
x-go-package: github.com/outdoorsy/api/internal/seeker/client
NoticeResponse:
type: object
properties:
guest_acknowledgement_text:
type: string
x-go-name: GuestAcknowledgementText
guest_need_to_acknowledge:
type: boolean
x-go-name: GuestNeedToAcknowledge
guest_user_text:
type: string
x-go-name: GuestUserText
host_acknowledgement_text:
type: string
x-go-name: HostAcknowledgementText
host_help_url:
type: string
x-go-name: HostHelpUrl
host_need_to_acknowledge:
type: boolean
x-go-name: HostNeedToAcknowledge
host_user_text:
type: string
x-go-name: HostUserText
id:
type: integer
format: int64
x-go-name: ID
name:
type: string
x-go-name: Name
x-go-package: github.com/outdoorsy/api/internal/user_notice_events
DeliveryLocation:
type: object
properties:
city:
type: string
x-go-name: City
country:
type: string
x-go-name: Country
full_search_name_location:
type: string
x-go-name: FullSearchNameLocation
lat:
type: number
format: double
x-go-name: Lat
lng:
type: number
format: double
x-go-name: Lng
search_name_location:
type: string
x-go-name: SearchNameLocation
state:
type: string
x-go-name: State
street:
type: string
x-go-name: Street
street_etc:
type: string
x-go-name: StreetEtc
zip:
type: string
x-go-name: Zip
x-go-package: github.com/outdoorsy/api/types
Request:
type: object
properties:
booking_fees_variant:
$ref: '#/components/schemas/BookingFeesVariant'
bundle_id:
type: string
x-go-name: BundleID
delivery:
$ref: '#/components/schemas/Delivery'
delivery_campground_id:
type: integer
format: int64
x-go-name: DeliveryCampgroundId
discount_code:
type: string
x-go-name: DiscountCode
estimated_generator_hours:
type: number
format: double
x-go-name: EstimatedGeneratorHours
estimated_miles:
type: number
format: double
x-go-name: EstimatedMiles
external_campsite_id:
type: string
x-go-name: ExternalCampsiteID
festival_friendly:
type: boolean
x-go-name: FestivalFriendly
from:
type: string
from_time:
type: integer
format: int64
x-go-name: FromTime
id:
type: string
x-go-name: ID
imported:
type: boolean
x-go-name: Imported
include_coachnet:
type: boolean
x-go-name: IncludeCoachnet
include_linen_fee:
type: boolean
x-go-name: IncludeLinenFee
include_pet_fee:
type: boolean
x-go-name: IncludePetFee
insurance:
type: string
x-go-name: Insurance
items:
type: array
items:
$ref: '#/components/schemas/ItemRequest'
x-go-name: Items
locale:
type: string
x-go-name: Locale
loyalty_rewards_eligible:
type: boolean
x-go-name: LoyaltyRewardsEligible
make:
type: string
x-go-name: Make
model:
type: array
items:
type: string
x-go-name: Model
occupancy:
$ref: '#/components/schemas/Occupancy'
omit_taxes:
type: boolean
x-go-name: OmitTaxes
only_price_breakdown:
type: boolean
x-go-name: OnlyPriceBreakdown
pet_friendly:
type: boolean
x-go-name: PetFriendly
pets:
type: integer
format: int64
x-go-name: Pets
prefer_cheapest_bundle:
type: boolean
x-go-name: PreferCheapestBundle
presentment_currency:
type: string
x-go-name: PresentmentCurrency
rental_id:
type: integer
format: int64
x-go-name: RentalID
renter_anon_id:
type: string
x-go-name: RenterAnonID
renter_id:
type: integer
format: int64
x-go-name: RenterID
reserve:
type: boolean
x-go-name: Reserve
roamly_weather_quote:
$ref: '#/components/schemas/DBInterfaceMap'
rv_profile:
$ref: '#/components/schemas/RVProfile'
services:
type: array
items:
type: integer
format: int64
x-go-name: Services
sibling_quote_group_id:
type: integer
format: int64
x-go-name: SiblingQuoteGroupID
smoking_allowed:
type: boolean
x-go-name: SmokingAllowed
source:
type: string
x-go-name: Source
tailgate_friendly:
type: boolean
x-go-name: TailgateFriendly
to:
type: string
to_time:
type: integer
format: int64
x-go-name: ToTime
towing_capacity:
type: integer
format: int64
x-go-name: TowingCapacity
towing_vehicle_make:
type: string
x-go-name: TowingVehicleMake
towing_vehicle_model:
type: string
x-go-name: TowingVehicleModel
towing_vehicle_year:
type: integer
format: int64
x-go-name: TowingVehicleYear
travelers:
type: integer
format: int64
x-go-name: Travelers
trip_credits_disabled:
type: boolean
x-go-name: TripCreditsDisabled
year_max:
type: integer
format: int64
x-go-name: YearMax
year_min:
type: integer
format: int64
x-go-name: YearMin
x-go-package: github.com/outdoorsy/api/internal/quote
BundleFeatureItem:
type: object
properties:
details:
type: string
x-go-name: Details
name:
type: string
x-go-name: Name
position:
type: integer
format: int64
x-go-name: Position
service_id:
type: integer
format: int64
x-go-name: ServiceID
type:
type: string
x-go-name: Type
x-go-package: github.com/outdoorsy/api/internal/booking_bundle
Category:
type: object
properties:
name:
type: string
x-go-name: Name
slug:
type: string
x-go-name: Slug
x-go-package: github.com/outdoorsy/api/internal/seeker/client
CampgroundAmenitiesCategory:
type: object
properties:
id:
type: string
x-go-name: ID
name:
type: string
x-go-name: Name
x-go-package: github.com/outdoorsy/api/internal/seeker/client
RVProfile:
type: object
properties:
length:
type: integer
format: int64
x-go-name: Length
slideouts:
type: array
items:
type: string
x-go-name: SlideOuts
type:
type: string
x-go-name: Type
x-go-package: github.com/outdoorsy/api/internal/bookings
CampsiteSummary:
type: object
properties:
beds:
type: integer
format: int64
x-go-name: Beds
campground_id:
type: integer
format: int64
x-go-name: CampgroundID
campground_name:
type: string
x-go-name: CampgroundName
campground_sitemap_url:
type: string
x-go-name: CampgroundSiteMapURL
display_campsite_type:
type: string
x-go-name: DisplayCampsiteType
display_max_vehicle_length:
type: string
x-go-name: DisplayMaxVehicleLength
display_site_type:
type: string
x-go-name: DisplaySiteType
is_odn:
type: boolean
x-go-name: IsOdn
rental_id:
type: integer
format: int64
x-go-name: RentalID
site_type:
type: string
x-go-name: SiteType
sleeps:
type: integer
format: int64
x-go-name: Sleeps
type:
type: string
x-go-name: CategoryType
x-go-package: github.com/outdoorsy/api/types
BookingFeesVariantCondition:
type: object
properties:
operator:
type: string
x-go-name: Operator
property:
type: string
x-go-name: Property
value:
x-go-name: Value
x-go-package: github.com/outdoorsy/api/model
StaySummary:
type: object
properties:
baths:
type: integer
format: int64
x-go-name: Baths
bedrooms:
type: integer
format: int64
x-go-name: Bedrooms
beds:
type: integer
format: int64
x-go-name: Beds
check_in_type:
type: string
x-go-name: CheckInType
display_stay_type:
type: string
x-go-name: DisplayStayType
location_description:
type: string
x-go-name: LocationDescription
max_parking_spaces:
type: integer
format: int64
x-go-name: MaxParkingSpaces
parking_onsite:
type: boolean
x-go-name: ParkingOnsite
rental_id:
type: integer
format: int64
x-go-name: RentalID
sleeps:
type: integer
format: int64
x-go-name: Sleeps
type:
type: string
x-go-name: Type
x-go-package: github.com/outdoorsy/api/types
RentalSummary:
type: object
properties:
campsite_summary:
$ref: '#/components/schemas/CampsiteSummary'
disallow_movement:
type: boolean
x-go-name: DisallowMovement
display_type:
type: string
x-go-name: DisplayType
formatted_length:
type: string
x-go-name: FormattedLength
id:
type: integer
format: int64
x-go-name: ID
interior_primary_image_url:
type: string
x-go-name: InteriorPrimaryImageURL
internal_id:
type: string
x-go-name: InternalID
location:
type: string
x-go-name: Location
name:
type: string
x-go-name: Name
primary_image_url:
type: string
x-go-name: PrimaryImageURL
rental_category:
type: string
x-go-name: RentalCategory
sleeps:
type: integer
format: int64
x-go-name: Sleeps
slug:
type: string
x-go-name: Slug
# --- truncated at 32 KB (49 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/outdoorsy/refs/heads/main/openapi/outdoorsy-quotes-api-openapi.yml