# Los Angeles — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://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 building permits, inspection records, and property details for Los Angeles addresses to access permit histories, parcel information, code enforcement records, and occupancy certificates. Track retrofit programs and get comprehensive permit summaries to research property compliance and construction activity in LA.

**Category:** Government & Public Data | **Website:** [losangeles.gov/](https://losangeles.gov/) | **Docs:** [parse.bot/marketplace/edac10e1-3865-43cf-a169-c44f468813b4/losangeles-gov-api](https://parse.bot/marketplace/edac10e1-3865-43cf-a169-c44f468813b4/losangeles-gov-api)

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

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/credits/los-angeles/`
**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 certificate of occupancy

Get Certificate of Occupancy records for an address. Returns an empty array for addresses with no CoO records. Check get_property_permit_summary to see the CoO count before calling this endpoint.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `address_id` | string | Yes | Numeric address ID obtained from search_permits_by_address results (e.g., '630413') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/los-angeles/get-certificate-of-occupancy \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"address_id":"<string>"}'
```

### Get code enforcement info

Get code enforcement cases for an address. Returns all enforcement cases with dates, case IDs, problem descriptions, and status. Check get_property_permit_summary first to confirm cases exist for the address.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `address_id` | string | Yes | Numeric address ID obtained from search_permits_by_address results (e.g., '630501') |

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

### Get parcel profile

Get full parcel profile details including zoning, lot info, and planning data. Returns a variable set of fields depending on what data is available for the parcel. Common fields include Tract, Lot, Zone(s), Council District, and job_addresses. Some addresses may return fewer fields than others.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `address_id` | string | Yes | Numeric address ID obtained from search_permits_by_address results (e.g., '630413') |

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

### Get permit details

Get detailed information and inspection history for a specific permit. Uses the three-part permit ID (id1, id2, id3) from get_permit_list_by_parcel. Returns structured text sections including certificate information, status history, contact info, inspector details, and inspection history.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id1` | string | Yes | First part of permit ID from get_permit_list_by_parcel results (e.g., '06041') |
| `id2` | string | Yes | Second part of permit ID from get_permit_list_by_parcel results (e.g., '20000') |
| `id3` | string | Yes | Third part of permit ID from get_permit_list_by_parcel results (e.g., '20567') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/los-angeles/get-permit-details \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"id1":"<string>","id2":"<string>","id3":"<string>"}'
```

### Get permit list by parcel

Get full list of permits for a parcel address. Returns all permits with three-part IDs that can be used for detailed lookups via get_permit_details. Parcels with very large numbers of permits (200+) may time out on the upstream server. Check get_property_permit_summary first to see the permit count.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `address_id` | string | Yes | Numeric address ID obtained from search_permits_by_address results (e.g., '630501') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/los-angeles/get-permit-list-by-parcel \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"address_id":"<string>"}'
```

### Get property permit summary

Get summary counts and available data sections for a specific address ID. Returns the address, available data sections (parcel profile, permits, code enforcement, certificate of occupancy, retrofit program), and record counts for each section. Use to determine which detail endpoints will return data before calling them.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `address_id` | string | Yes | Numeric address ID obtained from search_permits_by_address results (e.g., '630413') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/los-angeles/get-property-permit-summary \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"address_id":"<string>"}'
```

### Get retrofit program info

Get retrofit program compliance information including soft story and non-ductile concrete status. Returns text strings with compliance status for each program.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `address_id` | string | Yes | Numeric address ID obtained from search_permits_by_address results (e.g., '630413') |

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

### Search permits by address

Search for building permits by street address. Returns matching addresses with numeric IDs for further lookups. Multiple matches may be returned if the street name matches addresses in different directions (N, S, E, W). A single exact match redirects directly and returns as 'Direct Match'.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `street_name` | string | Yes | Street name without prefixes or suffixes, uppercase preferred (e.g., 'MAIN', 'SPRING') |
| `street_number` | string | Yes | Street number (e.g., '200'). Do not use fractions. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/los-angeles/search-permits-by-address \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"street_name":"<string>","street_number":"<string>"}'
```

## Next steps

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