List Manufacturers
Returns a paginated list of firearm manufacturers.
- stringheaderrequired
Your API key.
Authorization: Bearer <key>is accepted in its place.
- integerdefault
1Page number, from 1 to 10,000
- Range
- 1 – 10000
- Example
- integerdefault
20Items per page (max 100)
- Range
- 1 – 100
- Example
- string
Filter by ISO 3166-1 alpha-2 country code
- Example
- string
Substring match on manufacturer name
- Example
- Manufacturer[]
One page of results
- string
URL-safe slug identifying the manufacturer, e.g.
glock. - string
Display name, as the maker writes it.
- string | null
ISO 3166-1 alpha-2 code of where the company is based.
- integer | null
Year the company was founded.
- string | null
Whether the company still trades. Much of this catalog is historical, and null means nobody has established which.
- integer | null
Year the company ceased trading, where that is established. Null while it still trades, and also null where the closing year is simply unknown, so an absent value is never read as "still trading".
- boolean | null
Government owned. Null is not false: it means nobody has established it, and a consumer treating null as false would report every unchecked company as private.
- boolean | null
Builds the products this catalog lists, as against importing, rebranding or customising them. Scope is the catalog rather than a legal definition: air rifles are listed here as rifles and pistols, so their makers are true. Null means unestablished.
- string | null
The manufacturer that owns this one today.
- string | null
The manufacturer this one succeeded, which is not the same as being owned by it: U.S. Repeating Arms followed Winchester without Winchester owning it.
- string | null
Official website, where one is known.
- string | null
Absolute URL of the logo, or null where none is on file.
- string | null
Prose summary of the record, where one has been written.
- string
When the record was first added,
YYYY-MM-DD HH:MM:SSin UTC. - string
When a field we serve last changed. Maintained by the database rather than by whatever wrote the row, so it moves for a corrected specification and does not move for a re-run of the importer.
- string | null
Opaque fingerprint of this record. It changes when and only when a field we serve changes, so a client holding the same value already has the record and need not fetch it. Equality is the only supported operation: do not parse it, and do not assume how it is computed. Null means the record has not been written since versioning began, not that it is unchanged.
- number
Current page number
- number
Items per page
- number
Total matching records (Builder and above)
- 400
VALIDATION_ERROR - 401
UNAUTHORIZED - 403
FORBIDDEN - 429
RATE_LIMITED - 500
INTERNAL_ERROR
- 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.
This read answers conditional requests. Keep the ETag from a response and send it back as If-None-Match: an unchanged record returns 304 Not Modified with no body, which counts toward your per-minute rate limit but not your daily allowance.