GunSpec

Ammunition

Resource class for interacting with the GunSpec Ammunition API. Wraps all /v1/ammunition endpoints. Instantiated internally by the GunSpec client and exposed as client.ammunition.

Authentifizierung erforderlichBuilder+

List ammunition with optional filters and pagination.

list(params?: ListAmmunitionParams): Promise<PaginatedResponse<Ammunition>>
GET/v1/ammunition

  • stringHeadererforderlich

    Ihr API-Schlüssel. Authorization: Bearer <key> wird ebenfalls akzeptiert.

  • integerstandard1

    Page number, from 1 to 10,000

    Bereich
    1 – 10000
    Beispiel
  • integerstandard20

    Items per page (max 100)

    Bereich
    1 – 100
    Beispiel
  • string

    Substring match on the load name, designation, maker or cartridge name

    Max. Länge
    200
    Beispiel
  • string

    Filter by caliber slug

    Beispiel
  • string

    Filter by bullet construction

    Beispiel
  • integer

    Restrict to commonly stocked loads (1) or uncommon ones (0)

    Bereich
    0 – 1
    Beispiel

  • AmmunitionLoad[]

    A specific factory ammunition load within a caliber.

  • string

    URL-safe slug identifying the load, e.g. 9mm-124gr-fmj.

  • string

    Slug of the cartridge. Resolve against /v1/calibers/{id}.

  • string

    Display name, as the maker writes it.

  • string | null

    Military or standards designation for the load, e.g. M882.

  • string | null

    Who makes it.

  • string | null

    ISO 3166-1 alpha-2 code of where it was designed, e.g. AT.

  • number

    Bullet weight in grams. Divide by 0.0648 for grains.

  • string

    Bullet construction: fmj, jhp, sp, match.

  • number | null

    Ballistic coefficient against the G1 drag model, the convention for flat-based bullets.

  • number | null

    Ballistic coefficient against the G7 drag model, which fits boat-tail rifle bullets better than G1.

  • number

    Muzzle velocity in metres per second at the reference barrel length below, not at the barrel of any particular firearm.

  • number

    Barrel length in millimetres the reference velocity was measured from. Velocity for another barrel is extrapolated from this pair.

  • number | null

    Bullet mass divided by the square of its diameter. Higher penetrates better, all else equal.

  • integer | null

    Year it entered production or service. Null where the date is disputed or unknown.

  • integer

    1 when the load is commonly stocked.

  • string | null

    Absolute URL of the rendered bullet diagram.

  • number | null

    Decay exponent used when extrapolating velocity to a barrel length other than the reference one.

  • string | null

    Prose summary of the record, where one has been written.

  • integer

    1 when the load is a military issue round.

  • string

    When the record was first added, YYYY-MM-DD HH:MM:SS in 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 figure and does not move for a re-run of the seed. Before migration 0113 the seed rewrote every load on every run, and this said so.

  • string[]

    Where the figures came from. Null on every load today: this family has somewhere to cite from and nothing cited yet, which the data quality page counts as a gap rather than hiding. Check a velocity against the maker until it is filled.

  • number | null

    How well specified the load is, on the same 0 to 1 scale as a firearm's. Null until there are sources behind it: a confidence figure with nothing supporting it looks like evidence and is not.

  • Provenance

    Where a record's figures came from and how far they have been checked, in one place. sources are the pages consulted; check a specific figure against those. sourceKinds says what each page is and bestSourceKind the strongest of them, on the hierarchy SourceKind defines: a maker or standards-body page is evidence for a figure, a retailer or forum page is evidence the item exists. dataConfidence is the 0 to 1 score set from what was actually sourced and never raised by hand. verifiedAt and verifiedFields say when a source was last read against the record and which fields it stated; null means the row is still seed knowledge. updatedAt and version are the same cache signals the record carries at the top level.

  • string[]

    The pages consulted when the record was compiled, as an array. Check a specific figure against these rather than against dataConfidence.

  • object[]

    What each cited page is, in sources order, on the SourceKind hierarchy. A host not in the source map is other, never guessed.

  • SourceKind | null

    The strongest kind among the citations, or null when nothing is cited. manufacturer or standards_body means a figure can be checked against an authority; retailer or community alone means the record is still supported by copies of copies.

  • string | null

    The first cited page on the record's own manufacturer's website, or null when it cites none. A page on another maker's site does not count. Cited from the maker is not the same as checked against it: verifiedFields names the figures that were read against a source.

  • string

    How far the record's figures are backed, strongest first, for a badge: verified when at least one figure was read against a source (verifiedFields), maker when it cites a page on its own manufacturer's site (makerSource), authority when it cites a maker, standards body or government page, secondary when it cites only press, retailers, references or forums, none when it cites nothing. Derived from the fields beside it.

  • object

    The checks the record has been through, on a single record's response only: every task the data agent (Redback) or a person was given about it, what each proposed, the pages it read, and whether a person accepted it. Nothing an agent proposes reaches the record until a person accepts it, so this is the trail behind verifiedFields. Who reviewed is not published; an agent's instance name is.

  • number | null

    The 0 to 1 score set from what was actually sourced, never raised by hand. See the confidence bands in the docs.

  • string | null

    When a source was last read against this record. Null means the row is still seed knowledge.

  • string[]

    Which fields the source stated, as an array. Everything else on a verified row is still unverified. Null where no source has been read.

  • string | null

    Cartridges only: the page the drawing figures were taken from. Null on every other kind of record.

  • string

    When a served column last changed; the same value the record carries at the top level.

  • string | null

    The record's content version, equal to the top-level version; equal versions mean equal data.

  • 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)

  • 400VALIDATION_ERRORValidation error
  • 401UNAUTHORIZEDAPI key required
  • 403FORBIDDENValid key, not permitted
  • 429RATE_LIMITEDRate limit exceeded
  • 500INTERNAL_ERRORUnexpected server error

