BBB API: Get business profile
Finds the best-matching Better Business Bureau profile for a business name and city/state or ZIP code, with its BBB rating, accreditation, customer reviews, complaint counts and alerts. BBB ratings are not customer review scores.
Unofficial. Not affiliated with or endorsed by BBB.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Business, required
business Business name, for example Comcast.
Comcast
- Location, required
location City and state or ZIP code, for example Philadelphia, PA or 19103.
19103
Input as JSON
{ "business": "Comcast", "location": "19103"}Output
{ "phone": "(800) 266-2278", "address": "1701 John F Kennedy Blvd, Philadelphia, PA, 19103-2838", "website": "https://www.xfinity.com/national/" , "bbb_alerts": "Important information Government Actions : Government Action: BBB reports on known government actions involving business’ marketplace conduct: Minnesota v. Comcast The following describes a pending government action that has been formally brought by a government agency but has not yet been resolved.…", "bbb_rating": "A+", "profile_link": "https://www.bbb.org/us/pa/philadelphia/profile/internet-providers/comcast-corporation-0241-80003221" , "business_name": "Comcast Corporation", "bbb_accredited": false, "rating_meaning": "A+ is BBB’s highest letter grade. It reflects BBB’s opinion of the business’s interactions with customers, not its customer review score.", "business_category": "Internet Providers", "years_in_business": 63, "accredited_since_year": null, "customer_review_count": 2956, "complaints_last_3_years": 26591, "average_customer_review_rating": 1.06, "complaints_closed_last_12_months": 8151}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"bbb.org/get_business_profile","input":{"business":"Comcast","location":"19103"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "bbb.org/get_business_profile" , "input": { "business": "Comcast", "location": "19103" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "bbb.org/get_business_profile" , "input": { "business": "Comcast", "location": "19103" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run bbb.org/get_business_profile# with {"business":"Comcast","location":"19103"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "business", "location" ], "properties": { "business": { "type": "string", "description": "Business name, for example Comcast." }, "location": { "type": "string", "description": "City and state or ZIP code, for example Philadelphia, PA or 19103." } }}Output schema
{ "type": "object", "required": [ "business_name", "bbb_rating", "rating_meaning", "bbb_accredited", "accredited_since_year", "years_in_business", "business_category", "address", "phone", "website", "average_customer_review_rating", "customer_review_count", "complaints_last_3_years", "complaints_closed_last_12_months", "bbb_alerts", "profile_link" ], "properties": { "phone": { "type": [ "string", "null" ] }, "address": { "type": [ "string", "null" ] }, "website": { "type": [ "string", "null" ] }, "bbb_alerts": { "type": [ "string", "null" ] }, "bbb_rating": { "type": [ "string", "null" ] }, "profile_link": { "type": "string" }, "business_name": { "type": [ "string", "null" ] }, "bbb_accredited": { "type": "boolean" }, "rating_meaning": { "type": [ "string", "null" ] }, "business_category": { "type": [ "string", "null" ] }, "years_in_business": { "type": [ "integer", "null" ] }, "accredited_since_year": { "type": [ "integer", "null" ] }, "customer_review_count": { "type": [ "integer", "null" ] }, "complaints_last_3_years": { "type": [ "integer", "null" ] }, "average_customer_review_rating": { "type": [ "number", "null" ] }, "complaints_closed_last_12_months": { "type": [ "integer", "null" ] } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
bbb.org/get_business_profile- Returns
- business name, BBB rating and meaning, accreditation, years in business, category, address, phone, website, review rating and count, complaint counts, alerts, profile link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method bbb.org/get_business_profile with the inputs above.
Ask your agent
- What's the BBB rating for Roto-Rooter in Cincinnati, OH, and are they accredited?
- Look up Sunrise Roofing & Siding near ZIP 75201 on bbb.org — I want complaint counts and any alerts before I hire them.
- Is Apex Auto Repair in Tucson, Arizona a legit business? Check their Better Business Bureau letter grade, years in business, and customer review score.
- Pull the bbb.org profile for Comfort Air HVAC in 30308: rating, phone, website, and how many complaints were closed in the last 3 years.
- Before signing with Evergreen Moving Co. in Portland, OR, find their Better Business Bureau accreditation status, complaint history, and a link to their profile.
See more
All BBB methodsFinds a business near a city and state or ZIP code on the Better Business Bureau and reads its published complaints, newest first, with the three-year complaint total. The three-year total may exceed the publicly displayed complaint details.
bbb.org/get_business_complaintsFinds local US businesses on Yellow Pages by name or category and a city, state or ZIP. Returns listings with phone numbers in Yellow Pages order, excluding labeled ads; contact details, ratings and hours appear when listed.
yellowpages.com/search_businessesGets a company's Trustpilot rating summary from its name or website: TrustScore, rating label, total reviews, star breakdown, categories, claimed status, reply statistics and location when shown.
trustpilot.com/get_company_ratingFinds Australian businesses on ABN Lookup by name or ABN. Returns ABN status, GST registration, business and trading names, and location.
abr.business.gov.au/search_businessesFinds companies on Trustpilot by name or what they do, with TrustScore, review count, categories, location, logo and links. A preferred country moves companies listed in that country to the front.
trustpilot.com/search_companiesGets Kelley Blue Book's expert and consumer ratings, trim prices with the KBB Fair Purchase Price, fuel economy, pros, cons and the expert review's opening verdict for a car model by year, make and model. Some details are unavailable for certain model years.
kbb.com/get_car_reviewLooks up a public Google Maps place by name and location and returns its profile: address, rating, hours, phone, website and photos.
google.com/get_placeFinds food businesses by name and town, street or postcode and returns their official food hygiene rating, inspection date and score descriptions. Scottish ratings usually have no component scores.
ratings.food.gov.uk/get_hygiene_rating