GET /api/jurisdiction-lookup
Public · read-only

Put jurisdiction intelligence inside the checkout flow.

Gun-Go gives FFLs and POS teams a deterministic, source-linked on-ramp for building location-aware firearm workflows. Resolve a state, pilot slug, or coordinate pair; receive one predictable jurisdiction brief your product can render, log, or review.

Built for the handoff
Keep your POS or FFL workflow focused on the transaction. Let the lookup return the evidence trail alongside the rule brief.
One selector mode per request
Four stable rule slots plus equipment mappings
Citations and review context included

01 / Request

Start with one clear input.

Choose exactly one selector mode. State accepts a two-letter code or supported state name. The slug selector is sent as jurisdiction in the query string.

Coordinates require both lat and lng, with latitude from -90 to 90 and longitude from -180 to 180.

Do not mix state or jurisdiction with coordinates. Postal-code lookup is not supported.

The current pilot resolver covers Colorado, Kansas, Texas, Arizona, North Dakota, Missouri, Wyoming, and New Hampshire aliases and locations. Treat an unsupported selector as a lookup miss, not as a legal conclusion.

State alias
curl "/api/jurisdiction-lookup?state=MO"
Jurisdiction slug
curl "/api/jurisdiction-lookup?jurisdiction=missouri"
Coordinate pair
curl "/api/jurisdiction-lookup?lat=38.4561&lng=-92.2884"

Selector reference

Parameters at a glance.

Jurisdiction lookup query parameters
ParameterAcceptsNotes
stateTwo-letter code or slug-like state nameCase-insensitive; supports CO, COLORADO, KS, KANSAS, TX, TEXAS, AZ, ARIZONA, ND, NORTH-DAKOTA, MO, MISSOURI, WY, WYOMING, NH, and NEW-HAMPSHIRE.
jurisdictionSlug-like jurisdiction selectorCase-insensitive; supported slugs are colorado, kansas, texas, arizona, north-dakota, missouri, wyoming, and new-hampshire.
lat + lngA numeric coordinate pairBoth are required; lat is -90..90 and lng is -180..180.
postalUnsupportedReturns 400. Unknown query keys are also rejected.

Pilot coverage

Eight supported jurisdictions.

Supported jurisdiction codes and slugs
CodeNamejurisdiction valueReview status
COColoradocolorado
Approved
KSKansaskansas
Approved
TXTexastexas
Approved
AZArizonaarizona
Approved
NDNorth Dakotanorth-dakota
Approved
MOMissourimissouri
Approved
WYWyomingwyoming
Approved
NHNew Hampshirenew-hampshire
Approved

02 / Response

Four slots, plus a mapping layer.

The selected jurisdiction always returns the same four rule categories: carry, magazine, transport, and duty-to-inform. A slot can be present with rule: null when no current rule record is available. The additive equipment array maps equipment and ammunition questions to those rules without making a new legal conclusion.

Useful for integrators

  • • Store the rule id with the transaction or cart review.
  • • Render the label and summary in your own workflow.
  • • Keep sourceUrl available for a human verification step.

Live example

GET /api/jurisdiction-lookup?state=MO

Loading the current Missouri response…

Response schema

Stable at the edges, rich in the middle.

The four rule slots are always present and ordered as carry, magazine, transport, then duty-to-inform. An unavailable current rule is represented by rule: null. The separate equipment array always contains four mappings; each mapped rule is nullable and scopeCopy explains the mapping’s limits.

Selected jurisdiction shape
{
  id, name, abbreviation,
  rules: [
    { category, rule: null | {
      id, category, label, summary,
      effectiveFrom, effectiveTo, updatedAt,
      jurisdictionId, reviewStatus,
      sourceLabel, sourceUrl,
      lastReviewedAt, reviewedBy,
      revisions: [{ changedAt, changeSummary }],
      history: [{ timestamp, kind, summary }]
    } }
  ],
  equipment: [
    { category, label, mappedRuleCategory,
      rule: null | { ...same rule fields... },
      scopeCopy: string | null }
  ]
}
Jurisdiction lookup response fields
PathTypeMeaning
id · name · abbreviationstringSelected jurisdiction identity and state abbreviation.
rules[]4 ordered slotsEach slot has category and a nullable current rule.
equipment[]4 mappingsLong-gun, standard-capacity magazine, high-capacity magazine, and ammunition transport mappings. Each includes a nullable mapped rule and scopeCopy.
rule.*string fieldsid, category, label, summary, jurisdictionId, reviewStatus, sourceLabel, and sourceUrl.
rule.*At / effective*ISO date-timeeffectiveFrom and updatedAt are required; effectiveTo and lastReviewedAt are nullable. reviewedBy is nullable.
revisions[] · history[]arrays, max 5Revision entries use changedAt/changeSummary; history entries use timestamp/kind/summary.

Errors

Predictable failures, safe to handle.

Every failure is JSON with the same shape. Branch on the status, then show or log the returned message without exposing implementation details.

400

Invalid, missing, conflicting, out-of-range, postal, or unknown parameters.

{ "error": "Postal-code lookup is not supported." }
404
{ "error": "Jurisdiction not found." }
500
{ "error": "Jurisdiction lookup is temporarily unavailable." }

The endpoint allows Access-Control-Allow-Origin: * for browser and server integrations. Requests are read-only; cache responsibly around the timestamps returned by each rule.

03 / Evidence

The brief comes with its paper trail.

A populated rule includes the citation pair, effective and update timestamps, plus change and review context so your team can decide when to surface a re-check. The reviewStatus value describes the returned review state; effectiveFrom and updatedAt anchor it in time.

Citation pair
sourceLabel names the authority; sourceUrl points your reviewer to the cited source.
Revision context
revisions[] lists changedAt and changeSummary for recorded rule changes.
Review history
history[] exposes timestamp, kind, and summary for review and revision events.

Informational, not legal advice.

Timestamps and citations describe the returned dataset; they are not a guarantee of legal advice, completeness, or freshness beyond those timestamps. Verify the current official source and consult qualified counsel for a decision that matters.

Read the evidence standard