# Catchtable — 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.

> Access data from app.catchtable.co.kr.

**Category:** Food & Dining | **Website:** [app.catchtable.co.kr/](https://app.catchtable.co.kr/) | **Docs:** [parse.bot/marketplace/568d24c0-e3ae-44d4-87e2-a97e55f53d83/app-catchtable-co-kr-api](https://parse.bot/marketplace/568d24c0-e3ae-44d4-87e2-a97e55f53d83/app-catchtable-co-kr-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-app-catchtable-co-kr-api-568d24c0/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_availability

Check reservation availability for a restaurant. Returns a 14-day calendar of available dates with the party sizes that can be booked on each date, plus the booking page URL. Statuses include AVAILABLE, CLOSED, DAY_OFF, AFTER_DEADLINE, and PHONE_INQUIRY.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `shop_ref` | string | Yes | Restaurant identifier from search_restaurants results (e.g. 'gXfFct9_aZJWLaqiB8isdQ'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-app-catchtable-co-kr-api-568d24c0/get_availability \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"shop_ref":"<string>"}'
```

### get_restaurant

Retrieve full details for a single restaurant including menus, facilities, business hours, parking, reservation policies, and the booking page URL. Requires a shop_ref from search results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `shop_ref` | string | Yes | Restaurant identifier from search_restaurants results (e.g. 'gXfFct9_aZJWLaqiB8isdQ'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-app-catchtable-co-kr-api-568d24c0/get_restaurant \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"shop_ref":"<string>"}'
```

### search_restaurants

Full-text search for restaurants by name or cuisine keyword. Results include basic info, pricing, ratings, and a 14-day reservation availability calendar per restaurant. Each result carries the restaurant's booking page URL. Results are auto-iterated across pages.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `area` | string | No | Optional area/region filter tag. Values are site-defined region codes from CatchTable's filter system. |
| `keyword` | string | Yes | Search keyword — restaurant name, cuisine type, or food name (Korean text, e.g. '스시', '파스타', '강남'). |
| `page` | integer | No | Page number (1-based). |
| `size` | integer | No | Number of results per page (max 30). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-app-catchtable-co-kr-api-568d24c0/search_restaurants \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"area":"<string>","keyword":"<string>","page":"<integer>","size":"<integer>"}'
```
