angieslist.com APIangieslist.com ↗
Search Angi service professionals by category and location. Access company profiles, reviews, contact info, ratings, and project photos via 5 endpoints.
curl -X GET 'https://api.parse.bot/scraper/d528b4c0-1730-4a6e-b30b-3f1d573c8cb2/search_pros?limit=5&query=plumbing&location=10001' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for service professionals by category and location (zip code). Returns a paginated list of companies with name, rating, review count, grade, and profile URL slug.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of results to return. |
| query | string | Search keyword used to match a category ID if category_id is not provided. Supported keywords include: plumbing, electrical, hvac, landscaping, roofing, painting, cleaning, remodeling, handyperson, concrete, windows. |
| offset | integer | Offset for pagination. |
| location | string | US zip code for the search area. |
| category_id | string | Category ID for the service type. If not provided, inferred from query. Falls back to '1271' (plumbing) if neither query nor category_id resolves to a known category. |
{
"type": "object",
"fields": {
"category": "object with id and name of the matched category",
"totalResults": "integer total number of matching results",
"serviceProviders": "array of service provider objects with serviceProviderId, name, description, grade, starRating, reviewCount, slug, and businessHighlights",
"searchLocationInfo": "object with postalCode, cityName, and stateAbbreviation"
},
"sample": {
"data": {
"category": {
"id": 107,
"name": "Plumbing"
},
"totalResults": 29,
"serviceProviders": [
{
"name": "DGL Construction & Renovation",
"slug": "/companylist/us/va/alexandria/dgl-construction-and-renovation-reviews-8680550.htm",
"grade": "A",
"starRating": 4.91,
"reviewCount": 120,
"serviceProviderId": 20730183,
"businessHighlights": [
{
"name": "EmergencyServices",
"description": "Emergency Services Offered"
}
]
}
],
"searchLocationInfo": {
"cityName": "Ashburn",
"postalCode": "20147",
"stateAbbreviation": "VA"
}
},
"status": "success"
}
}About the angieslist.com API
The Angi API gives developers access to 5 endpoints covering home service professional data from angieslist.com. Use search_pros to query contractors by category and US zip code, returning names, grades, star ratings, and review counts. Companion endpoints retrieve full company profiles, customer reviews, contact details, and project photo albums for any result returned by a search.
Search and Discovery
The search_pros endpoint accepts a location (US zip code), an optional category_id, or a query keyword that maps to a category. It returns a serviceProviders array where each entry includes serviceProviderId, name, grade, starRating, reviewCount, description, slug, and businessHighlights. The response also contains a category object with the matched category id and name, a totalResults count, and a searchLocationInfo block with postalCode, cityName, and stateAbbreviation. Pagination is controlled through limit and offset. If neither query nor category_id resolves, the endpoint falls back to category ID 1271 (plumbing).
Company Profiles and Reviews
get_company_profile takes a profile_url slug from search_pros results and returns the full profile, including a profile object containing LocalBusiness structured data with name, address, image, an aggregateRating, and a review array. It also surfaces a services list of offered service names, a highlights array of business differentiators, and a contact_sidebar object with address details. get_company_reviews focuses specifically on review data, returning up to 25 recent reviews with reviewBody, reviewRating, datePublished, and author, alongside aggregate rating_value and review_count. get_company_contact_info returns the company name, structured address fields (addressLocality, addressRegion, postalCode, addressCountry), and telephone when available.
Project Photos
get_company_photos retrieves photo albums associated with a company profile. The albums array includes album_id, album_name, image_count, project_year, description, min_cost, and max_cost. The photos array provides individual images with urlSmallImg, urlLargeSquare, title, description, and the parent album_id and album_name. Both arrays return empty when a company has not uploaded photos. The sp_id field identifies the provider, or returns null if not found.
- Build a contractor comparison tool using
starRating,grade, andreviewCountfromsearch_prosresults across multiple zip codes. - Populate a CRM with verified business contact data using
get_company_contact_infoto retrievetelephoneand structuredaddressfields. - Aggregate customer sentiment by pulling
reviewBodyandreviewRatingfields fromget_company_reviewsacross multiple companies in a category. - Generate local service provider directories by combining
search_proscategory searches with profile data fromget_company_profile. - Analyze project cost ranges in a service category using
min_costandmax_costfields fromget_company_photosalbum data. - Monitor a company's aggregate rating and review count over time using
rating_valueandreview_countfromget_company_reviews. - Enrich lead lists with business highlights and offered services using the
highlightsandservicesfields fromget_company_profile.
| 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 | 250 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 Angi have an official developer API?+
How many reviews does `get_company_reviews` return, and can I page through all of them?+
get_company_reviews returns up to 25 recent reviews per request, pulled from the structured data on the company's profile page. The review_count field in the aggregate rating may show a higher total than the reviews actually returned. The endpoint does not currently support pagination through older reviews beyond those 25.Is telephone number always available in `get_company_contact_info`?+
telephone field returns the number as a string when present in the profile's structured data, but returns null when the company has not listed a phone number. Applications consuming this field should handle the null case.Does the API cover contractor licensing, background check status, or verified badge data?+
Does `search_pros` work for locations outside the United States?+
location parameter accepts US zip codes only, and searchLocationInfo returns US city and state fields. Non-US locations are not supported. The API is scoped to the US market that Angi operates in.