generated: '2026-08-02'
method: searched
source: https://developers.outdoorsy.com/widgets, https://developers.outdoorsy.com/help/instant-search
name: INSTASearch / Trailblazer Widgets
description: >-
Outdoorsy's embeddable client-side component library. A partner drops two script tags onto their
own site, initialises a `Trailblazer` instance with their partner ID, and injects individual
widgets into DOM targets to build a fully custom RV search and booking experience hosted on their
own domain. Distinct from server-side SDKs — Outdoorsy ships none of those.
loader:
stylesheet: https://d1o5877uy6tsnd.cloudfront.net/sdk/v2/trailblazer-widget.css
script: https://d1o5877uy6tsnd.cloudfront.net/sdk/v2/trailblazer-widget.js
channel: v2
registry: cdn (CloudFront) — not published to npm
snippet: |
initialization:
constructor: Trailblazer
example: |
var trailblazer = Trailblazer({
partnerId: {{yourID}},
urlParams: true,
currency: 'USD',
locale: 'en-us',
filtersChangedCallback: function(currentFilters) {}
});
options:
- {name: partnerId, required: true, description: partner account identifier issued by Outdoorsy}
- {name: urlParams, required: false, description: sync widget filter state into the page URL}
- {name: currency, required: false, description: 'ISO 4217 currency (usd, gbp, cad, eur, aud, nzd)'}
- {name: locale, required: false, description: 'BCP 47 locale (en-us, en-gb, fr-fr, de-de, …)'}
- {name: filtersChangedCallback, required: false, description: callback fired when the user changes any filter}
injection_method: addWidget()
families:
- family: search
description: Components for building a rental search results experience.
components:
- {name: RentalList, description: renders the paged list of matching rentals}
- {name: LocationSearch, description: location/place autocomplete input}
- {name: DateRange, description: trip start/end date picker}
- {name: PriceRange, description: price band filter}
- {name: Pagination, description: page navigation over the result set}
- {name: CheckboxFilter, description: multi-select facet filter}
- {name: SelectFilter, description: single-select facet filter}
- {name: Metadata, description: result-set metadata (counts, price bounds)}
- family: rental
description: Components for a single rental detail and quote experience.
components:
- {name: Quote, description: renders a live price quote for the selected dates and add-ons}
- {name: DateRange, description: date picker bound to that rental's real availability}
- {name: AddonList, description: selectable add-on items for the rental}
- {name: ReviewList, description: reviews for the rental}
- family: account
description: Components scoped to an owner/dealer account rather than a single rental.
components:
- {name: ReviewList, description: reviews across the account}
- {name: LocationList, description: the account's business locations}
customization:
templating: Hogan.js templates for result rendering
styling: CSS class overrides on every widget
filter_api: [getFilters, changeFilters, clearFilters]
booking_api: custom booking initialisation with prefilled renter information
third_party_dependencies:
- {name: Google Maps JavaScript API, required: optional, note: loaded by the integrator via a separate script tag for map-based search}
credentials:
required: partner ID
request: partners@outdoorsy.com
note: The widget library is inert without a partner ID.
production_examples:
- {site: Lazydays, url: 'https://www.lazydays.com', cited_by: 'https://developers.outdoorsy.com/help/instant-search'}
- {site: AdventureKT, url: 'https://www.adventurekt.com', cited_by: 'https://developers.outdoorsy.com/help/instant-search'}
related_surfaces:
- name: Partner deep links
base: https://redirect.outdoorsy.com
pattern: 'https://redirect.outdoorsy.com?odc_partner={{PARTNER_ID}}&odc_url={{DESTINATION}}&odc_locale={{LOCALE}}'
params:
- {name: odc_partner, required: true, description: 'partner account identifier — no attribution is tracked without it'}
- {name: odc_url, required: false, description: 'destination path on outdoorsy.com (e.g. list-your-rv, rv-search, a listing slug); defaults to the homepage'}
- {name: odc_locale, required: false, description: 'user locale; defaults to en-us'}
passthrough_params: [from, to, style, keywords, type, q]
docs: https://developers.outdoorsy.com/help/deep-links
note: >-
The zero-code integration tier — no API token needed, attribution handled by the redirect
service.
- name: WordPress plugins
see_also: packages/outdoorsy-packages.yml