Use case
Search Pomona Business Licenses by Name
Look up a business's municipal license in Pomona, CA (HdL Companies portal) by business name -- account #, issue/expiration dates, and address.
Say you distribute salon supplies across the eastern San Gabriel Valley and want every nail salon in Pomona on one sheet — the ones that hold a city licence and are still trading. A maps scrape gives you closed storefronts, duplicate pins and three listings for the same shop; a state entity search gives you LLCs, which is not the same thing as a salon with a door on Foothill Boulevard.
The city knows. Pomona, like dozens of California municipalities, runs its public business-licence register on HdL Companies’ portal, searchable by business name, with the account number, address and licence dates on each record. The awkwardness is that the portal shows it to you one screen at a time.
The manual way, and what it costs
The portal is free and open to anyone. If you want to check whether one business holds a Pomona licence, go and type its name in. That is the honest advice; it takes thirty seconds and the city’s own screen is the authority.
The friction is the shape, not the access. There is no export and no API — you get a table on a page,
and the address arrives as one line with city and ZIP baked in. Turning “every nail salon in Pomona”
into a usable sheet means running the search, copying rows, splitting addresses by hand, then doing
it again for SPA and again for NAILS, because the match is a substring and the register spells
things however each licensee wrote them. Hayward next week is a different subdomain and the same
afternoon over again.
The faster way
HdL Municipal Business License Lookup does the same search once and hands back every row at once.
{
"citySubdomain": "pomona",
"query": "Nail",
"searchType": "Business Name",
"maxResults": 100
}
citySubdomain: "pomona" is the whole coverage question in one field: this actor searches one HdL
city per run, and the value is the bare subdomain of that city’s portal — pomona, not
pomona.hdlgov.com and not Pomona, CA. If your city is not on HdL, this actor has nothing for you;
if it is, you need its subdomain, and only pomona, hayward and elcajon are confirmed to answer a
plain request (more on that below). searchType: "Business Name" points the query at the name index
rather than the address one. query: "Nail" is deliberately short, because the match is a substring:
Nail catches NAILS, NAIL SPA and BEE POLISHED NAILS SPA, where Bee Polished Nails Spa LLC
would catch nothing if the city never recorded the suffix. maxResults: 100 is the spend cap — you
pay per row returned, and a one-letter query in a city this size can match thousands.
What comes back
{
"jurisdiction": "Pomona",
"account_number": "00204231",
"business_name": "BEE POLISHED NAILS SPA",
"issue_date": "4/24/2019",
"expiration_date": "3/31/2027",
"address": "663 E FOOTHILL BLVD",
"city": "POMONA",
"state": "CA",
"zip_code": "91767",
"matched_by": "Business Name",
"source_url": "https://pomona.hdlgov.com/Search/SearchBy"
}
| Field | Example value | Meaning |
|---|---|---|
jurisdiction | Pomona | The HdL city instance searched (e.g. ‘Pomona’) |
account_number | 00204231 | The city’s business-license account number |
business_name | BEE POLISHED NAILS SPA | Licensed business name |
issue_date | 4/24/2019 | License start/issue date |
expiration_date | 3/31/2027 | License expiration date |
address | 663 E FOOTHILL BLVD | Street address, when the city publishes it |
For a territory sheet, the address block is the payoff. HdL prints it as a single line —
663 E FOOTHILL BLVD, POMONA, CA 91767 — and the actor splits it into address, city, state
and zip_code, so it drops straight into a route plan or a mail merge without a text-to-columns
step. Watch the difference between city and jurisdiction: jurisdiction is the register you
searched, city is the address on the licence, and a business licensed in Pomona can have a mailing
address somewhere else. Filter on jurisdiction when you mean “licensed here”.
expiration_date is the closest thing you get to “still trading” — a licence that expired in 2021 is
not a call worth making. Read it as text, though: the portal returns US-style M/D/YYYY strings and
that is exactly what comes back, so compare them as dates yourself. account_number is the city’s
own key for the record, which is what you dedup and re-check against later.
What you’d do with it
Export the dataset to CSV and it is a route list: business name, street, ZIP, licence dates. Run the
two or three name fragments the trade actually uses (Nail, Salon, Spa), stack the exports, and
dedup on account_number — that is the field that catches the same shop arriving twice. Drop the
rows whose expiration_date is in the past, and what remains is a call sheet for one city. Re-run it
next quarter and the account numbers you have not seen before are the new openings.
Worth knowing
One city per run, and only HdL cities at all. This reads city portals hosted by HdL Companies.
If your city runs its register on something else, there is nothing here for it. And some
hdlgov.com cities sit behind a Cloudflare challenge that a plain HTTP request cannot pass — those
runs fail with an explicit message naming a reachable city instead of returning wrong data. Pomona,
Hayward and El Cajon are the cities proven to answer. Others share the same schema and may work,
but no proxy setting or retry gets you into a challenged one.
There is no status field. HdL publishes no active/expired flag here, so “is this licence current”
is your inference off expiration_date, not the city’s declaration.
Some addresses are withheld. When the licensee’s address is not public the portal prints
--ON FILE--, and the actor returns null across all four address fields rather than parsing that
as a street. On a route list, those rows are unusable.
No contact details. A business-licence record is a name, an account number, dates and an address
— no phone, no email, no owner name. It reads the live portal at run time, so what you get is that
city’s register at that moment, and a broad query can match far more than you meant, which is what
maxResults is for.
Run it yourself: How to run HdL Municipal Business License Lookup walks the whole thing step by step.
- Search El Cajon Business Licenses by Address — the same actor pointed at the address index, for when you have a street rather than a name.
- Socrata Multi-State Corporate & Business Entity Registry — reach for it when you want state-level entity filings instead of a city’s licence register.
Last updated 2026-07-22