Maryland Attorney Directory Scraper
Pricing
Pay per event
Maryland Attorney Directory Scraper
⚖️ Extract Maryland Courts attorney IDs, names, public contact details, admission dates, and bar status for CRM enrichment and compliance.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Scrape the public Maryland Courts Attorney Listing and turn name searches into clean attorney records with bar status, admission dates, public address snippets, phone numbers, and source provenance.
What does Maryland Attorney Directory Scraper do?
Maryland Attorney Directory Scraper searches the official Maryland Courts attorney listing at mdcourts.gov/attysearch.
It submits the public attorney search form, parses the result table, and saves structured rows to an Apify dataset.
Use it when you need Maryland attorney IDs, names, public organization/address snippets, phone numbers, admitted dates, and status values.
Who is it for?
- ⚖️ Legal-tech teams building attorney enrichment pipelines
- 📈 Agencies creating Maryland legal lead lists
- 🧾 Compliance teams checking public bar status
- 🧑💼 Business-development teams researching law firms and attorneys
- 🗃️ Data vendors normalizing state attorney directory records
Why use this scraper?
The Maryland Courts website is designed for interactive lookup, not bulk export.
This actor gives you repeatable, exportable records with search provenance so you can audit how each row was found.
Data source
The actor uses the public Maryland Courts Attorney Listing.
No login, private account, CAPTCHA token, or browser session is required for normal searches.
What data can you extract?
| Field | Description |
|---|---|
attorneyId | Maryland Courts attorney ID |
lastName | Published last name |
firstName | Published first and middle names |
organizationOrAddress | Public organization/address block |
phone | Public phone number, when listed |
admittedDate | Admission date shown by Maryland Courts |
status | Public status such as Active or Inactive/Retired |
sourceUrl | Search page URL |
searchedLastName | Last name you searched |
searchedFirstName | First name you searched, when used |
similarNames | Whether similar-name search was enabled |
scrapedAt | Extraction timestamp |
How much does it cost to scrape Maryland attorney directory records?
The actor uses pay-per-event pricing.
You pay a small $0.005 start fee plus a per-attorney-record event. Formula-derived BRONZE pricing is about $0.000051 per attorney record, with higher-plan volume discounts.
Your final run cost depends on how many searches you submit and how many attorney rows are saved.
Use a small maxItems value for a first test run.
Quick start
- Open the actor on Apify.
- Enter one or more last names.
- Optionally enter first names.
- Keep
similarNameson for broader discovery or off for stricter searches. - Set
maxItems. - Run the actor.
- Export the dataset as JSON, CSV, Excel, or through the Apify API.
Input options
lastNames
Required list of Maryland attorney last names.
The court usually returns a maximum of 10 matches per search, so use multiple surnames for larger datasets.
firstNames
Optional list of first names.
When first names are provided, the actor searches each last name with each first name.
similarNames
Set to true to use the Maryland Courts similar-name option.
Set to false for stricter searches.
maxItems
Maximum number of attorney records to save.
proxyConfiguration
Optional Apify proxy configuration.
SHADER datacenter proxy is enabled by default to avoid Maryland Courts per-IP search cooldowns. Direct connection can work for a few manual searches but may hit a cooldown during repeated runs.
Example input
{"lastNames": ["Smith", "Johnson", "Williams", "Brown", "Jones"],"similarNames": true,"maxItems": 50,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["SHADER"] }}
Example output
{"attorneyId": "1512160275","lastName": "SMITH","firstName": "AARON MICHAEL","organizationOrAddress": null,"phone": null,"admittedDate": "12/16/2015","status": "Active","sourceUrl": "https://www.mdcourts.gov/attysearch","searchedLastName": "Smith","searchedFirstName": null,"similarNames": true,"scrapedAt": "2026-07-07T00:00:00.000Z"}
Tips for better results
- Use common surnames for broad market research.
- Turn off similar names for exact surname verification.
- Use first names when validating a known attorney.
- Increase
maxItemsonly after a small test run looks correct. - Export CSV for spreadsheet and CRM workflows.
Integrations
You can connect the output dataset to:
- Airtable for legal lead review
- HubSpot or Salesforce for CRM enrichment
- Google Sheets for compliance spot checks
- Snowflake, BigQuery, or S3 for data warehousing
- Internal license-monitoring dashboards
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/maryland-attorney-directory-scraper').call({lastNames: ['Smith', 'Johnson'],similarNames: true,maxItems: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
API usage with Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/maryland-attorney-directory-scraper').call(run_input={'lastNames': ['Smith', 'Johnson'],'similarNames': True,'maxItems': 20,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
API usage with cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~maryland-attorney-directory-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"lastNames":["Smith","Johnson"],"similarNames":true,"maxItems":20}'
MCP integration
Use this actor from Claude Desktop, Claude Code, Cursor, VS Code, or other MCP clients through Apify MCP.
Setup for Claude Code:
$claude mcp add --transport http apify "https://mcp.apify.com"
Setup for Claude Desktop, Cursor, or VS Code:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com"}}}
Example prompts:
- "Use automation-lab/maryland-attorney-directory-scraper to scrape Maryland attorney records for Smith and Johnson and summarize active attorneys."
- "Run the Maryland attorney directory scraper for exact last name Garcia."
- "Create a CSV-ready Maryland attorney lead list from these surnames."
Legality
This actor extracts publicly available information from the Maryland Courts website.
Use the data responsibly and follow applicable privacy, marketing, and professional-conduct rules.
Do not use the data for harassment, spam, or unlawful profiling.
FAQ
Is this an official Maryland Courts API?
No. It is an Apify scraper for the public Maryland Courts attorney listing website.
How fast is it?
Most runs are fast because the actor uses HTTP POST requests rather than a browser.
Why do some searches return only 10 records?
Maryland Courts limits a search page to a maximum of 10 matches, so use multiple surnames or first-name filters for broader coverage.
Troubleshooting
Why did I get only 10 records for a last name?
The Maryland Courts result page states that a maximum of 10 matches may be returned for a search.
Use more targeted first names or additional surnames to expand coverage.
Why are some address or phone fields empty?
The actor only returns information published in the search result table.
If Maryland Courts leaves a field blank, the dataset field is null.
Related scrapers
Explore more public-record and legal-data tools from Automation Lab:
- https://apify.com/automation-lab/arizona-attorney-directory-scraper
- https://apify.com/automation-lab/illinois-attorney-directory-scraper
- https://apify.com/automation-lab/texas-bar-attorney-scraper
Dataset exports
Apify datasets can be exported as JSON, CSV, Excel, XML, RSS, or HTML table files.
For CRM workflows, CSV and Excel are usually the easiest formats.
Monitoring workflows
Schedule recurring runs with the same surnames to monitor status changes over time.
Store each dataset snapshot and compare status or admittedDate fields in your own system.
Data quality notes
Names and statuses are returned exactly as the Maryland Courts page publishes them.
The actor normalizes whitespace and line breaks but does not infer missing values.
Performance notes
This is an HTTP scraper and does not launch a browser.
Most small runs finish quickly because each search is a simple form POST.
Support
If a run fails or the Maryland Courts page changes, open an Apify issue with the run ID and input used.
Changelog
Initial version: search Maryland attorney listings by last name and optional first name, parse official result rows, and export structured attorney records.