Skip to content

FirearmCart API

REST API reference for the FirearmCart v1 sales platform API

Updated View as Markdown

The FirearmCart API is a JSON REST API for reading your store’s catalog, customers, orders, fulfillments and subscriptions, and for taking payments from your own front end.

Check your plan first — the API is not included on every plan. You need either a plan that includes API & Webhooks access, or the API & Webhooks Access addon on your current plan. Without one, a perfectly valid token still returns 403 on every request, and your outgoing webhooks will not fire either. Upgrade or add it from the Addons tab on Billing; the exact responses are in API access gate.

Every request is authenticated with a bearer token that belongs to a store, not a person. Read Authentication before anything else — that one fact changes how you model access in your integration.


Base URL

https://api.firearmcart.com/v1

There is no /api path segment. The version lives in the path, the host is dedicated to the API, and the API domain is noindexed and returns a redirect to the marketing site at its root.

Property Value
Protocol HTTPS only
Format JSON request and response bodies
Auth Authorization: Bearer <token>
Required header Accept: application/json — see Errors
Default rate limit 60 requests/minute per store
Versioning Path-based (/v1). v1 is the only version.

Get a token

  1. Sign in at https://app.firearmcart.com and switch to the store you want the token to act on.
  2. Go to Profile → API Tokens (/user/api-tokens).
  3. Name the token, tick the abilities it needs, and create it.
  4. Copy the token immediately. It is shown once and never again.

A token alone is not enough: your plan must include API & Webhooks access, or the store must hold the API & Webhooks Access addon. Without one, every request returns 403 forbidden even with a valid token. Upgrade or add it from the Addons tab on Billing, and see API access gate for the exact response bodies.


60-second quickstart

Export your token, then list your catalog:

export FIREARMCART_TOKEN="paste-your-token-here"

curl https://api.firearmcart.com/v1/products \
  -H "Authorization: Bearer $FIREARMCART_TOKEN" \
  -H "Accept: application/json"

A successful response is a paginated envelope:

{
  "data": [
    {
      "product_id": 1042,
      "name": "Ruger 10/22 Carbine",
      "slug": "ruger-10-22-carbine",
      "price": 32999,
      "sku": "RUG-1103",
      "stock_quantity": 12,
      "in_stock": true,
      "status": "active",
      "has_variants": false
    }
  ],
  "links": {
    "first": "https://api.firearmcart.com/v1/products?page=1",
    "last": "https://api.firearmcart.com/v1/products?page=4",
    "prev": null,
    "next": "https://api.firearmcart.com/v1/products?page=2"
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 4,
    "path": "https://api.firearmcart.com/v1/products",
    "per_page": 25,
    "to": 25,
    "total": 87
  }
}

Note: price above is 32999 cents. Product and variant prices are integer cents; order and transaction amounts are float dollars. This is the single most common integration bug — read Conventions before you render a price.


Reference map

Guides

Page What it covers
Authentication Bearer tokens, the team-owned token model, all 15 abilities, the API access gate
Rate limits The 60/min and 30/min buckets, headers, and the 429 response
Pagination The data / links / meta envelope, per_page, and the two endpoints that don’t paginate
Errors The three error envelopes that actually exist, per status code
Conventions The mixed ID scheme and the mixed money units, per resource
Webhooks Consuming outgoing webhooks: payload, verification, retries

Endpoints

22 authenticated endpoints across nine resources.

Resource Endpoints
Customers & leads Create or update a lead, list customers, get a customer
Orders List orders, get an order, add a post-purchase upsell
Subscriptions List, get, pause, resume, skip, cancel, update
Fulfillments List fulfillments, get a fulfillment
Products List products, get a product
Payments Create a tokenization session, charge a card
Shipping, taxation & FFL dealers List shipping zones and rates, list tax zones, search the FFL directory

What the API does not do

Being explicit about the gaps saves you a search:

  • No catalog writes. Products, variants, collections, shipping zones and tax zones are read-only over the API. Create and edit them in the dashboard or through a distributor sync.
  • No order writes except payments. You cannot PATCH an order, mark it fulfilled, or refund it. Orders are created as a side effect of POST /v1/payments/charge, and POST /v1/orders/{order_id}/upsell appends to one.
  • No webhook management. Outgoing webhooks are configured in the dashboard only. See Webhooks.
  • No token management. Tokens are created and revoked in the dashboard only.
  • No customer-facing auth. There is no shopper login, cart, or checkout session API. Those live on the storefront.

Theme Dev MCP server

Separate from the REST API, the same store tokens can drive a Model Context Protocol server for theme development at https://api.firearmcart.com/mcp/themes. It speaks JSON-RPC over Streamable HTTP rather than REST, uses the themes:read and themes:write abilities, and has its own 240/min rate limit.

Page What it covers
Theme Dev MCP server Endpoint, transport, tokens, abilities, team scoping, connection failures
Tools All 33 tools — arguments, results, guardrails, and which ability each needs
Resources & prompts The 3 resources and 2 prompts the server hands your agent

  • Webhooks — merchant-facing setup and the full event catalogue
  • Integrations — prebuilt integrations that may already cover your use case
  • Billing — plans and add-ons, including API & Webhooks access
Navigation

Type to search…

↑↓ navigate↵ selectEsc close