# Olive Young — 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 and discover products from Olive Young Korea's catalog, including detailed product information, customer reviews, and real-time makeup rankings across categories. Browse through organized product categories and find top-rated items to compare and research before purchasing.

**Category:** E-commerce | **Website:** [oliveyoung.co.kr/](https://oliveyoung.co.kr/) | **Docs:** [parse.bot/marketplace/5e1aed46-aaf1-4645-aed4-7dbf22d22662/oliveyoung-co-kr-api](https://parse.bot/marketplace/5e1aed46-aaf1-4645-aed4-7dbf22d22662/oliveyoung-co-kr-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/olive-young/`
**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 category list

Get the full category tree for Olive Young. Returns a hierarchical category structure with category IDs (catNo), names (catNm), image URLs, and subcategories (mCate). Use catNo values as category_id input for other endpoints.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/olive-young/get-category-list \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Get makeup ranking

Get product rankings within a category. Returns up to 50 products sorted by popularity rank with name, brand, price, goods number, and image path. Defaults to the Makeup category if no category_id is provided.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category_id` | string | No | Category ID for ranking (e.g. '10000010002' for Makeup, '10000010001' for Skincare). Obtain IDs from get_category_list endpoint. |

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

### Get product detail

Get full details for a product by its goods number, including name, brand (Korean and English), pricing with discount info, product images, hierarchical categories, supplier name, and availability status. Parses data from the product page HTML.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `goods_no` | string | Yes | Product goods number (e.g. 'A000000248951'). Obtain from search_products or list_category_products results. |

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

### Get product reviews

Get customer reviews for a product with cursor-based pagination. Returns reviews sorted by usefulness score, each containing review score, text content, photo list, and reviewer profile with skin type info. The first page is page 0.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `goods_no` | string | Yes | Product goods number (e.g. 'A000000248951'). Obtain from search_products or list_category_products results. |
| `page` | integer | No | Page number (0-based) |
| `size` | integer | No | Number of reviews per page (1-50) |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/olive-young/get-product-reviews \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"goods_no":"<string>","page":"<integer>","size":"<integer>"}'
```

### List category products

List products within a specific display category. Returns paginated results ordered by the specified sort criteria. Each page returns up to 24 results. Category IDs can be obtained from the get_category_list endpoint.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category_id` | string | Yes | Display category ID (e.g. '10000010002' for Makeup, '10000010001' for Skincare). Obtain IDs from get_category_list endpoint. |
| `page` | integer | No | Page number (1-based) |
| `sort` | string | No | Sort order for results |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/olive-young/list-category-products \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category_id":"<string>","page":"<integer>","sort":"<string>"}'
```

### Search products

Full-text search over Olive Young product listings by keyword. Returns paginated results with product name, brand, price, review count, and category info. Each page returns up to 24 results by default. Server-side sorting is limited to rank, price ascending/descending, and newest.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number (1-based) |
| `query` | string | Yes | Search keyword (e.g. 'tint', 'serum', '립틴트') |
| `sort` | string | No | Sort order for results |

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