Outdoorsy Conversations API

The conversations API from Outdoorsy — 4 operation(s) for conversations.

Operations 7

GET /admin/ai-reply-suggestions List AI reply suggestions for a conversation. #
GET /conversations #
POST /conversations #
GET /conversations/{id} #
PUT /conversations/{id} #
DELETE /conversations/{id} #
GET /conversations/{id}/ai-reply-suggestion Get AI-generated reply suggestion for a conversation. #

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-conversations-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-conversations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Outdoorsy Conversations API
  version: 0.0.1
  description: 'Operations tagged conversations across 2 of this provider''s published API definitions: outdoorsy-conversations-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: conversations
paths:
  /admin/ai-reply-suggestions:
    get:
      description: 'Returns a paginated list of AI-generated reply suggestions for the specified conversation.

        Suggestions are ordered by creation date in descending order (newest first).

        Requires conversation_id query parameter. Supports pagination via offset and limit.

        Filter by confidence level with threshold_min and threshold_max (inclusive); if omitted,

        threshold_min defaults to 0 and threshold_max defaults to 1.

        Admin access required.'
      tags:
      - conversations
      summary: List AI reply suggestions for a conversation.
      operationId: listAiReplySuggestions
      parameters:
      - name: Offset
        in: query
        schema:
          type: integer
          format: int64
      - name: Limit
        in: query
        schema:
          type: integer
          format: int64
      - name: ThresholdMin
        in: query
        schema:
          type: number
          format: double
      - name: ThresholdMax
        in: query
        schema:
          type: number
          format: double
      - x-go-name: ConversationID
        name: conversation_id
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/aiReplySuggestionsResponse'
        '400':
          $ref: '#/components/responses/badRequestError'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        default:
          $ref: '#/components/responses/genericError'
    servers:
    - url: /v0
  /conversations:
    get:
      description: Lists conversations
      tags:
      - conversations
      operationId: listConversations
      parameters:
      - x-go-name: UserID
        name: user_id
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: LocationIDs
        name: location_ids
        in: query
        schema:
          type: string
      - x-go-name: Single
        name: single
        in: query
        schema:
          type: boolean
      - x-go-name: Statuses
        name: booking_status
        in: query
        schema:
          type: string
      - x-go-name: Archived
        name: archived
        in: query
        schema:
          type: boolean
      - x-go-name: RenterID
        name: renter_id
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: HasMessages
        name: has_messages
        in: query
        schema:
          type: boolean
      - x-go-name: Order
        name: order
        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: OnlyNew
        name: new
        in: query
        schema:
          type: boolean
      - x-go-name: ExcludeBookings
        name: exclude_bookings
        in: query
        schema:
          type: boolean
      responses:
        '200':
          $ref: '#/components/responses/listConversationResponse'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        default:
          $ref: '#/components/responses/genericError'
    post:
      description: Creates a new conversation between two users
      tags:
      - conversations
      operationId: createConversation
      responses:
        '200':
          $ref: '#/components/responses/conversationResponse'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        default:
          $ref: '#/components/responses/genericError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConversationBody'
    servers:
    - url: /v0
  /conversations/{id}:
    get:
      description: Get conversation by id
      tags:
      - conversations
      operationId: getConversationById
      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
      - x-go-name: Active
        description: 'false -> bookings: MinBooking, true -> bookings: Booking'
        name: active
        in: query
        schema:
          type: boolean
      - x-go-name: WithoutBookings
        description: when true, bookings array will be empty
        name: without_bookings
        in: query
        schema:
          type: boolean
      - x-go-name: MinBookings
        description: when true, bookings array will only contain the most relevant booking
        name: min_bookings
        in: query
        schema:
          type: boolean
      - x-go-name: IncludeSystem
        description: when true, system messages will be included in the messages array
        name: include_system
        in: query
        schema:
          type: boolean
      - x-go-name: IncludeCurrent
        description: when true, bookings array will contain bookings with status negotiating, approved, imminent, handed_off
        name: include_current
        in: query
        schema:
          type: boolean
      - x-go-name: ID
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/conversationResponse'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        default:
          $ref: '#/components/responses/genericError'
    put:
      description: Update conversation by id
      tags:
      - conversations
      operationId: updateConversation
      responses:
        '200':
          $ref: '#/components/responses/conversationResponse'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        default:
          $ref: '#/components/responses/genericError'
    delete:
      description: Archive a conversation
      tags:
      - conversations
      operationId: archiveConversation
      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'
    servers:
    - url: /v0
  /conversations/{id}/ai-reply-suggestion:
    get:
      description: 'This endpoint returns an AI-generated reply suggestion based on the conversation history.

        The suggestion is cached, so subsequent requests for the same message will return the cached suggestion.

        Only conversation owners can access this endpoint.'
      tags:
      - conversations
      summary: Get AI-generated reply suggestion for a conversation.
      operationId: getReplySuggestion
      parameters:
      - x-go-name: ID
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/conversationSuggestionResponse'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '403':
          $ref: '#/components/responses/forbiddenError'
        '404':
          $ref: '#/components/responses/notFoundError'
        default:
          $ref: '#/components/responses/genericError'
    servers:
    - url: /v0
