Outdoorsy Bookings API

The Bookings API from Outdoorsy — 9 operation(s) for bookings.

Operations 12

GET /bookings/soonest #
GET /bookings #
POST /bookings #
GET /bookings/stage #
POST /bookings/{booking_id}/calculate-delivery #
POST /bookings/{booking_id}/collect-post-trip-charges #
GET /bookings/{id} #
DELETE /bookings/{id} Archives the booking which hides it from view. #
PATCH /bookings/{id} Updates the booking with requested changes. #
GET /bookings/{id}/cancellation-details #
POST /bookings/{id}/collect-overage-fee #
PATCH /bookings/{id}/status Progresses the status of the booking to the requested state. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/outdoorsy-bookings-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

outdoorsy-bookings-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Outdoorsy Bookings API
  version: 0.0.1
  description: 'Operations tagged Bookings across 2 of this provider''s published API definitions: outdoorsy-bookings-api-openapi.yml, outdoorsy-openapi-original.json. Each path carries the servers of the definition it was published in.'
servers:
- url: /v0
security:
- Bearer:
  - '[]'
- API-Key:
  - '[]'
tags:
- name: Bookings
paths:
  /bookings/soonest:
    get:
      description: Get the current trip or an upcoming trip or returned trip that are within 14 days
      operationId: bookings
      responses:
        '200':
          $ref: '#/components/responses/getSoonestResponse'
        '401':
          $ref: '#/components/responses/unauthorizedError'
      tags:
      - Bookings
    servers:
    - url: /v0
  /bookings:
    get:
      description: Read many bookings
      tags:
      - Bookings
      operationId: listBookings
      parameters:
      - x-go-name: Offset
        name: offset
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: Limit
        name: limit
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: OrderBy
        name: order_by
        in: query
        schema:
          type: string
      - name: FromLT
        in: query
        schema:
          type: string
      - name: FromGT
        in: query
        schema:
          type: string
      - name: ToLT
        in: query
        schema:
          type: string
      - name: ToGT
        in: query
        schema:
          type: string
      - name: UpdatedLT
        in: query
        schema:
          type: string
      - name: UpdatedGT
        in: query
        schema:
          type: string
      - name: CreatedLT
        in: query
        schema:
          type: string
      - name: CreatedGT
        in: query
        schema:
          type: string
      - name: BookedLT
        in: query
        schema:
          type: string
      - name: BookedGT
        in: query
        schema:
          type: string
      - x-go-name: CSVToken
        name: csv-token
        in: query
        schema:
          type: string
      - x-go-name: Blocking
        name: blocking
        in: query
        schema:
          type: boolean
      - x-go-name: Calendar
        name: calendar
        in: query
        schema:
          type: boolean
      - x-go-name: OwnerID
        name: owner_id
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: RentalID
        name: rental_id
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: RentalIDsRaw
        name: rental_ids
        in: query
        schema:
          type: string
      - x-go-name: IncludeCoachnet
        name: include_coachnet
        in: query
        schema:
          type: boolean
      - x-go-name: CSV
        name: csv
        in: query
        schema:
          type: boolean
      - x-go-name: FullObject
        name: full_object
        in: query
        schema:
          type: boolean
      - x-go-name: IncludeChildren
        name: include_children
        in: query
        schema:
          type: boolean
      - x-go-name: RenterID
        name: renter_id
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: Dealer
        name: dealer
        in: query
        schema:
          type: boolean
      - x-go-name: Instamatch
        name: instamatch
        in: query
        schema:
          type: boolean
      - x-go-name: HasConsignedPayout
        name: has_consigned_payout
        in: query
        schema:
          type: boolean
      - x-go-name: ReturnedLT
        name: returned_lt
        in: query
        schema:
          type: string
      - x-go-name: ReturnedGT
        name: returned_gt
        in: query
        schema:
          type: string
      - x-go-name: Abandoned
        name: abandoned
        in: query
        schema:
          type: boolean
      - x-go-name: IncludeAbandoned
        name: include_abandoned
        in: query
        schema:
          type: boolean
      - x-go-name: Status
        name: status
        in: query
        schema:
          type: string
      - x-go-name: Order
        name: order
        in: query
        schema:
          type: string
      - x-go-name: Archived
        name: archived
        in: query
        schema:
          type: boolean
      - x-go-name: NeedsReview
        name: needs_review
        in: query
        schema:
          type: boolean
      - x-go-name: Refunded
        name: refunded
        in: query
        schema:
          type: boolean
      - x-go-name: New
        name: new
        in: query
        schema:
          type: boolean
      - x-go-name: CoachnetIDSet
        name: coachnet_id_set
        in: query
        schema:
          type: boolean
      - x-go-name: ForUserID
        name: for_user_id
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: IDs
        name: ids
        in: query
        schema:
          type: string
      - x-go-name: LocationIDs
        name: location_ids
        in: query
        schema:
          type: string
      - x-go-name: IncludeShared
        name: include_shared
        in: query
        schema:
          type: boolean
      - x-go-name: SharedOnly
        name: shared
        in: query
        schema:
          type: boolean
      - x-go-name: Filter
        name: filter
        in: query
        schema:
          type: string
      - x-go-name: Role
        name: role
        in: query
        schema:
          type: string
      - x-go-name: HandoffFilter
        name: handoff_filter
        in: query
        schema:
          type: string
      - x-go-name: IncludeQuoteMetadata
        name: include_quote_metadata
        in: query
        schema:
          type: boolean
      - x-go-name: DeliverableCampground
        name: deliverable_campground
        in: query
        schema:
          type: boolean
      - x-go-name: RentalCategory
        name: rental_category
        in: query
        schema:
          type: string
      - x-go-name: Source
        name: source
        in: query
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/listBookingsResponse'
        '400':
          $ref: '#/components/responses/badRequestError'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '404':
          $ref: '#/components/responses/notFoundError'
        default:
          $ref: '#/components/responses/genericError'
    post:
      description: Creates a booking
      tags:
      - Bookings
      operationId: createBooking
      responses:
        '201':
          $ref: '#/components/responses/getBookingResponse'
        '400':
          $ref: '#/components/responses/badRequestError'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '404':
          $ref: '#/components/responses/notFoundError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BookingRequest'
    servers:
    - url: /v0
  /bookings/stage:
    get:
      description: Read Many By Stage
      tags:
      - Bookings
      operationId: readManyByStageRequest
      parameters:
      - x-go-name: Archived
        name: archived
        in: query
        schema:
          type: boolean
      - x-go-name: StageFilter
        name: filter
        in: query
        schema:
          type: string
      - x-go-name: Offset
        name: offset
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: Limit
        name: limit
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: Search
        name: search
        in: query
        schema:
          type: string
      - x-go-name: OrderBy
        name: order_by
        in: query
        schema:
          type: string
      - x-go-name: CreatedGT
        name: created_gt
        in: query
        schema:
          type: string
      - x-go-name: CreatedLT
        name: created_lt
        in: query
        schema:
          type: string
      - x-go-name: FromGT
        name: from_gt
        in: query
        schema:
          type: string
      - x-go-name: FromLT
        name: from_lt
        in: query
        schema:
          type: string
      - x-go-name: IncludeItems
        name: include_items
        in: query
        schema:
          type: boolean
      - x-go-name: IncludePassengers
        name: include_passengers
        in: query
        schema:
          type: boolean
      - x-go-name: Statuses
        name: statuses
        in: query
        schema:
          type: string
      - x-go-name: LocationsRaw
        name: location_ids
        in: query
        schema:
          type: string
      - x-go-name: ExcludeAbandoned
        name: exclude_abandoned
        in: query
        schema:
          type: boolean
      responses:
        '200':
          $ref: '#/components/responses/readManyByStageResponse'
        '400':
          $ref: '#/components/responses/badRequestError'
        '401':
          $ref: '#/components/responses/unauthorizedError'
    servers:
    - url: /v0
  /bookings/{booking_id}/calculate-delivery:
    post:
      description: Calculate estimated delivery for booking
      tags:
      - Bookings
      operationId: estimatedDeliveryRequest
      responses:
        '200':
          $ref: '#/components/responses/estimatedDeliveryResponse'
        '400':
          $ref: '#/components/responses/badRequestError'
        '401':
          $ref: '#/components/responses/unauthorizedError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeliveryEstimatedRequest'
    servers:
    - url: /v0
  /bookings/{booking_id}/collect-post-trip-charges:
    post:
      description: Collect post-trip charges for booking
      tags:
      - Bookings
      operationId: collectBookingPostTripCharges
      parameters:
      - x-go-name: BookingID
        name: booking_id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '201':
          $ref: '#/components/responses/transactionsResponse'
        '400':
          $ref: '#/components/responses/badRequestError'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '404':
          $ref: '#/components/responses/notFoundError'
        default:
          $ref: '#/components/responses/genericError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CollectPostTripChargesRequest'
    servers:
    - url: /v0
  /bookings/{id}:
    get:
      description: Read one booking
      tags:
      - Bookings
      operationId: getBookingById
      parameters:
      - x-go-name: ID
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/getBookingResponse'
        '400':
          $ref: '#/components/responses/badRequestError'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '404':
          $ref: '#/components/responses/notFoundError'
        default:
          $ref: '#/components/responses/genericError'
    delete:
      tags:
      - Bookings
      summary: Archives the booking which hides it from view.
      operationId: deleteBookingById
      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'
    patch:
      description: 'Certain changes are only allowed while the booking is in the negotiating state.

        Dealers, owners, renters and admins all have different access level on what can be changed.

        This often results in a recalculation of the booking total.'
      tags:
      - Bookings
      summary: Updates the booking with requested changes.
      operationId: updateBooking
      parameters:
      - x-go-name: ID
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/getBookingResponse'
        '400':
          $ref: '#/components/responses/badRequestError'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '404':
          $ref: '#/components/responses/notFoundError'
        default:
          $ref: '#/components/responses/genericError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BookingUpdateRequest'
    servers:
    - url: /v0
  /bookings/{id}/cancellation-details:
    get:
      description: Returns the cancellation details for the requested booking
      tags:
      - Bookings
      operationId: getBookingCancellationDetails
      parameters:
      - x-go-name: ID
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/bookingCancelDetailsResponse'
        '400':
          $ref: '#/components/responses/badRequestError'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '404':
          $ref: '#/components/responses/notFoundError'
        default:
          $ref: '#/components/responses/genericError'
    servers:
    - url: /v0
  /bookings/{id}/collect-overage-fee:
    post:
      description: Collect booking overage fee
      tags:
      - Bookings
      operationId: collectBookingOverageFee
      parameters:
      - x-go-name: ID
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/transactionsResponse'
        '400':
          $ref: '#/components/responses/badRequestError'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '404':
          $ref: '#/components/responses/notFoundError'
        default:
          $ref: '#/components/responses/genericError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CollectOverageFeeRequest'
    servers:
    - url: /v0
  /bookings/{id}/status:
    patch:
      description: 'Examples:


        negotiating -> approved

        approved -> handed_off

        handed_off -> returned

        approved -> renter_cancelled/owner_cancelled'
      tags:
      - Bookings
      summary: Progresses the status of the booking to the requested state.
      operationId: bookingChangeStatus
      parameters:
      - x-go-name: ID
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/bookingResponse'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '404':
          $ref: '#/components/responses/notFoundError'
        default:
          $ref: '#/components/responses/genericError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StatusChangeRequest'
    servers:
    - url: /v0
