Cosmetology & Salon License Leads Scraper avatar

Cosmetology & Salon License Leads Scraper

Pricing

Pay per usage

Go to Apify Store
Cosmetology & Salon License Leads Scraper

Cosmetology & Salon License Leads Scraper

Scrape licensed cosmetology, barber, salon, and nail establishments across 4 US states (NY, CT, CO, TX) via official state open-data APIs. Get salon name, owner/licensee name, license number, type, status, address, and city — clean B2B leads, ready to export.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share


🎯 What this scrapes

Every US state licenses cosmetologists, barbers, nail techs, estheticians, and the salons they work in — and four of those states publish their registries as machine-readable open-data APIs: New York, Connecticut, Colorado, and Texas. This Actor queries each selected state's official Socrata SODA endpoint, narrows it to the beauty-industry credentials, paginates through every record, normalises the columns into a single consistent schema, and delivers one clean dataset row per license.

Each state buries cosmetology licenses inside a giant multi-profession registry, applies its own column names, and returns data in a different shape. We handle every bit of that per-state plumbing for you — you get uniform output no matter which states you pick.

🔥 What we handle for you

  • 🛡️ Browser fingerprint rotationcurl-cffi impersonates real Chrome / Firefox / Safari TLS handshakes so state API gateways see a genuine browser, not a Python script.
  • 🌐 Residential proxy rotation via Apify Proxy — fresh session and exit IP on every block or rate-limit response.
  • 🔁 Retries with exponential backoff on 408 / 429 / 503 — up to 5 attempts per page.
  • 🎯 Server-side beauty-credential filtering — each state's registry holds dozens of professions; we filter to cosmetology / barber / salon / nail credentials at the source, so you never wade through (or pay for) dentists and electricians.
  • 🧱 Per-state active-only filtering — NY, CT, and CO support status filters; we apply them automatically when activeOnly is enabled, so you get live licenses without post-processing.
  • 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, JSON / CSV / Excel export straight from the Apify Console.
  • 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge (beyond the small warm-up fee).

💡 Use cases

  • Salon software (booking / POS) sales — pull every licensed salon establishment in New York with name and address, then enrich with email via Clay or Apollo for a targeted outreach sequence. These owner-operated shops are exactly the ones ZoomInfo misses.
  • Beauty-product wholesalers & distributors — build state-level prospect lists of salons, barbershops, and nail studios in minutes instead of buying stale lists.
  • Salon & beauty-professional insurance — commercial insurers targeting cosmetologists and shop owners need addressable prospect lists at scale.
  • Payment processors & lenders — owner-operated salons are a classic underwriting target; license status and type help you pre-qualify.
  • Market research — compare beauty-industry supply across states, credential mix (cosmetologist vs. barber vs. nail tech), or salon density by city.
  • Staffing & recruiting — find newly licensed individual operators by state for placement into salons and chains.

⚙️ How to use it

  1. Click Try for free at the top of the page.
  2. Select one or more states in the States to scrape field.
  3. Toggle Active licenses only — enabled by default; disabling it returns expired and inactive licenses too.
  4. Set Max results to cap the run size. Each state holds tens of thousands to hundreds of thousands of records; start small.
  5. Click Start. Output streams into the run's dataset in real time.
  6. Export from Storage → Dataset as JSON, CSV, or Excel — or pull via the Apify API into your pipeline.

📥 Input

FieldTypeRequiredDefaultNotes
statesarrayno["NY"]One or more state codes: NY, CT, CO, TX.
activeOnlybooleannotrueFilter to active/licensed records. Applied on the server for NY, CT, CO; ignored for TX (no status column).
maxResultsintegerno100Maximum total records across all selected states.
proxyConfigurationobjectno{"useApifyProxy": false}Proxy settings. Optional for low-volume runs against these open-data APIs.

Example input

{
"states": ["NY", "TX"],
"activeOnly": true,
"maxResults": 500,
"proxyConfiguration": {
"useApifyProxy": false
}
}

📤 Output

Every row is one cosmetology / barber / salon license record. Export as JSON, CSV, or Excel from the Apify Console.

