{"openapi":"3.1.0","info":{"title":"TerraScoutX (BYOK) API","version":"0.1.0","description":"TerraScoutX (BYOK) lets an AI assistant read your own TerraScoutX data through the TerraScoutX API with a key you supply (TerraScoutX API key). Read-only: 6 tools (search_properties, get_property, get_valuation_history, get_nearby_schools, get_market_context, list_coverage). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-terrascoutx.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-terrascoutx/docs"},"termsOfService":"https://connectorbay.com/byok-terrascoutx/terms"},"servers":[{"url":"https://byok-terrascoutx.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-terrascoutx/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/search_properties":{"post":{"operationId":"search_properties","summary":"Find US properties by street address or parcel number, best match first; each result is a full record with appraised val","description":"Find US properties by street address or parcel number, best match first; each result is a full record with appraised value, tax estimate, flood zone and risk score. Owner fields are never requested. Use for \"Look up the property at 1000 Main St Houston\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"description":"Street address or parcel id (2 to 200 characters); adding city or state narrows it, for example '1000 Main St Houston'.","maxLength":200,"title":"Q","type":"string"},"limit":{"anyOf":[{"maximum":20,"minimum":1,"type":"integer"},{"type":"null"}],"default":8,"description":"Results to return (1 to 20).","title":"Limit"},"state":{"anyOf":[{"maxLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Two-letter state code to restrict to, for example 'TX'.","title":"State"},"county":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"County key from list_coverage, for example 'hcad' for Harris County, TX.","title":"County"},"min_value":{"anyOf":[{"maximum":100000000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Lowest total appraised value in dollars.","title":"Min Value"},"max_value":{"anyOf":[{"maximum":100000000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Highest total appraised value in dollars.","title":"Max Value"},"no_owner":{"anyOf":[{"const":"1","type":"string"},{"type":"null"}],"default":"1","description":"Fixed to 1 so owner names, mailing addresses and ownership transfers are left out of the answer.","title":"No Owner"}},"required":["q"],"title":"search_propertiesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_property":{"post":{"operationId":"get_property","summary":"Get one property's full record by id: parcel, land use, year built, areas, appraised value, tax estimate, flood zone and","description":"Get one property's full record by id: parcel, land use, year built, areas, appraised value, tax estimate, flood zone and risk. Owner fields are never requested. Use for \"Show the full record of property hcad-0011390000002\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"property_id":{"description":"Property id from a search, for example 'hcad-0011390000002'.","maxLength":80,"title":"Property Id","type":"string"},"no_owner":{"anyOf":[{"const":"1","type":"string"},{"type":"null"}],"default":"1","description":"Fixed to 1 so owner names, mailing addresses and ownership transfers are left out of the answer.","title":"No Owner"}},"required":["property_id"],"title":"get_propertyArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_valuation_history":{"post":{"operationId":"get_valuation_history","summary":"Get a property's market, assessed and taxable values by tax year (newest first), with land and improvement values and re","description":"Get a property's market, assessed and taxable values by tax year (newest first), with land and improvement values and recorded sale figures where the county publishes them. Empty for counties without history. Use for \"How has the appraised value of hcad-0011390000002 changed over the years\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"property_id":{"description":"Property id from a search, for example 'hcad-0011390000002'.","maxLength":80,"title":"Property Id","type":"string"}},"required":["property_id"],"title":"get_valuation_historyArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_nearby_schools":{"post":{"operationId":"get_nearby_schools","summary":"List public schools nearest a property, closest first, with grades, charter flag, distance in miles and the state accoun","description":"List public schools nearest a property, closest first, with grades, charter flag, distance in miles and the state accountability rating when one exists. Use for \"What schools are near property hcad-0011390000002\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"property_id":{"description":"Property id from a search, for example 'hcad-0011390000002'.","maxLength":80,"title":"Property Id","type":"string"},"limit":{"anyOf":[{"maximum":10,"minimum":1,"type":"integer"},{"type":"null"}],"default":5,"description":"Schools to return (1 to 10).","title":"Limit"}},"required":["property_id"],"title":"get_nearby_schoolsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_market_context":{"post":{"operationId":"get_market_context","summary":"Get the latest FHFA House Price Index for the property's state with its change over the last quarter and year. Use for \"","description":"Get the latest FHFA House Price Index for the property's state with its change over the last quarter and year. Use for \"What is the house price trend for the state of property hcad-0011390000002\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"property_id":{"description":"Property id from a search, for example 'hcad-0011390000002'.","maxLength":80,"title":"Property Id","type":"string"}},"required":["property_id"],"title":"get_market_contextArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_coverage":{"post":{"operationId":"list_coverage","summary":"List every county and city jurisdiction the data covers, with its county_key and property count; use a county_key to nar","description":"List every county and city jurisdiction the data covers, with its county_key and property count; use a county_key to narrow a search. Use for \"Which counties does TerraScoutX cover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_coverageArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}