---
title: "POST /rentals/{id}/duplicate"
method: POST
path: "/rentals/{id}/duplicate"
tags: ["rentals"]
---

# POST /rentals/{id}/duplicate

`POST /rentals/{id}/duplicate`

Duplicate a rental

## Path parameters

- `id` integer, required

## Request body

- Rental — # A rental is owned by a user # A rental is all the things about an RV
  - `active_options` ActiveOptions
    - `cancel_policy` string
    - `cancel_policy_combo_bookings` string
    - `instant_book` boolean
    - `instant_book_disabled_reason` string
    - `insurance_coverage` string
    - `minimum_nights` integer
    - `use_day_pricing` boolean
    - `use_tax_inclusive_pricing` boolean
  - `active_price` ActivePrice
    - `base_day` integer
    - `day` integer
    - `month` integer
    - `tax` integer
    - `week` integer
  - `auto_insurance_type` string
  - `average_ratings` AverageRatings
    - `cleanliness_score` number, double
    - `cleanliness_score_percentage` number, double
    - `communication_score` number, double
    - `communication_score_percentage` number, double
    - `listing_score` number, double
    - `listing_score_percentage` number, double
    - `mechanical_score` number, double
    - `mechanical_score_percentage` number, double
    - `score` number, double
    - `score_percentage` number, double
    - `value_score` number, double
    - `value_score_percentage` number, double
  - `average_reviews` AverageReviews
    - `owner` AverageReviewsScores[]
      - `key` string
      - `name` string
      - `percentage` number, double
      - `score` number, double
    - `rental` AverageReviewsScores[]
      - `key` string
      - `name` string
      - `percentage` number, double
      - `score` number, double
    - `score` number, double
  - `booking_leeway_days` integer, nullable
  - `bypass_new_york_regulations` boolean — Admins can mark a vehicle to bypass New York regulations check
  - `campsite_category` CampsiteCategory
    - `active_rate_plan` string
    - `bathrooms` integer
    - `bedrooms` integer
    - `beds` integer
    - `campground_id` integer
    - `campground_name` string
    - `campground_site_map_url` string
    - `category_type` string
    - `checkout_questions` CampsiteCategoryQuestion[]
      - `included` boolean
      - `label` string
      - `value` string
    - `created` string
    - `deleted` boolean
    - `description` string
    - `display_category_type` string
    - `display_max_vehicle_length` string
    - `display_site_type` string
    - `enabled_for_rental_categories` MSI
    - `external_id` string
    - `features` MSI
    - `has_pricing` boolean
    - `id` integer
    - `is_odn` boolean
    - `max_occupancy` integer
    - `max_occupancy_adult` integer
    - `max_occupancy_kids` integer
    - `max_parking_spaces` integer
    - `max_vehicle_length` number, double
    - `name` string
    - `owner_id_int` integer
    - `parking_onsite` boolean
    - `pet_fee` PetFee
      - `amount` integer
      - `created` string
      - `daily` boolean
      - `id` integer
      - `max_count` integer
      - `rental_id` integer
      - `updated` string
    - `quantity` integer
    - `rental_id_int` integer
    - `rv_rental_id_int` integer
    - `site_type` string
    - `slug` string
    - `supplier_category_id` integer
    - `updated` string
  - `can_manage_tax_rates` boolean — used by dashboard to disable tax editing
  - `cancel_policy` string, nullable
  - `cancel_policy_combo_bookings` string, nullable
  - `check_in` integer
  - `check_out` integer
  - `checkout_questions` object[] — DBMSISlice is a []string with database conversion methods
  - `consignment` RentalConsignment
    - `consignment_completed` boolean
    - `interested_in_consignment` boolean
    - `keep_pct_cc_fee` NullFloat64 — NullFloat64 implements the [Scanner] interface so it can be used as a scan destination, similar to [NullString].
      - `Float64` number, double
      - `Valid` boolean
    - `keep_pct_insurance_fee` NullFloat64 — NullFloat64 implements the [Scanner] interface so it can be used as a scan destination, similar to [NullString].
      - `Float64` number, double
      - `Valid` boolean
    - `owner_id` integer
    - `pay_pct` NullFloat64 — NullFloat64 implements the [Scanner] interface so it can be used as a scan destination, similar to [NullString].
      - `Float64` number, double
      - `Valid` boolean
    - `pay_pct_generator` NullFloat64 — NullFloat64 implements the [Scanner] interface so it can be used as a scan destination, similar to [NullString].
      - `Float64` number, double
      - `Valid` boolean
    - `pay_pct_mileage` NullFloat64 — NullFloat64 implements the [Scanner] interface so it can be used as a scan destination, similar to [NullString].
      - `Float64` number, double
      - `Valid` boolean
  - `created` string — Admin, owner Fields
  - `current_location_id` integer
  - `custom_insurance_text` string, nullable
  - `delivery_usage_item_id` integer
  - `deposit_percentage` NullFloat64 — NullFloat64 implements the [Scanner] interface so it can be used as a scan destination, similar to [NullString].
    - `Float64` number, double
    - `Valid` boolean
  - `description` string
  - `description_included` string
  - `description_other` string
  - `description_recommendations` string
  - `distributed_ratings` DistributedRatings
    - `score` object
      - `r1` number, double
      - `r2` number, double
      - `r3` number, double
      - `r4` number, double
      - `r5` number, double
  - `eligible_for_custom_tax_rates` boolean — We allow custom taxes for Quebec which has also system tax rates
  - `eligible_for_system_tax_rates` boolean — For wheelbase so we can show when a rental will use system tax rates
  - `exempt_rental_sales_tax` boolean
  - `external` boolean, nullable
  - `external_site_url` string
  - `features` unknown
  - `first_published` string
  - `free_form_typed` boolean — free form typed flag
  - `generator_usage_item_id` integer
  - `group_on_map` boolean
  - `has_checkout_questions` boolean
  - `has_completed_lyrv` boolean
  - `hidden` boolean
  - `hidden_reason` string, nullable
  - `home` Home
    - `city` string
    - `country` string
    - `county` string
    - `lat` number, double
    - `lng` number, double
    - `state` string
    - `street` string
    - `street_etc` string
    - `zip` string
  - `id` integer
  - `images` RentalImage[]
    - `ai_aesthetic_score` number, double
    - `ai_description` string
    - `ai_position` integer
    - `ai_summary` string
    - `amenity` RentalImageAmenity — RentalImageAmenity is used to relate a RentalImage with an Amenity (this is a 1 to 1 relationship)
      - `description` string
      - `name` string
      - `slug` string
    - `best` boolean
    - `category` MediaCategory
      - `name` string
      - `slug` string
    - `description` string
    - `height` integer
    - `id` integer
    - `ignore_rejected` boolean
    - `interior_primary` boolean
    - `position` integer
    - `primary` boolean
    - `rental_id` integer
    - `review` RentalImageReview
      - `apply_credit` boolean — special incoming field, not stored in DB
      - `booking_id` integer
      - `booking_summary` BookingSummary
        - `from` string
        - `id` integer
        - `to` string
      - `can_edit` boolean
      - `can_edit_until` string
      - `cleanliness_score` number, double
      - `communication_score` number, double
      - `deleted` string, date-time — clocks.RfcTime was resulting in 0001-01-01 which I want to avoid. it should be null or a real date
      - `exclude_from_rating` boolean
      - `id` integer
      - `images` string[] — DBStringSlice is a []string with database conversion methods
      - `imported` boolean — used for imported reviews only
      - `listing_score` number, double
      - `mechanical_score` number, double
      - `name` string
      - `outdoorsy_only` boolean
      - `owner` ReviewOwner
        - `avatar_url` string
        - `first_name` string
        - `id` integer
        - `last_name` string
      - `owner_can_respond` boolean
      - `owner_response` OwnerResponseReview
        - `text` string
        - `timestamp` string
      - `published` boolean
      - `rental_id` integer
      - `rental_summary` RentalSummary
        - `campsite_summary` CampsiteSummary
          - `beds` integer
          - `campground_id` integer
          - `campground_name` string
          - `campground_sitemap_url` string
          - `display_campsite_type` string
          - `display_max_vehicle_length` string
          - `display_site_type` string
          - `is_odn` boolean
          - `rental_id` integer
          - `site_type` string
          - `sleeps` integer
          - `type` string
        - `disallow_movement` boolean
        - `display_type` string
        - `formatted_length` string
        - `id` integer
        - `interior_primary_image_url` string
        - `internal_id` string
        - `location` string
        - `name` string
        - `primary_image_url` string
        - `rental_category` string
        - `sleeps` integer
        - `slug` string
        - `stay_summary` StaySummary
          - `baths` integer
          - `bedrooms` integer
          - `beds` integer
          - `check_in_type` string
          - `display_stay_type` string
          - `location_description` string
          - `max_parking_spaces` integer
          - `parking_onsite` boolean
          - `rental_id` integer
          - `sleeps` integer
          - `type` string
        - `style` string
        - `type` string
      - `rental_tags` TagRental[]
        - `Created` string
        - `ID` integer
        - `Name` string
        - `Slug` string
        - `Updated` string
        - `position` integer
        - `usage_by_rental_count` integer
      - `review_image_id` string
      - `review_images` ReviewImage[]
        - `created` string, date-time
        - `id` string — ID is the type used throughout the system to identify a unique object. It properly handles marshaling for both json and sql databases. It properly handles null values in the database as well.
        - `lat` number, double
        - `lng` number, double
        - `rental_id` string
        - `review_id` string
        - `reviewed` boolean
        - `reviewed_by` string
        - `status` string
        - `updated` string, date-time
        - `url` string
      - `reviewer` Reviewer
        - `avatar_url` string
        - `first_name` string
        - `id` integer
        - `last_name` string
      - `reviewer_id` integer
      - `score` number, double — Review Types
      - `source_page` string
      - `tags` Tag[] — Tags are saved on tag_rental_join
        - `allow_for_review` boolean
        - `created` string
        - `description` string
        - `id` integer
        - `name` string
        - `owner_user_id` integer, nullable
        - `position` integer
        - `slug` string
        - `updated` string
      - `text` string
      - `timestamp` string
      - `user_id` integer
      - `user_recommend` boolean
      - `value_score` number, double
    - `skip_enhance` boolean
    - `status` string
    - `tags` string
    - `title` string
    - `url` string
    - `video` boolean
    - `width` integer
  - `images_verified` boolean, nullable
  - `images_verified_by` integer, nullable
  - `import_id` string
  - `inactive` boolean
  - `instant_book` boolean, nullable
  - `instant_book_ban_date` string
  - `instant_book_banned` boolean — Rental-level instant book ban (stored in metadata, combo bookings only)
  - `instant_book_leeway` integer, nullable
  - `instant_book_type` string
  - `insurance_coverage` string
  - `insurance_plan_id` Plan
    - `allow_unregistered` boolean
    - `approved_vehicle_types` string[] — DBStringSlice is a []string with database conversion methods
    - `bundle_required` boolean
    - `claims_number` string
    - `comp_policy_url` string
    - `comprehensive_coverage` boolean
    - `comprehensive_maximum` string
    - `country` string
    - `created` string
    - `created_by_id` integer, nullable
    - `dealer_only` boolean
    - `hidden` boolean
    - `id` integer — The fields below are returned in the minimum response when this insurance plan is an element inside a rental
    - `insurance_address_1` string
    - `insurance_city` string
    - `insurance_end_date` string
    - `insurance_name` string
    - `insurance_plan_override` PlanOverride
      - `created` string
      - `dealer_owned_owner_fee_percentage` number, double
      - `dealer_owned_renter_fee_percentage` number, double
      - `id` integer
      - `insurance_plan_id` Plan — recursive
      - `owner_fee_percentage` number, double
      - `owner_id` integer
      - `renter_fee_percentage` number, double
      - `updated` string
    - `insurance_policy_number` string
    - `insurance_start_date` string
    - `insurance_state` string
    - `insurance_zip` string
    - `insured_address_1` string
    - `insured_city` string
    - `insured_name` string
    - `insured_state` string
    - `insured_zip` string
    - `label` string
    - `last_updated_by_id` integer, nullable
    - `liability_coverage` boolean
    - `liability_maximum` string
    - `liability_policy_url` string
    - `locality` string
    - `minimum_daily_fee` integer
    - `minimum_year` integer
    - `owner_comprehensive_deductible` string
    - `owner_fee_percentage` number, double
    - `owner_liability_deductible` string
    - `owner_liability_maximum` string
    - `rental_category` string
    - `renter_comprehensive_deductible` string
    - `renter_fee_percentage` number, double
    - `renter_liability_deductible` string
    - `renter_liability_maximum` string
    - `requires_driver_verification` boolean
    - `tiered` boolean
    - `updated` string
  - `insurance_renter_adjustable` boolean, nullable
  - `interior_primary_image_id` integer
  - `interior_primary_image_url` string
  - `internal_id` string
  - `internal_notes` string
  - `items` RentalItem[]
    - `applies_to_type` string[] — DBStringSlice is a []string with database conversion methods
    - `available` integer
    - `category` string
    - `category_id` integer
    - `consigned_pay_pct` number, double — consigned owner support
    - `created` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
    - `daily` boolean
    - `deferred` boolean
    - `description` string
    - `hidden` boolean
    - `id` integer
    - `image_url` string
    - `ledger_account_number` integer
    - `location_id` integer
    - `location_ids` integer[]
    - `maximum_price` integer, nullable
    - `metadata` unknown
    - `minimum_price` integer, nullable
    - `name` string
    - `percent` number, double
    - `percent_type` string
    - `position` integer
    - `presentment_currency` string
    - `price` integer
    - `rental_items_category_id` integer, nullable
    - `rental_items_category_name` string
    - `rental_items_category_owner_name` string
    - `rental_items_category_reason` string
    - `rental_items_category_requested_name` string
    - `rental_items_category_status` string
    - `required` boolean
    - `settlement_currency` string
    - `tax` integer — total tax - calculated
    - `tax_rate_id` TaxRate
      - `archived` boolean
      - `created` string
      - `description` string
      - `id` integer
      - `marketplace` boolean
      - `name` string
      - `owner_id` integer
      - `rate` number, double
      - `state` string — carry through to booking_tax_rates table from avalara
      - `updated` string
      - `zip_code` string
    - `tax_rate_ids` integer[]
    - `travelers` integer
    - `updated` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
  - `last_published` string
  - `last_unpublish_date` string
  - `latest_review` RentalFullReview
    - `avatar_url` string
    - `first_name` string
    - `last_name` string
    - `score` number, double
    - `text` string
  - `listing_steps` unknown
  - `locale` UnitLocale
    - `base_currency` string
    - `distance_unit` string
    - `length_unit` string
    - `liquid_unit` string
    - `weight_unit` string
  - `metadata` unknown
  - `mileage_usage_item_id` integer
  - `minimum_days` integer, nullable
  - `minimum_deposit` integer, nullable
  - `minimum_renter_age` integer
  - `name` string
  - `ny_insurance_warning` boolean
  - `od_stays_opt_in` boolean
  - `od_stays_opt_in_eligible` boolean
  - `od_stays_opt_in_missing_requirements` string[]
  - `one_way_rental_maximum_radius` integer, nullable
  - `one_way_rental_requests` boolean, nullable
  - `original_url` string — Importing
  - `parent_id` integer — grouping functionality
  - `pet_fee` PetFee
    - `amount` integer
    - `created` string
    - `daily` boolean
    - `id` integer
    - `max_count` integer
    - `rental_id` integer
    - `updated` string
  - `photo_score` integer, nullable
  - `position` integer
  - `prep_fee` PrepFee
    - `amount` integer
    - `description` string
    - `id` integer
    - `tax_rate_ids` integer[]
  - `price` Price
    - `can_charge_security_deposit` boolean
    - `day` integer — BasePrice *int `json:"base_price" db:"-"`
    - `estimate` integer
    - `minimum_security_deposit` integer
    - `month` integer
    - `price_estimate` PriceEstimate
      - `predictions` PriceEstimatePrediction[]
        - `meta` object
        - `name` string
        - `prediction` number, double
      - `price_est_mean` number, double
    - `security_deposit` integer
    - `week` integer
  - `primary_image_id` integer
  - `primary_image_url` string
  - `publish_field_errors` string[]
  - `published` boolean
  - `rejected_images_count` integer — holds the count of images with status rejected and ignore rejected false
  - `rental_category` string
  - `request_less_than_minimum_days` integer
  - `require_insurance` boolean, nullable
  - `require_roadside` boolean, nullable
  - `review_notes` string, nullable
  - `review_scores` ReviewScores
    - `bayesian_rating` number, double
  - `review_status` string, nullable
  - `roamly_policy_number` string
  - `sd_waiver_enabled` boolean, nullable
  - `seatbelts` integer
  - `settings` unknown
  - `sleeps` integer
  - `sleeps_adults` integer
  - `sleeps_kids` integer
  - `smart_pricing_enabled` boolean
  - `smart_pricing_max` integer
  - `smart_pricing_min` integer
  - `smart_pricing_mode` string
  - `snooze_expiration_date` string
  - `sort` number, double — Admin Fields
  - `sort_metrics` unknown
  - `stay` StayDetails
    - `baths` integer, nullable
    - `bedrooms` integer, nullable
    - `beds` integer, nullable
    - `check_in_type` string
    - `display_stay_type` string
    - `features` unknown
    - `features_other_items` string
    - `location_description` string, nullable
    - `location_highlights_other_items` string
    - `max_parking_spaces` integer, nullable
    - `parking_onsite` boolean, nullable
    - `rental_id` integer
    - `sleeps` integer, nullable
    - `type` string, nullable
  - `summary` string
  - `tags` TagRental[]
    - `Created` string
    - `ID` integer
    - `Name` string
    - `Slug` string
    - `Updated` string
    - `position` integer
    - `usage_by_rental_count` integer
  - `tax_rate_id` TaxRate
    - `archived` boolean
    - `created` string
    - `description` string
    - `id` integer
    - `marketplace` boolean
    - `name` string
    - `owner_id` integer
    - `rate` number, double
    - `state` string — carry through to booking_tax_rates table from avalara
    - `updated` string
    - `zip_code` string
  - `tax_rate_ids` integer[]
  - `tollspot_id` integer
  - `turnaround_days_after` integer, nullable
  - `turo_vehicle_id` string
  - `type` string
  - `unpublish_reason` string
  - `updated` string
  - `use_system_tax_rates` boolean — used by rental listing page to display system tax notice
  - `vehicle` Vehicle
    - `amps` integer
    - `box_length` number, double
    - `class` string
    - `current_generator` number, double
    - `current_lat` number, double
    - `current_lng` number, double
    - `current_mileage` number, double
    - `dry_weight` integer
    - `gvwr` integer
    - `height` number, double
    - `insurance_renewal_month` string
    - `length` number, double
    - `length_with_hitch` number, double
    - `license_plate` string — owner fields
    - `license_plate_country` string
    - `license_plate_state` string
    - `make` string
    - `model` string
    - `replacement_value` string
    - `trim` string
    - `unit_of_measure` string
    - `vin` string
    - `width` number, double
    - `year` integer
  - `vehicle_title` string
  - `vin_check` VinCheck
    - `clean` boolean
    - `created` string
    - `error` string
    - `failed` boolean
    - `forced_approval_by` string
    - `forced_approval_reason` string
    - `id` integer
    - `last_title_date` string
    - `last_title_state` string
    - `raw_response` string
    - `salvage` boolean
    - `status` string — non db attributes
    - `validation_id` string
    - `vin` string
  - `waived_insurance_text` string, nullable

