ParseForge Scrapers

NASBA CPA Directory Scraper

parseforge/nasba-cpa-directory-scraper

AutomationDeveloper toolsOther

Scrapes CPA license records from the NASBA CPAverify directory. Returns license status, dates, board, and disciplinary info as flat rows.

Run this scraper See the API call
Total users
7
Monthly active
0
Total runs
226
Bookmarked
1
Rating
Not rated yet
Last modified
9 days ago

Overview

ParseForge

NASBA CPA Directory Scraper

Scrape CPA license records from the official NASBA CPAverify directory by last name, license number, or jurisdiction. Each record includes license status, issue and expiry dates, board details, and disciplinary actions. No login or API key. Export to CSV, JSON, Excel, or XML.

The NASBA CPAverify directory is the authoritative source for CPA license verification across all 55 U.S. jurisdictions, but it has no public API and requires at least one last name per search. This Actor queries the directory directly, runs your filters across every last name you provide, and returns each matching CPA as a flat row. It handles pagination, rate limits, and the site's search quirks so you can build a clean dataset of licensed CPAs in minutes.

Who uses it What they scrape NASBA CPA Directory for
Recruiters and staffing agencies Build a list of active CPAs in a target state for outreach
Compliance officers Verify that a CPA's license is active and check for disciplinary actions
Accounting firms Research competitor CPAs or find candidates with specific credentials
Data analysts Collect CPA demographics and license trends across jurisdictions

What it does

This Actor collects CPA license records from the NASBA CPAverify directory by last name, license number, or jurisdiction, and returns each one as a flat row with license status, dates, board, and disciplinary information.

  • ๐Ÿ” Last-name search: Provide one or more surnames; the Actor queries each and merges results.
  • ๐Ÿ“ Jurisdiction filter: Limit to a specific state or territory board, or search all 55 jurisdictions.
  • ๐Ÿชช License number lookup: Enter a CPA license number to retrieve that exact record.
  • ๐Ÿ“‹ Optional refinements: Add first name, middle name, or maiden name to narrow results.
  • ๐Ÿ“Š Flat output: Every CPA is returned as a single row with consistent fields for easy analysis.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with NASBA CPA Directory data

๐Ÿ“ˆ Build a CPA prospect list.

A recruiter enters common last names and a target state to collect hundreds of active CPAs for outreach.

โœ… Verify a CPA license.

A compliance officer enters a license number to confirm the CPA's status and check for disciplinary actions.

๐Ÿ“Š Analyze CPA demographics.

A data analyst runs the Actor across multiple jurisdictions to study license distribution and trends.

๐Ÿ”Ž Find CPAs with specific names.

An accounting firm searches for a known CPA by last name and first name to locate their current board and license details.

Why choose this scraper

What you get
Official source Data comes directly from NASBA CPAverify, the authoritative CPA license database.
No API needed No registration, OAuth, or API key. The Actor reads the public directory.
Flexible search Search by last name, license number, or jurisdiction, with optional name filters.
Clean output Each CPA is a flat row with license status, dates, board, and disciplinary info.
Scalable Collect up to 1,000,000 CPAs per run, limited only by the directory's search requirements.

How it compares

This Actor and the two direct competitors all scrape the official NASBA CPAverify directory, but they differ in search flexibility, output fields, and pricing.

Feature ParseForge NASBA CPA Directory Scraper NASBA CPA License Verifier - Multi-State Accountant Lookup
Search by last name Yes Yes Yes
Search by license number Yes Yes Yes
Search by jurisdiction Yes Yes Yes
Filter by first name Yes Yes Not listed
Filter by middle name Yes Not listed Not listed
Filter by maiden name Yes Not listed Not listed
Returns disciplinary information Yes Yes Not listed

Configure the run

Drive the Actor with last names, a license number, and optional first/middle/maiden name filters, plus a jurisdiction to limit results. Filters apply to every last-name search, and the Actor stops after collecting the number of CPAs you set in Maximum CPAs. The Input tab lists every parameter.

A first run with the defaults:

{
 "maxItems": 10,
 "lastNames": [
 "Smith",
 "Johnson",
 "Williams"
 ]
}

A larger pull:

{
 "maxItems": 200,
 "lastNames": [
 "Smith",
 "Johnson",
 "Williams"
 ]
}

Pricing

Pay-per-result: $0.5 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $50.00
1,000 results $500.00
10,000 results $5000.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the NASBA CPA Directory Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to NASBA CPA Directory through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/nasba-cpa-directory-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that your last names are spelled correctly and that the jurisdiction is set to the right state or left empty. The NASBA directory may not have records for uncommon names or certain combinations.

The run is slow or times out.

Reduce the number of last names or set a lower Maximum CPAs. The Actor respects the directory's rate limits, so large searches take longer.

Some records are missing fields.

The NASBA directory does not always display every field for every CPA. Missing fields will be empty in the output.

I get an error about invalid input.

Ensure the license number is in the correct format and that you have provided at least one last name or a license number. The Actor requires one of those to start.

FAQ

Question Answer
Why do I need to provide last names? The NASBA CPAverify directory requires at least one last name per search; it does not allow listing all CPAs without a name filter. Provide several common surnames to gather a broad sample, or one specific surname to verify a known CPA.
Can I search by license number only? Yes, enter a license number in the License Number field. The Actor will look up that exact record. You can combine it with other filters if needed.
What jurisdictions are supported? All 55 U.S. jurisdictions are supported, including all 50 states, the District of Columbia, Puerto Rico, Guam, the U.S. Virgin Islands, and the CNMI. Leave the jurisdiction field empty to search all.
Does this Actor require an API key or login? No. The Actor reads the public NASBA CPAverify directory directly. No registration or API key is needed.
What data does each CPA record include? Each record includes license number, status, issue and expiry dates, board, name, address, and disciplinary information, depending on what the directory displays.
How many CPAs can I collect in one run? You can set Maximum CPAs up to 1,000,000. The actual number depends on how many matches the directory returns for your filters.
Can I filter by first name or middle name? Yes, use the First Name, Middle Name, and Maiden Name fields. These filters apply to every last-name search you provide.
What output formats are supported? The Actor exports to CSV, JSON, Excel, and XML, so you can use the data in any tool.
Is the data up to date? The Actor scrapes the live NASBA directory at the time of the run, so you get the current license status and details.
Can I schedule this Actor to run regularly? Yes, you can schedule runs on Apify to keep your CPA dataset fresh, for example weekly or monthly.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by NASBA (National Association of State Boards of Accountancy). It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
maxItems integer How many CPAs to collect per run. 10
lastNames array List of CPA last names to search. The NASBA directory requires at least one last name per query (the upstream site does not allow listing all CPAs without a name filter). Provide several common surnames to gather a broad sample, or one specific surname to verify a known CPA. ["Smith","Johnson","Williams"]
jurisdiction string (53 options) Limit results to a specific US state or territory accountancy board. Leave empty to search all jurisdictions. not set
firstName string Optional first name filter applied to every last-name search. not set
middleName string Optional middle name filter. not set
maiden string Optional maiden name filter. not set
licenseNum string Optional CPA license number to look up directly. not set

Pricing

from $2.00 per 1,000 results

Charged forWhat it isPrice each
Actor Start Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). $0.15 to $0.5
result Single result in the default dataset. $0.002 to $0.015

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~nasba-cpa-directory-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run NASBA CPA Directory Scraper on Apify All scrapers