Hipcamp Campsite Listings Scraper
Pricing
Pay per event
Hipcamp Campsite Listings Scraper
Scrape Hipcamp's US regional discover pages into structured campsite rows — private land, public campgrounds, and public land — with price, rating, geo, and capacity fields. We handle blocks, retries, and fingerprint rotation for you.
Pricing
Pay per event
Rating
0.0
(0)
Developer
DevilScrapes
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
🎯 What this scrapes
Hipcamp is the largest US marketplace for private-land camping, public campgrounds, and public-land stays, and its scraper field is thin: the sole name-matched rival, lexis-solutions/hipcamp-scraper, runs with just 4 users. This Actor turns Hipcamp's regional discover pages into normalized rows — private land, public campgrounds, and public land in one shape — with USD nightly price, rating percentage, review count, capacity, geo-coordinates, and accommodation types per listing, so hosts running competitor/pricing intel and travel-data buyers don't have to hand-parse Hipcamp's own page markup.
🔥 What we handle for you
- 🛡️ Browser fingerprint rotation —
curl-cffiimpersonates real Chrome / Firefox / Safari TLS handshakes, rotated across requests, so the target sees a browser, not Python. - 🌐 Proxy session rotation via Apify Proxy — fresh session and exit IP on every block, always pinned to the US (
US) since Hipcamp inventory is US-only. - 🔁 Retries with exponential backoff on
408 / 429 / 5xx— up to 5 attempts per region,Retry-Afterhonoured. - 🧱 Region-level fault isolation — one blocked or unreadable region is skipped and logged, never crashes the run.
- 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, deduped by
listing_id/urlacross all three listing types. - 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge.
💡 Use cases
- Outdoor-stay host competitor intel — benchmark nightly pricing, ratings, and capacity against nearby private-land and campground listings in your region.
- Travel-data aggregation — feed normalized US campsite inventory into a broader outdoor-travel dataset alongside other lodging sources.
- Campsite-availability data buyers — pull current listing counts, accommodation types, and geo-coordinates per region for market-coverage analysis.
- Market-entry research — compare private-land, public-campground, and public-land supply and pricing across multiple US states/cities in one run.
⚙️ How to use it
- Click Try for free at the top of the page.
- Fill in the input form — most fields have sensible defaults.
- Click Start. Output streams into the run's dataset.
- Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.
📥 Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
regions | array | yes | [{'state': 'Texas', 'city': 'Austin'}] | US regions to scrape, 1-10 items. Each item: { state (required, e.g. 'Texas'), city (optional, e.g. 'Austin') }.… |
maxListingsPerRegion | integer | no | 20 | Caps rows per region. Leave unset for everything the discover page returns (roughly 40-45 combined listings). |
proxyConfiguration | object | no | {'useApifyProxy': True, 'apifyProxyGroups': ['RESIDENTIAL'], 'apifyProxyCountry': 'US'} | Defaults to the RESIDENTIAL proxy group pinned to the US — Hipcamp inventory is US-only, so a random exit country risks… |
Example input
{"regions": [{"state": "Texas","city": "Austin"}],"maxListingsPerRegion": 5,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}}
📤 Output
Every row is one dataset item.
| Field | Type | Notes |
|---|---|---|
listing_id | string | node.id (fallback maskedId/uuid). |
listing_type | string | 'private_land', 'public_campground', or 'public_land'. |
name | string | node.name (fallback parkName). |
url | string | node.url/hasMap, absolutized against https://www.hipcamp.com. |
city | ['string', 'null'] | node.cityName. |
state | ['string', 'null'] | node.stateName. |
state_abbr | ['string', 'null'] | node.stateAbbrvName. |
country_code | ['string', 'null'] | node.countryCode. |
latitude | ['number', 'null'] | node.coordinate.latitude / JSON-LD geo.latitude. |
longitude | ['number', 'null'] | node.coordinate.longitude / JSON-LD geo.longitude. |
price_per_night_usd | ['number', 'null'] | minPricePerNight.amount / pricePerNight.amount. |
price_display | ['string', 'null'] | .format field / JSON-LD priceRange. |
rating_percentage | ['number', 'null'] | recommendsPercentage. |
rating_count | ['integer', 'null'] | recommendsCount / JSON-LD aggregateRating.ratingCount. |
total_campsites_count | ['integer', 'null'] | totalCampsitesCount / campsitesCount. |
summary | ['string', 'null'] | summary (fallback tileSummary). |
accommodation_types | ['array', 'null'] | allAccommodationKeys. |
is_star_host | ['boolean', 'null'] | isStarHost (private-land only). |
distance_miles | ['number', 'null'] | distance, US locale, unconverted. |
image_url | ['string', 'null'] | coverPhoto.filename / topPhotos[0] / JSON-LD image. |
scraped_at | string | ISO 8601 UTC row-creation timestamp. |
Example output
{"listing_id": "7rvhj6kr","listing_type": "private_land","name": "Texas Urban Hideout","url": "https://www.hipcamp.com/en-US/land/texas-urban-hideout-7rvhj6kr","city": "Austin","state": "Texas","state_abbr": "TX","country_code": "US","latitude": 30.2672,"longitude": -97.7431,"price_per_night_usd": 72.0,"price_display": "$72","rating_percentage": 98.0,"rating_count": 41,"total_campsites_count": 3,"summary": "Private land tucked into East Austin, walkable to downtown.","accommodation_types": ["house"],"is_star_host": true,"distance_miles": 4.2,"image_url": "https://cdn.hipcamp.com/...jpg","scraped_at": "2026-08-24T18:03:11Z"}
💰 Pricing
Pay-Per-Event — you pay only when these events fire:
| Event | USD | What it is |
|---|---|---|
actor-start | $0.05 | One-off warm-up charge per run |
result-row | $0.0012 | Per unique dataset item |
Example: 1 000 results at the rates above ≈ $1.25. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.
🚧 Limitations
v0.1 covers each region's discover-page snapshot only (~40-45 combined listings per region) — not a metro's full inventory, and not listing detail pages (amenities, galleries, host bios, review text, availability calendars). Booking/availability/reservation data and non-US regions are out of scope.
❓ FAQ
Do I need a Hipcamp account or API key?
No. This Actor scrapes Hipcamp's own publicly listed discover pages — no login, no API key.
Does this cover a region's full inventory?
No. Hipcamp's discover page is curated — roughly 40-45 combined listings per region, even when the site reports thousands of total listings. There's no pagination parameter on this page; broaden coverage with more regions (up to 10 per run), not paging.
What regions can I scrape?
Any US state, optionally narrowed to a city — pass free-text names like 'Texas' or 'Los Angeles' and the Actor slugifies them internally. Hipcamp inventory is US-only.
What happens if a region has no matches?
The run still succeeds with zero rows for that region and a status message naming what was searched — a real search that matched nothing is not a failure.
💬 Your feedback
Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.