Biggerpocket APIbiggerpocket.com ↗
Search and retrieve investor-friendly real estate professionals from the BiggerPockets directory. Find agents, lenders, contractors, and property managers by location.
What is the Biggerpocket API?
The BiggerPockets Directory API gives developers access to 2 endpoints covering the BiggerPockets business directory of investor-friendly real estate professionals. Use search_directory to query businesses by type and location, returning paginated summaries with ratings and review counts, or use get_business to pull 10+ fields on a specific listing including specialties, markets served, and license information.
curl -X GET 'https://api.parse.bot/scraper/19d6db9e-ab44-4112-a35f-511f16568865/search_directory?page=1&business_type=contractors' \ -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 biggerpocket-com-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: BiggerPockets SDK — bounded, re-runnable; every call capped."""
from parse_apis.biggerpocket_com_api import BiggerPockets, BusinessType, BusinessNotFound
client = BiggerPockets()
# Search the business directory for insurance providers
for biz in client.business_summaries.search(business_type=BusinessType.INSURANCE, limit=3):
print(biz.name, biz.state, biz.rating)
# Drill down into a specific business for full details
summary = client.business_summaries.search(business_type=BusinessType.CONTRACTORS, limit=1).first()
if summary:
try:
full = summary.details()
print(full.name, full.business_type)
print("Markets:", full.markets_served)
print("Specialties:", full.specialties)
except BusinessNotFound as e:
print("not found:", e.business_id)
print("exercised: business_summaries.search, BusinessSummary.details")
Search the BiggerPockets business directory for investor-friendly real estate professionals. Returns paginated listings of businesses filtered by type and location. Each page contains up to 8 results. Results are auto-iterated across pages. When no business_type is specified, returns all types. Some types (agent, lender, property_manager) may return empty results due to dedicated finder flows on the site.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| location | string | Filter by location (city name or state abbreviation, e.g. 'Austin' or 'TX'). |
| business_type | string | Filter by business category. |
{
"type": "object",
"fields": {
"page": "current page number",
"businesses": "array of business summaries with id, name, type, state, rating, reviews_count, and description",
"pagination": "object with from, to, and total counts"
},
"sample": {
"data": {
"page": 1,
"businesses": [
{
"id": "3366",
"name": "Quality Builders",
"state": "IL",
"rating": 4.9,
"description": "Investor friendly contractor with a niche focus on partnering with real estate investors on rehabs/renovations...",
"business_type": "Contractors",
"reviews_count": 63
}
],
"pagination": {
"to": 8,
"from": 1,
"total": 18
}
},
"status": "success"
}
}About the Biggerpocket API
Search the Directory
The search_directory endpoint accepts optional location and business_type parameters to filter listings across the BiggerPockets network. location accepts city names or state abbreviations (e.g. 'Austin' or 'TX'). Each response page returns up to 8 business summaries, each containing an id, name, type, state, rating, reviews_count, and a short description. The pagination object in every response includes from, to, and total counts so you can determine how many records exist across all pages. When no business_type is specified, results span all professional categories including agents, lenders, contractors, and property managers.
Business Detail
The get_business endpoint takes a business_id — the numeric ID returned by search_directory — and returns a full profile record. Fields include about (a long-form description), rating, reviews_count, licenses, specialties (an array of tags), business_type, and markets_served (an array of city/state pairs indicating where the professional operates). This makes it straightforward to determine geographic reach and professional focus before making a decision about a listing.
Coverage and Business Types
The directory covers the categories BiggerPockets maintains for real estate investors: agents, lenders, contractors, property managers, and other service providers. The business_type filter in search_directory maps directly to these categories. Combining location filtering with business type lets you build targeted lookup flows — for example, retrieving all lenders active in a specific state, or all contractors listed in a given city.
The Biggerpocket API is a managed, monitored endpoint for biggerpocket.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when biggerpocket.com 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 biggerpocket.com 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?+
- Build a local vendor finder that surfaces investor-friendly agents and lenders filtered by state abbreviation using the
locationparam - Aggregate directory listings across all pages to compile a dataset of
ratingandreviews_countvalues for market research - Enrich a CRM with full business profiles by calling
get_businessfor eachidreturned from asearch_directoryquery - Identify professionals by their
markets_servedarray to match investors with service providers covering specific cities - Filter
specialtiestags fromget_businessresponses to categorize professionals by niche (e.g. fix-and-flip, multifamily) - Verify license or certification information from the
licensesfield before recommending a contractor or lender - Power a comparison tool that displays side-by-side star ratings and review counts for multiple businesses in a region
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does BiggerPockets have an official developer API?+
What does `search_directory` return, and how granular is location filtering?+
search_directory returns an array of business summaries per page — each with an id, name, type, state, rating, reviews_count, and description — plus a pagination object. The location parameter accepts either a city name (e.g. 'Austin') or a two-letter state abbreviation (e.g. 'TX'). Sub-city filtering such as zip codes or neighborhoods is not a supported parameter.Does the API expose individual reviews or review text from business profiles?+
rating and reviews_count — for each business, but individual review text and reviewer details are not included in either endpoint. You can fork this API on Parse and revise it to add an endpoint that retrieves per-review content from individual business pages.How does pagination work in `search_directory`?+
pagination object in the response includes from, to, and total fields, letting you calculate how many pages exist. Pass the page integer parameter to step through results. The API auto-iterates across pages when needed.Is contact information like phone numbers or email addresses included in business profiles?+
get_business endpoint returns profile data including about, specialties, markets_served, licenses, rating, and reviews_count, but direct contact details such as phone numbers or email addresses are not exposed fields. You can fork this API on Parse and revise it to add contact field extraction if that data is accessible on the profile page.