Maryland Attorney Directory Scraper avatar

Maryland Attorney Directory Scraper

Pricing

Pay per event

Go to Apify Store
Maryland Attorney Directory Scraper

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

Stas Persiianenko

Maintained by Community

Actor 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?

FieldDescription
attorneyIdMaryland Courts attorney ID
lastNamePublished last name
firstNamePublished first and middle names
organizationOrAddressPublic organization/address block
phonePublic phone number, when listed
admittedDateAdmission date shown by Maryland Courts
statusPublic status such as Active or Inactive/Retired
sourceUrlSearch page URL
searchedLastNameLast name you searched
searchedFirstNameFirst name you searched, when used
similarNamesWhether similar-name search was enabled
scrapedAtExtraction 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

  1. Open the actor on Apify.
  2. Enter one or more last names.
  3. Optionally enter first names.
  4. Keep similarNames on for broader discovery or off for stricter searches.
  5. Set maxItems.
  6. Run the actor.
  7. 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 maxItems only 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 ApifyClient
import os
client = 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().items
print(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.

Explore more public-record and legal-data tools from Automation Lab:

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.