Outdoorsy Rentals API
The Rentals API from Outdoorsy — 16 operation(s) for rentals.
The Rentals API from Outdoorsy — 16 operation(s) for rentals.
openapi: 3.2.0
info:
title: Outdoorsy Rentals API
version: 0.0.1
description: 'Operations tagged Rentals across 2 of this provider''s published API definitions: outdoorsy-openapi-original.json, outdoorsy-search-openapi-original.json. Each path carries the servers of the definition it was published in.'
servers:
- url: /v0
tags:
- name: Rentals
paths:
/rentals/{rental_id}/delivery:
post:
description: Get the delivery price for a rental for a given location
operationId: getDeliveryPrice
parameters:
- x-go-name: RentalID
name: rental_id
in: path
required: true
schema:
type: integer
format: int64
responses:
'200':
$ref: '#/components/responses/deliveryPriceResponse'
'400':
$ref: '#/components/responses/badRequestError'
'401':
$ref: '#/components/responses/unauthorizedError'
'404':
$ref: '#/components/responses/notFoundError'
default:
$ref: '#/components/responses/genericError'
tags:
- Rentals
security:
- Bearer:
- '[]'
- API-Key:
- '[]'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryRequest'
required: true
/availability:
get:
tags:
- Rentals
summary: Returns list of available rentals for a given date range.
operationId: listAvailability
parameters:
- x-go-name: RentalID
name: rental_id
in: query
schema:
type: integer
format: int64
- x-go-name: OwnerID
name: owner_id
in: query
schema:
type: integer
format: int64
- x-go-name: CampgroundID
name: campground_id
in: query
schema:
type: integer
format: int64
- x-go-name: From
name: from
in: query
schema:
type: string
- x-go-name: To
name: to
in: query
schema:
type: string
- x-go-name: OverrideProtections
name: override_protections
in: query
schema:
type: boolean
- x-go-name: IncludeChildren
name: include_children
in: query
schema:
type: boolean
- x-go-name: BookingID
name: booking_id
in: query
schema:
type: integer
format: int64
- description: 'IncludeMarketplaceOnlyBlocks, if true, includes unavailable bookings
marked with outdoorsy_marketplace_only metadata. By default, these blocks
are excluded. Set to true for Outdoorsy marketplace bookings (combo bookings).'
name: IncludeMarketplaceOnlyBlocks
in: query
schema:
type: boolean
responses:
'200':
$ref: '#/components/responses/listAvailabilityResponse'
'401':
$ref: '#/components/responses/unauthorizedError'
'404':
$ref: '#/components/responses/notFoundError'
security:
- Bearer:
- '[]'
- API-Key:
- '[]'
/rentals:
get:
description: GET /rentals/{rental_id}/fleet-vehicle
tags:
- Rentals
summary: 'Read many rentals
GetFleetVehicle retrieves vehicle data from the Fleet service for a rental.
This includes real-time information like odometer reading, connection status, and other attributes.
The frontend can use this data to update mileage fields or display vehicle status.'
operationId: listRentals
parameters:
- x-go-name: Near
name: near
in: query
schema:
type: string
- x-go-name: Radius
name: radius
in: query
schema:
type: number
format: double
- x-go-name: From
name: from
in: query
schema:
type: string
- x-go-name: To
name: to
in: query
schema:
type: string
- x-go-name: CreatedFrom
name: created_from
in: query
schema:
type: string
- x-go-name: CreatedTo
name: created_to
in: query
schema:
type: string
- x-go-name: Sleeps
name: sleeps
in: query
schema:
type: integer
format: int64
- x-go-name: SleepsAdults
name: sleeps_adults
in: query
schema:
type: integer
format: int64
- x-go-name: SleepsKids
name: sleeps_kids
in: query
schema:
type: integer
format: int64
- x-go-name: Seatbelts
name: seatbelts
in: query
schema:
type: integer
format: int64
- x-go-name: Type
name: type
in: query
schema:
type: string
- x-go-name: PriceMin
name: price_min
in: query
schema:
type: integer
format: int64
- x-go-name: PriceMax
name: price_max
in: query
schema:
type: integer
format: int64
- x-go-name: YearMin
name: year_min
in: query
schema:
type: integer
format: int64
- x-go-name: YearMax
name: year_max
in: query
schema:
type: integer
format: int64
- x-go-name: Order
name: order
in: query
schema:
type: string
- x-go-name: OwnerID
name: owner_id
in: query
schema:
type: integer
format: int64
- x-go-name: Limit
name: limit
in: query
schema:
type: integer
format: int64
- x-go-name: Unlimited
name: unlimited
in: query
schema:
type: string
- x-go-name: Offset
name: offset
in: query
schema:
type: integer
format: int64
- x-go-name: Status
name: status
in: query
schema:
type: string
- x-go-name: BoundsNE
name: bounds_NE
in: query
schema:
type: string
- x-go-name: BoundsSW
name: bounds_SW
in: query
schema:
type: string
- x-go-name: InsuranceState
name: insurance_state
in: query
schema:
type: string
- x-go-name: Exclude
name: exclude
in: query
schema:
type: string
- x-go-name: LocationID
name: location_id
in: query
schema:
type: integer
format: int64
- x-go-name: LocationIDs
name: location_ids
in: query
schema:
type: string
- x-go-name: Hidden
name: hidden
in: query
schema:
type: string
- x-go-name: IncludeVariableFees
name: include_variable_fees
in: query
schema:
type: string
- x-go-name: IDs
name: ids
in: query
schema:
type: string
- x-go-name: Address
name: address
in: query
schema:
type: string
- x-go-name: ParentID
name: parent_id
in: query
schema:
type: integer
format: int64
- x-go-name: IncludeChildren
name: include_children
in: query
schema:
type: string
- x-go-name: Locale
name: locale
in: query
schema:
type: string
- x-go-name: PresentmentCurrency
name: presentment_currency
in: query
schema:
type: string
- x-go-name: RentalCategory
name: rental_category
in: query
schema:
type: string
security:
- Bearer:
- '[]'
- API-Key:
- '[]'
responses: {}
post:
description: Create rental
tags:
- Rentals
operationId: createRentalRequest
parameters:
- $ref: '#/components/schemas/RentalImages'
x-go-name: Images
name: images
in: query
- x-go-name: ID
name: id
in: query
schema:
type: integer
format: int64
- x-go-name: Name
name: name
in: query
schema:
type: string
- x-go-name: VehicleTitle
name: vehicle_title
in: query
schema:
type: string
- x-go-name: Type
name: type
in: query
schema:
type: string
- x-go-name: Description
name: description
in: query
schema:
type: string
- x-go-name: Sleeps
name: sleeps
in: query
schema:
type: integer
format: int64
- x-go-name: Seatbelts
name: seatbelts
in: query
schema:
type: integer
format: int64
- x-go-name: MinimumRenterAge
name: minimum_renter_age
in: query
schema:
type: integer
format: int64
- x-go-name: SleepsAdults
name: sleeps_adults
in: query
schema:
type: integer
format: int64
- x-go-name: SleepsKids
name: sleeps_kids
in: query
schema:
type: integer
format: int64
- x-go-name: Summary
name: summary
in: query
schema:
type: string
- $ref: '#/components/schemas/DBInterfaceMap'
x-go-name: Features
name: features
in: query
- $ref: '#/components/schemas/Price'
x-go-name: Price
name: price
in: query
- $ref: '#/components/schemas/activePrice'
x-go-name: ActivePrice
name: active_price
in: query
- $ref: '#/components/schemas/activeOptions'
x-go-name: ActiveOptions
name: active_options
in: query
- $ref: '#/components/schemas/Home'
x-go-name: Home
name: home
in: query
- $ref: '#/components/schemas/Vehicle'
x-go-name: Vehicle
name: vehicle
in: query
- x-go-name: Published
name: published
in: query
schema:
type: boolean
- x-go-name: PublishedFieldErrors
name: publish_field_errors
in: query
schema:
type: array
items:
type: string
- x-go-name: UnpublishReason
name: unpublish_reason
in: query
schema:
type: string
- x-go-name: LastUnpublishDate
x-go-type: github.com/outdoorsy/api/clocks.RfcTime
name: last_unpublish_date
in: query
schema:
type: string
- x-go-name: GroupOnMap
name: group_on_map
in: query
schema:
type: boolean
- x-go-name: PrimaryImageURL
name: primary_image_url
in: query
schema:
type: string
- x-go-name: PrimaryImageID
name: primary_image_id
in: query
schema:
type: integer
format: int64
- x-go-name: InteriorPrimaryImageURL
name: interior_primary_image_url
in: query
schema:
type: string
- x-go-name: InteriorPrimaryImageID
name: interior_primary_image_id
in: query
schema:
type: integer
format: int64
- $ref: '#/components/schemas/DBMSISlice'
x-go-name: CheckoutQuestions
name: checkout_questions
in: query
- x-go-name: HasCheckoutQuestions
name: has_checkout_questions
in: query
schema:
type: boolean
- x-go-name: Position
name: position
in: query
schema:
type: integer
format: int64
- x-go-name: External
name: external
in: query
schema:
type: boolean
- $ref: '#/components/schemas/DBInterfaceMap'
x-go-name: Settings
name: settings
in: query
- $ref: '#/components/schemas/DBInterfaceMap'
x-go-name: ListingSteps
name: listing_steps
in: query
- x-go-name: DescriptionIncluded
name: description_included
in: query
schema:
type: string
- x-go-name: DescriptionRecommendations
name: description_recommendations
in: query
schema:
type: string
- x-go-name: DescriptionOther
name: description_other
in: query
schema:
type: string
- $ref: '#/components/schemas/PrepFee'
x-go-name: PrepFee
name: prep_fee
in: query
- $ref: '#/components/schemas/UnitLocale'
x-go-name: Locale
name: locale
in: query
- $ref: '#/components/schemas/Plan'
x-go-name: InsurancePlan
name: insurance_plan_id
in: query
- x-go-name: WaivedInsuranceText
name: waived_insurance_text
in: query
schema:
type: string
- x-go-name: CustomInsuranceText
name: custom_insurance_text
in: query
schema:
type: string
- x-go-name: InsuranceCoverage
name: insurance_coverage
in: query
schema:
type: string
- x-go-name: RequireRoadside
name: require_roadside
in: query
schema:
type: boolean
- x-go-name: CurrentLocationID
name: current_location_id
in: query
schema:
type: integer
format: int64
- x-go-name: MileageUsageItem
name: mileage_usage_item_id
in: query
schema:
type: integer
format: int64
- x-go-name: GeneratorUsageItem
name: generator_usage_item_id
in: query
schema:
type: integer
format: int64
- x-go-name: DeliveryUsageItem
name: delivery_usage_item_id
in: query
schema:
type: integer
format: int64
- x-go-name: CancelPolicy
description: 'configurable rental options. must be stored as a pointer so we can know
if it is unset in the database or not and fall back to the user level'
name: cancel_policy
in: query
schema:
type: string
- x-go-name: CancelPolicyComboBookings
name: cancel_policy_combo_bookings
in: query
schema:
type: string
- $ref: '#/components/schemas/NullFloat64'
x-go-name: DepositPercentage
name: deposit_percentage
in: query
- x-go-name: MinimumDeposit
name: minimum_deposit
in: query
schema:
type: integer
format: int64
- x-go-name: MinimumDays
name: minimum_days
in: query
schema:
type: integer
format: int64
- x-go-name: InstantBook
name: instant_book
in: query
schema:
type: boolean
- x-go-name: InstantBookLeeway
name: instant_book_leeway
in: query
schema:
type: integer
format: int64
- x-go-name: InstantBookType
name: instant_book_type
in: query
schema:
type: string
- x-go-name: RequestLessThanMinimumDays
name: request_less_than_minimum_days
in: query
schema:
type: integer
format: int64
- x-go-name: InsuranceRenterAdjustable
name: insurance_renter_adjustable
in: query
schema:
type: boolean
- x-go-name: TurnaroundDaysAfter
name: turnaround_days_after
in: query
schema:
type: integer
format: int64
- x-go-name: BookingLeewayDays
name: booking_leeway_days
in: query
schema:
type: integer
format: int64
- x-go-name: RequireInsurance
name: require_insurance
in: query
schema:
type: boolean
- x-go-name: SmartPricingEnabled
name: smart_pricing_enabled
in: query
schema:
type: boolean
- x-go-name: SmartPricingMode
name: smart_pricing_mode
in: query
schema:
type: string
- x-go-name: SmartPricingMin
name: smart_pricing_min
in: query
schema:
type: integer
format: int64
- x-go-name: SmartPricingMax
name: smart_pricing_max
in: query
schema:
type: integer
format: int64
- x-go-name: NYInsuranceWarning
name: ny_insurance_warning
in: query
schema:
type: boolean
- x-go-name: OneWayRentalRequests
name: one_way_rental_requests
in: query
schema:
type: boolean
- x-go-name: OneWayRentalMaximumRadius
name: one_way_rental_maximum_radius
in: query
schema:
type: integer
format: int64
- $ref: '#/components/schemas/TaxRate'
x-go-name: TaxRate
name: tax_rate_id
in: query
- x-go-name: TaxRateIDs
name: tax_rate_ids
in: query
schema:
type: array
items:
type: integer
format: int64
- x-go-name: ExemptRentalSalesTax
name: exempt_rental_sales_tax
in: query
schema:
type: boolean
- $ref: '#/components/schemas/RentalConsignment'
x-go-name: Consignment
name: consignment
in: query
- x-go-name: Items
name: items
in: query
schema:
type: array
items:
$ref: '#/components/schemas/RentalItem'
- x-go-name: InstantBookBanned
description: Rental-level instant book ban (stored in metadata, combo bookings only)
name: instant_book_banned
in: query
schema:
type: boolean
- x-go-name: InstantBookBanDate
name: instant_book_ban_date
in: query
schema:
type: string
- x-go-name: OriginalURL
description: Importing
name: original_url
in: query
schema:
type: string
- x-go-name: InternalNotes
name: internal_notes
in: query
schema:
type: string
- x-go-name: Created
x-go-type: github.com/outdoorsy/api/clocks.RfcTime
description: Admin, owner Fields
name: created
in: query
schema:
type: string
- x-go-name: LastPublished
x-go-type: github.com/outdoorsy/api/clocks.RfcTime
name: last_published
in: query
schema:
type: string
- x-go-name: FirstPublished
x-go-type: github.com/outdoorsy/api/clocks.RfcTime
name: first_published
in: query
schema:
type: string
- x-go-name: SnoozeExpirationDate
name: snooze_expiration_date
in: query
schema:
type: string
- x-go-name: Updated
x-go-type: github.com/outdoorsy/api/clocks.RfcTime
name: updated
in: query
schema:
type: string
- x-go-name: Sort
description: Admin Fields
name: sort
in: query
schema:
type: number
format: double
- $ref: '#/components/schemas/DBInterfaceMap'
x-go-name: SortMetrics
name: sort_metrics
in: query
- x-go-name: Hidden
name: hidden
in: query
schema:
type: boolean
- x-go-name: HiddenReason
name: hidden_reason
in: query
schema:
type: string
- x-go-name: ImportID
name: import_id
in: query
schema:
type: string
- x-go-name: InternalID
name: internal_id
in: query
schema:
type: string
- x-go-name: RoamlyPolicyNumber
name: roamly_policy_number
in: query
schema:
type: string
- x-go-name: Inactive
name: inactive
in: query
schema:
type: boolean
- x-go-name: ExternalSiteURL
name: external_site_url
in: query
schema:
type: string
- x-go-name: AutoInsuranceType
name: auto_insurance_type
in: query
schema:
type: string
- $ref: '#/components/schemas/DistributedRatings'
x-go-name: DistributedRatings
name: distributed_ratings
in: query
- $ref: '#/components/schemas/AverageRatings'
x-go-name: AverageRatings
name: average_ratings
in: query
- $ref: '#/components/schemas/AverageReviews'
x-go-name: AverageReviews
name: average_reviews
in: query
- $ref: '#/components/schemas/ReviewScores'
x-go-name: ReviewScores
name: review_scores
in: query
- $ref: '#/components/schemas/RentalFullReview'
x-go-name: LatestReview
description: special fields populated before response, but not stored in DB
name: latest_review
in: query
- $ref: '#/components/schemas/VinCheck'
x-go-name: VinCheck
name: vin_check
in: query
- x-go-name: HasCompletedLYRV
name: has_completed_lyrv
in: query
schema:
type: boolean
- x-go-name: TuroVehicleID
name: turo_vehicle_id
in: query
schema:
type: string
- x-go-name: TollspotID
name: tollspot_id
in: query
schema:
type: integer
format: int64
- x-go-name: RejectedImagesCount
description: holds the count of images with status rejected and ignore rejected false
name: rejected_images_count
in: query
schema:
type: integer
format: int64
- $ref: '#/components/schemas/IMap'
x-go-name: Metadata
name: metadata
in: query
- x-go-name: CanManageTaxRates
description: used by dashboard to disable tax editing
name: can_manage_tax_rates
in: query
schema:
type: boolean
- x-go-name: UseSystemTaxRates
description: used by rental listing page to display system tax notice
name: use_system_tax_rates
in: query
schema:
type: boolean
- x-go-name: IsEligibleForSystemTaxRates
description: For wheelbase so we can show when a rental will use system tax rates
name: eligible_for_system_tax_rates
in: query
schema:
type: boolean
- x-go-name: IsEligibleForCustomTaxRates
description: We allow custom taxes for Quebec which has also system tax rates
name: eligible_for_custom_tax_rates
in: query
schema:
type: boolean
- x-go-name: ParentID
description: grouping functionality
name: parent_id
in: query
schema:
type: integer
format: int64
- x-go-name: ImagesVerified
description: moderation
name: images_verified
in: query
schema:
type: boolean
- x-go-name: ImagesVerifiedBy
name: images_verified_by
in: query
schema:
type: integer
format: int64
- x-go-name: PhotoScore
name: photo_score
in: query
schema:
type: integer
format: int64
- x-go-name: ReviewStatus
name: review_status
in: query
schema:
type: string
- x-go-name: ReviewNotes
name: review_notes
in: query
schema:
type: string
- x-go-name: Tags
name: tags
in: query
schema:
type: array
items:
$ref: '#/components/schemas/TagRental'
- x-go-name: FreeFormTyped
description: free form typed flag
name: free_form_typed
in: query
schema:
type: boolean
- $ref: '#/components/schemas/StayDetails'
x-go-name: Stay
name: stay
in: query
- $ref: '#/components/schemas/CampsiteCategory'
x-go-name: CampsiteCategory
name: campsite_category
in: query
- x-go-name: RentalCategory
name: rental_category
in: query
schema:
type: string
- x-go-name: CheckIn
name: check_in
in: query
schema:
type: integer
format: int64
- x-go-name: CheckOut
name: check_out
in: query
schema:
type: integer
format: int64
- x-go-name: BypassNewYorkRegulations
description: Admins can mark a vehicle to bypass New York regulations check
name: bypass_new_york_regulations
in: query
schema:
type: boolean
- $ref: '#/components/schemas/PetFee'
x-go-name: PetFee
name: pet_fee
in: query
- x-go-name: ODStaysOptIn
name: od_stays_opt_in
in: query
schema:
type: boolean
- x-go-name: ODStaysOptInEligible
name: od_stays_opt_in_eligible
in: query
schema:
type: boolean
- x-go-name: ODStaysOptInMissingRequirements
name: od_stays_opt_in_missing_requirements
in: query
schema:
type: array
items:
type: string
- x-go-name: SDWaiverEnabled
name: sd_waiver_enabled
in: query
schema:
type: boolean
responses:
'200':
$ref: '#/components/responses/createRentalResponse'
'400':
$ref: '#/components/responses/badRequestError'
'401':
$ref: '#/components/responses/unauthorizedError'
'404':
$ref: '#/components/responses/notFoundError'
default:
$ref: '#/components/responses/genericError'
security:
- Bearer:
- '[]'
- API-Key:
- '[]'
/rentals/vehicle-types:
get:
description: Read available vehicle types and return them in 2 arrays - towables and drivables
tags:
- Rentals
operationId: listVehicleTypes
parameters:
- $ref: '#/components/schemas/RentalTypesOptions'
name: Body
in: query
responses:
'200':
$ref: '#/components/responses/getVehicleTypesResponse'
'400':
$ref: '#/components/responses/badRequestError'
default:
$ref: '#/components/responses/genericError'
security:
- Bearer:
- '[]'
- API-Key:
- '[]'
/rentals/{id}:
get:
description: Read one rental
tags:
- Rentals
operationId: getRentalById
parameters:
- x-go-name: ID
name: id
in: path
required: true
schema:
type: integer
format: int64
responses:
'200':
$ref: '#/components/responses/getRentalResponse'
'400':
$ref: '#/components/responses/badRequestError'
'401':
$ref: '#/components/responses/unauthorizedError'
'404':
$ref: '#/components/responses/notFoundError'
default:
$ref: '#/components/responses/genericError'
security:
- Bearer:
- '[]'
- API-Key:
- '[]'
delete:
description: Delete rental
tags:
- Rentals
operationId: deleteRentalById
parameters:
- x-go-name: ID
name: id
in: path
required: true
schema:
type: integer
format: int64
responses:
'204':
$ref: '#/components/responses/noContentResponse'
'401':
$ref: '#/components/responses/unauthorizedError'
'404':
$ref: '#/components/responses/notFoundError'
default:
$ref: '#/components/responses/genericError'
security:
- Bearer:
- '[]'
- API-Key:
- '[]'
patch:
description: Update rental
tags:
- Rentals
operationId: updateRentalRequest
parameters:
- x-go-name: ID
name: id
in: path
required: true
schema:
type: integer
format: int64
responses:
'200':
$ref: '#/components/responses/updateRentalResponse'
'400':
$ref: '#/components/responses/badRequestError'
'401':
$ref: '#/components/responses/unauthorizedError'
'404':
$ref: '#/components/responses/notFoundError'
default:
$ref: '#/components/responses/genericError'
security:
- Bearer:
- '[]'
- API-Key:
- '[]'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Rental'
/rentals/{id}/complete-consignment:
post:
tags:
- Rentals
summary: Create consignment for a rental.
operationId: consignmentCompleteResponse
responses:
'200':
$ref: '#/components/responses/consignmentCompleteResponse'
'400':
$ref: '#/components/responses/badRequestError'
'401':
$ref: '#/components/responses/unauthorizedError'
'404':
$ref: '#/components/responses/notFoundError'
default:
$ref: '#/components/responses/genericError'
security:
- Bearer:
- '[]'
- API-Key:
- '[]'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConsignmentRequest'
/rentals/{id}/duplicate:
post:
description: Duplicate a rental
tags:
- Rentals
operationId: duplicateRental
parameters:
- x-go-name: ID
name: id
in: path
required: true
schema:
type: integer
format: int64
responses:
'200':
$ref: '#/components/responses/createRentalResponse'
'400':
$ref: '#/components/responses/badRequestError'
'401':
$ref: '#/components/responses/unauthorizedError'
'404':
$ref: '#/components/responses/notFoundError'
default:
$ref: '#/components/responses/genericError'
security:
- Bearer:
- '[]'
- API-Key:
- '[]'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Rental'
/rentals/{id}/price:
patch:
description: Update Rental Price
tags:
- Rentals
operationId: updateRentalPriceRequest
parameters:
- x-go-name: ID
name: id
in: path
required: true
schema:
type: integer
format: int64
responses:
'204':
$ref: '#/components/responses/noContentResponse'
'401':
$ref: '#/components/responses/unauthorizedError'
'404':
$ref: '#/components/responses/notFoundError'
default:
$ref: '#/components/responses/genericError'
security:
- Bearer:
- '[]'
- API-Key:
- '[]'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RentalPriceRequest'
/rentals/{id}/remove:
post:
description: Remove rental
tags:
- Rentals
operationId: rentalRemoveRequest
parameters:
- x-go-name: ID
name: id
in: path
required: true
schema:
type: integer
format: int64
responses:
'204':
$ref: '#/components/responses/noContentResponse'
'400':
$ref: '#/components/responses/badRequestError'
'401':
$ref: '#/components/responses/unauthorizedError'
'404':
$ref: '#/components/responses/notFoundError'
default:
$ref: '#/components/responses/genericError'
security:
- Bearer:
- '[]'
- API-Key:
- '[]'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RentalRemoveRequest'
/rentals/{id}/vin:
patch:
# --- truncated at 32 KB (187 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/outdoorsy/refs/heads/main/openapi/outdoorsy-rentals-api-openapi.yml