Catch FIRMS code errors before ACE does.
One API call checks a FIRMS code against the port and use on your filing, before a reject, a re-file, or a container sitting at the terminal on your dime.
14,979 active codes 479 ports Data as of 2026-10-23
$ curl https://api.firmsapi.com/v1/validate \
-H "x-api-key: $FIRMSAPI_KEY" \
-H "content-type: application/json" \
-d '{"code":"E430","port":"2704","use":"location_of_goods"}' - ✓ Code format
- ✓ On the FIRMS list ACE 158
- ✓ Code is active ACE 159
- ✕ In the stated port ACE 164 E430 is in port 4601, not 2704.
- ✓ Type fits location of goods
- ✓ Not a placeholder
- ! Confirm in ACE: bond status, FTZ zone, direct delivery
The problem
A wrong FIRMS code is cheap to type and expensive to fix.
The FIRMS list is a 23,000-row file with deleted codes, placeholders and free-text names. One wrong character on an entry or in-bond starts a chain of costs.
Rejected filings
ACE rejects a code that isn't on the list, was deleted, or belongs to another port. Someone re-keys and re-transmits against the clock.
Cargo that sits
While the paperwork gets fixed, containers can run past free time and pile up storage and demurrage, charged per container, per day.
General order risk
Merchandise that isn't entered within 15 days of arrival can be sent to a general order warehouse, with storage and handling charges of its own.
Hours of exceptions
Every bad code means calls to the terminal, the carrier and the client: time nobody bills for.
Estimate what it costs you
Defaults are placeholders, not industry figures. Set them to your own numbers.
Pre-filing validation
Six checks against CBP's list, before you transmit.
Each check targets the ACE reject it prevents. Where public data can't settle something, the response says so, so your team knows exactly what to confirm in ACE.
Code format
Four letters or digits. No stricter: a third of real codes break the usual pattern.
On the FIRMS list
The code exists in CBP's current list.
prevents ACE 158Active
The code hasn't been deleted.
prevents ACE 159In your port
The code is registered in the port on your filing.
prevents ACE 164Right type for the use
Bonded warehouse for warehouse entry, FTZ for admission, CES for exams.
Not a placeholder
"DO NOT USE" rows and CBP test records never pass.
Knows what each filing needs
warehouse_entryneeds a bonded warehouse (04)ftz_admissionneeds a foreign trade zone (02)exam_siteneeds a centralized examination station (09)location_of_goodsrules out DP sites and CBP admin codes (07, 08)
Honest about its limits
Every response lists the checks no public list can make, so nothing is silently assumed:
- Bond status
- FTZ zone and subzone ID
- Direct delivery eligibility (ACE 238)
- Port clusters that accept neighboring codes
The platform
Everything else around a FIRMS code.
Paperwork says "Maher" or "PNCT", not E430. Search, lookup and nearby turn what people write into the right code, and the changes feed keeps you current as CBP updates the list.
Lookup
Any code, active or deleted, with address, type, port and status.
Search and autocomplete
Typo-tolerant search over names, addresses and aliases. "lbct long beach" finds WAC8.
Nearby
The closest CFS, bonded warehouses or exam stations to a point or a pier.
Batch Pro
Validate a whole morning of filings in one request.
Changes feed Pro
Every added, updated and deleted code since your last sync.
Watchlists and webhooks Enterprise
A signed webhook when a code you rely on changes.
Built for
Brokers, forwarders and the software they run on.
Customs brokers
Catch bad FIRMS codes before you file
Validate the FIRMS code on an entry, in-bond or location-of-goods record against its port and intended use before it goes to ACE.
Freight forwarders and NVOCCs
Know which CFS or pier your freight is going to
Turn the facility names on arrival notices and delivery orders into FIRMS codes, and find the CFS or bonded warehouse closest to a pickup.
TMS, visibility and customs software teams
FIRMS data inside your product
Add FIRMS lookup, autocomplete and validation to your product without maintaining the CBP list yourself.
Bonded warehouse, CFS and FTZ operators
Keep your facility records straight
Confirm how CBP lists your facilities, find every code registered at your address, and get told when one changes.
Stop paying for FIRMS code mistakes.
Test keys are free and never count. Live validation starts at $50/month for 200 calls, with 20 free calls a month to try it.
What's new
- firmsapi.com and the docs are live 2026-10-23