Every specification published on this site is also published here as one machine-readable file — 1,816 floorplan records across 11 brands and 112 lines, with the units named and the qualifiers attached. It is free to use with attribution. The one condition that matters is at the top of section 03, and it is not a licensing condition: carry the qualifiers with the numbers.
Download
campertrailers-verified-specs.json — 1,957 KB · 1,816 records · 35 fields · generated 2026-08-05 · sha256 3493c5b1cf03049f…
01 What is in it
One record per published floorplan page. Each record carries the identity of the unit, its published weights, dimensions, tank capacities and equipment, a link back to the page it was read from, and a link to that page's spec sheet PDF where one exists.
| Floorplan records | 1,816 |
| Travel trailers | 1,346 |
| Fifth wheels | 470 |
| Brands | 11 |
| Lines | 112 |
| Records linking a spec-sheet PDF | 1,816 |
| Tracked fields per record | 35 |
02 The record schema
The fields block in the file carries this same table, so a consumer never has to read this page to understand the file. Populated is the number of records that publish a value for that field — the gaps are real and are stated rather than filled.
| Field | Type | Populated | Meaning |
|---|---|---|---|
url | string | 1,816 | Canonical URL of the floorplan page this record was read from. |
page | string | 1,816 | Flat filename of that page. |
spec_sheet_pdf | string | 1,816 | Downloadable one-page spec sheet, where one is published. |
brand | string | 1,816 | Manufacturer as the brand publishes it. |
line | string | 1,816 | Nameplate / product line. |
line_url | string | 1,816 | Canonical URL of the line hub. |
model | string | 1,816 | Line plus floorplan code. |
model_year_label | string | 1,816 | Model year and make exactly as the page states it. |
body_type | string | 1,816 | Travel Trailer or Fifth Wheel, taken from the page. |
dry_weight_lb | integer · lb | 1,815 | Unloaded vehicle weight as published. Not a shipping weight. |
gvwr_lb | integer · lb | 1,666 | Gross vehicle weight rating -- the loaded ceiling. |
gvwr_derived | boolean | 1,813 | true when the page derived GVWR as dry + cargo rather than transcribing it. |
cargo_capacity_lb | integer · lb | 1,814 | Cargo carrying capacity (CCC). Fresh water and propane come out of this. |
hitch_weight_lb | integer · lb | 1,805 | Tongue or pin weight. ALWAYS DRY -- see hitch_weight_basis. |
hitch_weight_basis | string | 1,805 | Always "dry" when a hitch figure is present. Loaded tongue weight runs higher. |
hitch_kind | string | 1,808 | tongue (bumper pull) or pin (fifth wheel), from the page's own label. |
length_ft | number · ft | 1,787 | Exterior length as published. |
width_ft | number · ft | 1,731 | Exterior width as published. |
exterior_height_ft | number · ft | 1,711 | Exterior height as published. Excludes aftermarket roof equipment. |
interior_height_ft | number · ft | 1,047 | Interior standing height as published. |
fresh_water_gal | integer · US gal | 1,812 | Fresh water tank capacity. |
grey_water_gal | integer · US gal | 1,804 | Grey water tank capacity. |
black_water_gal | integer · US gal | 1,807 | Black water tank capacity. |
sleeps | integer | 1,374 | Manufacturer sleeping capacity claim. A claim, not a comfort rating. |
axles | integer | 561 | Number of axles. |
slides | integer | 453 | Number of slide-outs. |
tires | string | 1,036 | Tire size and/or load range as published. Often a description, not a size. |
air_conditioner | string | 597 | Roof air conditioning as published. |
refrigerator | string | 592 | Refrigerator capacity and type as published. |
awning | string | 836 | Awning count and length as published. |
primary_bed | string | 442 | Primary bed configuration. |
layout | string | 309 | One-line description of the floorplan. |
msrp_usd | integer · USD | 485 | Manufacturer suggested retail price where one is published. Not a street price. |
asterisked_fields | array | 262 | Field names whose published value carries an asterisk on the page. |
completeness_pct | integer · % | 1,816 | Share of tracked fields this page publishes. |
03 Conventions you have to carry with the numbers
The one that can hurt someone
Every hitch_weight_lb in this file is a dry tongue or pin weight, and each record says so in its own hitch_weight_basis field. Loaded tongue weight is conventionally 10–15% of loaded trailer weight and runs higher — often a lot higher once the front pass-through is packed. Anyone sizing a tow vehicle's payload against the dry figure will under-budget. Republish the basis with the number.
null is a statement, not a gap in the export
A null means no source we accept published that figure. Nothing in this file is estimated, interpolated from a sibling floorplan, or zero-filled. Where a field is missing across a whole line it is because the manufacturer does not publish it.
gvwr_derived marks arithmetic, not transcription
71 of 1,816 records carry gvwr_derived: true, meaning the page computed GVWR as dry weight plus cargo capacity because no source published the rating directly. The arithmetic ties out exactly by definition — the flag exists so that the provenance survives the export.
No tow-vehicle ratings, anywhere
This file contains the trailer side of the towing equation only. It asserts nothing about what any vehicle can pull, because a single truck model swings by thousands of pounds on engine, axle ratio, cab, drivetrain and package. The authoritative number for a given vehicle is the payload placard on its own door jamb, and no dataset can substitute for it.
One model year, spanning coverage
model_year_label is the model year the page currently states. Pages cover 2005–present as a span, so the label is not a claim that the specification held unchanged for every year of the run. Manufacturers re-spec mid-generation and sometimes mid-year.
sleeps and msrp_usd are manufacturer claims
sleeps is the manufacturer's own capacity claim reproduced verbatim, not an assessment of comfortable occupancy. msrp_usd (485 of 1,816 records) is a published list price, not a transaction price; street prices routinely land below it and it goes stale faster than any other field here.
04 Where the coverage is thin, stated plainly
Publishing the gaps is the point of publishing the coverage counts. Three worth knowing before you build on this:
Tires. 1,036 of 1,816 records carry a tires value, but many of those are a description rather than a size — a load range and a brand, where the factory never published the section width. Treat the field as free text, not as a parseable size.
Price. 485 of 1,816 records carry an MSRP. The rest have no published list price from any source we accept.
Weights. Dry weight is on all 1,815 records and cargo capacity on 1,814; GVWR reaches 1,666 and hitch weight 1,805. The shortfall is the honest one — those are the units where the published record ran out, and the site excludes rather than guesses.
05 Using and citing it
Free to use, including commercially, with attribution to CamperTrailers.com. If you reproduce a weight, carry its qualifier: hitch and pin figures are dry, and a derived GVWR is flagged. Stripping the qualifier is what turns a verified number into a misleading one, and it is the only misuse of this data that could actually cost someone something.
The same catalog is described for machine consumers at /llms.txt, and the verification standard behind every figure is set out on the methodology page.
06 How this file is produced
It is generated, never hand-maintained. A build step parses the 1,816 rendered floorplan pages — the same HTML a visitor sees — and emits the records from what those pages actually publish. That direction matters: the file cannot claim a figure the site does not show, because the site is its source. The derived-GVWR flag is read from each page's own row label and cross-checked against an independently built index before the file is written; a disagreement fails the build rather than shipping.
Regenerating the file from an unchanged tree produces an identical file. If the checksum above has moved, the catalog moved.