How-to
How to run Maine Professional License Lookup & Leads Scraper (PFR)
Step-by-step: the exact input, what each field does, and the rows that come back from Maine ALMS Online licence search.
You want a list of Maine’s licensed tradespeople or professionals with a phone number for each: every master electrician, every oil and propane technician, every cosmetologist, every insurance agency. Or you have a few names or licence numbers to check. Maine keeps them all in ALMS Online, one search form shared by about 70 boards. It searches one board and one licence type at a time. Its CSV download only holds the search you just ran, so a whole-state list means one search and one download per licence type, and there are 295 types with active licences.
What you’ll need
Nothing but an Apify account. There is no API key, proxy or CAPTCHA solver to set up, and nothing extra to pay for. Exports read a stored copy of ALMS Online that we refresh; lookups search ALMS live from the run.
Step 1 — Open the actor
Open Maine Professional License Lookup & Leads Scraper (PFR) on the Apify Store and press Try for free. The actor’s own page on this site lists its live health and pricing.
Step 2 — Fill in the input
| Field | Type | Required | What it does |
|---|---|---|---|
mode | string | no | export: no names, just filters; returns the whole matching list. lookup / verify: put licensee names (matched if contained in the licensee name) or licence numbers (exact) in… (default auto) |
query | string | no | A licensee’s name (or listing number) to look up live. Kept alongside ‘queries’ for saved tasks. |
queries | array | no | A licensee’s name (or listing number) to look up live. Several values in one run; combined with ‘query’. (default []) |
board | string | no | Only listings in this board. Kept alongside ‘boards’ for saved tasks. |
boards | array | no | Only listings in this board. Several values in one run; combined with ‘board’. (default []) |
state | string | no | Only listings in this state. Kept alongside ‘states’ for saved tasks. |
states | array | no | Only listings in this state. Several values in one run; combined with ‘state’. (default []) |
city | string | no | Only listings in this city. Kept alongside ‘cities’ for saved tasks. |
cities | array | no | Only listings in this city. Several values in one run; combined with ‘city’. (default []) |
categories | array | no | Only rows from this licence type (one or more). Available: APRN-CNM, APRN-CNP, APRN-CNS, APRN-CRNA, Accountancy Branch, Accountancy Firm, Acupuncturist, Adjuster Non-Resident,… (default []) |
maxResults | integer | no | Per query in lookup mode; per run in export mode. (default 500) |
Two fields decide what you get back, and they work as a pair. boards takes the regulator’s name
(Electricians, Plumbers, Fuel, Nursing, Insurance, Barbering and Cosmetology and so on).
categories takes a licence type. Set both: ALMS reuses short type names across boards, so Master
alone matches both master plumbers and Fuel board masters, while boards: ["Plumbers"] plus
categories: ["Master"] gives master plumbers only. Leave categories empty to take every type on
the boards you named. An unknown type name returns the free list of valid ones, so a typo costs
nothing.
Exports hold active licences only. A lookup searches every status, so it also finds expired, lapsed and surrendered licences.
A working input:
{
"boards": [
"Electricians"
],
"categories": [
"Master Electrician"
],
"maxResults": 500
}
Step 3 — Run it
Press Start. Rows are pushed to the dataset as they’re found, so the run log fills in as it works.
An export reads the stored copy, so it is quick. All 4,747 active master electricians came back in about two seconds in our test on November 4, 2026, 4,609 of them with a phone. The run log gives the date of the copy you received. A lookup searches ALMS live and usually answers in 1–15 seconds. The exception is a business-name lookup across every board: ALMS takes about 100 seconds for that, so set one board when you can.
An empty result usually means a filter too narrow for the board, such as a city with no licensees of
that type. You get a free no_match notice, not a charge. ALMS Online is often down for an hour or
more at a time. Exports keep working from the stored copy then; a lookup falls back to the copy with a
free notice saying so.
Step 4 — Read the output
Each run returns a labelled table, not raw JSON:
Every row looks like this — a real row from a real run:
{
"listing_id": "FSC1287",
"name": "ALLIED FIRE PROTECTION, INC",
"phone": "+1 (401) 828-2600",
"phone_e164": "+14018282600",
"street": "108 POND ST",
"city": "WEST WARWICK",
"region": "RI",
"postal_code": "02893-5840",
"country": "US",
"category": "Fire Sprinkler Contractor",
"categories": [
"Fire Sprinkler Contractor"
],
"source": "live",
"source_url": "https://www.pfr.maine.gov/ALMSOnline/ALMSQuery/SearchIndividual.aspx#FSC1287-fire-sprinkler-contractor",
"extras": {
"board": "FMO Fire Sprinklers",
"status": "Active",
"expires": "06/30/2027",
"county": "KENT",
"authorities": "CPVC",
"agency": "FIRE MARSHAL'S OFFICE"
}
}
| Field | Example value | Meaning |
|---|---|---|
name | ALLIED FIRE PROTECTION, INC | Licence holder: a person’s full name, or the business name for a firm |
listing_id | FSC1287 | Licence number exactly as ALMS prints it (e.g. MS60017039) |
category | Fire Sprinkler Contractor | Licence type, e.g. Master Electrician, Registered Nurse, Cosmetologist |
phone | +1 (401) 828-2600 | Phone as ALMS prints it, where published; phone_e164 holds it normalised |
email | — | Email, where the regulator publishes one (mostly Insurance) |
street | 108 POND ST | A firm’s business street address; for people, a mailing street where the board publishes one |
city | WEST WARWICK | City (a firm’s business city, a person’s mailing city) |
region | RI | State (two letters) |
The phone is what most people come for, and coverage depends on the board. In the November 4, 2026 copy, 48% of all active licences had one, but 94% of electricians, 95% of plumbers, 97% of fuel licences and every barbering and cosmetology licence did. Nursing, the nurse-aide registry and the medication-aide credentials publish none. Insurance licences carry an email on 95% of rows.
Watch the address. ALMS publishes a mailing city, state and ZIP for people, not a street, and many
licensees live out of state: only 2,869 of the 4,747 master electricians had a Maine address. Firms
come with a business street, and physicians with their practice address. extras.address_type tells
you which one you got.
Step 5 — Export it
Open the Dataset tab and export to CSV, JSON, or Excel — or pull the same rows from the API, which is what you want if this is going to run on a schedule.
What it costs
$0.004 per licence returned; notices (no match, unknown licence type, source unavailable) are free. The 4,747 active master electricians cost $18.99. A narrower list, such as the master electricians in one city, costs cents. A lookup costs $0.004 for each licence it finds.
Where the data comes from
This reads Maine ALMS Online licence search directly. The target is ALMS Online, Maine’s shared licensing search (ASP.NET WebForms): per licence type a form GET, the regulator’s postback, the search post and the results page’s own CSV export. Replayed over plain HTTP into a stored copy of every licence type; runs read the copy, lookups search live. Every night a canary runs this actor against that live source and diffs the result against a frozen fixture — what “verified” means.
ALMS Online is open: no login, no CAPTCHA. Pulling from it is still slow. A search left on “all professions” can come back short: the Electricians board searched that way returned 7,953 licences on November 3, 2026, against 13,949 counted one licence type at a time. One type, Insurance non-resident producers, is too large for ALMS to search at all, so it is missing from exports (look those licences up by name or number instead). And the site answers with an error page for an hour or more at a time, which is why exports come from a stored copy.
See it used
Maine Master Electricians (ALMS) builds the list of 4,747 active master electricians, with a phone on 97% of them.
To check contractor licences in several states at once, Maine’s licensed trades included, the US contractor license lookup runs this actor for you alongside the other states’ boards.
Last updated 2026-11-04