## Response `200`

- Rental — # A rental is owned by a user # A rental is all the things about an RV
  - `active_options` ActiveOptions
    - `cancel_policy` string
    - `cancel_policy_combo_bookings` string
    - `instant_book` boolean
    - `instant_book_disabled_reason` string
    - `insurance_coverage` string
    - `minimum_nights` integer
    - `use_day_pricing` boolean
    - `use_tax_inclusive_pricing` boolean
  - `active_price` ActivePrice
    - `base_day` integer
    - `day` integer
    - `month` integer
    - `tax` integer
    - `week` integer
  - `auto_insurance_type` string
  - `average_ratings` AverageRatings
    - `cleanliness_score` number, double
    - `cleanliness_score_percentage` number, double
    - `communication_score` number, double
    - `communication_score_percentage` number, double
    - `listing_score` number, double
    - `listing_score_percentage` number, double
    - `mechanical_score` number, double
    - `mechanical_score_percentage` number, double
    - `score` number, double
    - `score_percentage` number, double
    - `value_score` number, double
    - `value_score_percentage` number, double
  - `average_reviews` AverageReviews
    - `owner` AverageReviewsScores[]
      - `key` string
      - `name` string
      - `percentage` number, double
      - `score` number, double
    - `rental` AverageReviewsScores[]
      - `key` string
      - `name` string
      - `percentage` number, double
      - `score` number, double
    - `score` number, double
  - `booking_leeway_days` integer, nullable
  - `bypass_new_york_regulations` boolean — Admins can mark a vehicle to bypass New York regulations check
  - `campsite_category` CampsiteCategory
    - `active_rate_plan` string
    - `bathrooms` integer
    - `bedrooms` integer
    - `beds` integer
    - `campground_id` integer
    - `campground_name` string
    - `campground_site_map_url` string
    - `category_type` string
    - `checkout_questions` CampsiteCategoryQuestion[]
      - `included` boolean
      - `label` string
      - `value` string
    - `created` string
    - `deleted` boolean
    - `description` string
    - `display_category_type` string
    - `display_max_vehicle_length` string
    - `display_site_type` string
    - `enabled_for_rental_categories` MSI
    - `external_id` string
    - `features` MSI
    - `has_pricing` boolean
    - `id` integer
    - `is_odn` boolean
    - `max_occupancy` integer
    - `max_occupancy_adult` integer
    - `max_occupancy_kids` integer
    - `max_parking_spaces` integer
    - `max_vehicle_length` number, double
    - `name` string
    - `owner_id_int` integer
    - `parking_onsite` boolean
    - `pet_fee` PetFee
      - `amount` integer
      - `created` string
      - `daily` boolean
      - `id` integer
      - `max_count` integer
      - `rental_id` integer
      - `updated` string
    - `quantity` integer
    - `rental_id_int` integer
    - `rv_rental_id_int` integer
    - `site_type` string
    - `slug` string
    - `supplier_category_id` integer
    - `updated` string
  - `can_manage_tax_rates` boolean — used by dashboard to disable tax editing
  - `cancel_policy` string, nullable
  - `cancel_policy_combo_bookings` string, nullable
  - `check_in` integer
  - `check_out` integer
  - `checkout_questions` object[] — DBMSISlice is a []string with database conversion methods
  - `consignment` RentalConsignment
    - `consignment_completed` boolean
    - `interested_in_consignment` boolean
    - `keep_pct_cc_fee` NullFloat64 — NullFloat64 implements the [Scanner] interface so it can be used as a scan destination, similar to [NullString].
      - `Float64` number, double
      - `Valid` boolean
    - `keep_pct_insurance_fee` NullFloat64 — NullFloat64 implements the [Scanner] interface so it can be used as a scan destination, similar to [NullString].
      - `Float64` number, double
      - `Valid` boolean
    - `owner_id` integer
    - `pay_pct` NullFloat64 — NullFloat64 implements the [Scanner] interface so it can be used as a scan destination, similar to [NullString].
      - `Float64` number, double
      - `Valid` boolean
    - `pay_pct_generator` NullFloat64 — NullFloat64 implements the [Scanner] interface so it can be used as a scan destination, similar to [NullString].
      - `Float64` number, double
      - `Valid` boolean
    - `pay_pct_mileage` NullFloat64 — NullFloat64 implements the [Scanner] interface so it can be used as a scan destination, similar to [NullString].
      - `Float64` number, double
      - `Valid` boolean
  - `created` string — Admin, owner Fields
  - `current_location_id` integer
  - `custom_insurance_text` string, nullable
  - `delivery_usage_item_id` integer
  - `deposit_percentage` NullFloat64 — NullFloat64 implements the [Scanner] interface so it can be used as a scan destination, similar to [NullString].
    - `Float64` number, double
    - `Valid` boolean
  - `description` string
  - `description_included` string
  - `description_other` string
  - `description_recommendations` string
  - `distributed_ratings` DistributedRatings
    - `score` object
      - `r1` number, double
      - `r2` number, double
      - `r3` number, double
      - `r4` number, double
      - `r5` number, double
  - `eligible_for_custom_tax_rates` boolean — We allow custom taxes for Quebec which has also system tax rates
  - `eligible_for_system_tax_rates` boolean — For wheelbase so we can show when a rental will use system tax rates
  - `exempt_rental_sales_tax` boolean
  - `external` boolean, nullable
  - `external_site_url` string
  - `features` unknown
  - `first_published` string
  - `free_form_typed` boolean — free form typed flag
  - `generator_usage_item_id` integer
  - `group_on_map` boolean
  - `has_checkout_questions` boolean
  - `has_completed_lyrv` boolean
  - `hidden` boolean
  - `hidden_reason` string, nullable
  - `home` Home
    - `city` string
    - `country` string
    - `county` string
    - `lat` number, double
    - `lng` number, double
    - `state` string
    - `street` string
    - `street_etc` string
    - `zip` string
  - `id` integer
  - `images` RentalImage[]
    - `ai_aesthetic_score` number, double
    - `ai_description` string
    - `ai_position` integer
    - `ai_summary` string
    - `amenity` RentalImageAmenity — RentalImageAmenity is used to relate a RentalImage with an Amenity (this is a 1 to 1 relationship)
      - `description` string
      - `name` string
      - `slug` string
    - `best` boolean
    - `category` MediaCategory
      - `name` string
      - `slug` string
    - `description` string
    - `height` integer
    - `id` integer
    - `ignore_rejected` boolean
    - `interior_primary` boolean
    - `position` integer
    - `primary` boolean
    - `rental_id` integer
    - `review` RentalImageReview
      - `apply_credit` boolean — special incoming field, not stored in DB
      - `booking_id` integer
      - `booking_summary` BookingSummary
        - `from` string
        - `id` integer
        - `to` string
      - `can_edit` boolean
      - `can_edit_until` string
      - `cleanliness_score` number, double
      - `communication_score` number, double
      - `deleted` string, date-time — clocks.RfcTime was resulting in 0001-01-01 which I want to avoid. it should be null or a real date
      - `exclude_from_rating` boolean
      - `id` integer
      - `images` string[] — DBStringSlice is a []string with database conversion methods
      - `imported` boolean — used for imported reviews only
      - `listing_score` number, double
      - `mechanical_score` number, double
      - `name` string
      - `outdoorsy_only` boolean
      - `owner` ReviewOwner
        - `avatar_url` string
        - `first_name` string
        - `id` integer
        - `last_name` string
      - `owner_can_respond` boolean
      - `owner_response` OwnerResponseReview
        - `text` string
        - `timestamp` string
      - `published` boolean
      - `rental_id` integer
      - `rental_summary` RentalSummary
        - `campsite_summary` CampsiteSummary
          - `beds` integer
          - `campground_id` integer
          - `campground_name` string
          - `campground_sitemap_url` string
          - `display_campsite_type` string
          - `display_max_vehicle_length` string
          - `display_site_type` string
          - `is_odn` boolean
          - `rental_id` integer
          - `site_type` string
          - `sleeps` integer
          - `type` string
        - `disallow_movement` boolean
        - `display_type` string
        - `formatted_length` string
        - `id` integer
        - `interior_primary_image_url` string
        - `internal_id` string
        - `location` string
        - `name` string
        - `primary_image_url` string
        - `rental_category` string
        - `sleeps` integer
        - `slug` string
        - `stay_summary` StaySummary
          - `baths` integer
          - `bedrooms` integer
          - `beds` integer
          - `check_in_type` string
          - `display_stay_type` string
          - `location_description` string
          - `max_parking_spaces` integer
          - `parking_onsite` boolean
          - `rental_id` integer
          - `sleeps` integer
          - `type` string
        - `style` string
        - `type` string
      - `rental_tags` TagRental[]
        - `Created` string
        - `ID` integer
        - `Name` string
        - `Slug` string
        - `Updated` string
        - `position` integer
        - `usage_by_rental_count` integer
      - `review_image_id` string
      - `review_images` ReviewImage[]
        - `created` string, date-time
        - `id` string — ID is the type used throughout the system to identify a unique object. It properly handles marshaling for both json and sql databases. It properly handles null values in the database as well.
        - `lat` number, double
        - `lng` number, double
        - `rental_id` string
        - `review_id` string
        - `reviewed` boolean
        - `reviewed_by` string
        - `status` string
        - `updated` string, date-time
        - `url` string
      - `reviewer` Reviewer
        - `avatar_url` string
        - `first_name` string
        - `id` integer
        - `last_name` string
      - `reviewer_id` integer
      - `score` number, double — Review Types
      - `source_page` string
      - `tags` Tag[] — Tags are saved on tag_rental_join
        - `allow_for_review` boolean
        - `created` string
        - `description` string
        - `id` integer
        - `name` string
        - `owner_user_id` integer, nullable
        - `position` integer
        - `slug` string
        - `updated` string
      - `text` string
      - `timestamp` string
      - `user_id` integer
      - `user_recommend` boolean
      - `value_score` number, double
    - `skip_enhance` boolean
    - `status` string
    - `tags` string
    - `title` string
    - `url` string
    - `video` boolean
    - `width` integer
  - `images_verified` boolean, nullable
  - `images_verified_by` integer, nullable
  - `import_id` string
  - `inactive` boolean
  - `instant_book` boolean, nullable
  - `instant_book_ban_date` string
  - `instant_book_banned` boolean — Rental-level instant book ban (stored in metadata, combo bookings only)
  - `instant_book_leeway` integer, nullable
  - `instant_book_type` string
  - `insurance_coverage` string
  - `insurance_plan_id` Plan
    - `allow_unregistered` boolean
    - `approved_vehicle_types` string[] — DBStringSlice is a []string with database conversion methods
    - `bundle_required` boolean
    - `claims_number` string
    - `comp_policy_url` string
    - `comprehensive_coverage` boolean
    - `comprehensive_maximum` string
    - `country` string
    - `created` string
    - `created_by_id` integer, nullable
    - `dealer_only` boolean
    - `hidden` boolean
    - `id` integer — The fields below are returned in the minimum response when this insurance plan is an element inside a rental
    - `insurance_address_1` string
    - `insurance_city` string
    - `insurance_end_date` string
    - `insurance_name` string
    - `insurance_plan_override` PlanOverride
      - `created` string
      - `dealer_owned_owner_fee_percentage` number, double
      - `dealer_owned_renter_fee_percentage` number, double
      - `id` integer
      - `insurance_plan_id` Plan — recursive
      - `owner_fee_percentage` number, double
      - `owner_id` integer
      - `renter_fee_percentage` number, double
      - `updated` string
    - `insurance_policy_number` string
    - `insurance_start_date` string
    - `insurance_state` string
    - `insurance_zip` string
    - `insured_address_1` string
    - `insured_city` string
    - `insured_name` string
    - `insured_state` string
    - `insured_zip` string
    - `label` string
    - `last_updated_by_id` integer, nullable
    - `liability_coverage` boolean
    - `liability_maximum` string
    - `liability_policy_url` string
    - `locality` string
    - `minimum_daily_fee` integer
    - `minimum_year` integer
    - `owner_comprehensive_deductible` string
    - `owner_fee_percentage` number, double
    - `owner_liability_deductible` string
    - `owner_liability_maximum` string
    - `rental_category` string
    - `renter_comprehensive_deductible` string
    - `renter_fee_percentage` number, double
    - `renter_liability_deductible` string
    - `renter_liability_maximum` string
    - `requires_driver_verification` boolean
    - `tiered` boolean
    - `updated` string
  - `insurance_renter_adjustable` boolean, nullable
  - `interior_primary_image_id` integer
  - `interior_primary_image_url` string
  - `internal_id` string
  - `internal_notes` string
  - `items` RentalItem[]
    - `applies_to_type` string[] — DBStringSlice is a []string with database conversion methods
    - `available` integer
    - `category` string
    - `category_id` integer
    - `consigned_pay_pct` number, double — consigned owner support
    - `created` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
    - `daily` boolean
    - `deferred` boolean
    - `description` string
    - `hidden` boolean
    - `id` integer
    - `image_url` string
    - `ledger_account_number` integer
    - `location_id` integer
    - `location_ids` integer[]
    - `maximum_price` integer, nullable
    - `metadata` unknown
    - `minimum_price` integer, nullable
    - `name` string
    - `percent` number, double
    - `percent_type` string
    - `position` integer
    - `presentment_currency` string
    - `price` integer
    - `rental_items_category_id` integer, nullable
    - `rental_items_category_name` string
    - `rental_items_category_owner_name` string
    - `rental_items_category_reason` string
    - `rental_items_category_requested_name` string
    - `rental_items_category_status` string
    - `required` boolean
    - `settlement_currency` string
    - `tax` integer — total tax - calculated
    - `tax_rate_id` TaxRate
      - `archived` boolean
      - `created` string
      - `description` string
      - `id` integer
      - `marketplace` boolean
      - `name` string
      - `owner_id` integer
      - `rate` number, double
      - `state` string — carry through to booking_tax_rates table from avalara
      - `updated` string
      - `zip_code` string
    - `tax_rate_ids` integer[]
    - `travelers` integer
    - `updated` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
  - `last_published` string
  - `last_unpublish_date` string
  - `latest_review` RentalFullReview
    - `avatar_url` string
    - `first_name` string
    - `last_name` string
    - `score` number, double
    - `text` string
  - `listing_steps` unknown
  - `locale` UnitLocale
    - `base_currency` string
    - `distance_unit` string
    - `length_unit` string
    - `liquid_unit` string
    - `weight_unit` string
  - `metadata` unknown
  - `mileage_usage_item_id` integer
  - `minimum_days` integer, nullable
  - `minimum_deposit` integer, nullable
  - `minimum_renter_age` integer
  - `name` string
  - `ny_insurance_warning` boolean
  - `od_stays_opt_in` boolean
  - `od_stays_opt_in_eligible` boolean
  - `od_stays_opt_in_missing_requirements` string[]
  - `one_way_rental_maximum_radius` integer, nullable
  - `one_way_rental_requests` boolean, nullable
  - `original_url` string — Importing
  - `parent_id` integer — grouping functionality
  - `pet_fee` PetFee
    - `amount` integer
    - `created` string
    - `daily` boolean
    - `id` integer
    - `max_count` integer
    - `rental_id` integer
    - `updated` string
  - `photo_score` integer, nullable
  - `position` integer
  - `prep_fee` PrepFee
    - `amount` integer
    - `description` string
    - `id` integer
    - `tax_rate_ids` integer[]
  - `price` Price
    - `can_charge_security_deposit` boolean
    - `day` integer — BasePrice *int `json:"base_price" db:"-"`
    - `estimate` integer
    - `minimum_security_deposit` integer
    - `month` integer
    - `price_estimate` PriceEstimate
      - `predictions` PriceEstimatePrediction[]
        - `meta` object
        - `name` string
        - `prediction` number, double
      - `price_est_mean` number, double
    - `security_deposit` integer
    - `week` integer
  - `primary_image_id` integer
  - `primary_image_url` string
  - `publish_field_errors` string[]
  - `published` boolean
  - `rejected_images_count` integer — holds the count of images with status rejected and ignore rejected false
  - `rental_category` string
  - `request_less_than_minimum_days` integer
  - `require_insurance` boolean, nullable
  - `require_roadside` boolean, nullable
  - `review_notes` string, nullable
  - `review_scores` ReviewScores
    - `bayesian_rating` number, double
  - `review_status` string, nullable
  - `roamly_policy_number` string
  - `sd_waiver_enabled` boolean, nullable
  - `seatbelts` integer
  - `settings` unknown
  - `sleeps` integer
  - `sleeps_adults` integer
  - `sleeps_kids` integer
  - `smart_pricing_enabled` boolean
  - `smart_pricing_max` integer
  - `smart_pricing_min` integer
  - `smart_pricing_mode` string
  - `snooze_expiration_date` string
  - `sort` number, double — Admin Fields
  - `sort_metrics` unknown
  - `stay` StayDetails
    - `baths` integer, nullable
    - `bedrooms` integer, nullable
    - `beds` integer, nullable
    - `check_in_type` string
    - `display_stay_type` string
    - `features` unknown
    - `features_other_items` string
    - `location_description` string, nullable
    - `location_highlights_other_items` string
    - `max_parking_spaces` integer, nullable
    - `parking_onsite` boolean, nullable
    - `rental_id` integer
    - `sleeps` integer, nullable
    - `type` string, nullable
  - `summary` string
  - `tags` TagRental[]
    - `Created` string
    - `ID` integer
    - `Name` string
    - `Slug` string
    - `Updated` string
    - `position` integer
    - `usage_by_rental_count` integer
  - `tax_rate_id` TaxRate
    - `archived` boolean
    - `created` string
    - `description` string
    - `id` integer
    - `marketplace` boolean
    - `name` string
    - `owner_id` integer
    - `rate` number, double
    - `state` string — carry through to booking_tax_rates table from avalara
    - `updated` string
    - `zip_code` string
  - `tax_rate_ids` integer[]
  - `tollspot_id` integer
  - `turnaround_days_after` integer, nullable
  - `turo_vehicle_id` string
  - `type` string
  - `unpublish_reason` string
  - `updated` string
  - `use_system_tax_rates` boolean — used by rental listing page to display system tax notice
  - `vehicle` Vehicle
    - `amps` integer
    - `box_length` number, double
    - `class` string
    - `current_generator` number, double
    - `current_lat` number, double
    - `current_lng` number, double
    - `current_mileage` number, double
    - `dry_weight` integer
    - `gvwr` integer
    - `height` number, double
    - `insurance_renewal_month` string
    - `length` number, double
    - `length_with_hitch` number, double
    - `license_plate` string — owner fields
    - `license_plate_country` string
    - `license_plate_state` string
    - `make` string
    - `model` string
    - `replacement_value` string
    - `trim` string
    - `unit_of_measure` string
    - `vin` string
    - `width` number, double
    - `year` integer
  - `vehicle_title` string
  - `vin_check` VinCheck
    - `clean` boolean
    - `created` string
    - `error` string
    - `failed` boolean
    - `forced_approval_by` string
    - `forced_approval_reason` string
    - `id` integer
    - `last_title_date` string
    - `last_title_state` string
    - `raw_response` string
    - `salvage` boolean
    - `status` string — non db attributes
    - `validation_id` string
    - `vin` string
  - `waived_insurance_text` string, nullable

## Other responses

- `400` — Invalid input or state means you're bad
- `401` — Unauthorized error
- `404` — Not found error
- `default` — An unknown, unexpected error.

---

[API](https://skmtc.net/outdoorsy/apis/outdoorsy-api-documentation.md) · [All operations](https://skmtc.net/outdoorsy/apis/outdoorsy-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/outdoorsy/outdoorsy-api-documentation/versions/f0cf8f605ea0/schema)