FieldTypeNotes
statestringTwo-letter state code — e.g. NY, TX.
business_namestring | nullSalon / shop / establishment business name (present for business licenses; for individual licenses it may carry the operator's trade name).
licensee_namestring | nullIndividual licensee / license holder / owner name.
license_numberstring | nullState-issued license or credential number.
license_typestring | nullCredential category — e.g. Full Service Establishment, Hairdresser/Cosmetician, Barber.
statusstring | nullLicense status — e.g. Active, Expired. Null for TX.
addressstring | nullStreet address (NY and CT; null for CO and TX).
citystring | nullCity (NY, CT, CO; null for TX).
countystring | nullCounty (TX; null for NY, CT, CO).
zipstring | nullZIP / postal code (NY, CT, CO; null for TX).
phonestring | nullContact phone number (where the dataset publishes it).
source_urlstringSocrata API endpoint this record came from.
scraped_atstringISO-8601 UTC timestamp of when this row was recorded.

Example output

{
"state": "NY",
"business_name": "ETTA SALON",
"licensee_name": "Grunau Rachel",
"license_number": "AEB-18-01243",
"license_type": "DOSAEBUSINESS",
"status": "Active",
"address": "555 Gates Ave",
"city": "Brooklyn",
"county": null,
"zip": "11221",
"phone": null,
"source_url": "https://data.ny.gov/resource/y3u4-jbgh.json",
"scraped_at": "2026-06-07T09:00:00+00:00"
}

💰 Pricing

Pay-Per-Event — you pay only when these events fire:

EventUSDWhat it is
actor-start$0.005One-off warm-up charge per run
result$0.004Per license record pushed to the dataset

Example: 1 000 results at the rates above ≈ $4.00. No subscription, no minimum — Apify gives every new account $5 of free credit, so your first run costs nothing.

🚧 Limitations

  • Four states only. NY, CT, CO, and TX are currently supported. Other states publish their boards' registries behind HTML form portals or PDFs; adding each requires custom integration work (and is on the roadmap).
  • Field coverage varies by state. NY and CT include street address; CO gives city + ZIP but no street; TX gives county but no street/city/ZIP. We surface null rather than fabricate.
  • Status filtering varies by state. The TX dataset doesn't expose a status column, so activeOnly has no effect there — all matching records are returned.
  • Email is not in these registries. None of the four state datasets publish operator email. Enrich the business_name / licensee_name + location output through a tool like Clay or Apollo after export.
  • Data freshness depends on the state. Each portal refreshes on its own schedule — typically daily to weekly. The scraped_at field tells you when we fetched; the underlying source may lag actual license changes.

❓ FAQ

Is there a national cosmetology license database I can query?

No unified federal registry exists. Cosmetology and barber licensing is administered state by state. This Actor consolidates four of the most accessible state registries into one output schema.

Can I get just salons / establishments, not individual stylists?

For NY, the dataset is salon and barber businesses only — every row is an establishment. For TX, the registry includes both establishment license types (Full Service, Mini, Mobile, Manicurist, etc.) and individual operators; filter by license_type after export. CT and CO are predominantly individual licensees.

How do I build a salon owner email list?

These state registries don't publish email. Use this Actor to get the salon/owner name plus location, then enrich through Clay, Apollo, or a similar tool after export.

Why are some fields null?

Not every state publishes every field. TX has no street/city/ZIP; CO has no street address; only NY and CT carry status-bearing addresses. We return null rather than guess. The source_url field tells you which registry each record came from.

How many records are in each state?

Approximate matched counts at time of writing: NY ~32 000 salon/barber businesses, CT ~80 000 beauty credentials, CO ~135 000 cosmetology/barber/manicurist licenses, TX ~430 000 cosmetology/barber records. Counts change as licenses are issued and expire.

Can I schedule this to run weekly?

Yes — use Apify Schedules to trigger a run on a cadence. The scraped_at field and the license_number make deduplication straightforward for delta workflows.

Does this scrape anything I shouldn't be using?

All data comes from official state government open-data portals published for public access. No login, no scraping private pages, no personal data beyond what the state publishes in the licensing registry.

💬 Your feedback

Spotted a bug, need a new state added, or want a field we're not capturing? Open an issue on the Actor's Issues tab in the Apify Console — we read every report and ship fixes weekly.