Skip to content
API · MCP · Owners

Property owner lookup API

Look up who owns a U.S. parcel: the owner of record, the mailing address on the assessor or tax roll, the portfolio under that name, an absentee flag, and recorded deed transactions. The same calls are on the REST API and the hosted MCP server.

A street address is not a single owner-card call. POST /api/v1/lookup/batch resolves the address and returns owner_name. GET /api/v1/owners/card or GET /api/v1/parcels/{id}/owner returns the mailing address. GET /api/v1/lookup accepts a parcel UUID or an APN, not a street address.

Just need one address in the browser? Use the free property owner lookup.

Free: $0, 1,000 lookups a month with an API key, no card. Create a key · API reference · Pricing

What the API returns

Owner name from an address
REST POST /api/v1/lookup/batch · MCP parcel_lookup
Each query resolves on its own: parcel UUID, then APN, then street address. Up to 500 queries. A matched row includes owner_name. GET /api/v1/lookup is a parcel UUID or an APN only. Text search is GET /api/v1/search/full with q and field=address, which also returns owner_name and not the mailing card.
Owner of record and mailing address
REST GET /api/v1/owners/card · MCP owner_card
The owner of record and the best mailing address for one parcel_id or one exact owner-of-record spelling. The address is read from one address column family, with mail_ready, po_box and equals_situs. GET /api/v1/parcels/{id}/owner returns the owner name, owner address, portfolio summary and property list. Both need an account.
Owner search and profile
REST GET /api/v1/owners/search
GET /api/v1/owners/search?q= searches owner names and returns property counts and portfolio value. GET /api/v1/owners/{name} returns one profile: property count, total assessed value, entity type and states. There is no separate MCP tool for name search.
Portfolio
REST GET /api/v1/owners/{name}/portfolio · MCP owner_pierce
Parcels whose owner-of-record name matches the requested name, with a summary. Each property carries match_basis and match_confidence. Matching is spelling matching, not a verified corporate link. GET /api/v1/owners/{name}/properties lists those parcels. owner_pierce calls the portfolio route and, for an account, GET /api/v1/owners/pierce.
Absentee flag
REST GET /api/v1/parcels/{id} · MCP parcel_lookup
The parcel record includes is_absentee. It is derived from that record's mailing address versus its situs, by the same rule as owner_occupied_flag, so a row is not both absentee and owner-occupied. When the record lacks those inputs, owner_occupied_flag is null. On the owner card, mailing.equals_situs is true when the mailing address is the property address.
Deed transactions
REST GET /api/v1/owners/{name}/transactions
Up to 100 of the most recent deed events where the named owner is grantor or grantee. There is no MCP tool for this owner-name timeline. A parcel's own deed timeline is a different call.

County absentee lists are a different product: GET /api/v1/deals/absentee (MCP deals_absentee) and absentee owner lists. GET /api/v1/owners/{name}/report is a separate paid owner report, with a free preview for an account.

What it does not include

The owner of record and the mailing address the assessor or tax roll publishes. PropRaven does not buy phone numbers or e-mail addresses from data brokers or skip-trace services. Phone numbers and e-mail addresses shown come from building-permit records as the permit office published them. An absentee-owner lead does not include a phone number. owner_contact.phone_status is not_checked, because a lead pull does not look up a phone. PropRaven does not resolve beneficial ownership, the controlling natural person behind an LLC or trust.

Code sample

REST, with an API key from a free account:

# Street address to a parcel. owner_name is on the matched row.
# GET /api/v1/lookup accepts a UUID or APN, not a street address.
curl -s https://propraven.com/api/v1/lookup/batch \
  -H "Authorization: Bearer $PROPRAVEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"queries":["420 S Tryon St, Charlotte NC"]}'

# Mailing address for that parcel (account required).
curl -s "https://propraven.com/api/v1/owners/card?parcel_id=37:119:11906402" \
  -H "Authorization: Bearer $PROPRAVEN_API_KEY"

The same two steps from an agent, over the hosted MCP server. Claude, Cursor and other MCP clients connect with OAuth instead; see the MCP docs:

curl -s -X POST https://propraven.com/mcp \
  -H "Authorization: Bearer $PROPRAVEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"parcel_lookup","arguments":{"query":"420 S Tryon St, Charlotte NC"}}}'

curl -s -X POST https://propraven.com/mcp \
  -H "Authorization: Bearer $PROPRAVEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
       "params":{"name":"owner_card","arguments":{"parcel_id":"37:119:11906402"}}}'

Plans

  • Free is $0: 1,000 lookups a month, self-serve API keys, no card.
  • Developer is $99/mo for 100k lookups a month, with the full API, SDKs, webhooks and the MCP connector.
  • Team is $1,000/mo for 1M lookups a month.

Compared on the pricing page. Owner names and mailing addresses need an account (an API key, an MCP sign-in, or a signed-in session). An anonymous call to the owner card gets HTTP 401 and no data.

Where owner fields are published

Whether a county publishes an owner name or a mailing address is on the coverage page and in the field catalog at GET /api/v1/storefront/catalog. This page does not add a coverage figure of its own.

Property owner lookup API questions

Can I look up a property owner by street address?
Yes, with an API key. POST /api/v1/lookup/batch accepts up to 500 queries. Each query can be a parcel UUID, an APN, a canonical id, or a street address, and a matched row includes owner_name. GET /api/v1/lookup accepts a parcel UUID or an APN, not a street address. The mailing address is a second call: GET /api/v1/owners/card with parcel_id, or GET /api/v1/parcels/{id}/owner. Over MCP, parcel_lookup accepts a street address and owner_card returns the mailing address.
What does the property owner lookup API return?
For an account: the owner of record and the best mailing address (GET /api/v1/owners/card or GET /api/v1/parcels/{id}/owner), the parcels whose owner-of-record name matches a name (GET /api/v1/owners/{name}/portfolio), the absentee flag is_absentee on GET /api/v1/parcels/{id}, and up to 100 recent deed events where that name is grantor or grantee (GET /api/v1/owners/{name}/transactions).
Does it include phone numbers or email addresses?
The owner of record and the mailing address the assessor or tax roll publishes. PropRaven does not buy phone numbers or e-mail addresses from data brokers or skip-trace services. Phone numbers and e-mail addresses shown come from building-permit records as the permit office published them. An absentee-owner lead does not include a phone number. owner_contact.phone_status is not_checked, because a lead pull does not look up a phone. PropRaven does not resolve beneficial ownership, the controlling natural person behind an LLC or trust.
Which plan includes the owner lookup API?
Free is $0: 1,000 lookups a month, with an API key, no card. Developer is $99/mo for 100k lookups a month. Team is $1,000/mo for 1M lookups a month. Plans are on /pricing.
Is an owner portfolio a verified link to the person behind an LLC?
No. GET /api/v1/owners/{name}/portfolio and the MCP tool owner_pierce match owner-of-record spellings. Each property carries match_basis and match_confidence. That is spelling matching, not a verified corporate link. PropRaven does not resolve beneficial ownership, the controlling natural person behind an LLC or trust.
Is there a free owner lookup without writing code?
Yes. The free web tool is at /property-owner-lookup. Free is $0: 1,000 lookups a month in the web app, with an API key, no card.