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.