Developer documentation
Texas Gun Finder API
Read-only JSON access to the Texas Gun Finder corpus. Query Texas firearm listings from every dealer, marketplace, and classifieds site we index — same data that powers the public search.
Access
Public endpoints below are rate-limited but do not require an API key.
For higher limits, batch queries, or custom fields (dealer inventory feeds, deal alerts,
embed widgets), get in touch.
Pass any API key you're issued as ?api_key=….
Base URL: https://texasgunfinder.com/api/v1
Search listings
Search across every active listing in the corpus. Same filters as the /search web UI: full-text query, brand, category, city, source, condition, and price range.
GET https://texasgunfinder.com/api/v1/search?q={QUERY}&city={CITY_SLUG}&limit={INT}&api_key={API_KEY}
Query parameters
q— full-text query (websearch syntax:"quoted phrase",-exclude,OR).brand— brand slug (repeatable). Common:glock,sig-sauer,smith-wesson,ruger.category—handguns,rifles,shotguns,nfa,parts,ammunition, etc. See /categories/.city— Texas city slug (repeatable). E.g.fort-worth,austin,houston. See /cities/.source— source key (repeatable). E.g.gunbroker,tgt,dealer-nagels-guns.condition—usedornew(repeatable).price_min,price_max— integer dollars.sort—newest(default),price_asc,price_desc.limit— 1 to 100. Default 20.offset— result offset for pagination. Default 0.
Example response
{
"count": 342,
"limit": 20,
"offset": 0,
"results": [
{
"id": 174616,
"title": "Bergara B14 Stoke Compact 6.5 Creedmoor 20\" Black",
"title_raw": "BERGARA B14 STOKE COMPACT – 6.5CM 20″ BLACK CERA/BLACK SYN",
"brand": "Bergara",
"brand_slug": "bergara",
"model": "B14",
"category": "rifles",
"condition": "new",
"price_cents": 89999,
"price_display": "$899.99",
"is_bundle": false,
"price_range_cents": null,
"city": "Dallas",
"city_slug": "dallas",
"zip": null,
"source": {
"key": "dealer-diamond-k-armory",
"display_name": "Diamond K Armory"
},
"image": "https://diamondkarmory.com/wp-content/uploads/bergara-b14.jpg",
"url": "https://texasgunfinder.com/go/174616/",
"source_url": "https://diamondkarmory.com/product/bergara-b14-stoke-compact/",
"first_seen_at": "2026-08-12T14:22:00Z",
"last_seen_at": "2026-08-14T03:15:00Z"
}
]
}
The url field is a click-through URL on Texas Gun Finder that
redirects to the source. Use this for referral-attributed traffic. source_url is the raw dealer URL.
Corpus stats
Aggregate counts across the active corpus — listings, dealers, sources, top brands / categories / cities. Cached five minutes.
GET https://texasgunfinder.com/api/v1/stats?api_key={API_KEY}
{
"listings_total": 84371,
"listings_used": 6209,
"sources_count": 12,
"dealers_count": 33,
"top_brands": [{"slug": "glock", "name": "Glock", "count": 4218}, ...],
"top_categories": [{"slug": "handguns", "name": "Handguns", "count": 28734}, ...],
"top_cities": [{"slug": "houston", "name": "Houston", "count": 8942}, ...]
}
Dealer directory
Every onboarded dealer storefront we index. Names, cities, listing counts, and links to the per-dealer profile page.
GET https://texasgunfinder.com/api/v1/dealers?limit={INT}&offset={INT}&api_key={API_KEY}
{
"count": 33,
"limit": 50,
"offset": 0,
"results": [
{
"slug": "adelbridge",
"name": "Adelbridge & Co",
"website": "https://adelbridge.com/",
"city": "Houston",
"city_slug": "houston",
"listing_count": 412,
"used_count": 87,
"profile_url": "https://texasgunfinder.com/d/adelbridge/"
}
]
}
Postman collection
Ready-to-import collection with every endpoint above. Import into Postman via File → Import → Link, or download the JSON.
Planned endpoints
These aren't live yet. If any would unblock what you're building, mention it in feedback and we'll prioritize.
GET /api/v1/prices/{brand-slug}/{model-slug}— every current TX price for a specific model, sorted low to high. Useful for dealer price-benchmarking.GET /api/v1/deals— active below-market listings (price at or below the 25th percentile of the same brand+model+condition peer bucket).POST /api/v1/watch— register a saved-search webhook. We POST to your URL when a new matching listing appears.GET /api/v1/embed.js— JS embed that renders a live search widget on your site.
Terms of use
All listing data links back to the source. Do not scrape and re-host listings without honoring the source's own terms. Attribution to the source is required for public display. Rate limits are enforced per API key; unauthenticated requests are subject to lower limits and may be blocked without notice.
Full terms of service apply. Contact via feedback for commercial licensing or elevated access.