{"openapi":"3.1.0","info":{"title":"Regrid (BYOK) API","version":"0.1.0","description":"Regrid (BYOK) lets an AI assistant read your own Regrid data through the Regrid API with a key you supply (Regrid API token). Read-only: 7 tools (get_parcels_at_point, get_parcels_by_address, get_parcels_by_apn, get_parcels_by_owner, suggest_addresses, get_parcel_by_id, get_api_usage). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-regrid.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-regrid/docs"},"termsOfService":"https://connectorbay.com/byok-regrid/terms"},"servers":[{"url":"https://byok-regrid.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-regrid/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/get_parcels_at_point":{"post":{"operationId":"get_parcels_at_point","summary":"Find the parcels at or within a radius of a latitude and longitude: address headline, parcel number, owner, land use and","description":"Find the parcels at or within a radius of a latitude and longitude: address headline, parcel number, owner, land use and other schema fields. Trial tokens only cover seven counties. Use for \"Which parcel is at 32.834967, -96.563861\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"lat":{"description":"Latitude of the point.","maximum":90,"minimum":-90,"title":"Lat","type":"number"},"lon":{"description":"Longitude of the point.","maximum":180,"minimum":-180,"title":"Lon","type":"number"},"radius":{"anyOf":[{"maximum":32000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Search radius in meters (0 to 32000; the service defaults to 0).","title":"Radius"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":3,"description":"Maximum number of parcel records to return (answers can be large, so keep it small).","title":"Limit"},"return_geometry":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include parcel outlines (much larger answers).","title":"Return Geometry"},"return_field_labels":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to add a human-readable label for every field.","title":"Return Field Labels"},"return_matched_buildings":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to add matched building footprints (an add-on that must be on your account).","title":"Return Matched Buildings"},"return_zoning":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to add standardized zoning (an add-on that must be on your account).","title":"Return Zoning"},"return_matched_addresses":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to add matched addresses (an add-on that must be on your account).","title":"Return Matched Addresses"}},"required":["lat","lon"],"title":"get_parcels_at_pointArguments","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_parcels_by_address":{"post":{"operationId":"get_parcels_by_address","summary":"Find parcels matching a street address or partial address, optionally inside a place path such as /us/tx/dallas. Use for","description":"Find parcels matching a street address or partial address, optionally inside a place path such as /us/tx/dallas. Use for \"Which parcel is 5818 Diana Dr, Dallas TX 75043\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"description":"Street or partial address, for example '5818 Diana Dr, Dallas TX 75043-6627'.","maxLength":200,"title":"Query","type":"string"},"path":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Restrict the search to a place path such as /us/tx/dallas.","title":"Path"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":3,"description":"Maximum number of parcel records to return (answers can be large, so keep it small).","title":"Limit"},"return_field_labels":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to add a human-readable label for every field.","title":"Return Field Labels"},"return_matched_buildings":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to add matched building footprints (an add-on that must be on your account).","title":"Return Matched Buildings"},"return_zoning":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to add standardized zoning (an add-on that must be on your account).","title":"Return Zoning"},"return_matched_addresses":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to add matched addresses (an add-on that must be on your account).","title":"Return Matched Addresses"}},"required":["query"],"title":"get_parcels_by_addressArguments","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_parcels_by_apn":{"post":{"operationId":"get_parcels_by_apn","summary":"Find parcels by assessor parcel number (non-alphanumeric characters are ignored), optionally inside a place path. Use fo","description":"Find parcels by assessor parcel number (non-alphanumeric characters are ignored), optionally inside a place path. Use for \"Which parcel has assessor number 26447580030140000 in Dallas\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"parcelnumb":{"description":"Assessor parcel number, for example 26447580030140000.","maxLength":40,"title":"Parcelnumb","type":"string"},"path":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Restrict the search to a place path such as /us/tx/dallas.","title":"Path"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":3,"description":"Maximum number of parcel records to return (answers can be large, so keep it small).","title":"Limit"},"return_field_labels":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to add a human-readable label for every field.","title":"Return Field Labels"},"return_matched_buildings":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to add matched building footprints (an add-on that must be on your account).","title":"Return Matched Buildings"},"return_zoning":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to add standardized zoning (an add-on that must be on your account).","title":"Return Zoning"},"return_matched_addresses":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to add matched addresses (an add-on that must be on your account).","title":"Return Matched Addresses"}},"required":["parcelnumb"],"title":"get_parcels_by_apnArguments","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_parcels_by_owner":{"post":{"operationId":"get_parcels_by_owner","summary":"Find parcels by owner name (Last, First order; case-insensitive prefix match of at least four characters), optionally in","description":"Find parcels by owner name (Last, First order; case-insensitive prefix match of at least four characters), optionally inside a place path. Use for \"Which Dallas parcels are owned by 7 Eleven Inc\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"owner":{"description":"Owner name as 'Last, First' or a company name; at least 4 characters.","maxLength":100,"title":"Owner","type":"string"},"path":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Restrict the search to a place path such as /us/tx/dallas.","title":"Path"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":3,"description":"Maximum number of parcel records to return (answers can be large, so keep it small).","title":"Limit"},"return_matched_buildings":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to add matched building footprints (an add-on that must be on your account).","title":"Return Matched Buildings"},"return_zoning":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to add standardized zoning (an add-on that must be on your account).","title":"Return Zoning"},"return_matched_addresses":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to add matched addresses (an add-on that must be on your account).","title":"Return Matched Addresses"}},"required":["owner"],"title":"get_parcels_by_ownerArguments","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/suggest_addresses":{"post":{"operationId":"suggest_addresses","summary":"Suggest parcel addresses that start with the text typed so far, with each parcel's path and Regrid id. Use for \"Suggest ","description":"Suggest parcel addresses that start with the text typed so far, with each parcel's path and Regrid id. Use for \"Suggest addresses starting with 5818 Diana\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"description":"Street address or the beginning of one, for example '5818 Diana Dr'.","maxLength":200,"title":"Query","type":"string"}},"required":["query"],"title":"suggest_addressesArguments","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_parcel_by_id":{"post":{"operationId":"get_parcel_by_id","summary":"Get one parcel by its stable Regrid id (ll_uuid) from an earlier lookup. Use for \"Show the parcel with Regrid id 0000000","description":"Get one parcel by its stable Regrid id (ll_uuid) from an earlier lookup. Use for \"Show the parcel with Regrid id 00000000-0000-0000-0000-000000000000\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ll_uuid":{"description":"Regrid parcel id (UUID) returned by another lookup.","maxLength":60,"title":"Ll Uuid","type":"string"},"return_field_labels":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to add a human-readable label for every field.","title":"Return Field Labels"},"return_matched_buildings":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to add matched building footprints (an add-on that must be on your account).","title":"Return Matched Buildings"},"return_zoning":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to add standardized zoning (an add-on that must be on your account).","title":"Return Zoning"},"return_matched_addresses":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to add matched addresses (an add-on that must be on your account).","title":"Return Matched Addresses"}},"required":["ll_uuid"],"title":"get_parcel_by_idArguments","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_api_usage":{"post":{"operationId":"get_api_usage","summary":"Show how much of your Regrid plan the current billing cycle has used: requests, results, typeahead calls and add-on look","description":"Show how much of your Regrid plan the current billing cycle has used: requests, results, typeahead calls and add-on lookups; optionally for a date range or per token. Use for \"How much of my Regrid quota have I used this cycle\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"begin_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Start date, YYYY-MM-DD.","title":"Begin Date"},"end_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"End date, YYYY-MM-DD.","title":"End Date"},"return_by_token":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to break usage down by token.","title":"Return By Token"},"return_full_history":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to return the whole usage history.","title":"Return Full History"}},"title":"get_api_usageArguments","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}}}}