Mindeststufe
Builder+
Monatskontingent
25,000/mo
Anfragerate
60/min
Tageslimit
5,000

Die Werte gelten für die Mindeststufe dieses Endpunkts. Höhere Stufen erhöhen alle Limits.

Dieser Aufruf beantwortet bedingte Anfragen. Speichern Sie das ETag einer Antwort und senden Sie es als If-None-Match zurueck: ein unveraenderter Datensatz liefert 304 Not Modified ohne Body. Das zaehlt auf Ihr Minutenlimit, aber nicht auf Ihr Tageskontingent.

Authentifizierung erforderlichBuilder+

Auto-paginate through all ammunition matching the given filters. Returns an async iterator that fetches pages on demand, yielding individual Ammunition objects.

listAutoPaging(params?: ListAmmunitionParams): AsyncIterableIterator<Ammunition>
GET/v1/ammunition

  • stringHeadererforderlich

    Ihr API-Schlüssel. Authorization: Bearer <key> wird ebenfalls akzeptiert.

  • integerstandard1

    Page number, from 1 to 10,000

    Bereich
    1 – 10000
    Beispiel
  • integerstandard20

    Items per page (max 100)

    Bereich
    1 – 100
    Beispiel
  • string

    Substring match on the load name, designation, maker or cartridge name

    Max. Länge
    200
    Beispiel
  • string

    Filter by caliber slug

    Beispiel
  • string

    Filter by bullet construction

    Beispiel
  • integer

    Restrict to commonly stocked loads (1) or uncommon ones (0)

    Bereich
    0 – 1
    Beispiel

  • AmmunitionLoad[]

    A specific factory ammunition load within a caliber.

  • string

    URL-safe slug identifying the load, e.g. 9mm-124gr-fmj.

  • string

    Slug of the cartridge. Resolve against /v1/calibers/{id}.

  • string

    Display name, as the maker writes it.

  • string | null

    Military or standards designation for the load, e.g. M882.

  • string | null

    Who makes it.

  • string | null

    ISO 3166-1 alpha-2 code of where it was designed, e.g. AT.

  • number

    Bullet weight in grams. Divide by 0.0648 for grains.

  • string

    Bullet construction: fmj, jhp, sp, match.

  • number | null

    Ballistic coefficient against the G1 drag model, the convention for flat-based bullets.

  • number | null

    Ballistic coefficient against the G7 drag model, which fits boat-tail rifle bullets better than G1.

  • number

    Muzzle velocity in metres per second at the reference barrel length below, not at the barrel of any particular firearm.

  • number

    Barrel length in millimetres the reference velocity was measured from. Velocity for another barrel is extrapolated from this pair.

  • number | null

    Bullet mass divided by the square of its diameter. Higher penetrates better, all else equal.

  • integer | null

    Year it entered production or service. Null where the date is disputed or unknown.

  • integer

    1 when the load is commonly stocked.

  • string | null

    Absolute URL of the rendered bullet diagram.

  • number | null

    Decay exponent used when extrapolating velocity to a barrel length other than the reference one.

  • string | null

    Prose summary of the record, where one has been written.

  • integer

    1 when the load is a military issue round.

  • string

    When the record was first added, YYYY-MM-DD HH:MM:SS in 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 figure and does not move for a re-run of the seed. Before migration 0113 the seed rewrote every load on every run, and this said so.

  • string[]

    Where the figures came from. Null on every load today: this family has somewhere to cite from and nothing cited yet, which the data quality page counts as a gap rather than hiding. Check a velocity against the maker until it is filled.

  • number | null

    How well specified the load is, on the same 0 to 1 scale as a firearm's. Null until there are sources behind it: a confidence figure with nothing supporting it looks like evidence and is not.

  • Provenance

    Where a record's figures came from and how far they have been checked, in one place. sources are the pages consulted; check a specific figure against those. sourceKinds says what each page is and bestSourceKind the strongest of them, on the hierarchy SourceKind defines: a maker or standards-body page is evidence for a figure, a retailer or forum page is evidence the item exists. dataConfidence is the 0 to 1 score set from what was actually sourced and never raised by hand. verifiedAt and verifiedFields say when a source was last read against the record and which fields it stated; null means the row is still seed knowledge. updatedAt and version are the same cache signals the record carries at the top level.

  • string[]

    The pages consulted when the record was compiled, as an array. Check a specific figure against these rather than against dataConfidence.

  • object[]

    What each cited page is, in sources order, on the SourceKind hierarchy. A host not in the source map is other, never guessed.

  • SourceKind | null

    The strongest kind among the citations, or null when nothing is cited. manufacturer or standards_body means a figure can be checked against an authority; retailer or community alone means the record is still supported by copies of copies.

  • string | null

    The first cited page on the record's own manufacturer's website, or null when it cites none. A page on another maker's site does not count. Cited from the maker is not the same as checked against it: verifiedFields names the figures that were read against a source.

  • string

    How far the record's figures are backed, strongest first, for a badge: verified when at least one figure was read against a source (verifiedFields), maker when it cites a page on its own manufacturer's site (makerSource), authority when it cites a maker, standards body or government page, secondary when it cites only press, retailers, references or forums, none when it cites nothing. Derived from the fields beside it.

  • object

    The checks the record has been through, on a single record's response only: every task the data agent (Redback) or a person was given about it, what each proposed, the pages it read, and whether a person accepted it. Nothing an agent proposes reaches the record until a person accepts it, so this is the trail behind verifiedFields. Who reviewed is not published; an agent's instance name is.

  • number | null

    The 0 to 1 score set from what was actually sourced, never raised by hand. See the confidence bands in the docs.

  • string | null

    When a source was last read against this record. Null means the row is still seed knowledge.

  • string[]

    Which fields the source stated, as an array. Everything else on a verified row is still unverified. Null where no source has been read.

  • string | null

    Cartridges only: the page the drawing figures were taken from. Null on every other kind of record.

  • string

    When a served column last changed; the same value the record carries at the top level.

  • string | null

    The record's content version, equal to the top-level version; equal versions mean equal data.

  • 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)

  • 400VALIDATION_ERRORValidation error
  • 401UNAUTHORIZEDAPI key required
  • 403FORBIDDENValid key, not permitted
  • 429RATE_LIMITEDRate limit exceeded
  • 500INTERNAL_ERRORUnexpected server error

