Random Firearm
Returns one firearm at random, optionally constrained by category or country. Responses are sent with Cache-Control: no-store so every call is a fresh draw.
- stringheaderrequired
Your API key.
Authorization: Bearer <key>is accepted in its place.
- string
Restrict the draw to a category slug
- Example
- string
Restrict the draw to an ISO country code
- Example
- object
The response payload.
- string
Slug of the drawn firearm.
- string
Display name, as the maker writes it.
- string | null
Slug of the manufacturer. Null where the maker is unrecorded.
- string | null
Slug of the category the firearm belongs to.
- integer | null
Year the model was introduced.
- string | null
Production status, one of
in_production,discontinued,out_of_production,in_service,limited_production,prototype. Discontinued records are kept deliberately: a rifle built in 2004 wears parts nobody sells today. - string | null
ISO 3166-1 alpha-2 code of the country of origin.
- string | null
Operating action as stored, underscored, e.g.
short_recoil,bolt_action,gas_operated. The full vocabulary is/v1/firearms/action-types; a hyphenated value matches nothing. - number | null
Unloaded weight in grams.
- number | null
Barrel length in millimetres.
- 400
VALIDATION_ERROR - 401
UNAUTHORIZED - 403
FORBIDDEN - 404
NOT_FOUND - 429
RATE_LIMITED - 500
INTERNAL_ERROR
Each request returns a different random firearm.
Combine with category or country filters to narrow the pool.
- Minimum tier
- Explorer+
- Monthly quota
- 200/mo
- Rate limit
- 10/min
- Daily cap
- 50
Figures shown are for this endpoint's minimum tier. Higher tiers raise every limit.