Hipcamp Campsite Listings Scraper avatar

Hipcamp Campsite Listings Scraper

Pricing

Pay per event

Go to Apify Store
Hipcamp Campsite Listings Scraper

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

DevilScrapes

Maintained by Community

Actor 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 rotationcurl-cffi impersonates 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-After honoured.
  • 🧱 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/url across 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

  1. Click Try for free at the top of the page.
  2. Fill in the input form — most fields have sensible defaults.
  3. Click Start. Output streams into the run's dataset.
  4. Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.

📥 Input

FieldTypeRequiredDefaultNotes
regionsarrayyes[{'state': 'Texas', 'city': 'Austin'}]US regions to scrape, 1-10 items. Each item: { state (required, e.g. 'Texas'), city (optional, e.g. 'Austin') }.…
maxListingsPerRegionintegerno20Caps rows per region. Leave unset for everything the discover page returns (roughly 40-45 combined listings).
proxyConfigurationobjectno{'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.

FieldTypeNotes
listing_idstringnode.id (fallback maskedId/uuid).
listing_typestring'private_land', 'public_campground', or 'public_land'.
namestringnode.name (fallback parkName).
urlstringnode.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_atstringISO 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:

EventUSDWhat it is
actor-start$0.05One-off warm-up charge per run
result-row$0.0012Per 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.