components:
  schemas:
    ISlice:
      type: array
      items: {}
      x-go-package: github.com/outdoorsy/api/pkg/jsonb
    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
    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
    Message:
      type: object
      properties:
        actor_id:
          type: integer
          format: int64
        archived:
          type: boolean
          x-go-name: Archived
        booking:
          $ref: '#/components/schemas/MinBooking'
        booking_summary:
          $ref: '#/components/schemas/BookingSummary'
        clicked:
          type: string
          x-go-name: Clicked
          x-go-type: github.com/outdoorsy/api/clocks.RfcTime
        conversation_id:
          type: integer
          format: int64
        destination_data:
          $ref: '#/components/schemas/RenterDestinationData'
        file_urls:
          type: array
          items:
            type: string
          x-go-name: FileURLs
        files:
          $ref: '#/components/schemas/DBIntSlice'
        flagged:
          type:
          - boolean
          - 'null'
        flagged_text:
          type:
          - string
          - 'null'
        from_email:
          type:
          - string
          - 'null'
        id:
          type: integer
          format: int64
          x-go-name: ID
        image:
          type:
          - string
          - 'null'
        latest_status:
          type:
          - string
          - 'null'
        opened:
          type: string
          x-go-name: Opened
          x-go-type: github.com/outdoorsy/api/clocks.RfcTime
        origin:
          type:
          - string
          - 'null'
        proxy_interaction_id:
          type:
          - string
          - 'null'
        read:
          type: boolean
          x-go-name: Read
        receiver_id:
          type: integer
          format: int64
        ref_booking_id:
          type: integer
          format: int64
          x-go-name: RefBookingID
        ref_rental_id:
          type: integer
          format: int64
          x-go-name: RefRentalID
        rental_summary:
          x-go-name: RentalSummary
        sender_id:
          type: integer
          format: int64
        sentiment:
          type: string
          x-go-name: Sentiment
        sentiment_confidence:
          type: number
          format: double
          x-go-name: SentimentConfidence
        spam:
          type: boolean
          x-go-name: Spam
        system:
          type: boolean
          x-go-name: System
        template:
          type: string
          x-go-name: Template
        text:
          type: string
          x-go-name: Text
        timestamp:
          type: string
          x-go-name: Timestamp
          x-go-type: github.com/outdoorsy/api/clocks.RfcTime
      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
    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
    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
    ConversationBody:
      type: object
      properties:
        email:
          type: string
          x-go-name: Email
        first_name:
          type: string
          x-go-name: FirstName
        last_name:
          type: string
          x-go-name: LastName
        message:
          type: string
          x-go-name: Message
        owner_id:
          type: integer
          format: int64
          x-go-name: OwnerID
        phone:
          type: string
          x-go-name: Phone
      x-go-package: github.com/outdoorsy/api/types
    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
    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
    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-go-name: Attention
        auto_assign_group:
          type:
          - boolean
          - 'null'
        auto_insurance_type:
          type: string
          x-go-name: AutoInsuranceType
        bid_id:
          type: integer
          format: int64
          x-go-name: BidID
        block_discount_code:
          type: boolean
          x-go-name: BlockDiscountCode
        booked:
          description: Not Mutable
          type: string
          x-go-name: Booked
          x-go-type: github.com/outdoorsy/api/clocks.RfcTime
        booking_agent:
          type: string
          x-go-name: BookingAgentID
        booking_color:
          type:
          - string
          - 'null'
        booking_token:
          type: string
          x-go-name: BookingToken
        bundle_id:
          description: 'calculated field that holds the result of whether the rental has this assigned

            if not, will look at the user/owner'
          type: string
          x-go-name: BundleID
        calculated_day_price:
          type: integer
          format: uint64
          x-go-name: CalculatedDayPrice
        calculated_total_paid:
          type: integer
          format: uint64
          x-go-name: CalculatedTotalPaid
        campaign:
          description: dealer only
          type: string
          x-go-name: Campaign
        campground_booking_url:
          description: Contains the booking id so ember can call /bookings/:id/default-selections
          type: string
          x-go-name: CampgroundBookingURL
        campground_data:
          $ref: '#/components/schemas/SiblingBookingCampgroundData'
        can_add_ending_generator_values:
          type: boolean
          x-go-name: CanAddEndingGeneratorValues
        can_add_ending_mileage_values:
          type: boolean
          x-go-name: CanAddEndingMileageValues
        can_add_starting_generator_values:
          type: boolean
          x-go-name: CanAddStartingGeneratorValues
        can_add_starting_mileage_values:
          type: boolean
          x-go-name: CanAddStartingMileageValues
        can_add_trip_protection:
          description: CanAddTransaction is used to check if the guest can add a trip protection
          type: boolean
          x-go-name: CanAddTripProtection
        can_apply_credits:
          type: boolean
          x-go-name: CanApplyCredits
        can_cancel_trip_protection:
          description: CanCancelTripProtection is used to check if the guest can cancel a trip protection
          type: boolean
          x-go-name: CanCancelTripProtection
        can_charge_overage_fees:
          type: boolean
          x-go-name: CanChargeOverageFees
        can_file_claim:
          type: boolean
          x-go-name: CanFileClaim
        can_generate_weather_quote:
          type: boolean
          x-go-name: CanGenerateWeatherQuote
        can_manage_security_deposit:
          type: boolean
          x-go-name: CanManageSecurityDeposit
        can_manage_tax_rates:
          description: used by dashboard to disable tax editing
          type: boolean
          x-go-name: CanManageTaxRates
        can_renter_review:
          type: boolean
          x-go-name: CanRenterReview
        can_renter_review_until:
          type: string
          x-go-name: CanRenterReviewUntil
        can_see_contract:
          type: boolean
          x-go-name: CanSeeContract
        can_suggest_date_change:
          type: boolean
          x-go-name: CanSuggestDateChange
        can_suggest_delivery_change:
          type: boolean
          x-go-name: CanSuggestDeliveryChange
        cancel_metadata:
          $ref: '#/components/schemas/CancelMetadata'
        cancel_policy:
          type: string
          x-go-name: CancelPolicy
        cancel_reason:
          type: string
          x-go-name: CancelReason
        canceled:
          type: string
          x-go-name: Canceled
          x-go-type: github.com/outdoorsy/api/clocks.RfcTime
        cancellation_cutoff_date:
          type: string
        cancellation_refund_breakdown:
          $ref: '#/components/schemas/CancellationRefundBreakdown'
        cancellation_refund_percentage:
          type: number
          format: double
          x-go-name: CancellationRefundPercentage
        cc_fee_percentage:
          description: Copied rental data - don't want rental changes to affect this booking
          type: number
          format: double
          x-go-name: CCFeePercentage
        checkin_stamp:
          description: Internal
          type: string
          x-go-name: CheckinStamp
          x-go-type: github.com/outdoorsy/api/clocks.RfcTime
        checkout_questions:
          $ref: '#/components/schemas/DBMSISlice'
        checkout_stamp:
          type: string
          x-go-name: CheckoutStamp
          x-go-type: github.com/outdoorsy/api/clocks.RfcTime
        checkout_steps_id:
          type: integer
          format: int64
          x-go-name: CheckoutStepsID
        children:
          type: integer
          format: int64
          x-go-name: Children
        coachnet_id:
          type: integer
          format: int64
          x-go-name: CoachnetID
        coachnet_premium:
          type: integer
          format: uint64
          x-go-name: CoachnetPremium
        consignment:
          $ref: '#/components/schemas/bookingConsignment'
        conversation_id:
          type: integer
          format: int64
        created:
          type: string
        created_by_id:
          type: integer
          format: int64
        created_stamp:
          type: string
          x-go-name: CreatedStamp
          x-go-type: github.com/outdoorsy/api/clocks.RfcTime
        custom_insurance_text:
          type:
          - string
          - 'null'
        dealer_minimum_days:
          description: used to display information if a booking is below the dealers minimum days
          type: integer
          format: uint64
          x-go-name: DealerMinimumDays
        decline_reason:
          type: string
          x-go-name: DeclineReason
        default_insurance_coverage:
          type: string
          x-go-name: DefaultInsuranceCoverage
        deliverable_campground:
          $ref: '#/components/schemas/ExternalCampground'
        delivery:
          $ref: '#/components/schemas/BookingDelivery'
        delivery_item:
          $ref: '#/components/schemas/BookingItem'
        delivery_usage_item:
          x-go-name: DeliveryUsageItemJSON
        delivery_usage_item_id:
          type: integer
          format: int64
        deposit_percentage:
          type: number
          format: double
          x-go-name: DepositPercentage
        destination:
          type: string
          x-go-name: Destination
        destination_lat:
          type: number
          format: double
          x-go-name: DestinationLat
        destination_lng:
          type: number
          format: double
          x-go-name: DestinationLng
        details:
          $ref: '#/components/schemas/DBInterfaceMap'
        device_id:
          type: string
          x-go-name: DeviceID
        discount_code:
          description: Copied discount code data, not allowed in request data.
          type: string
          x-go-name: DiscountCode
        discount_code_amount:
          type: integer
          format: uint64
          x-go-name: DiscountCodeAmount
        discount_code_applied_to:
          type: string
          x-go-name: DiscountCodeAppliedTo
        discount_code_message:
          type: string
          x-go-name: DiscountCodeMessage
        display_insurance:
          type: string
          x-go-name: DisplayInsurance
        display_source:
          type: string
          x-go-name: DisplaySource
        display_status:
          type: string
          x-go-name: DisplayStatus
        display_status_style:
          type: string
          x-go-name: DisplayStatusStyle
        documents:
          $ref: '#/components/schemas/BookingDocuments'
        dropoff:
          $ref: '#/components/schemas/BookingDropoff'
        duration:
          type: integer
          format: uint64
          x-go-name: Duration
        esign_enabled:
          type: boolean
          x-go-name: EsignEnabled
        esign_pending:
          type: boolean
          x-go-na

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