Fbcad APIesearch.fbcad.org ↗
Access Fort Bend Central Appraisal District records via API. Search by keyword, owner, geo ID, or tax year. Retrieve values, deeds, improvements, and more.
What is the Fbcad API?
This API provides access to Fort Bend Central Appraisal District (FBCAD) property records through 3 endpoints, covering keyword search, advanced multi-filter search, and full property detail retrieval. The get_property_detail endpoint returns over 8 structured data sections per property, including appraised values, land segments, improvement records, deed history, taxing jurisdictions, and year-over-year value history.
curl -X GET 'https://api.parse.bot/scraper/353c8332-8313-460a-8eb6-99a04f106ff5/search_properties?page=1&is_arb=False&keywords=Belknap&page_size=25' \ -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 esearch-fbcad-org-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.
"""Fort Bend CAD: search properties, drill into details, walk sub-structures."""
from parse_apis.fort_bend_cad_api import FortBendCAD, PropertyNotFound
client = FortBendCAD()
# Keyword search — capped at 5 results total.
for prop in client.propertysummaries.search(keywords="Belknap", limit=5):
print(prop.owner_name, prop.address, prop.appraised_value)
# Drill into the first result's full detail via the navigation op.
summary = client.propertysummaries.search(keywords="Belknap", limit=1).first()
if summary:
detail = summary.details()
print(detail.property_id, detail.year)
for jur in detail.taxing_jurisdictions:
print(jur.entity, jur.description, jur.taxable_value)
for deed in detail.deed_history:
print(deed.deed_date, deed.grantor, deed.grantee)
# Direct property lookup by Quick Ref ID with typed-error handling.
try:
prop = client.properties.get(property_id="R322436")
print(prop.account)
for seg in prop.land:
print(seg.type, seg.description, seg.acreage)
except PropertyNotFound as exc:
print(f"Property not found: {exc.property_id}")
# Advanced search by owner name — single page.
for result in client.propertysummaries.search_advanced(owner_name="Smith", limit=3):
print(result.property_id, result.owner_name, result.appraised_value_display)
print("exercised: search / search_advanced / details / properties.get")
Full-text keyword search across Fort Bend CAD property records. Matches against owner names, addresses, property IDs, and other fields. Returns paginated results ordered by relevance. Set is_arb to search Appraisal Review Board hearing records instead of the standard roll.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination |
| is_arb | boolean | If true, search Appraisal Review Board records |
| keywordsrequired | string | General search keyword (address, owner name, property ID, etc.) |
| page_size | integer | Number of results per page |
{
"type": "object",
"fields": {
"resultsList": "array of property summary objects with propertyId, ownerName, address, appraisedValue, etc.",
"totalResults": "integer total number of matching properties"
},
"sample": {
"data": {
"resultsList": [
{
"year": 2026,
"geoId": "6100-00-038-0003-907",
"address": "10115 Belknap RD, Sugar Land, TX 77498",
"ownerId": "O0809437",
"ownerName": "10115 Belknap LLC",
"propertyId": "R322436",
"subdivision": "6100-00 - RICHMOND ROAD FARMS GARDENS",
"propertyType": "Real Commercial",
"appraisedValue": 1421831,
"appraisedValueDisplay": "$1,421,831"
}
],
"totalResults": 163
},
"status": "success"
}
}About the Fbcad API
Searching Properties
The search_properties endpoint accepts a keywords parameter matched against owner names, addresses, and property IDs, returning paginated results via page and page_size parameters. Each result in resultsList includes a propertyId, ownerName, address, and appraisedValue. Setting is_arb to true redirects the search against Appraisal Review Board records instead of the general roll.
Advanced Filtering
The search_advanced endpoint supports combining filters such as owner_name, owner_id, geo_id, abstract, agent_id, condo, dba, and tax_year. At least one filter must be provided. Multi-word string values are automatically quoted for exact phrase matching. This endpoint is useful when you know specific owner identifiers (e.g., O0894707) or want to scope results to a particular tax year like 2025 or 2026.
Property Detail Records
The get_property_detail endpoint takes a property_id (Quick Ref IDs like R322436 or P382280) and an optional year parameter to pull data for a specific tax year. The response includes the account object with situs address, geographic ID, and owner name; the values object with market and appraised value breakdowns; land and improvements arrays for parcel and building data; taxingJurisdictions listing each taxing entity's market and taxable values; deedHistory for ownership transfer records; valueHistory for prior-year roll values; and linkedProperties for associated parcel IDs.
The Fbcad API is a managed, monitored endpoint for esearch.fbcad.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when esearch.fbcad.org 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 esearch.fbcad.org 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?+
- Look up appraised and market values for Fort Bend County properties by address or owner name
- Track year-over-year value changes using the
valueHistoryarray fromget_property_detail - Identify all properties tied to a specific owner using the
owner_idfilter insearch_advanced - Pull taxing jurisdiction breakdowns per parcel to estimate total tax burden across entities
- Monitor deed transfer history for ownership change tracking using
deedHistoryrecords - Build a property portfolio tool scoped to Fort Bend County by querying the
agent_idorowner_namefilters - Cross-reference
linkedPropertiesto identify subdivided or consolidated parcels
| 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.
Does Fort Bend Central Appraisal District provide an official developer API?+
What does `get_property_detail` return beyond basic value information?+
values object (market value, appraised value), the response includes land segment records, improvements (building data), taxingJurisdictions (per-entity taxable values), deedHistory (ownership transfers), valueHistory (historical roll values by year), and linkedProperties. The account object contains the Quick Ref ID, geographic ID, situs address, owner name, and owner ID.Can I search properties for a specific tax year?+
search_advanced and get_property_detail accept a tax_year or year parameter respectively. For search_advanced, pass a value like 2025 to the tax_year field. For get_property_detail, omitting year returns the current default year's data.