IBBA APIibba.org ↗
Access 3,000+ IBBA-listed business broker profiles. Search by location, name, or specialty. Returns contact details, CBI certification status, and more.
What is the IBBA API?
The IBBA API provides access to roughly 3,000 business broker profiles from the International Business Brokers Association directory across 6 endpoints. You can search brokers by geographic location with a configurable mile radius via search_brokers_by_location, look up individuals by name with search_brokers_by_name, or pull the full directory in one call with list_all_brokers. Each profile includes contact details, CBI certification status, specialty areas, and a bio.
curl -X GET 'https://api.parse.bot/scraper/1b57d359-e974-4a39-8989-0e480c8da75d/search_brokers_by_location?radius=25&location=New+York' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace ibba-org-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: IBBA Business Broker Directory SDK — find brokers by location, name, and specialty."""
from parse_apis.ibba_business_broker_directory_api import IBBA, BrokerNotFound
client = IBBA()
# List available specialty areas to find the right filter slug.
for specialty in client.specialties.list(limit=5):
print(specialty.name, specialty.slug, f"({specialty.count} brokers)")
# Search for brokers near Los Angeles within 50 miles.
for broker in client.brokerlocations.search(location="Los Angeles, CA", radius=50, limit=3):
print(broker.name, broker.company, f"{broker.distance} mi", broker.city, broker.state)
# Search brokers by name and drill into the first result.
result = client.brokers.search(query="Smith", limit=1).first()
if result:
print(result.first_name, result.last_name, result.company, result.email)
# Typed error handling: look up a broker that doesn't exist.
try:
missing = client.brokers.get(query="Nonexistent Person ZZZZZ")
print(missing.first_name)
except BrokerNotFound as exc:
print(f"Broker not found: {exc.query}")
# Get geographic coverage — US states and Canadian provinces.
geo = client.geographies.get()
print(f"US states: {len(geo.us_states)}, Canadian provinces: {len(geo.canadian_provinces)}")
print("exercised: specialties.list / brokerlocations.search / brokers.search / brokers.get / geographies.get")
Search for business brokers by location with a configurable radius. Geocodes the location string via Mapbox, then queries the IBBA broker geo endpoint. Returns brokers within the specified area with contact details, distance from the search point, CBI certification status, and specialty areas.
| Param | Type | Description |
|---|---|---|
| cbi | string | Filter by CBI certification. Pass '1' for certified only, empty string for all. |
| radius | integer | Search radius in miles |
| locationrequired | string | City, state, or address to search near (e.g. 'New York', 'Los Angeles, CA', '90210') |
| specialties | string | Comma-separated specialty area slugs to filter by (e.g. 'food-beverage,accommodations'). Valid slugs are returned by get_specialty_areas endpoint. |
{
"type": "object",
"fields": {
"brokers": "array of broker location objects with name, company, city, state, distance, url, cbi, zip, longitude, latitude, specialties"
},
"sample": {
"data": {
"brokers": [
{
"cbi": "1",
"url": "https://www.ibba.org/broker-profile/new-york/new-york/samuel-curcio/",
"zip": "10013",
"city": "New York",
"name": "Samuel Curcio",
"state": "NY",
"company": "Transworld Business Advisors Of New York",
"distance": "0.48",
"latitude": "40.718935",
"longitude": "-74.010125",
"specialties": []
}
]
},
"status": "success"
}
}About the IBBA API
What the API Covers
The IBBA directory API surfaces contact and professional data for business brokers listed on ibba.org. The list_all_brokers endpoint returns the full roster — approximately 3,000 profiles — each with first_name, last_name, company, phone, email, city, state, bio, specialty_areas, and a permalink to the broker's profile page. The get_broker_profile endpoint accepts a full name (e.g. 'Jane Smith') and returns the best-matching single profile with the same field set, where multi-value fields like bio, email, and specialty_areas are returned as arrays.
Location and Specialty Filtering
search_brokers_by_location accepts a location string (city, state, or address), a radius in miles, an optional cbi flag to restrict results to Certified Business Intermediary brokers only, and a specialties parameter that takes comma-separated slugs such as 'food-beverage,accommodations'. Results come back as a GeoJSON FeatureCollection — each Feature's properties contain name, company, city, state, url, cbi, and specialties. To discover valid specialty slugs, call get_specialty_areas, which returns each specialty's id, human-readable name, slug, and broker count.
Reference Endpoints
Two reference endpoints help build filtered queries without guesswork. get_specialty_areas lists all industry categories used in the directory with their counts, so you know which slugs are valid before passing them to search_brokers_by_location. get_geographic_regions returns separate arrays for US states (us_states) and Canadian provinces (canadian_provinces), each entry including id, name, slug, and count of brokers in that region. These are useful for building dropdown filters or validating input before querying.
The IBBA API is a managed, monitored endpoint for ibba.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ibba.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official ibba.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Find CBI-certified brokers within 50 miles of a target acquisition city using
search_brokers_by_locationwithcbi=1 - Build a broker-matching tool that filters by specialty area slugs like
food-beverageormanufacturing - Look up a specific broker's phone, email, and bio by full name using
get_broker_profile - Populate a CRM with the full IBBA broker directory via a single
list_all_brokerscall - Display a broker count by US state or Canadian province using
get_geographic_regions - Power a geographic broker map using the GeoJSON FeatureCollection output from
search_brokers_by_location - Validate available specialty filter options before presenting them to end users with
get_specialty_areas
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does IBBA offer an official developer API?+
What does `search_brokers_by_location` return and how is it structured differently from `search_brokers_by_name`?+
search_brokers_by_location returns a GeoJSON FeatureCollection, so each broker is a Feature object with properties like name, company, city, state, url, cbi, and specialties. search_brokers_by_name returns a flat posts array where each broker object includes richer contact fields: phone, email, bio, permalink, and specialty_areas. Use the location endpoint when you need map-ready data; use the name-search endpoint when you need full contact details.Does the API include brokers outside the US and Canada?+
get_geographic_regions endpoint covers US states and Canadian provinces. The directory may include some international members, but geographic filtering and region counts are scoped to North America. You can fork this API on Parse and revise it to add filtering or region mapping for other countries if broader coverage is needed.Can I filter `list_all_brokers` by specialty or CBI status?+
list_all_brokers endpoint takes no input parameters and returns all brokers without server-side filtering. CBI and specialty filtering are only available on search_brokers_by_location. You can fork this API on Parse and revise it to add filter parameters to the full-directory endpoint if that behavior is required.