components:
  schemas:
    ISlice:
      type: array
      items: {}
      x-go-package: github.com/outdoorsy/api/pkg/jsonb
    Occupancy:
      type: object
      properties:
        adults:
          type: integer
          format: int64
          x-go-name: Adults
        children:
          type: integer
          format: int64
          x-go-name: Children
        infants:
          type: integer
          format: int64
          x-go-name: Infants
      x-go-package: github.com/outdoorsy/api/internal/bookings
    TagRental:
      type: object
      properties:
        Created:
          type: string
          x-go-type: github.com/outdoorsy/api/clocks.RfcTime
        ID:
          type: integer
          format: int64
        Name:
          type: string
        Slug:
          type: string
        Updated:
          type: string
          x-go-type: github.com/outdoorsy/api/clocks.RfcTime
        position:
          type: integer
          format: int64
          x-go-name: Position
        usage_by_rental_count:
          type: integer
          format: int64
          x-go-name: UsageByRentalCount
      x-go-package: github.com/outdoorsy/api/internal/rental_tags
    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
    PendingTransaction:
      type: object
      properties:
        amount:
          type: integer
          format: uint64
          x-go-name: Amount
        attempts:
          type: integer
          format: int64
          x-go-name: Attempts
        booking_id:
          type: integer
          format: int64
        brand:
          type: string
          x-go-name: Brand
        card_id:
          type: integer
          format: int64
          x-go-name: CardID
        created:
          type: string
          x-go-name: Created
          x-go-type: github.com/outdoorsy/api/clocks.RfcTime
        description:
          type: string
          x-go-name: Description
        display_type:
          type: string
          x-go-name: DisplayType
        due:
          type: string
        id:
          type: integer
          format: int64
          x-go-name: ID
        last_four:
          type: string
          x-go-name: LastFour
        original_charge_id:
          type: integer
          format: int64
          x-go-name: OriginalChargeID
        payment_intent_id:
          type: string
          x-go-name: PaymentIntentID
        status:
          type: string
          x-go-name: Status
        type:
          type: string
          x-go-name: Type
        zendesk_ticket_id:
          type: integer
          format: int64
          x-go-name: ZendeskTicketID
      x-go-package: github.com/outdoorsy/api/model
    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
    CollectOverageFeeRequest:
      description: CollectOverageFeeRequest represents the request body for collecting overage fees
      type: object
      properties:
        admin_message:
          description: Admin message for audit trail
          type: string
          x-go-name: AdminMessage
        dry_claim:
          description: Dry run mode - calculate charges without executing
          type: boolean
          x-go-name: DryClaim
        message:
          description: Message to send to renter about post-trip charges
          type: string
          x-go-name: Message
        post_trip_charges:
          $ref: '#/components/schemas/SecurityDepositPostTripCharges'
        usage_overage_only:
          description: 'Legacy usage-based overage collection (mileage/generator)

            Set to true to only collect existing mileage and generator overages'
          type: boolean
          x-go-name: UsageOverageOnly
      x-go-package: github.com/outdoorsy/api/cmd/web/handlers
    AttentionItem:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/AttentionItemData'
        is_actionable:
          type: boolean
          x-go-name: IsActionable
        type:
          type: string
          x-go-name: Type
      x-go-package: github.com/outdoorsy/api/model
    BookingMileage:
      type: object
      properties:
        actual:
          type: number
          format: double
          x-go-name: Actual
        departure:
          type: number
          format: double
          x-go-name: Departure
        estimated:
          type: number
          format: double
          x-go-name: Estimated
        estimated_fee:
          type: integer
          format: uint64
          x-go-name: EstimatedFee
        return:
          type: number
          format: double
          x-go-name: Return
        suggested_fee:
          type: integer
          format: uint64
          x-go-name: SuggestedFee
      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
    GetSoonestResponse:
      type: object
      properties:
        booking_id:
          type: integer
          format: int64
          x-go-name: BookingID
      x-go-package: github.com/outdoorsy/api/cmd/web/handlers
    SearchFilters:
      type: object
      properties:
        festival_friendly:
          type: boolean
          x-go-name: FestivalFriendly
        make:
          type: string
          x-go-name: Make
        model:
          type: array
          items:
            type: string
          x-go-name: Model
        pet_friendly:
          type: boolean
          x-go-name: PetFriendly
        smoking_allowed:
          type: boolean
          x-go-name: SmokingAllowed
        tailgate_friendly:
          type: boolean
          x-go-name: TailgateFriendly
        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
        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/types
    BookingsInfo:
      type: object
      properties:
        statuses:
          type: array
          items:
            $ref: '#/components/schemas/FilterStatusGroup'
          x-go-name: Statuses
        total:
          type: integer
          format: int64
          x-go-name: Total
      x-go-package: github.com/outdoorsy/api/model
    ReviewImage:
      type: object
      properties:
        created:
          type: string
          format: date-time
          x-go-name: Created
        id:
          $ref: '#/components/schemas/ID'
        lat:
          type: number
          format: double
          x-go-name: Lat
        lng:
          type: number
          format: double
          x-go-name: Lng
        rental_id:
          type: string
          x-go-name: RentalID
        review_id:
          type: string
          x-go-name: ReviewID
        reviewed:
          type: boolean
          x-go-name: Reviewed
        reviewed_by:
          type: string
          x-go-name: ReviewedBy
        status:
          type: string
          x-go-name: Status
        updated:
          type: string
          format: date-time
          x-go-name: Updated
        url:
          type: string
          x-go-name: URL
      x-go-package: github.com/outdoorsy/api/model
    AttentionItemData:
      type: object
      properties:
        auto_expires:
          type: boolean
          x-go-name: AutoExpires
        completed_at:
          type: string
          x-go-name: CompletedAt
          x-go-type: github.com/outdoorsy/api/clocks.RfcTime
        confirmation_message:
          type: string
          x-go-name: ConfirmationMessage
        conversation_first_message:
          type: integer
          format: int64
        created_at:
          type: string
          x-go-name: CreatedAt
          x-go-type: github.com/outdoorsy/api/clocks.RfcTime
        daily:
          type: boolean
          x-go-name: Daily
        description:
          type: string
          x-go-name: Description
        expires_at:
          type: string
          x-go-name: ExpiresAt
          x-go-type: github.com/outdoorsy/api/clocks.RfcTime
        from:
          type: string
        group_item_details:
          type: array
          items:
            $ref: '#/components/schemas/Proposal'
          x-go-name: GroupItemDetails
        id:
          type: integer
          format: int64
          x-go-name: ID
        message:
          type: string
          x-go-name: Message
        name:
          type: string
          x-go-name: Name
        price:
          type: integer
          format: int64
          x-go-name: Price
        quantity:
          type: integer
          format: int64
          x-go-name: Quantity
        rental_amount:
          type: integer
          format: int64
          x-go-name: RentalAmount
        to:
          type: string
        total:
          type: integer
          format: int64
          x-go-name: Total
      x-go-package: github.com/outdoorsy/api/model
    RentalCharge:
      type: object
      properties:
        card_id:
          type: integer
          format: int64
          x-go-name: CardID
        card_token:
          type: string
          x-go-name: CardToken
        full:
          type: boolean
          x-go-name: Full
        method:
          type: string
          x-go-name: Method
        payment_intent_id:
          type: string
          x-go-name: PaymentIntentID
        payment_meta:
          $ref: '#/components/schemas/DBInterfaceMap'
        payment_source:
          type: string
          x-go-name: PaymentSource
      x-go-package: github.com/outdoorsy/api/libs/payment
    BookingLocale:
      type: object
      properties:
        base_currency:
          type: string
          x-go-name: BaseCurrency
        distance_unit:
          type: string
          x-go-name: DistanceUnit
      x-go-package: github.com/outdoorsy/api/model
    FilterStatusGroup:
      type: object
      properties:
        count:
          type: integer
          format: int64
          x-go-name: Count
        status:
          type: string
          x-go-name: Status
      x-go-package: github.com/outdoorsy/api/model
    PlanOverride:
      type: object
      properties:
        created:
          type: string
          x-go-name: Created
          x-go-type: github.com/outdoorsy/api/clocks.RfcTime
        dealer_owned_owner_fee_percentage:
          type: number
          format: double
          x-go-name: DealerOwnedOwnerFeePercentage
        dealer_owned_renter_fee_percentage:
          type: number
          format: double
          x-go-name: DealerOwnedRenterFeePercentage
        id:
          type: integer
          format: int64
          x-go-name: ID
        insurance_plan_id:
          $ref: '#/components/schemas/Plan'
        owner_fee_percentage:
          type: number
          format: double
          x-go-name: OwnerFeePercentage
        owner_id:
          type: integer
          format: int64
          x-go-name: OwnerUserID
        renter_fee_percentage:
          type: number
          format: double
          x-go-name: RenterFeePercentage
        updated:
          type: string
          x-go-name: Updated
          x-go-type: github.com/outdoorsy/api/clocks.RfcTime
      x-go-package: github.com/outdoorsy/api/internal/insurance
    Image:
      type: object
      properties:
        best:
          type: boolean
          x-go-name: Best
        category:
          $ref: '#/components/schemas/Category'
        description:
          type: string
          x-go-name: Description
        id:
          type: integer
          format: int64
          x-go-name: ID
        position:
          type: integer
          format: int64
          x-go-name: Position
        primary:
          type: boolean
          x-go-name: Primary
        rental_id:
          type: integer
          format: int64
          x-go-name: RentalID
        skip_enhance:
          type: boolean
          x-go-name: SkipEnhance
        status:
          type: string
          x-go-name: Status
        tags:
          type: string
          x-go-name: Tags
        url:
          type: string
          x-go-name: URL
        video:
          type: boolean
          x-go-name: Video
      x-go-package: github.com/outdoorsy/api/internal/seeker/client
    CancellationPenaltyInfoV2:
      description: CancellationPenaltyInfoV2 contains progressive penalty information for HostCancellationV2 experiment
      type: object
      properties:
        current_strike:
          type: integer
          format: int64
          x-go-name: CurrentStrike
        first_strike_fee:
          type: integer
          format: int64
          x-go-name: FirstStrikeFee
        next_cancellation_fee:
          type: integer
          format: int64
          x-go-name: NextCancellationFee
        second_strike_fee:
          type: integer
          format: int64
          x-go-name: SecondStrikeFee
        third_strike_fee:
          type: integer
          format: int64
          x-go-name: ThirdStrikeFee
      x-go-package: github.com/outdoorsy/api/cmd/web/handlers
    SiblingBooking:
      description: 'SiblingBooking embedded struct to get around Booking struct issues where we only render the first

        instance in the response then simply render the booking ID.

        See `func (b *Booking) ResponseElementData(options objx.Map)` for more details.'
      type: object
      properties:
        abandoned:
          type: boolean
          x-go-name: Abandoned
        addons:
          type: array
          items:
            $ref: '#/components/schemas/BookingItem'
          x-go-name: Addons
        adults:
          type: integer
          format: int64
          x-go-name: Adults
        affirm_details:
          $ref: '#/components/schemas/AffirmDetails'
        affirm_total:
          description: Dynamically calculated. Not stored in DB
          type: integer
          format: int64
          x-go-name: AffirmTotal
        applicable_tos_version:
          type: string
          x-go-name: ApplicableToSVersion
        attention:
          type: array
          items:
            $ref: '#/components/schemas/AttentionItem'
          x

# --- truncated at 32 KB (197 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/outdoorsy/refs/heads/main/openapi/outdoorsy-bookings-api-openapi.yml