2026 regulation year · v1
Public JSON API for US Fishing Regulations
Last updated
Free, no-key public API for the same US state fishing-regulation data that powers fishregs.hk2.ai — license fees, season windows, bag and size limits, gear restrictions, and named water-body overrides. Query by state, species, and water body. JSON over HTTPS, CORS open, cached at the edge.
Quickstart
curl 'https://fishregs.hk2.ai/api/regs?state=texas&species=largemouth-bass&waterbody=lake-fork'
No authentication, no API key, no signup. Responses includeAccess-Control-Allow-Origin: *andCache-Control: public, s-maxage=3600, stale-while-revalidate=86400so you can call it from a browser, a tackle-shop kiosk, a Lambda, or a static site at build time.
Endpoint
A single endpoint:
GET https://fishregs.hk2.ai/api/regs
With no parameters it returns a catalog (every covered state + every recognized state). Add parameters to narrow down to a state, a species, or a water-body override.
Query parameters
| Param | Type | Required | Description |
|---|---|---|---|
state | string (slug) | required (for regs) | US state or jurisdiction slug, e.g. 'texas', 'florida', 'district-of-columbia'. All 51 jurisdictions recognized; 10 currently deep-covered with full regulations. |
species | string (slug) | optional | Narrow the response to one species, e.g. 'largemouth-bass', 'king-salmon', 'musky'. Returns the full SpeciesDetail object instead of the entire state regs. |
waterbody | string (substring) | optional (requires species) | Case-insensitive substring matched against named water-body overrides for the chosen species, e.g. 'lake-fork', 'sam-rayburn', 'caddo-lake'. Returns the matching override or null. |
Examples
- /api/regs
Catalog: list endpoints + every covered state
- /api/regs?state=texas
Full Texas regs (license fees, top species summary, special waters, all deep-covered species)
- /api/regs?state=texas&species=largemouth-bass
Texas largemouth bass — full SpeciesDetail
- /api/regs?state=texas&species=largemouth-bass&waterbody=lake-fork
Texas largemouth + Lake Fork override
- /api/regs?state=alaska&species=king-salmon
Alaska king salmon — full SpeciesDetail
Sample response
Request: GET /api/regs?state=texas&species=largemouth-bass&waterbody=lake-fork
{
"state": {
"slug": "texas",
"abbr": "TX",
"name": "Texas",
"region": "Southwest"
},
"species": {
"slug": "largemouth-bass",
"name": "Largemouth bass",
"scientificName": "Micropterus salmoides",
"category": "freshwater",
"intro": "...",
"seasonSummary": "Open year-round statewide.",
"seasonWindows": "year-round",
"dailyBagLimit": "5 / day (combined with smallmouth and spotted bass)",
"possessionLimit": "10 in possession (combined black bass)",
"sizeLimit": "14 in minimum on most public reservoirs",
"slotLimit": "Slot limits on listed reservoirs (e.g. Lake Fork 16–24 in)",
"trophyRule": "ShareLunker entries 13 lb+ from Oct 1 – Apr 30 …",
"gearRestrictions": [
"Pole-and-line only on most public waters",
"No trotline / jugline / throw line for black bass",
"Tournament release rules apply on listed reservoirs"
],
"waterBodyOverrides": [
{
"waterBody": "Lake Fork Reservoir",
"rule": "16–24 in slot; bass 24 in+ harvestable only with ShareLunker trophy tag"
}
],
"publishedAt": "2026-05-20",
"updatedAt": "2026-05-20"
},
"waterBodyQuery": "lake-fork",
"waterBodyMatch": {
"waterBody": "Lake Fork Reservoir",
"rule": "16–24 in slot; bass 24 in+ harvestable only with ShareLunker trophy tag"
},
"_meta": {
"regulationYear": 2026,
"agency": "Texas Parks and Wildlife Department",
"agencyUrl": "https://tpwd.texas.gov/regulations/outdoor-annual/fishing",
"generatedAt": "2026-05-20T00:00:00.000Z"
}
}Status codes
| Status | Meaning | Triggered when |
|---|---|---|
| 200 | OK | Catalog response (no params), full state regs (state only), or species detail (state + species). |
| 400 | Bad Request | Unknown state slug, or 'waterbody' supplied without 'species'. |
| 404 | Not Found | State is recognized but not yet deep-covered, or species is not part of that state's deep-coverage set. |
Error responses follow the shape { "error": "<code>", "message": "<human-readable>" }and include hints such as the list of covered states or available species for the requested state.
Coverage
The API recognizes all 50 US states plus the District of Columbia (51 jurisdiction slugs). 11 are currently deep-covered with full season + bag + size + slot + water-body data:
- Alaska (AK)
- Arkansas (AR)
- California (CA)
- Florida (FL)
- Michigan (MI)
- Minnesota (MN)
- New York (NY)
- North Carolina (NC)
- Ohio (OH)
- Texas (TX)
- Wisconsin (WI)
Coverage expands each iteration. Querying a recognized-but-not-yet-deep-covered state returns 404 with the canonical name + region so clients can gracefully degrade to a “see official agency” fallback.
Rate limits, freshness, terms
- No documented rate limiton the free public tier today. Responses cache at the edge for one hour; sustained heavy use should hit cached responses. Please don't hammer the origin with cache-busting traffic — if you need a higher guaranteed-throughput tier, reach out via /contact.
- Freshness: regulation data is reviewed annually and on emergency-order publication. Each response carries
publishedAtandupdatedAtISO 8601 dates so you can detect stale snapshots. Always confirm against the linked state agency before fishing. - Terms: use of this API is subject to the site terms. Attribution back to fishregs.hk2.ai is appreciated but not required. Don't resell the raw feed as a stand-alone product.
- No PII, no cookies, no tracking. The API receives only the query string and emits only regulation data — no headers are inspected, no identifiers are stored.