ammoseek.com APIammoseek.com ↗
Search in-stock ammunition, firearms, and reloading components across retailers via the AmmoSeek API. Get prices, calibers, retailer ratings, and deals.
curl -X GET 'https://api.parse.bot/scraper/0a603c5c-dac6-4a0a-a758-05abdfc3060e/search_ammo?caliber=9mm-luger' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for in-stock ammunition by caliber. Returns detailed product info including price, price per round, brand, retailer ratings, and condition. Results are paginated via start/length parameters.
| Param | Type | Description |
|---|---|---|
| sort | string | Sort order for results. |
| brand | string | Brand/manufacturer filter ID. 0 means no filter. |
| start | integer | Pagination offset (0-based). |
| grains | string | Grain weight filter. 0 means no filter. |
| length | integer | Number of results per page. |
| caliberrequired | string | Caliber slug (e.g. '9mm-luger', '223-remington', '22lr', '45acp'). Use get_ammo_caliber_list or get_popular_calibers to discover valid slugs. |
| exclude | string | Keywords to exclude from search results. |
| include | string | Keywords to include in search results. |
| gun_type | string | Gun type filter. Accepted values: handgun, rifle, rimfire, shotgun. |
{
"type": "object",
"fields": {
"items": "array of ammunition listing objects with keys: retailer, descr, mfg, caliber, price, cp, cp_cleaned, count, grains, casing, condition, rating, num_ratings, retailer_url",
"total": "integer total number of matching records",
"filtered": "integer number of records after filtering"
},
"sample": {
"data": {
"items": [
{
"cp": "6.4¢",
"mfg": "Wolf",
"count": 50,
"descr": "Wolf Performance 9mm Luger Ammo 124 Grain Brass Plated Full Metal Jacket(FMJ)",
"price": "$3.20",
"casing": "steel",
"grains": 124,
"rating": 3.5,
"caliber": "9mm Luger",
"retailer": "Ammo ASAP",
"condition": "new",
"cp_cleaned": 6.4,
"num_ratings": 90,
"retailer_url": "https://ammoseek.com/share/a/422646495040"
}
],
"total": 500,
"filtered": 500
},
"status": "success"
}
}About the ammoseek.com API
The AmmoSeek API provides 7 endpoints for querying in-stock ammunition, firearms, and reloading supplies aggregated from multiple retailers. The search_ammo endpoint returns per-listing fields including price, cost-per-round (cp, cp_cleaned), grain weight, casing type, condition, and retailer URL — making it straightforward to build price-comparison tools or inventory monitors across calibers like 9mm-luger, 223-remington, and 22lr.
Ammo and Firearm Search
The search_ammo endpoint accepts a required caliber slug (e.g. 45acp, 308-winchester) plus optional filters for brand, grains, include, and exclude keywords. Results are paginated via start and length parameters and each item in the items array carries fields: retailer, descr, mfg, caliber, price, cp (cost per round), cp_cleaned, count, grains, casing, and condit. The total and filtered integers in the response tell you how many records match before and after filtering. Use get_ammo_caliber_list to retrieve valid caliber slugs, or get_popular_calibers if you only need the commonly searched ones organized by firearm type (handgun, rifle, rimfire, shotgun).
Firearms and Reloading
search_guns follows the same pagination pattern and returns firearm listings with retailer, descr, mfg, caliber, price, rating, num_ratings, and retailer_url. search_reloading requires a category parameter — one of bullets, brass, primers, powder, or miscellaneous — and returns component listings with cost-per-unit fields alongside retailer ratings. Both endpoints support brand, include, and exclude filters.
Retailer Intelligence and Deals
get_retailer_ratings returns the full roster of indexed retailers with each retailer's name, rating, and review_count — useful for filtering or ranking results from the search endpoints by seller reputation. get_deals surfaces current promotions from participating retailers, including retailer, description, and coupon_code fields. Neither endpoint requires any input parameters.
- Build a cost-per-round price tracker for a specific caliber across all indexed retailers
- Alert users when in-stock 9mm or 223 ammo drops below a target price using
search_ammosorted bycp_cleaned - Aggregate retailer ratings from
get_retailer_ratingsto rank search results by seller reputation - Surface active coupon codes from
get_dealsinside a browser extension or deal-alert service - Compare reloading primer and powder prices across brands using
search_reloadingwith category filters - Populate a caliber selector UI from
get_ammo_caliber_listto ensure valid search inputs - Monitor firearm listings by caliber and brand using
search_gunsfor in-stock availability notifications
| 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 | 250 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 AmmoSeek have an official developer API?+
What does `cp` versus `cp_cleaned` mean in `search_ammo` results?+
cp is the raw cost-per-round string as listed, which may include formatting characters or symbols. cp_cleaned is a normalized numeric version suitable for sorting and arithmetic comparisons. Use cp_cleaned when building price filters or ranking results.Does `search_ammo` return sold-out or historical listings?+
Can I filter `search_guns` by firearm type (handgun, rifle, etc.)?+
search_guns endpoint currently filters by brand, caliber, include, and exclude keywords. A dedicated firearm-type or action-type filter is not exposed. You can fork this API on Parse and revise it to add a category or type parameter to narrow firearm results further.How do I discover valid caliber slugs for `search_ammo`?+
get_ammo_caliber_list returns an array of objects each with a label (human-readable name) and seo (the slug to pass as caliber). For a shorter list of commonly searched calibers grouped by firearm type, use get_popular_calibers, which returns label and slug fields.