# Angieslist — Wrapped API

> **You are on:** `https://api.beta.paywithlocus.com/api` | [llms.txt](https://beta.paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search for home service professionals on Angi and access their detailed profiles including reviews, contact information, and photos to find the right contractor for your project. Quickly compare multiple service providers by viewing their ratings, customer feedback, and verified business details all in one place.

**Category:** Business Directories | **Website:** [angieslist.com/](https://angieslist.com/) | **Docs:** [parse.bot/marketplace/d7774f46-4a76-44d6-b0ca-ab1b83c72440/angieslist-com-api](https://parse.bot/marketplace/d7774f46-4a76-44d6-b0ca-ab1b83c72440/angieslist-com-api)

Pay-per-use API proxy for Locus Pro. Each call burns credits from your workspace balance.

## Access

**Base URL:** `https://api.beta.paywithlocus.com/api/wrapped/credits/angieslist/`
**Auth:** `Authorization: Bearer <LOCUS_CREDITS_SECRET_KEY>` (an `lcr_` secret key or a scoped `lcac_` agent credential)
**Required header:** `Idempotency-Key: <fresh UUID per call>`. A retry with the same key replays the stored result without a new charge.
**Response:** the provider response after any endpoint-specific normalization. `X-Locus-Credits-Charged` carries the charge and `X-Locus-Credits-Balance` the remaining balance. Insufficient credits return `402` before the provider is called.
**Pricing:** estimated costs below are USD. Locus debits the credit equivalent at your workspace rate.

Full call contract: https://docs.paywithlocus.com/api-reference/introduction

> Using a Pay With Locus wallet key (`claw_` prefix)? Wallet routes are documented separately: https://docs.paywithlocus.com/wrapped-apis/for-agents

## Endpoints

### Get company contact info

Extract contact information for a specific company from their profile page JSON-LD data. Returns name, address, telephone (if available), and profile URL. The slug is obtained from search_pros results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `profile_url` | string | Yes | Profile URL path from search_pros results[*].slug (e.g. '/companylist/us/ma/belmont/beantown-drains-reviews-7366722.htm'). |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/angieslist/get-company-contact-info \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"profile_url":"<string>"}'
```

### Get company photos

Retrieve project photos for a specific company. Returns album summaries and individual photo objects with image URLs. Returns empty arrays when the company has no photos. The slug is obtained from search_pros results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `profile_url` | string | Yes | Profile URL path from search_pros results[*].slug (e.g. '/companylist/us/ma/belmont/beantown-drains-reviews-7366722.htm'). |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/angieslist/get-company-photos \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"profile_url":"<string>"}'
```

### Get company profile

Get the full profile of a specific company using their profile URL slug. Returns JSON-LD structured data including name, address, reviews, and aggregate rating. The slug is obtained from search_pros results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `profile_url` | string | Yes | Profile URL path from search_pros results[*].slug (e.g. '/companylist/us/ma/belmont/beantown-drains-reviews-7366722.htm'). |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/angieslist/get-company-profile \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"profile_url":"<string>"}'
```

### Get company reviews

Retrieve customer reviews for a specific company from their profile page JSON-LD data. Returns up to 25 recent reviews along with aggregate rating information. The slug is obtained from search_pros results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `profile_url` | string | Yes | Profile URL path from search_pros results[*].slug (e.g. '/companylist/us/ma/belmont/beantown-drains-reviews-7366722.htm'). |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/angieslist/get-company-reviews \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"profile_url":"<string>"}'
```

### Search pros

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.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category_id` | string | No | 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. |
| `limit` | integer | No | Maximum number of results to return. |
| `location` | string | No | US zip code for the search area. |
| `offset` | integer | No | Offset for pagination. |
| `query` | string | No | 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. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/angieslist/search-pros \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category_id":"<string>","limit":"<integer>","location":"<string>","offset":"<integer>","query":"<string>"}'
```

## Next steps

- [All wrapped API providers](https://beta.paywithlocus.com/wapi/index.md): pick another provider.
- [Find and call tools](https://beta.paywithlocus.com/agent/tools.md): price ceilings, async results, and errors.
- [Credits and billing](https://beta.paywithlocus.com/agent/billing.md): what a call costs and how to add credits.
- [Agent docs index](https://beta.paywithlocus.com/agent/index.md): every Locus agent page.