Returns an async iterator: it fetches each page as you consume it, so a loop over the whole collection is one statement and one page in memory at a time.

Mindeststufe
Builder+
Monatskontingent
25,000/mo
Anfragerate
60/min
Tageslimit
5,000

Die Werte gelten für die Mindeststufe dieses Endpunkts. Höhere Stufen erhöhen alle Limits.

Dieser Aufruf beantwortet bedingte Anfragen. Speichern Sie das ETag einer Antwort und senden Sie es als If-None-Match zurueck: ein unveraenderter Datensatz liefert 304 Not Modified ohne Body. Das zaehlt auf Ihr Minutenlimit, aber nicht auf Ihr Tageskontingent.

Authentifizierung erforderlichBuilder+

Get a single ammunition load by its slug or ID.

get(id: string): Promise<APIResponse<Ammunition>>
GET/v1/ammunition/{id}

  • stringHeadererforderlich

    Ihr API-Schlüssel. Authorization: Bearer <key> wird ebenfalls akzeptiert.

  • stringerforderlich

    Ammunition load slug

    Akzeptiert
    a lowercase slug: letters, digits and hyphens
    Beispiel

  • AmmunitionLoad

    A specific factory ammunition load within a caliber.

  • string

    URL-safe slug identifying the load, e.g. 9mm-124gr-fmj.

  • string

    Slug of the cartridge. Resolve against /v1/calibers/{id}.

  • string

    Display name, as the maker writes it.

  • string | null

    Military or standards designation for the load, e.g. M882.

  • string | null

    Who makes it.

  • string | null

    ISO 3166-1 alpha-2 code of where it was designed, e.g. AT.

  • number

    Bullet weight in grams. Divide by 0.0648 for grains.

  • string

    Bullet construction: fmj, jhp, sp, match.

  • number | null

    Ballistic coefficient against the G1 drag model, the convention for flat-based bullets.

  • number | null

    Ballistic coefficient against the G7 drag model, which fits boat-tail rifle bullets better than G1.

  • number

    Muzzle velocity in metres per second at the reference barrel length below, not at the barrel of any particular firearm.

  • number

    Barrel length in millimetres the reference velocity was measured from. Velocity for another barrel is extrapolated from this pair.

  • number | null

    Bullet mass divided by the square of its diameter. Higher penetrates better, all else equal.

  • integer | null

    Year it entered production or service. Null where the date is disputed or unknown.

  • integer

    1 when the load is commonly stocked.

  • string | null

    Absolute URL of the rendered bullet diagram.

  • number | null

    Decay exponent used when extrapolating velocity to a barrel length other than the reference one.

  • string | null

    Prose summary of the record, where one has been written.

  • integer

    1 when the load is a military issue round.

  • string

    When the record was first added, YYYY-MM-DD HH:MM:SS in 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 figure and does not move for a re-run of the seed. Before migration 0113 the seed rewrote every load on every run, and this said so.

  • string[]

    Where the figures came from. Null on every load today: this family has somewhere to cite from and nothing cited yet, which the data quality page counts as a gap rather than hiding. Check a velocity against the maker until it is filled.

  • number | null

    How well specified the load is, on the same 0 to 1 scale as a firearm's. Null until there are sources behind it: a confidence figure with nothing supporting it looks like evidence and is not.

  • Provenance

    Where a record's figures came from and how far they have been checked, in one place. sources are the pages consulted; check a specific figure against those. sourceKinds says what each page is and bestSourceKind the strongest of them, on the hierarchy SourceKind defines: a maker or standards-body page is evidence for a figure, a retailer or forum page is evidence the item exists. dataConfidence is the 0 to 1 score set from what was actually sourced and never raised by hand. verifiedAt and verifiedFields say when a source was last read against the record and which fields it stated; null means the row is still seed knowledge. updatedAt and version are the same cache signals the record carries at the top level.

  • string[]

    The pages consulted when the record was compiled, as an array. Check a specific figure against these rather than against dataConfidence.

  • object[]

    What each cited page is, in sources order, on the SourceKind hierarchy. A host not in the source map is other, never guessed.

  • SourceKind | null

    The strongest kind among the citations, or null when nothing is cited. manufacturer or standards_body means a figure can be checked against an authority; retailer or community alone means the record is still supported by copies of copies.

  • string | null

    The first cited page on the record's own manufacturer's website, or null when it cites none. A page on another maker's site does not count. Cited from the maker is not the same as checked against it: verifiedFields names the figures that were read against a source.

  • string

    How far the record's figures are backed, strongest first, for a badge: verified when at least one figure was read against a source (verifiedFields), maker when it cites a page on its own manufacturer's site (makerSource), authority when it cites a maker, standards body or government page, secondary when it cites only press, retailers, references or forums, none when it cites nothing. Derived from the fields beside it.

  • object

    The checks the record has been through, on a single record's response only: every task the data agent (Redback) or a person was given about it, what each proposed, the pages it read, and whether a person accepted it. Nothing an agent proposes reaches the record until a person accepts it, so this is the trail behind verifiedFields. Who reviewed is not published; an agent's instance name is.

  • number | null

    The 0 to 1 score set from what was actually sourced, never raised by hand. See the confidence bands in the docs.

  • string | null

    When a source was last read against this record. Null means the row is still seed knowledge.

  • string[]

    Which fields the source stated, as an array. Everything else on a verified row is still unverified. Null where no source has been read.

  • string | null

    Cartridges only: the page the drawing figures were taken from. Null on every other kind of record.

  • string

    When a served column last changed; the same value the record carries at the top level.

  • string | null

    The record's content version, equal to the top-level version; equal versions mean equal data.

  • 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.

  • 400VALIDATION_ERRORValidation error
  • 401UNAUTHORIZEDAPI key required
  • 403FORBIDDENValid key, not permitted
  • 404NOT_FOUNDResource not found
  • 429RATE_LIMITEDRate limit exceeded
  • 500INTERNAL_ERRORUnexpected server error

