API and data licensing
Every listing on ShootingRanges.co is available as JSON at https://shootingranges.co/api/v1/: ranges, clubs, shops and academies in all 50 states with coordinates, hours, contact details, access and fees, and the public-land ranges published by state and federal agencies.
Public tier
No key needed for apps, research and personal use: up to 50 results per page, cached for an hour. Please link back to the listing page and keep the source attribution on seeded records (OpenStreetMap data is ODbL).
Licensed tier
For insurers, hunting and outdoor apps, retailers building a store locator, or anyone redistributing the data: a key unlocks the bulk export (one JSON object per line, since= for daily deltas), 500 results per page and a usage report. Pricing is per seat per year and depends on the use case. Write to contact@shootingranges.co with what you are building.
Endpoints
GET /listings/ | lat, lng, radius (≤250 mi), state, city, category, feature, attr, q, sort, page, per_page |
GET /listings/{slug}/ | full record: contact, hours, pricing, gallery, facts by source, features, reviews, nearby, guides |
GET /points/ | every pin as [id, lat, lng, title, slug, featured] |
GET /taxonomy/ | categories, features and attributes with counts |
GET /states/ and /states/{code}/ | states with counts, cities within a state |
GET /guides/ and /guides/{slug}/ | published guides |
GET /geocode/?q= | city, address or ZIP to coordinates (US) |
POST /submit/ | add a listing, suggest an edit, report a closure (moderated) |
GET /export/ | licensed: bulk NDJSON of every listing, with since= for deltas |
Send a key as Authorization: Bearer srk_…. Errors come back as { error: { code, message } }. Hours are only returned when they have been verified, in the listing's own timezone. The discovery document at /api/v1/ lists everything above.
Mobile app
The ShootingRanges.co app for iPhone and Android is built on this API and shows no advertising.
