water-lien.phila.gov APIwater-lien.phila.gov ↗
Search Philadelphia property water lien records by address or account number. Retrieve lien counts, debt balances, owner info, and detailed lien history via 4 endpoints.
curl -X GET 'https://api.parse.bot/scraper/5740fa62-ec81-4883-8333-0a524d354a28/search_by_address?query=123+Main+St' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for matching property addresses by a partial address string. Returns a list of normalized addresses with ZIP codes. The query must include a street number to produce results; bare street names without a numeric prefix return empty.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Partial or full street address including a street number (e.g., '1234 Market St', '1500 Spring Garden'). A numeric street number prefix is required for matches. |
{
"type": "object",
"fields": {
"data": "array of objects each containing an 'address' field with the normalized address string",
"status": "string indicating success"
},
"sample": {
"data": [
{
"address": "1234 MARKET ST 19107"
},
{
"address": "1234 MARKET ST 19107-3721"
}
],
"status": "success"
}
}About the water-lien.phila.gov API
The water-lien.phila.gov API provides 4 endpoints for querying Philadelphia Water Department (PWD) lien records tied to specific properties. Starting with search_by_address, you can resolve a partial street address into normalized address strings, then chain into get_property_accounts to retrieve associated accounts with fields like debtBalAmt, lienCount, currentOwnerName, and acctStatus — the core data points needed for property due diligence on water debt.
Address and Account Lookup
search_by_address accepts a partial or full street address string and returns an array of normalized address objects, each with an address field formatted for downstream use. The query must include a street number — bare street names return empty results. The returned addresses use the format 1234 MARKET ST 19107 and can be passed directly to get_property_accounts in either ZIP-5 or ZIP+4 format.
Property Account Data
get_property_accounts returns all water accounts linked to a normalized address. Each account object includes displayAccountNumber, currentOwnerName, acctStatus, debtBalAmt, lienCount, custId, instId, and supplyType. If any account has lienCount > 0, those IDs can be passed to get_account_lien_details to retrieve the full lien history.
Account Number Search
search_by_account_number accepts a PWD account number with hyphens removed (e.g., 4205356001234002). It returns the same account-level fields as get_property_accounts. Note that accounts with a 420- prefix resolve reliably, while 011- prefix accounts may return empty results from this endpoint.
Lien Detail Records
get_account_lien_details takes custId, instId, and supplyType from an account record where lienCount is greater than zero, and returns per-lien objects containing lienNumber, lienStatus, liendates, debtBalAmnt, debtTotAmnt, displayAccountNumber, and supplyType. This endpoint only returns data when a lien record actually exists; calling it on a zero-lien account returns an empty data array.
- Pre-purchase property due diligence: check
debtBalAmtandlienCountbefore closing on a Philadelphia property - Title search automation: flag properties with active water liens by checking
lienStatusin lien detail records - Portfolio screening: batch-query multiple addresses to surface outstanding
debtBalAmtvalues across a property set - Lien monitoring: track
lienStatusandliendateschanges on specific PWD accounts over time - Refinancing checks: confirm no outstanding water debt attached to a property before underwriting
- Owner research: retrieve
currentOwnerNameandacctStatusfor a given address to verify current account holder
| 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 | 250 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.
Does water-lien.phila.gov have an official developer API?+
What does `get_account_lien_details` actually return, and when does it return data?+
lienNumber, lienStatus, liendates, debtBalAmnt, debtTotAmnt, displayAccountNumber, and supplyType. The endpoint only returns populated data when the account has at least one lien — meaning lienCount > 0 in the get_property_accounts response. Passing a custId/instId/supplyType combination from a zero-lien account returns an empty data array.Are there any limitations when searching by account number?+
search_by_account_number requires the account number with all hyphens removed. Additionally, accounts with a 420- prefix resolve successfully, while accounts with an 011- prefix may return empty results. If an account number search returns nothing, try resolving the property via search_by_address and get_property_accounts instead.Does the API cover water lien records for properties outside Philadelphia?+
Does the API return payment history or installment plan details for a water account?+
debtBalAmt, debtTotAmnt), lien status, and lien dates, but do not expose individual payment transactions or active payment plan breakdowns. You can fork this API on Parse and revise it to add an endpoint for that data if it becomes accessible.