Documentation menu
GET

/businesses

Returns business activity records (licenses and registrations) for a jurisdiction. The record_type field is always present (never null) and indicates whether each record is a "license" or "registration".

Base URL

https://api.threshmoor.com

Query parameters

ParameterTypeDefaultRequiredDescription
jurisdictionstringNoFilter to a single jurisdiction (e.g. "austin"). Case-insensitive. Omit to query all jurisdictions.
limitinteger25NoHow many records to return. Accepted range: 1–100.
business_typestringNoKeyword filter by business type (e.g. "Restaurant", "LLC"). Case-insensitive.

Response shape

Every successful response is wrapped in a BusinessResponse object:

{
  "jurisdiction": string,
  "count":        number,
  "records":      BusinessActivity[]
}

BusinessActivity object

FieldTypeDescription
business_namestring | nullName of the business.
record_typestringAlways present (never null). Indicates whether the record is a "license" or "registration".
business_typestring | nullType of business or license (e.g. "Restaurant", "LLC", "Food Truck").
statusstring | nullCurrent status (e.g. "Active", "Expired", "Revoked").
filed_datestring | nullDate the record was filed (ISO 8601 format).
addressstring | nullStreet address.
citystring | nullCity name.
zipstring | nullZIP / postal code.
latitudestring | nullLatitude coordinate.
longitudestring | nullLongitude coordinate.
jurisdictionstringThe jurisdiction this record belongs to (always present, e.g. "Austin, TX").
websitestring | nullBusiness website from Google Places enrichment. Only populated for verified matches.
has_websiteboolean | nullWhether the business has a website. Only populated when enrichment data is available.
review_countinteger | nullNumber of Google reviews. Only populated for verified matches.
ratingfloat | nullGoogle star rating (1.0–5.0). Only populated for verified matches.
establishmentstring | nullHow established the business appears: "new" (listing but no reviews/website), "emerging" (has website or some reviews), "established" (website + 10+ reviews), or "no_match" (no Google presence found).
match_confidencestring | nullConfidence of the Google Places match: "verified" (name + address corroborated), "unverified" (weak match — data not displayed), or "no_match" (no listing found).
enriched_atstring | nullISO timestamp of when this record was last enriched via Google Places.

Example

Request

GET /businesses?jurisdiction=austin&limit=2 HTTP/1.1
Host: api.threshmoor.com
X-API-Key: thresh_live_...

Response — 200 OK

{
  "jurisdiction": "Austin, TX",
  "count": 2,
  "records": [
    {
      "business_name": "Torchy's Tacos #14",
      "record_type": "license",
      "business_type": "Restaurant",
      "status": "Active",
      "filed_date": "2026-03-12T00:00:00.000",
      "address": "2809 S 1ST ST",
      "city": "AUSTIN",
      "zip": "78704",
      "latitude": "30.24018700",
      "longitude": "-97.76195400",
      "jurisdiction": "Austin, TX"
    },
    {
      "business_name": "Zilker Park Ventures LLC",
      "record_type": "registration",
      "business_type": "LLC",
      "status": "Active",
      "filed_date": "2026-05-28T00:00:00.000",
      "address": "100 BARTON SPRINGS RD STE 200",
      "city": "AUSTIN",
      "zip": "78704",
      "latitude": "30.26283100",
      "longitude": "-97.76930200",
      "jurisdiction": "Austin, TX"
    }
  ]
}

Error responses

StatusMeaning
502The upstream data source is unreachable or returned an unexpected response. The API never leaks raw errors; you will receive a short, human-readable message.
{
  "detail": "Could not reach the Austin business data source: ..."
}