3.2kโ
by seanrea
ridb-search โ OpenClaw Skill
ridb-search is an OpenClaw Skills integration for coding workflows. Search the Recreation Information Database (RIDB) for campgrounds and recreation facilities near a location. Use when finding campgrounds, recreation areas, or federal facilities by location/radius. Supports geocoding (city names) and lat/lon coordinates.
Skill Snapshot
| name | ridb-search |
| description | Search the Recreation Information Database (RIDB) for campgrounds and recreation facilities near a location. Use when finding campgrounds, recreation areas, or federal facilities by location/radius. Supports geocoding (city names) and lat/lon coordinates. OpenClaw Skills integration. |
| owner | seanrea |
| repository | seanrea/ridb-search |
| language | Markdown |
| license | MIT |
| topics | |
| security | L1 |
| install | openclaw add @seanrea/ridb-search |
| last updated | Feb 7, 2026 |
Maintainer

name: ridb-search description: Search the Recreation Information Database (RIDB) for campgrounds and recreation facilities near a location. Use when finding campgrounds, recreation areas, or federal facilities by location/radius. Supports geocoding (city names) and lat/lon coordinates.
RIDB Search
Search recreation.gov's database for campgrounds and facilities near a location.
Setup
Requires a free RIDB API key:
- Go to https://ridb.recreation.gov/profile
- Sign up and generate an API key
- Set environment variable:
export RIDB_API_KEY=your_key_here
Usage
Search by location name (auto-geocodes):
python scripts/search.py --location "Bend, OR" --radius 50
python scripts/search.py -l "Yosemite Valley" -r 25 --camping-only
Search by coordinates:
python scripts/search.py --lat 44.0582 --lon -121.3153 --radius 50
Options
| Flag | Description |
|---|---|
--location, -l | Location name to geocode (e.g., "Bend, OR") |
--lat | Latitude (use with --lon) |
--lon | Longitude (use with --lat) |
--radius, -r | Search radius in miles (default: 50) |
--limit | Max results (default: 50) |
--camping-only | Filter to camping facilities |
--reservable-only | Filter to reservable facilities |
--json | Output JSON (for programmatic use) |
Output
Human-readable (default):
๐ Geocoded 'Bend, OR' to 44.0582, -121.3153
Found 23 facilities within 50 miles
------------------------------------------------------------
๐๏ธ Tumalo State Park
ID: 234567 | โ
Reservable
Org: Oregon State Parks
URL: https://www.recreation.gov/camping/campgrounds/234567
JSON output (--json):
{
"query": {"latitude": 44.0582, "longitude": -121.3153, "radius_miles": 50},
"total_count": 23,
"facilities": [
{
"id": "234567",
"name": "Tumalo State Park",
"reservable": true,
"url": "https://www.recreation.gov/camping/campgrounds/234567"
}
]
}
Notes
- RIDB contains federal recreation data; some state/private campgrounds may not be listed
- The
idfield is the campground ID used for availability checks on recreation.gov - Radius is in miles (RIDB native unit)
- Geocoding uses OpenStreetMap/Nominatim (free, no key required)
RIDB Search
A Python CLI for searching the Recreation Information Database (RIDB) to find federal campgrounds and recreation facilities near a location.
Overview
RIDB is the authoritative database behind recreation.gov. This tool searches it to find:
- Campground IDs needed for
recgov-availability - Facility metadata (reservable status, managing agency)
- Nearby recreation areas
Use this to discover campgrounds, then check availability with recgov-availability.
Coverage
- National Park Service facilities
- USDA Forest Service campgrounds
- Bureau of Land Management sites
- Army Corps of Engineers recreation areas
- Bureau of Reclamation facilities
For state parks, use reserveamerica instead.
Prerequisites
- Python 3.8+
- RIDB API key (free)
Getting an API Key
- Go to https://ridb.recreation.gov/profile
- Create an account
- Generate an API key
- Set the environment variable:
export RIDB_API_KEY=your_key_here
Quick Start
cd /Users/doop/moltbot/skills/ridb-search
# Search by location name
python3 scripts/search.py --location "Newport, Oregon" --radius 30
# Filter to camping only
python3 scripts/search.py -l "Yosemite Valley" -r 25 --camping-only
# JSON output for scripts
python3 scripts/search.py -l "Bend, OR" --camping-only --json
CLI Options
python3 scripts/search.py [options]
| Option | Description |
|---|---|
-l, --location | Location to geocode (e.g., "Bend, OR") |
--lat | Latitude (use with --lon) |
--lon | Longitude (use with --lat) |
-r, --radius | Search radius in miles (default: 50) |
--limit | Max results (default: 50) |
--camping-only | Filter to camping facilities |
--reservable-only | Filter to reservable facilities |
--api-key | RIDB API key (or use env var) |
--json | JSON output |
Examples
Find campgrounds near Newport, OR
python3 scripts/search.py -l "Newport, Oregon" --camping-only
Output:
๐ Geocoded 'Newport, Oregon' to 44.6368, -124.0534
Found 34 facilities within 50 miles
------------------------------------------------------------
๐๏ธ TILLICUM
ID: 233965 | โ
Reservable
Org: Siuslaw National Forest
URL: https://www.recreation.gov/camping/campgrounds/233965
๐๏ธ CAPE PERPETUA
ID: 233900 | โ
Reservable
Org: Siuslaw National Forest
URL: https://www.recreation.gov/camping/campgrounds/233900
JSON output for scripting
python3 scripts/search.py -l "Bend, OR" --camping-only --reservable-only --json
{
"query": {
"latitude": 44.0582,
"longitude": -121.3153,
"radius_miles": 50
},
"total_count": 47,
"facilities": [
{
"id": "232089",
"name": "TUMALO STATE PARK",
"type": "Campground",
"reservable": true,
"latitude": 44.1272,
"longitude": -121.3308,
"description": "...",
"url": "https://www.recreation.gov/camping/campgrounds/232089",
"parent_org": "Oregon State Parks"
}
]
}
Workflow: Search โ Check Availability โ Book
# 1. Find campgrounds near your destination
python3 scripts/search.py -l "Newport, OR" --camping-only --reservable-only
# 2. Note the IDs, then check availability
python3 ../recgov-availability/scripts/check.py \
-c 233965 233900 \
--start 2026-07-10 \
--nights 2
# 3. Book on recreation.gov
open "https://www.recreation.gov/camping/campgrounds/233965"
Architecture
scripts/
โโโ search.py # Single-file CLI (stdlib only)
references/
โโโ (add API docs here if needed)
API Endpoint
GET https://ridb.recreation.gov/api/v1/facilities
Headers:
apikey: Your RIDB API key
Query Parameters:
latitude,longitude: Search centerradius: Mileslimit: Max resultsactivity: Activity ID filter (9 = Camping)
Technical Notes
Geocoding
Uses OpenStreetMap Nominatim for free locationโcoordinates conversion. No API key needed.
Rate Limiting
RIDB doesn't document rate limits, but be reasonable (~1 req/sec for bulk operations).
No Dependencies
Uses only Python standard library.
Combining with Other Skills
| Task | Skill |
|---|---|
| Find campground IDs | ridb-search (this) |
| Check rec.gov availability | recgov-availability |
| Search state parks | reserveamerica |
License
MIT
Permissions & Security
Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.
Requirements
- OpenClaw CLI installed and configured.
- Language: Markdown
- License: MIT
- Topics:
FAQ
How do I install ridb-search?
Run openclaw add @seanrea/ridb-search in your terminal. This installs ridb-search into your OpenClaw Skills catalog.
Does this skill run locally or in the cloud?
OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.
Where can I verify the source code?
The source repository is available at https://github.com/openclaw/skills/tree/main/skills/seanrea/ridb-search. Review commits and README documentation before installing.
