Pennsylvania Attorney Records Scraper
Pricing
from $4.80 / 1,000 attorney records
Pennsylvania Attorney Records Scraper
Search official Pennsylvania attorney records and export registration, status, admission, public contact, location, pending-proceeding, and discipline indicators.
Pricing
from $4.80 / 1,000 attorney records
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Search official Pennsylvania attorney records from the Disciplinary Board of the Supreme Court of Pennsylvania. Export attorney registration IDs, current status, admission dates, public contact and location fields, pending-proceeding indicators, and available public discipline history as structured JSON.
Use the Actor for credential due diligence, legal-directory verification, vendor onboarding, compliance research, and scheduled registry checks. It queries the public registry anonymously; no Pennsylvania attorney account is required.
What does this Pennsylvania attorney lookup do?
The Actor accepts one or more official registry filters and retrieves complete public detail pages for matching attorneys. Unlike a list-only export, every saved item includes detail-level admission, contact, insurance-statement, pending-proceeding, and discipline fields when the source publishes them.
Supported searches include:
- first or last name;
- one or more Pennsylvania attorney registration IDs;
- city or county;
- exact license status, such as
Active,Inactive,Suspended, orDisbarred; - combinations such as active attorneys in Philadelphia.
Who is this Actor for?
- Compliance teams checking whether counsel remains registered and active.
- Legal operations teams maintaining outside-counsel or referral directories.
- Investigators and researchers reviewing public discipline indicators.
- Recruiting and staffing teams validating attorney credentials.
- Data engineers feeding public registry records into spreadsheets, databases, or review queues.
Why use it?
The Actor combines official search results with each attorney's public detail page. It paginates the source, deduplicates by official attorney ID, respects maxItems, and fails visibly if the source returns an unexpected page instead of silently saving empty or challenge content.
A US residential route is used because the official site was not reliably reachable through direct or datacenter access during implementation testing. The Actor uses lightweight HTTP requests, not a browser, to control runtime and transfer.
What data can I extract?
| Field | Meaning |
|---|---|
attorneyId | Official Pennsylvania registration ID |
name | Registry display name |
status | Current registration/license status |
admissionDate | Published date of admission |
employer | Public employer or firm |
address, city, county, district, country | Public location fields |
phone, fax | Public contact numbers |
professionalLiabilityInsurance | Source insurance statement, when present |
hasDiscipline | Whether public history entries are listed |
disciplineHistory | History entries using the source's labels |
hasPendingProceedings | Whether pending public proceedings are listed |
pendingProceedings | Pending entries using the source's labels |
sourceUrl | Official detail-page URL |
retrievedAt | UTC retrieval timestamp |
Source fields may be null when the Board does not publish a value. Older discipline documents may not be electronically available.
How to run a Pennsylvania attorney search
- Open the Actor input page.
- Enter a last name, first name, city, county, status, or attorney ID.
- Set the maximum number of records.
- Click Start.
- Open the Dataset tab to preview or export JSON, CSV, Excel, XML, or RSS.
Example search:
{"lastName": "Smith","status": "Active","maxItems": 25}
Input parameters
| Input | Type | Description |
|---|---|---|
lastName | string | Attorney last name |
firstName | string | Attorney first name |
attorneyIds | string[] | Exact official registration IDs |
city | string | Public city filter |
county | string | County filter |
status | string | Exact official status label |
maxItems | integer | Maximum records, from 1 to 1,000; default 25 |
At least one search filter or attorney ID is required. Multiple filters are sent together to the official registry.
Output example
A current record has this shape (example identity and contact values are anonymized):
{"attorneyId": 12345,"name": "Sample, Alex J.","status": "Active","admissionDate": "01/15/2005","employer": "Sample Legal Group","address": "SAMPLE LEGAL GROUP, 100 MARKET ST, PHILADELPHIA, PENNSYLVANIA 19103","city": "PHILADELPHIA","county": "PHILADELPHIA","district": "District 1","country": "UNITED STATES","phone": "(215) 555-0100","fax": null,"professionalLiabilityInsurance": "Professional liability insurance is maintained.","hasDiscipline": false,"hasPendingProceedings": false,"disciplineHistory": [],"pendingProceedings": [],"sourceUrl": "https://www.padisciplinaryboard.org/for-the-public/find-attorney/attorney-detail/12345","retrievedAt": "2026-01-15T12:00:00.000Z"}
How much does it cost to look up Pennsylvania attorneys?
Pay-per-event pricing includes a $0.05 start fee plus one attorney-record event for each complete record saved. The FREE-tier record price is $0.0092; higher Apify tiers receive lower per-record prices.
Examples at the FREE tier:
- 1 attorney: about $0.0592
- 25 attorneys: about $0.28
- 100 attorneys: about $0.97
Only successfully parsed and saved attorney records are charged as record events. Actual account-tier pricing is displayed before each run.
Credential due-diligence workflow
Run exact attorney IDs from an onboarding list, export the dataset, and compare status, admissionDate, and discipline indicators with your internal records. Schedule the same input in Apify for recurring checks. The Actor produces timestamped snapshots; it does not itself calculate changes or send alerts.
Directory and spreadsheet export
Search by city, county, or status, then export the default dataset as CSV or Excel. Use attorneyId as the stable join key. Keep sourceUrl and retrievedAt so reviewers can trace each row to its public source and retrieval time.
API access with cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~pennsylvania-attorney-registry-lookup/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"attorneyIds":["28662"],"maxItems":1}'
Add waitForFinish=120 when a synchronous workflow is appropriate, then retrieve items from the run's default dataset.
API access with JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/pennsylvania-attorney-registry-lookup').call({city: 'Philadelphia',status: 'Active',maxItems: 25,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
API access with Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("automation-lab/pennsylvania-attorney-registry-lookup").call(run_input={"lastName": "Smith", "status": "Active", "maxItems": 25})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
Use with Apify MCP
Claude Code setup
Add the Actor to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/pennsylvania-attorney-registry-lookup"
Claude Desktop, Cursor, and VS Code setup
Use this equivalent remote MCP JSON configuration in Claude Desktop, Cursor, or VS Code:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/pennsylvania-attorney-registry-lookup"}}}
Example prompts:
- “Look up Pennsylvania attorney ID 28662 and summarize the public status and discipline indicators.”
- “Export up to 25 active Philadelphia attorney records with registration and contact fields.”
Reliability and troubleshooting
The Actor retries transient network, rate-limit, and server failures up to three times with residential identity rotation. It rejects malformed source responses.
Why did my run return no records? The source found no matches for the combined filters. Remove one filter or verify the exact status spelling.
Why did my run fail instead of returning an empty dataset? A source outage or unexpected page shape is treated as an error so an empty result cannot be mistaken for a clean credential check.
Why is a contact field null? The Disciplinary Board does not publish every field for every attorney.
Legality and responsible use
- Maximum output is 1,000 records per run.
- This Actor accesses public records only and does not bypass login controls.
- Some discipline history before 2003 may not be electronically available.
- Public status and discipline data can change; use
retrievedAtand followsourceUrlfor review. - Output is informational and is not legal advice or a substitute for direct verification with the regulator.
- Follow applicable privacy, employment, consumer-reporting, and professional-responsibility rules. Do not use the data for harassment, spam, or unlawful discrimination.
Related Actors
For broader US credential workflows, explore other official-registry Actors from automation-lab on Apify, including state bar and professional-license lookup tools. Related products are not automatically joined to this dataset.
FAQ
Does it require a Pennsylvania Bar account? No. It uses the public Disciplinary Board search and detail pages.
Can I search two fields at once? Yes. For example, combine city with status, or first and last name.
Does it download discipline documents? No. It exports the public history labels and indicators shown on the attorney detail page. Linked or offline documents are outside this Actor's scope.
Can I schedule it? Yes. Use an Apify schedule with the same input to create timestamped snapshots for recurring verification.
What is the stable identifier? attorneyId, the official registration ID published by the source.