Discover/Angieslist API
live

Angieslist APIangieslist.com

Search Angi service professionals by category and location. Access company profiles, reviews, contact info, ratings, and project photos via 5 endpoints.

Endpoint health
verified 5d ago
get_company_profile
search_pros
get_company_reviews
get_company_contact_info
get_company_photos
5/5 passing latest checkself-healing
Endpoints
5
Updated
22d ago

What is the Angieslist 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.

Try it
Maximum number of results to return.
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 for pagination.
US zip code for the search area.
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.
api.parse.bot/scraper/d528b4c0-1730-4a6e-b30b-3f1d573c8cb2/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/d528b4c0-1730-4a6e-b30b-3f1d573c8cb2/search_pros?limit=5&query=plumbing&offset=0&location=02108&category_id=1271' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 angieslist-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: Angi API — find service professionals, check reviews and photos."""
from parse_apis.angi_angies_list_api import Angi, ServiceCategory, CompanyNotFound

client = Angi()

# Search for plumbers in Boston — limit= caps total items fetched.
for pro in client.serviceproviders.search(query=ServiceCategory.PLUMBING, location="02108", limit=3):
    print(pro.name, pro.star_rating, pro.review_count)

# Drill into the first result's reviews.
pro = client.serviceproviders.search(query=ServiceCategory.ELECTRICAL, location="10001", limit=1).first()
if pro:
    review_result = pro.reviews()
    print(review_result.rating_value, review_result.total_reviews)
    for review in review_result.reviews[:2]:
        print(review.review_body[:80], review.date_published)

# Get contact info for a known provider.
if pro:
    contact = pro.contact_info()
    print(contact.name, contact.address.locality, contact.address.region)

# Get photos for a provider — may be empty.
if pro:
    photo_result = pro.photos()
    print(photo_result.album_count, photo_result.total_photos)
    for album in photo_result.albums[:2]:
        print(album.album_name, album.image_count)

# Typed error handling: catch CompanyNotFound for a deleted profile.
try:
    gone = client.serviceprovider("/companylist/us/tx/austin/fake-company-reviews-0000000.htm")
    gone.reviews()
except CompanyNotFound as exc:
    print(f"Company not found: {exc.profile_url}")

print("exercised: search / reviews / contact_info / photos / CompanyNotFound")
All endpoints · 5 totalmissing one? ·

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. Pagination is offset-based. Each result carries a slug suitable for the profile, reviews, contact, and photos endpoints.

Input
ParamTypeDescription
limitintegerMaximum number of results to return.
querystringSearch 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.
offsetintegerOffset for pagination.
locationstringUS zip code for the search area.
category_idstringCategory 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.
Response
{
  "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": 22,
      "serviceProviders": [
        {
          "name": "Beantown Drains",
          "slug": "/companylist/us/ma/belmont/beantown-drains-reviews-7366722.htm",
          "grade": "A",
          "starRating": 4.89,
          "description": "We accept check, cash and credit cards",
          "reviewCount": 67,
          "serviceProviderId": 7366722,
          "businessHighlights": [
            {
              "name": "EmergencyServices",
              "description": "Emergency Services Offered"
            }
          ]
        }
      ],
      "searchLocationInfo": {
        "cityName": "Boston",
        "postalCode": "02108",
        "stateAbbreviation": "MA"
      }
    },
    "status": "success"
  }
}

About the Angieslist API

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.

Reliability & maintenanceVerified

The Angieslist API is a managed, monitored endpoint for angieslist.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when angieslist.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 angieslist.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.

Last verified
5d ago
Latest check
5/5 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a contractor comparison tool using starRating, grade, and reviewCount from search_pros results across multiple zip codes.
  • Populate a CRM with verified business contact data using get_company_contact_info to retrieve telephone and structured address fields.
  • Aggregate customer sentiment by pulling reviewBody and reviewRating fields from get_company_reviews across multiple companies in a category.
  • Generate local service provider directories by combining search_pros category searches with profile data from get_company_profile.
  • Analyze project cost ranges in a service category using min_cost and max_cost fields from get_company_photos album data.
  • Monitor a company's aggregate rating and review count over time using rating_value and review_count from get_company_reviews.
  • Enrich lead lists with business highlights and offered services using the highlights and services fields from get_company_profile.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Angi have an official developer API?+
Angi does not publish a public developer API or documentation portal. There is no official endpoint set available for third-party developers to register and use.
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`?+
No. The 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?+
Not currently. The API covers search results, profile structured data, customer reviews, contact information, and project photos. Licensing status and background check indicators visible on some Angi profiles are not included in any current response field. You can fork this API on Parse and revise it to add an endpoint that extracts that data from the profile page.
Does `search_pros` work for locations outside the United States?+
The 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.
Page content last updated . Spec covers 5 endpoints from angieslist.com.
Related APIs in B2b DirectorySee all →
homeadvisor.com API
Search and discover home service professionals on HomeAdvisor, browse their reviews and project photos, and explore available service categories to find the right contractor for your needs. Get detailed information about specific pros including their expertise, ratings, and past work samples.
serviceseeking.com.au API
Search and browse job postings and local service providers across Australia on ServiceSeeking.com.au. View detailed business profiles, ratings, pricing, and explore hundreds of service categories — from tradespeople to home services and beyond.
hipages.com.au API
Search for local service businesses on hipages.com.au, view detailed business profiles and customer reviews, and explore available service categories all in one place. Find the right tradesperson or service provider by browsing ratings, contact information, and customer feedback.
houzz.com API
Search for home decor and furniture products, view detailed information and customer reviews, find professional designers and contractors with their ratings, and browse design inspiration photos all in one place. Build your ideal home by accessing comprehensive product catalogs, professional portfolios, and curated design ideas from the Houzz marketplace.
thumbtack.com API
Search and discover local service providers on Thumbtack, view their profiles, photos, and pricing information to compare options. Access detailed cost guides to understand typical service prices for a given location and service type.
homify.com API
Discover and explore professional interior designers and architects by searching their profiles, viewing their completed projects, reading client reviews, and browsing design inspiration photos from Homify's curated collection. Access room design categories, magazine articles, DIY guides, and detailed project information to find inspiration and connect with design professionals.
yelp.com API
Search for businesses on Yelp and access their detailed information including reviews, photos, and ratings all from one interface. Get comprehensive business data like hours, contact details, and customer feedback without visiting Yelp directly.
lawyers.com API
Search and discover lawyers and law firms with detailed profiles, client reviews, and practice area information. Find legal articles and featured firms by specialty to help you locate the right legal representation for your needs.