Hipcamp APIhipcamp.com ↗
Search Hipcamp campgrounds by coordinates, retrieve site availability and pricing, read reviews, and access amenity details via a structured JSON API.
What is the Hipcamp API?
The Hipcamp API covers 4 endpoints for querying campground listings, site availability, and visitor reviews from Hipcamp.com. Use search_campgrounds to find listings by latitude and longitude with optional keyword filtering, then drill into individual properties via get_campground_details for host info, amenities, and full descriptions. Response objects return fields like pricePerNight, responseRate, coreAmenities, and highlight headers.
curl -X GET 'https://api.parse.bot/scraper/6b7d0eb2-8854-4b04-a162-5892bab0642f/search_campgrounds?lat=37.7749&lng=-122.4194&limit=5&adults=1&offset=0' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace hipcamp-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.hipcamp_scraper_api import Hipcamp, Campground, CampgroundDetail
hipcamp = Hipcamp()
# Search for campgrounds near San Francisco
for campground in hipcamp.campgrounds.search(lat=37.7749, lng=-122.4194, limit=5):
print(campground.name, campground.city_name, campground.price_per_night, campground.recommends_percentage)
# Get full details for the first result
detail = campground.details()
print(detail.full_name, detail.overview[:100], detail.host.first_name_last_initial)
# List available sites
for site in campground.sites.list(arrive="2026-07-01", depart="2026-07-03", adults=2):
print(site.name, site.accommodation_type, site.max_capacity, site.is_available, site.price_per_night)
# Browse reviews
for review in campground.reviews.list(limit=3):
print(review.author_display_name, review.recommend, review.formatted_created_at)
break
Search for campgrounds by geographic coordinates. Returns a paginated list of campground listings with pricing, ratings, and booking info. Both lat and lng are required. Use offset and limit for pagination.
| Param | Type | Description |
|---|---|---|
| latrequired | number | Latitude for coordinate-based search (e.g. 37.7749) |
| lngrequired | number | Longitude for coordinate-based search (e.g. -122.4194) |
| limit | integer | Max results to return per page |
| query | string | Optional keyword to refine the coordinate search (e.g. a destination or location name) |
| adults | integer | Number of adults |
| offset | integer | Pagination offset (number of results to skip) |
{
"type": "object",
"fields": {
"edges": "array of campground result objects, each with node (campground details including id, maskedId, name, cityName, stateAbbrvName, coordinate, recommendsPercentage, recommendsCount, bookingsCount, isInstantBookable, url) and pricePerNight (format, minorAmount)",
"total": "integer total number of matching campgrounds"
},
"sample": {
"data": {
"edges": [
{
"node": {
"id": "36257",
"url": "/en-US/land/california-meadow-camping-in-bolinas-9mxh8mxy",
"name": "Meadow camping in Bolinas",
"uuid": "5705566c-d271-4f0a-8485-8df48fc6fe7f",
"cityName": "Bolinas",
"maskedId": "9mxh8mxy",
"coordinate": {
"latitude": 37.91336,
"longitude": -122.697799
},
"bookingsCount": 1128,
"stateAbbrvName": "CA",
"recommendsCount": 635,
"isInstantBookable": true,
"recommendsPercentage": 98
},
"pricePerNight": {
"format": "$66.00",
"minorAmount": 6600
}
}
],
"total": 718
},
"status": "success"
}
}About the Hipcamp API
Search and Discovery
The search_campgrounds endpoint accepts lat and lng as required inputs and returns a paginated edges array of campground result objects. Each node includes pricing and ratings data alongside a maskedId you can pass into the other endpoints. Use offset and limit to page through results, and the optional query parameter to narrow results by keyword within the coordinate area. The total field tells you the full count of matching listings so you can build pagination logic accurately.
Campground Details and Amenities
get_campground_details accepts either a numeric land_id or a masked ID slug and returns a rich object covering the property's fullName, cityName, stateName, overview text, and highlights (an edges array with header and subheader per highlight). Host metadata includes firstNameLastInitial, avatarUrl, responseRate, and responseTime. Amenities are split into coreAmenities and basicAmenities, each an array of objects carrying name, description, slug, and iconName.
Site Availability and Reviews
get_campground_sites returns individual bookable sites within a property. Pass arrive and depart as YYYY-MM-DD strings along with guest counts (adults, children, pets) to get back site-level isAvailable, pricePerNight, totalPrice, and serviceFee. The node inside each site edge contains the site name and accommodation details.
get_campground_reviews returns reviewer-contributed tips with description, recommend, authorDisplayName, authorAvatarUrl, and formattedCreatedAt. It uses cursor-based pagination: the pageInfo object in each response contains hasNextPage and endCursor, and you pass the endCursor value as the after parameter in the next request to walk through all reviews. totalCount gives the full review count for a listing.
The Hipcamp API is a managed, monitored endpoint for hipcamp.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when hipcamp.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official hipcamp.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a campground search map that plots listings by coordinates using pricePerNight and ratings data.
- Aggregate amenity profiles across multiple campgrounds by comparing coreAmenities and basicAmenities slugs.
- Check site availability for specific arrival and departure dates before linking users to a booking flow.
- Display host response rates and response times to help users evaluate campground reliability.
- Scrape visitor reviews with recommend flags to train a sentiment classifier on outdoor accommodation feedback.
- Generate campground comparison pages using fullName, overview, highlights, and per-night pricing.
- Track how totalPrice and serviceFee vary across sites within the same campground for cost analysis.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Hipcamp have an official public developer API?+
What does search_campgrounds return, and how do I paginate through results?+
edges array of campground nodes with pricing and rating data, plus a total integer for the full result count. Use the limit and offset parameters to step through pages — for example, set offset to limit * page_number for each subsequent request.Can I retrieve photo galleries or image URLs for a campground or its individual sites?+
avatarUrl for the host and authorAvatarUrl for reviewers, but campground and site photo galleries are not exposed as structured fields. You can fork this API on Parse and revise it to add an image-focused endpoint.How does cursor-based pagination work in get_campground_reviews?+
pageInfo object with hasNextPage (boolean) and endCursor (a Base64-encoded string). When hasNextPage is true, pass the endCursor value as the after parameter in your next request to fetch the following page of reviews.Does the API expose campground geographic coordinates, map bounds, or distance from search origin?+
search_campgrounds endpoint accepts coordinates as input but the documented response fields focus on pricing, ratings, and identifiers rather than returning lat/lng per result. Explicit coordinate fields per listing are not currently in the response schema. You can fork this API on Parse and revise it to surface those fields if they appear in the raw response.