{"openapi":"3.1.0","info":{"title":"tollbooth","version":"1.6.0"},"paths":{"/healthz":{"get":{"summary":"Healthz","operationId":"healthz_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Healthz Healthz Get"}}}}}}},"/":{"get":{"summary":"Manifest","operationId":"manifest__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Manifest  Get"}}}}}}},"/llms.txt":{"get":{"summary":"Llms Txt","operationId":"llms_txt_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/v1/ping":{"post":{"summary":"Ping","operationId":"ping_v1_ping_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object"},"example":{}}},"required":false},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Ping V1 Ping Post"}}}},"402":{"description":"Payment required. Carries an x402 PAYMENT-REQUIRED header and one WWW-Authenticate: Payment challenge per MPP method. Pay, then retry the same request."},"422":{"description":"The body fails validation (malformed, or a state that is not served), or names something with no current data to sell: refused before the 402, nothing charged. Or, after payment, a place could not be resolved, or has no airport in range."},"503":{"description":"Before the 402, on drive/matrix/airport: routing is known to be down or out of quota; on forecast: its data is busy or unreachable. Retry after the Retry-After header's seconds, nothing charged. After payment: routing/geocoding backend unavailable, data age unknown, or data that stopped being servable after the price check. Not charged on x402; MPP payments are recorded as failed for refund."}},"x-payment-info":{"offers":[{"method":"x402","intent":"charge","amount":"1000","currency":"USDC","description":"Cheapest paid call: proves wallet, 402 and receipt work (x402 only). USDC on Base (eip155:8453)."}]}}},"/v1/drive":{"post":{"summary":"Drive","operationId":"drive_v1_drive_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DriveRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DriveResponse"}}}},"402":{"description":"Payment required. Carries an x402 PAYMENT-REQUIRED header and one WWW-Authenticate: Payment challenge per MPP method. Pay, then retry the same request."},"422":{"description":"The body fails validation (malformed, or a state that is not served), or names something with no current data to sell: refused before the 402, nothing charged. Or, after payment, a place could not be resolved, or has no airport in range."},"503":{"description":"Before the 402, on drive/matrix/airport: routing is known to be down or out of quota; on forecast: its data is busy or unreachable. Retry after the Retry-After header's seconds, nothing charged. After payment: routing/geocoding backend unavailable, data age unknown, or data that stopped being servable after the price check. Not charged on x402; MPP payments are recorded as failed for refund."}},"x-payment-info":{"offers":[{"method":"x402","intent":"charge","amount":"10000","currency":"USDC","description":"Driving time/distance between two named places. USDC on Base (eip155:8453)."},{"method":"tempo","intent":"charge","amount":"10000","currency":"USDC","description":"Driving time/distance between two named places. USDC on Tempo."}]}}},"/v1/matrix":{"post":{"summary":"Matrix","operationId":"matrix_v1_matrix_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatrixRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatrixResponse"}}}},"402":{"description":"Payment required. Carries an x402 PAYMENT-REQUIRED header and one WWW-Authenticate: Payment challenge per MPP method. Pay, then retry the same request."},"422":{"description":"The body fails validation (malformed, or a state that is not served), or names something with no current data to sell: refused before the 402, nothing charged. Or, after payment, a place could not be resolved, or has no airport in range."},"503":{"description":"Before the 402, on drive/matrix/airport: routing is known to be down or out of quota; on forecast: its data is busy or unreachable. Retry after the Retry-After header's seconds, nothing charged. After payment: routing/geocoding backend unavailable, data age unknown, or data that stopped being servable after the price check. Not charged on x402; MPP payments are recorded as failed for refund."}},"x-payment-info":{"offers":[{"method":"x402","intent":"charge","amount":"50000","currency":"USDC","description":"Drive-time matrix, up to 100 origin x destination elements per call. USDC on Base (eip155:8453)."},{"method":"tempo","intent":"charge","amount":"50000","currency":"USDC","description":"Drive-time matrix, up to 100 origin x destination elements per call. USDC on Tempo."}]}}},"/v1/license/verify":{"post":{"summary":"License Verify","operationId":"license_verify_v1_license_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseVerifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseVerifyResponse"}}}},"402":{"description":"Payment required. Carries an x402 PAYMENT-REQUIRED header and one WWW-Authenticate: Payment challenge per MPP method. Pay, then retry the same request."},"422":{"description":"The body fails validation (malformed, or a state that is not served), or names something with no current data to sell: refused before the 402, nothing charged. Or, after payment, a place could not be resolved, or has no airport in range."},"503":{"description":"Before the 402, on drive/matrix/airport: routing is known to be down or out of quota; on forecast: its data is busy or unreachable. Retry after the Retry-After header's seconds, nothing charged. After payment: routing/geocoding backend unavailable, data age unknown, or data that stopped being servable after the price check. Not charged on x402; MPP payments are recorded as failed for refund."}},"x-payment-info":{"offers":[{"method":"x402","intent":"charge","amount":"50000","currency":"USDC","description":"Contractor license status plus matching business-entity record. Served states: CA, FL, OR, TX, VA, WA. CA entity is always null. TX entity is always null: Texas sells its business-registry data. Empty licenses is a paid 200. USDC on Base (eip155:8453)."},{"method":"tempo","intent":"charge","amount":"50000","currency":"USDC","description":"Contractor license status plus matching business-entity record. Served states: CA, FL, OR, TX, VA, WA. CA entity is always null. TX entity is always null: Texas sells its business-registry data. Empty licenses is a paid 200. USDC on Tempo."}]}}},"/v1/entity/lookup":{"post":{"summary":"Entity Lookup","operationId":"entity_lookup_v1_entity_lookup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityLookupRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityLookupResponse"}}}},"402":{"description":"Payment required. Carries an x402 PAYMENT-REQUIRED header and one WWW-Authenticate: Payment challenge per MPP method. Pay, then retry the same request."},"422":{"description":"The body fails validation (malformed, or a state that is not served), or names something with no current data to sell: refused before the 402, nothing charged. Or, after payment, a place could not be resolved, or has no airport in range."},"503":{"description":"Before the 402, on drive/matrix/airport: routing is known to be down or out of quota; on forecast: its data is busy or unreachable. Retry after the Retry-After header's seconds, nothing charged. After payment: routing/geocoding backend unavailable, data age unknown, or data that stopped being servable after the price check. Not charged on x402; MPP payments are recorded as failed for refund."}},"x-payment-info":{"offers":[{"method":"x402","intent":"charge","amount":"10000","currency":"USDC","description":"State business-registry record (status, formation, registered agent, officers) by entity number or exact name. Served states: FL, OR. Up to 10 entities; empty entities is a paid 200. USDC on Base (eip155:8453)."},{"method":"tempo","intent":"charge","amount":"10000","currency":"USDC","description":"State business-registry record (status, formation, registered agent, officers) by entity number or exact name. Served states: FL, OR. Up to 10 entities; empty entities is a paid 200. USDC on Tempo."}]}}},"/v1/license/search":{"post":{"summary":"License Search","operationId":"license_search_v1_license_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseSearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseSearchResponse"}}}},"402":{"description":"Payment required. Carries an x402 PAYMENT-REQUIRED header and one WWW-Authenticate: Payment challenge per MPP method. Pay, then retry the same request."},"422":{"description":"The body fails validation (malformed, or a state that is not served), or names something with no current data to sell: refused before the 402, nothing charged. Or, after payment, a place could not be resolved, or has no airport in range."},"503":{"description":"Before the 402, on drive/matrix/airport: routing is known to be down or out of quota; on forecast: its data is busy or unreachable. Retry after the Retry-After header's seconds, nothing charged. After payment: routing/geocoding backend unavailable, data age unknown, or data that stopped being servable after the price check. Not charged on x402; MPP payments are recorded as failed for refund."}},"x-payment-info":{"offers":[{"method":"x402","intent":"charge","amount":"100000","currency":"USDC","description":"Licensed contractors by trade and city, zip or county: license number, name, license type and class, status, expiry, address. Trades FL: alarm, demolition, drywall, electrical, garage_door, gas_line, general, glazing, hvac, irrigation, low_voltage, marine, plumbing, pollutant_storage, pool, pool_specialty, residential_electrical, roofing, sheet_metal, sign_electrical, solar, specialty_structure, underground_utility, window_door; OR: commercial_general, commercial_specialty, home_inspector, lead_paint, locksmith, residential_general, residential_specialty; TX: electrical, hvac, plumbing, sign_electrical; VA: accessibility, alarm, alternative_energy, asbestos_lead, cabinets_finish_carpentry, commercial_general, commercial_improvement, concrete, drilling_blasting, drywall, electrical, elevator, environmental, farm_improvement, fire_protection, flooring, framing, gas_line, glazing, highway_heavy, home_improvement, hvac, industrial_equipment, insulation, irrigation, landscaping, low_voltage, manufactured_home_setup, marine, masonry, modular_building, painting, paving, plumbing, pool, radon_mitigation, recreational_facility, residential_general, roofing, sewer_septic, signs, steel_erection, tile, underground_utility, vessel_construction, well_drilling; WA: alarm, appliances, asbestos_lead, awnings, backflow, boiler_piping, cabinets_finish_carpentry, central_vacuum, closets, concrete, construction_cleanup, demolition, doors_gates, drain_cleaning, drilling_blasting, drywall, electrical, electrical_maintenance, elevator, excavation, fencing, fire_protection, fireproofing, flooring, framing, garage_door, general, glazing, gutters, handyman, house_moving, hvac, industrial_equipment, institutional_equipment, insulation, irrigation, landscaping, low_voltage, manufactured_home_setup, masonry, metal_fabrication, painting, paving, pest_control, plastering, plumbing, pool, pressure_washing, pump_irrigation, residential_electrical, roofing, sandblasting, scaffolding, service_station_equipment, sewer_septic, siding, sign_electrical, signs, steel_erection, stoves, suspended_ceilings, tanks, telecommunications, tile, tree_service, underground_utility, water_conditioning, welding, well_drilling, window_coverings. Up to 25 results, active first, with total_matches; empty results is a paid 200. USDC on Base (eip155:8453)."},{"method":"tempo","intent":"charge","amount":"100000","currency":"USDC","description":"Licensed contractors by trade and city, zip or county: license number, name, license type and class, status, expiry, address. Trades FL: alarm, demolition, drywall, electrical, garage_door, gas_line, general, glazing, hvac, irrigation, low_voltage, marine, plumbing, pollutant_storage, pool, pool_specialty, residential_electrical, roofing, sheet_metal, sign_electrical, solar, specialty_structure, underground_utility, window_door; OR: commercial_general, commercial_specialty, home_inspector, lead_paint, locksmith, residential_general, residential_specialty; TX: electrical, hvac, plumbing, sign_electrical; VA: accessibility, alarm, alternative_energy, asbestos_lead, cabinets_finish_carpentry, commercial_general, commercial_improvement, concrete, drilling_blasting, drywall, electrical, elevator, environmental, farm_improvement, fire_protection, flooring, framing, gas_line, glazing, highway_heavy, home_improvement, hvac, industrial_equipment, insulation, irrigation, landscaping, low_voltage, manufactured_home_setup, marine, masonry, modular_building, painting, paving, plumbing, pool, radon_mitigation, recreational_facility, residential_general, roofing, sewer_septic, signs, steel_erection, tile, underground_utility, vessel_construction, well_drilling; WA: alarm, appliances, asbestos_lead, awnings, backflow, boiler_piping, cabinets_finish_carpentry, central_vacuum, closets, concrete, construction_cleanup, demolition, doors_gates, drain_cleaning, drilling_blasting, drywall, electrical, electrical_maintenance, elevator, excavation, fencing, fire_protection, fireproofing, flooring, framing, garage_door, general, glazing, gutters, handyman, house_moving, hvac, industrial_equipment, institutional_equipment, insulation, irrigation, landscaping, low_voltage, manufactured_home_setup, masonry, metal_fabrication, painting, paving, pest_control, plastering, plumbing, pool, pressure_washing, pump_irrigation, residential_electrical, roofing, sandblasting, scaffolding, service_station_equipment, sewer_septic, siding, sign_electrical, signs, steel_erection, stoves, suspended_ceilings, tanks, telecommunications, tile, tree_service, underground_utility, water_conditioning, welding, well_drilling, window_coverings. Up to 25 results, active first, with total_matches; empty results is a paid 200. USDC on Tempo."}]}}},"/v1/license/trades":{"get":{"summary":"License Trades","description":"Free: each state's trades for `POST /v1/license/search`.","operationId":"license_trades_v1_license_trades_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseTradesResponse"}}}}}}},"/v1/airport/nearest":{"post":{"summary":"Airport Nearest","operationId":"airport_nearest_v1_airport_nearest_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NearestAirportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NearestAirportResponse"}}}},"402":{"description":"Payment required. Carries an x402 PAYMENT-REQUIRED header and one WWW-Authenticate: Payment challenge per MPP method. Pay, then retry the same request."},"422":{"description":"The body fails validation (malformed, or a state that is not served), or names something with no current data to sell: refused before the 402, nothing charged. Or, after payment, a place could not be resolved, or has no airport in range."},"503":{"description":"Before the 402, on drive/matrix/airport: routing is known to be down or out of quota; on forecast: its data is busy or unreachable. Retry after the Retry-After header's seconds, nothing charged. After payment: routing/geocoding backend unavailable, data age unknown, or data that stopped being servable after the price check. Not charged on x402; MPP payments are recorded as failed for refund."}},"x-payment-info":{"offers":[{"method":"x402","intent":"charge","amount":"20000","currency":"USDC","description":"Up to 5 airports with scheduled service nearest a named place, ranked by real road drive time, with IATA codes. USDC on Base (eip155:8453)."},{"method":"tempo","intent":"charge","amount":"20000","currency":"USDC","description":"Up to 5 airports with scheduled service nearest a named place, ranked by real road drive time, with IATA codes. USDC on Tempo."}]}}}},"components":{"schemas":{"AddressOut":{"properties":{"line1":{"type":"string","title":"Line1"},"line2":{"type":"string","title":"Line2"},"city":{"type":"string","title":"City"},"state":{"type":"string","title":"State"},"zip":{"type":"string","title":"Zip"},"country":{"type":"string","title":"Country"}},"type":"object","required":["line1","line2","city","state","zip","country"],"title":"AddressOut"},"AirportOut":{"properties":{"iata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Iata","description":"null for the few scheduled airports without one"},"icao":{"type":"string","title":"Icao","description":"OurAirports ident: the ICAO code where one exists"},"name":{"type":"string","title":"Name"},"municipality":{"type":"string","title":"Municipality"},"type":{"type":"string","title":"Type","description":"OurAirports type: large_airport, medium_airport, ..."},"lat":{"type":"number","title":"Lat"},"lon":{"type":"number","title":"Lon"},"distance_m":{"type":"integer","title":"Distance M"},"duration_s":{"type":"integer","title":"Duration S"},"miles":{"type":"number","title":"Miles"},"minutes":{"type":"number","title":"Minutes"}},"type":"object","required":["iata","icao","name","municipality","type","lat","lon","distance_m","duration_s","miles","minutes"],"title":"AirportOut"},"CandidateOut":{"properties":{"entity_number":{"type":"string","title":"Entity Number"},"name":{"type":"string","title":"Name"},"status":{"type":"string","title":"Status"}},"type":"object","required":["entity_number","name","status"],"title":"CandidateOut"},"DriveRequest":{"properties":{"origin":{"type":"string","maxLength":200,"minLength":1,"title":"Origin","examples":["MCO"]},"destination":{"type":"string","maxLength":200,"minLength":1,"title":"Destination","examples":["Hilton Downtown Orlando"]},"near":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Near","description":"Disambiguation hint, e.g. 'Orlando, FL'"}},"type":"object","required":["origin","destination"],"title":"DriveRequest"},"DriveResponse":{"properties":{"origin":{"$ref":"#/components/schemas/PlaceOut"},"destination":{"$ref":"#/components/schemas/PlaceOut"},"distance_m":{"type":"integer","title":"Distance M"},"duration_s":{"type":"integer","title":"Duration S"},"miles":{"type":"number","title":"Miles"},"minutes":{"type":"number","title":"Minutes"},"estimated":{"type":"boolean","title":"Estimated","description":"true = straight-line fallback, not a road route"},"attribution":{"type":"string","title":"Attribution"}},"type":"object","required":["origin","destination","distance_m","duration_s","miles","minutes","estimated","attribution"],"title":"DriveResponse"},"EntityLookupRequest":{"properties":{"state":{"type":"string","enum":["FL","OR"],"maxLength":2,"minLength":2,"title":"State","examples":["FL"]},"entity_number":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Entity Number","examples":["P12345"]},"name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Name"}},"type":"object","required":["state"],"title":"EntityLookupRequest","description":"A two-letter state and either entity_number or an exact entity name."},"EntityLookupResponse":{"properties":{"state":{"type":"string","title":"State"},"query":{"additionalProperties":{"type":"string"},"type":"object","title":"Query"},"entities":{"items":{"$ref":"#/components/schemas/tollbooth__tools__entity__EntityOut"},"type":"array","title":"Entities"},"truncated":{"type":"boolean","title":"Truncated","description":"More than 10 entities matched."},"data_as_of":{"additionalProperties":{"type":"string"},"type":"object","title":"Data As Of"},"source":{"type":"string","title":"Source"},"coverage":{"type":"string","title":"Coverage"}},"type":"object","required":["state","query","entities","truncated","data_as_of","source","coverage"],"title":"EntityLookupResponse"},"LicenseOut":{"properties":{"license_number":{"type":"string","title":"License Number"},"license_type":{"type":"string","title":"License Type"},"licensee_name":{"type":"string","title":"Licensee Name"},"dba_name":{"type":"string","title":"Dba Name"},"status":{"type":"string","title":"Status"},"active":{"type":"boolean","title":"Active"},"original_licensure_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Original Licensure Date"},"expiration_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Expiration Date"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"zip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zip"},"entity":{"anyOf":[{"$ref":"#/components/schemas/tollbooth__tools__license__EntityOut"},{"type":"null"}]},"candidates":{"items":{"$ref":"#/components/schemas/CandidateOut"},"type":"array","title":"Candidates"},"details":{"additionalProperties":{"type":"string"},"type":"object","title":"Details"},"name_match":{"anyOf":[{"type":"string","const":"initials_ignored"},{"type":"null"}],"title":"Name Match","description":"initials_ignored: the name matched only with single-letter initials dropped from both names, tried when nothing matched exactly. A candidate, not a confirmation. Absent on an exact or number match."}},"type":"object","required":["license_number","license_type","licensee_name","dba_name","status","active","original_licensure_date","expiration_date","city","state","zip","entity","candidates","details"],"title":"LicenseOut"},"LicenseSearchRequest":{"properties":{"state":{"type":"string","enum":["FL","OR","TX","VA","WA"],"maxLength":2,"minLength":2,"title":"State","examples":["FL"]},"trade":{"type":"string","maxLength":40,"title":"Trade","description":"A trade slug. Each state offers its own list: GET /v1/license/trades (free)","examples":["roofing"]},"city":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"City","description":"Exact match after normalizing case and spaces, on addresses in the requested state. Exactly one of city, zip or county.","examples":["Tampa"]},"zip":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Zip","description":"5-digit ZIP (ZIP+4 accepted; the first 5 digits match). Exactly one of city, zip or county.","examples":["33602"]},"county":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"County","description":"Offered only where a state lists it. Exactly one of city, zip or county.","examples":["Harris"]},"active_only":{"type":"boolean","title":"Active Only","default":true},"limit":{"type":"integer","maximum":25.0,"minimum":1.0,"title":"Limit","default":25}},"type":"object","required":["state","trade"],"title":"LicenseSearchRequest","description":"A two-letter state, a trade from that state's list, and a city, 5-digit zip, or county."},"LicenseSearchResponse":{"properties":{"state":{"type":"string","title":"State"},"query":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"boolean"},{"type":"integer"}]},"type":"object","title":"Query"},"results":{"items":{"$ref":"#/components/schemas/SearchResultOut"},"type":"array","title":"Results"},"total_matches":{"type":"integer","title":"Total Matches","description":"Matches before the limit."},"truncated":{"type":"boolean","title":"Truncated","description":"total_matches is more than the results returned."},"data_as_of":{"additionalProperties":{"type":"string"},"type":"object","title":"Data As Of"},"source":{"type":"string","title":"Source"},"coverage":{"type":"string","title":"Coverage"}},"type":"object","required":["state","query","results","total_matches","truncated","data_as_of","source","coverage"],"title":"LicenseSearchResponse"},"LicenseTradesResponse":{"properties":{"states":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"States","description":"Each served state's trades for POST /v1/license/search, sorted."}},"type":"object","required":["states"],"title":"LicenseTradesResponse"},"LicenseVerifyRequest":{"properties":{"state":{"type":"string","maxLength":2,"minLength":2,"pattern":"^[A-Za-z]{2}$","title":"State","examples":["FL"]},"license_number":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"License Number"},"name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Name"}},"type":"object","required":["state"],"title":"LicenseVerifyRequest","description":"A two-letter state and either license_number or name."},"LicenseVerifyResponse":{"properties":{"state":{"type":"string","title":"State"},"query":{"additionalProperties":{"type":"string"},"type":"object","title":"Query"},"licenses":{"items":{"$ref":"#/components/schemas/LicenseOut"},"type":"array","title":"Licenses"},"data_as_of":{"additionalProperties":{"type":"string"},"type":"object","title":"Data As Of"},"attribution":{"type":"string","title":"Attribution"}},"type":"object","required":["state","query","licenses","data_as_of","attribution"],"title":"LicenseVerifyResponse"},"MatrixCell":{"properties":{"distance_m":{"type":"integer","title":"Distance M"},"duration_s":{"type":"integer","title":"Duration S"},"estimated":{"type":"boolean","title":"Estimated"}},"type":"object","required":["distance_m","duration_s","estimated"],"title":"MatrixCell"},"MatrixRequest":{"properties":{"origins":{"items":{"type":"string"},"type":"array","maxItems":100,"minItems":1,"title":"Origins"},"destinations":{"items":{"type":"string"},"type":"array","maxItems":100,"minItems":1,"title":"Destinations"},"near":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Near"}},"type":"object","required":["origins","destinations"],"title":"MatrixRequest"},"MatrixResponse":{"properties":{"origins":{"items":{"$ref":"#/components/schemas/PlaceOut"},"type":"array","title":"Origins"},"destinations":{"items":{"$ref":"#/components/schemas/PlaceOut"},"type":"array","title":"Destinations"},"rows":{"items":{"items":{"$ref":"#/components/schemas/MatrixCell"},"type":"array"},"type":"array","title":"Rows"},"attribution":{"type":"string","title":"Attribution"}},"type":"object","required":["origins","destinations","rows","attribution"],"title":"MatrixResponse"},"NearestAirportRequest":{"properties":{"location":{"type":"string","maxLength":200,"minLength":1,"pattern":"\\S","title":"Location","examples":["Lakeland, FL"]},"near":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Near","description":"Disambiguation hint, e.g. 'Florida'"},"k":{"type":"integer","maximum":5.0,"minimum":1.0,"title":"K","description":"How many airports","default":3},"airport_size":{"type":"string","enum":["scheduled","large"],"title":"Airport Size","description":"scheduled: any airport with scheduled passenger service. large: OurAirports type large_airport with scheduled service.","default":"scheduled"}},"type":"object","required":["location"],"title":"NearestAirportRequest","description":"A place to search from, how many airports to return, and which airports count."},"NearestAirportResponse":{"properties":{"origin":{"$ref":"#/components/schemas/PlaceOut"},"airports":{"items":{"$ref":"#/components/schemas/AirportOut"},"type":"array","title":"Airports","description":"Nearest first by road drive time"},"attribution":{"type":"string","title":"Attribution"},"airports_data_as_of":{"type":"string","title":"Airports Data As Of","description":"When our OurAirports file was fetched (UTC)"}},"type":"object","required":["origin","airports","attribution","airports_data_as_of"],"title":"NearestAirportResponse"},"OfficerOut":{"properties":{"title":{"type":"string","title":"Title","description":"As the state gives it, e.g. FL 'P', 'MGR', 'AMBR'."},"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type","description":"'person' or 'entity'; '' when the state does not say."}},"type":"object","required":["title","name","type"],"title":"OfficerOut"},"PlaceOut":{"properties":{"name":{"type":"string","title":"Name"},"lat":{"type":"number","title":"Lat"},"lon":{"type":"number","title":"Lon"},"kind":{"type":"string","title":"Kind"},"source":{"type":"string","title":"Source"},"confidence":{"type":"number","title":"Confidence"}},"type":"object","required":["name","lat","lon","kind","source","confidence"],"title":"PlaceOut"},"RegisteredAgentOut":{"properties":{"name":{"type":"string","title":"Name"},"address":{"$ref":"#/components/schemas/AddressOut"}},"type":"object","required":["name","address"],"title":"RegisteredAgentOut"},"SearchResultOut":{"properties":{"license_number":{"type":"string","title":"License Number"},"name":{"type":"string","title":"Name"},"dba_name":{"type":"string","title":"Dba Name"},"license_type":{"type":"string","title":"License Type"},"class_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Code","description":"FL: the license's class when the trade names a class inside its license type (e.g. SCC glazing is class GLZ); null when the whole type is the trade. WA: the specialty that matched the trade (e.g. CC roofing is CD). VA: the license's first specialty in the trade (e.g. hvac is HVA or REF). Null for OR and TX."},"trade":{"type":"string","title":"Trade"},"status":{"type":"string","title":"Status","description":"As the state gives it: FL primary status 'C'/'P'/'S'; OR, TX and VA 'active'/'expired'; WA the L&I status, e.g. 'ACTIVE'."},"active":{"type":"boolean","title":"Active"},"expires":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Expires"},"city":{"type":"string","title":"City"},"zip":{"type":"string","title":"Zip"},"state":{"type":"string","title":"State","description":"The license holder's address state."}},"type":"object","required":["license_number","name","dba_name","license_type","trade","status","active","expires","city","zip","state"],"title":"SearchResultOut"},"tollbooth__tools__entity__EntityOut":{"properties":{"entity_number":{"type":"string","title":"Entity Number"},"name":{"type":"string","title":"Name"},"status":{"type":"string","title":"Status","description":"As the state gives it: FL 'A'/'I', OR 'active'."},"active":{"type":"boolean","title":"Active"},"entity_type":{"type":"string","title":"Entity Type"},"formed":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Formed"},"principal_address":{"$ref":"#/components/schemas/AddressOut"},"registered_agent":{"$ref":"#/components/schemas/RegisteredAgentOut"},"officers":{"items":{"$ref":"#/components/schemas/OfficerOut"},"type":"array","title":"Officers"},"details":{"additionalProperties":{"type":"string"},"type":"object","title":"Details"}},"type":"object","required":["entity_number","name","status","active","entity_type","formed","principal_address","registered_agent","officers","details"],"title":"EntityOut"},"tollbooth__tools__license__EntityOut":{"properties":{"band":{"type":"string","title":"Band"},"entity_number":{"type":"string","title":"Entity Number"},"name":{"type":"string","title":"Name"},"status":{"type":"string","title":"Status"},"entity_type":{"type":"string","title":"Entity Type"},"file_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"File Date"},"last_transaction_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Last Transaction Date"},"principal_address":{"additionalProperties":{"type":"string"},"type":"object","title":"Principal Address"},"registered_agent":{"type":"string","title":"Registered Agent"}},"type":"object","required":["band","entity_number","name","status","entity_type","file_date","last_transaction_date","principal_address","registered_agent"],"title":"EntityOut"}}},"x-service-info":{"categories":["geo","routing","travel","compliance","licensing","business"],"docs":{"homepage":"/","apiReference":"/openapi.json","llms":"/llms.txt"}}}