Mindeststufe
Builder+
Monatskontingent
25,000/mo
Anfragerate
60/min
Tageslimit
5,000

Die Werte gelten für die Mindeststufe dieses Endpunkts. Höhere Stufen erhöhen alle Limits.

Dieser Aufruf beantwortet bedingte Anfragen. Speichern Sie das ETag einer Antwort und senden Sie es als If-None-Match zurueck: ein unveraenderter Datensatz liefert 304 Not Modified ohne Body. Das zaehlt auf Ihr Minutenlimit, aber nicht auf Ihr Tageskontingent.

Authentifizierung optionalExplorer+

Get a bullet profile SVG image for an ammunition load. Returns a raw SVG string representing the bullet projectile shape. This endpoint returns raw SVG content, not the standard JSON envelope.

getBulletSvg(id: string): Promise<string>
GET/v1/ammunition/{id}/bullet.svg

  • stringHeader

    Optional. Ohne Schlüssel antwortet dieser Endpunkt nach der öffentlichen Richtlinie; ein Schlüssel erhöht Ihre Limits und schaltet planabhängige Felder frei. Authorization: Bearer <key> wird ebenfalls akzeptiert.

  • stringerforderlich

    Ammunition load slug

    Akzeptiert
    a lowercase slug: letters, digits and hyphens
    Beispiel

  • 400VALIDATION_ERRORValidation error
  • 404NOT_FOUNDResource not found
  • 429RATE_LIMITEDRate limit exceeded
  • 500INTERNAL_ERRORUnexpected server error

