Notice

Silhouettes & line art delayed.Capacity is tight right now. We add new firearms in regular batches every few weeks. Verifying data takes time. Thanks for your patience.

Type-safe firearms API in every stack.

First-party clients for TypeScript and Python. Plus a typed REST surface for everywhere a curl call can run.

  1. TypeScript SDK

    First-party Hono RPC client. Node 18+, Bun, Deno, browsers, Cloudflare Workers. 12 kB gzip.

  2. Python SDK

    Sync and async clients. Python 3.9 through 3.13. Pydantic models out of the box.

  3. REST surface

    Anywhere a curl call runs. The SDKs wrap this; the wire format stays simple.

  4. Typed end to end

    Hono RPC inference reaches into your code. No JSON casting. The compiler catches caliber typos before staging.

  5. Quiet retries

    Exponential backoff on 429 and 5xx with jitter. You write the call once. The SDK handles the rest.

  6. Edge ready

    Drops into Cloudflare Workers, Deno, Bun, browsers, Node 18+. Zero Node-only deps. 12 kB gzip.

Install

One command. Live in minutes.

TypeScript
npm install @buun_group/gunspec-sdk
Python
pip install gunspec
REST
curl https://api.gunspec.io/v1/firearms/glock-17 -H "Authorization: Bearer $GUNSPEC_KEY"
Or with

Five lines to production

Same shape. Two languages. Pick the one your team ships in.

Each sample assumes GUNSPEC_KEY is set in your environment.
import { GunSpec } from '@buun_group/gunspec-sdk'

const client = new GunSpec({ apiKey: process.env.GUNSPEC_KEY })
const glock = await client.firearms.get('glock-17')
glock.specs // typed end to end

Compatibility

Where the SDKs run.

  • Node.js 18+
    Shipping
  • Bun 1.0+
    Shipping
  • Deno 1.40+
    Shipping
  • Cloudflare Workers
    Shipping
  • Vercel Edge
    Shipping
  • Browsers (Chrome 110+, Safari 16+, Firefox 115+)
    Shipping
  • Python 3.9+
    Shipping
  • Python 3.13
    Shipping