Maryland APIregisters.maryland.gov ↗
Search Maryland probate estates by county, name, and date. Retrieve estate details, Personal Representative contacts, claims, and daily leads via 5 endpoints.
What is the Maryland API?
The Maryland Register of Wills API exposes 5 endpoints covering probate estate records across all 24 Maryland jurisdictions. Use search_estates to query the statewide database by decedent name, county, filing date range, estate type, or exact estate number, then pass the returned record_id to get_estate_detail for full case data including Personal Representative contacts, attorney information, and docket history.
curl -X GET 'https://api.parse.bot/scraper/bdfbe4d1-e28b-48d7-b6ec-476ff36e1436/search_estates?county_id=15&filing_date_to=07%2F10%2F2026&filing_date_from=05%2F11%2F2026' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace registers-maryland-gov-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Maryland Estate Search API — search estates, drill into details, check claims."""
from parse_apis.maryland_estate_search_api import (
MarylandEstates, EstateType, EstateStatus, County_, EstateNotFound
)
client = MarylandEstates()
# List all Maryland counties to get IDs for filtering
for county in client.counties.list(limit=5):
print(county.name, county.id)
# Search for open regular estates in Montgomery County (ID 15)
estate = client.estatesummaries.search(
county_id="15", estate_status=EstateStatus.OPEN, estate_type=EstateType.REGULAR_ESTATE, limit=1
).first()
# Drill into full estate detail from a summary record
if estate:
detail = estate.detail()
print(detail.decedent_name, detail.will_status, detail.pro_se_indicator)
for entry in detail.docket_history[:3]:
print(entry.filed_on, entry.code, entry.description)
# Search claims filed against estates by decedent name
claim = client.claims.search(last_name="Smith", county_id="1", limit=1).first()
if claim:
print(claim.decedent, claim.claimant, claim.claim_status)
# Get recent estate leads (Pro Se cases without attorney representation)
for lead in client.leads.list(county=County_.MONTGOMERY, limit=3):
print(lead.decedent_name, lead.pro_se_indicator, lead.petitioner_name)
# Typed error handling for a non-existent record
try:
bad = client.estatesummary(record_id="0000000000").detail()
except EstateNotFound as exc:
print(f"Estate not found: {exc.record_id}")
print("exercised: counties.list / estatesummaries.search / detail / claims.search / leads.list")
Search for estates in the Maryland Register of Wills database by county, decedent name, date range, estate type, or status. Returns a list of matching estate summary records. Each summary includes a record_id for detailed lookup via get_estate_detail. At least one search criterion should be provided to get meaningful results; providing no filters returns nothing.
| Param | Type | Description |
|---|---|---|
| county_id | string | County ID (1-24). Use get_county_list to look up IDs by name. |
| last_name | string | Decedent's last name to search for. |
| first_name | string | Decedent's first name to search for. |
| estate_type | string | Estate type code. |
| estate_number | string | Exact estate number (e.g. W125727). |
| estate_status | string | Estate status filter. |
| filing_date_to | string | End filing date in MM/DD/YYYY format. |
| filing_date_from | string | Start filing date in MM/DD/YYYY format. |
{
"type": "object",
"fields": {
"items": "array of estate summary objects containing county, estate_number, record_id, filing_date, date_of_death, estate_type, estate_status, and decedent_name"
},
"sample": {
"data": {
"items": [
{
"county": "Montgomery",
"record_id": "1842884038",
"estate_type": "RE",
"filing_date": "01/02/2025",
"date_of_death": "12/10/2024",
"decedent_name": "BENTZ III, FRANKLIN LAWRENCE",
"estate_number": "W121345",
"estate_status": "CLOSED"
}
]
},
"status": "success"
}
}About the Maryland API
What the API covers
The API surfaces the Maryland Register of Wills estate database, which tracks probate filings statewide. search_estates accepts up to eight filter parameters — county_id, last_name, first_name, estate_number, estate_type, estate_status, filing_date_from, and filing_date_to — and returns a list of estate summaries. Each summary includes county, estate_number, record_id, filing_date, date_of_death, estate_type, and estate_status. At least one search criterion must be supplied.
Estate detail and claim records
get_estate_detail takes a single record_id from search results and returns the full case record: decedent name, aliases, dates, estate type, status, a personal_reps array with contact details, attorney information, petitioner address, pro se indicator, will status, and the complete docket history. search_claims lets you filter claims filed against estates by county_id, decedent name, filing_date, or estate_number, returning claim summaries with filing_date, claim_status, estate_number, decedent, and claimant.
Daily leads and county reference
get_daily_estate_leads retrieves estates filed in the last one to two days across Maryland, with an optional county filter (e.g. Montgomery, Howard, Anne Arundel). Each lead record includes Case_Number, Decedent_Name, Date_of_Death, Filing_Date, Attorney_Name, County_Origin, and a Pro_Se_Indicator flag that is true when no attorney is listed — useful for outreach targeting. get_county_list returns all 24 Maryland jurisdictions with their numeric IDs, which are required inputs for county_id in search and claims endpoints.
The Maryland API is a managed, monitored endpoint for registers.maryland.gov — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when registers.maryland.gov changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official registers.maryland.gov API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor newly filed pro se estates daily using get_daily_estate_leads to identify cases without attorney representation
- Pull Personal Representative contact details from get_estate_detail for probate outreach or due-diligence workflows
- Track claims filed against a specific estate using search_claims filtered by estate_number
- Build a county-level probate activity dashboard using search_estates with filing_date_from and filing_date_to filters
- Verify estate status and docket history for a known decedent by combining search_estates name lookup with get_estate_detail
- Aggregate attorney assignment patterns across Maryland counties using attorney fields returned by get_estate_detail
- Reconcile an estate number from an external source against the official Maryland database using the estate_number parameter
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.