Mindeststufe
Explorer+
Monatskontingent
200/mo
Anfragerate
10/min
Tageslimit
50

Die Werte gelten für die Mindeststufe dieses Endpunkts. Höhere Stufen erhöhen alle Limits.

Authentifizierung erforderlichBuilder+

Get ballistic trajectory data for an ammunition load.

ballistics(id: string, params?: AmmunitionBallisticsParams): Promise<APIResponse<BallisticProfile>>
GET/v1/ammunition/{id}/ballistics

  • stringHeadererforderlich

    Ihr API-Schlüssel. Authorization: Bearer <key> wird ebenfalls akzeptiert.

  • stringerforderlich

    Ammunition load slug

    Akzeptiert
    a lowercase slug: letters, digits and hyphens
    Beispiel

  • number

    Barrel length to adjust muzzle velocity for

    Bereich
    50 – 2000
    Beispiel
  • string

    Comma-separated distances in metres

    Beispiel
  • integer

    Zero distance in metres, where the bullet crosses the line of sight. Defaults to 25 for a handgun and 100 for a long gun.

    Bereich
    10 – 1000
    Beispiel
  • number

    Line of sight above the bore, in mm. Defaults to 20 for a handgun and 38 for a long gun.

    Bereich
    0 – 150
    Beispiel

  • object

    The response payload.

  • object

    The load the figures are for.

  • string

    Slug of the load the table was computed for.

  • string

    Display name, as the maker writes it.

  • string

    Slug of the cartridge. Resolve against /v1/calibers/{id}.

  • number | null

    Barrel length in millimetres, measured from the breech face.

  • number

    Muzzle velocity in metres per second, for the default load.

  • number

    Muzzle energy in joules, for the default load.

  • number

    Effective range in metres against a point target.

  • TerminalBallistics

    Terminal performance indices computed at the muzzle.

  • number

    Taylor Knock-Out factor.

  • number

    Momentum in kilogram-metres per second.

  • number

    Bullet mass divided by the square of its diameter. Higher penetrates better, all else equal.

  • number

    Hatcher Relative Stopping Power.

  • number

    Energy per unit frontal area, in joules per square centimetre.

  • Zeroing

    How the gun is assumed sighted for pathCm. Neither figure is recorded per gun, so each is an assumption the caller may override with zero_m and sight_height_mm: a handgun zeroed at 25 m with its sights 20 mm above the bore, a long gun at 100 m with an optic 38 mm above it.

  • number

    The distance at which the bullet crosses the line of sight, in m.

  • number

    The line of sight above the bore, in mm.

  • TrajectoryPoint[]

    The solution sampled at each requested distance.

  • number

    Distance from the muzzle in metres.

  • number

    Remaining velocity at this distance, in metres per second.

  • number

    Remaining energy at this distance, in joules.

  • number

    Drop below the bore line at this distance, in cm: the fall under gravity alone, with no sighting.

  • number

    Height relative to the line of sight at this distance, in cm, negative below: how a drop table reads, for the answer's zeroing (the gun zeroed at zeroM with its sights sightHeightMm above the bore). Starts at minus the sight height at the muzzle and is 0 at the zero.

  • number

    Time of flight to this distance, in seconds.

  • number

    Velocity as a multiple of the speed of sound. Below ~1.2 the projectile is transonic and destabilises.

  • number

    Momentum in kilogram-metres per second.

  • number

    Taylor Knock-Out factor at this distance.

  • number

    Energy per unit frontal area, in joules per square centimetre.

  • 400VALIDATION_ERRORValidation error
  • 401UNAUTHORIZEDAPI key required
  • 403FORBIDDENValid key, not permitted
  • 404NOT_FOUNDResource not found
  • 429RATE_LIMITEDRate limit exceeded
  • 500INTERNAL_ERRORUnexpected server error

Mindeststufe
Builder+
Monatskontingent
25,000/mo
Anfragerate
60/min
Tageslimit
5,000

Die Werte gelten für die Mindeststufe dieses Endpunkts. Höhere Stufen erhöhen alle Limits.