# 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. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-oliveyoung-co-kr-api-5e1aed46/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## 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/parse-oliveyoung-co-kr-api-5e1aed46/get_category_list \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -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/parse-oliveyoung-co-kr-api-5e1aed46/get_makeup_ranking \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -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/parse-oliveyoung-co-kr-api-5e1aed46/get_product_detail \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -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/parse-oliveyoung-co-kr-api-5e1aed46/get_product_reviews \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -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/parse-oliveyoung-co-kr-api-5e1aed46/list_category_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -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/parse-oliveyoung-co-kr-api-5e1aed46/search_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","query":"<string>","sort":"<string>"}'
```
