# Local — 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 Swiss businesses and retrieve their contact details, addresses, phone numbers, opening hours, and website URLs directly from the local.ch directory. Look up companies by name, category, or location, and perform reverse phone number lookups.

**Category:** Business Directories | **Website:** [local.ch/](https://local.ch/) | **Docs:** [parse.bot/marketplace/54de2eb4-bd4b-4677-865b-218d98e2d57f/local-ch-api](https://parse.bot/marketplace/54de2eb4-bd4b-4677-865b-218d98e2d57f/local-ch-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/local/`
**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 business detail

Get detailed information for a specific business listing using its local.ch URL. Returns available contact details, opening hours, ratings, images, and description. Not all fields are populated for every business — fields may be null or empty depending on what the business has listed. The url parameter is obtained from the detail_url field in search_businesses results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Full local.ch business detail URL (e.g. 'https://www.local.ch/en/d/zurich/8001/restaurant/george-bar-grill-E2FE14_t_A8FFW9_xUkXBQ'). Obtained from the detail_url field in search_businesses results. |

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

### Phone number lookup

Lookup business or person details by phone number on local.ch. Returns matching directory entries. Coverage depends on what is listed in the directory — not all phone numbers will return results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `phone_number` | string | Yes | Swiss phone number to look up. Accepts formats with or without spaces (e.g. '044 250 50 50' or '0442505050'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/local/phone-number-lookup \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"phone_number":"<string>"}'
```

### Search businesses

Search for businesses in the local.ch directory by keyword and location. Returns a paginated list of business listings with basic contact information. Pagination is page-number based. Each result includes a detail_url for fetching full business information via get_business_detail.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination |
| `what` | string | Yes | Search keyword for business type or name (e.g. 'garage', 'restaurant', 'bank') |
| `where` | string | Yes | Location to search in, typically a Swiss city name (e.g. 'Zurich', 'Geneva', 'Basel') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/local/search-businesses \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","what":"<string>","where":"<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.