連携

API リファレンス

v1 公開エンドポイント。ほとんどが読み取り専用(GET)で、予約リクエストとリアルタイム問い合わせだけが書き込み(POST)です。/meta 以外はすべて Bearer キー認証が必要です。

OpenAPI →
GET/api/v1/places

Search places

Search refined places (the oneset) by keyword, region, category, and confidence. Default sort is discovery (query fit, recency, cross-source verification, and completeness together), paginated. Use fields to shape the response.

認証が必要(Bearer / X-API-Key ヘッダー推奨)

プレイグラウンドで実行 →

パラメータ

  • keywordstring任意Partial match on name/address/menu item · 例: 버거킹
  • region_codestring任意Region (admin-dong) code
  • business_categorystring任意Category (restaurant/cafe…) · 例: restaurant
  • min_confidencenumber任意Minimum confidence (0-1) · 例: 0.6
  • sortstring任意discovery (default, only value) — recommendation sort. distance is unavailable without coordinates. meta.sort reports the sort actually applied and may degrade to reviews on very broad searches. · 例: discovery
  • recommended_forstring任意Narrow by occasion (comma, all must match). Natural language resolves too. Values: solo_dining, date, group_dining, family, business_meeting, formal_gathering, late_night… Full list & aliases at /api/v1/meta. · 例: group_dining
  • atmospherestring任意Atmosphere (comma). quiet, lively, view, cozy, trendy, spacious, traditional, clean, work_study, rainy_mood. · 例: quiet
  • parkingboolean任意Only places with confirmed parking. See parking_type for the kind. · 例: true
  • parking_typestring任意Parking type: onsite, valet, partner, nearby, none. Natural language (e.g. 발렛→valet) resolves. · 例: onsite
  • reservableboolean任意Only reservable places (crawl-confirmed plus Yumi Partner venues). · 例: true
  • payment_methodsstring任意Require payment methods (comma, all must match). cash, card, naver_pay, kakao_pay, toss_pay, alipay, wechat_pay, unionpay, apple_pay, samsung_pay… apple_pay/samsung_pay/unionpay are owner-confirmed. · 例: alipay
  • servesstring任意Serves (comma). coffee, alcohol, dessert, vegetarian, vegan. · 例: alcohol
  • dietarystring任意Dietary (comma). vegan_options, vegetarian_options, fully_vegan, mixed_group_suitable, vegetarian_mixed_group_suitable, gluten_free. Natural words (KR/EN) resolve (vegan/plant-based → vegan_options, mixed → mixed_group_suitable, gf → gluten_free). For a mixed group use mixed_group_suitable (confirmed vegan MEAL, not just a drink). gluten_free is owner-confirmed only; if a region has fewer than 10 confirmed venues the result is withheld and meta.dietaryCoverage reports it. · 例: vegan_options
  • foreign_languagesstring任意Languages the venue can serve customers in (ISO 639-1, comma, all must match). en, zh, ja, es, de, fr. Owner-confirmed. Natural language (영어→en, 일본어→ja) resolves. e.g. English-speaking venues for foreign guests. · 例: en
  • subtypestring任意Normalized venue sub-type (comma = OR, 40+). Food: korean, korean_bbq, gukbap_soup, noodles, chinese, japanese, sushi_sashimi, italian, seafood… Cafe: coffee, dessert, bakery, brunch, traditional_tea… Bars: cocktail_bar, wine_bar, izakaya, pocha, hof_beer… Natural language resolves. Prefer subtype over broad business_category for venue-type intent. Full list at /api/v1/meta. · 例: korean_bbq
  • bbq_meatstring任意Meat type a Korean BBQ venue serves (comma = OR): pork, beef, duck, lamb. Independent of subtype — subtype=korean_bbq picks the venue type, bbq_meat=pork narrows the meat. Mixed venues match both. · 例: pork
  • viewstring任意View type (comma = OR): ocean, sunset, river, mountain, night, city, garden. A venue with ocean+sunset matches both. Natural language (바다뷰→ocean, 한강뷰→river, 야경→night) resolves. · 例: ocean
  • pet_friendlyboolean任意Example boolean presence filter. Attach the param to require =true (only confirmed places). Full list (wifi, private_room, outdoor_seating, group_friendly, takeout, delivery, corkage_free, has_promotion, real_bar, rooftop, hanok, photo_spot, local_favorite, nursing_room, live_music, omakase…) plus special filters (muslim_friendly, legacy, local_food, exclude, featured_by, associated_with) at /api/v1/meta. · 例: true
  • open_atstring任意Only places open at that time — a point or a meal window (KST). Point: 2026-08-26T19:00, '2026-08-26 19:00', '19:00' (today), 'now'. Meal windows: 'lunch' (11:00-14:00), 'dinner' (17:30-21:00), breakfast, brunch, late_night, a custom range '11:00-14:00', or combined with a date '2026-08-29 lunch'. Relative days: only 오늘/내일/모레 (today/tomorrow) are understood — send any other date absolutely. A window matches venues open for at least part of it, and the resolved range is echoed in meta.openAt.window. Based on regular hours, last order, and break times, including past-midnight sessions. Temporary closures and being full are not knowable. Venues with unconfirmed hours are excluded by default and reported via meta.openAt.unknownHoursExcluded. · 例: 2026-08-26T19:00
  • include_unknown_hoursboolean任意Escape hatch for open_at only. true also returns venues whose hours are unconfirmed (those are 'unknown', not 'open at that time'). · 例: true
  • reservation_channelstring任意How the venue can be booked (comma = OR): yumi (bookable via POST /api/v1/reservations) · external (third-party booking link) · phone. 'Accepts reservations' is not 'has a table at that time' — actual availability is only known by placing a request. · 例: yumi
  • fieldsstring任意Pick fields (Field Mask). Comma-separated tier names (core/contact_hours/quality/edge/media), 'all', or individual field names. Defaults to core. Call tokens = the highest field tier requested (per-request; page_size does not affect tokens). Owner-uploaded photos come via photos (media tier, highest cost 8 — venue & menu image URLs); in lists use photoCount (quality) for a cheap count. recommendedFor may include occasion tags such as solo_dining, late_night, and late_night_eatery. · 例: core,rating,accessHints
  • pageinteger任意Page (default 1) · 例: 1
  • page_sizeinteger任意Items per page (max 100). Does not affect tokens (per-request billing). Live API keys can access up to a 5,000-result window; beyond that use Bulk Export. · 例: 20

レスポンス例

json

{
  "success": true,
  "data": [
    {
      "id": "11892345",
      "name": "콩부자 홍제점",
      "category": "restaurant",
      "categoryLabel": "국밥",
      "location": {
        "lat": 37.5891,
        "lng": 126.9436
      },
      "address": {
        "road": "서울 서대문구 통일로 450",
        "jibun": "서울 서대문구 홍제동 330"
      },
      "regionCode": "1141011100",
      "confidence": 0.64,
      "sourceCount": 2,
      "possiblyClosed": false,
      "lastSeenAt": "2026-06-18T03:00:00.000Z"
    }
  ],
  "meta": {
    "total": 5,
    "page": 1,
    "pageSize": 20,
    "totalPages": 1
  }
}
GET/api/v1/places/nearby

Nearby search

Find places around a coordinate (lat·lng) within a radius (m), nearest first. Each result includes distanceM (meters from center). sort=discovery switches to recommendation ranking within the radius. fields/tokens behave like Search places.

認証が必要(Bearer / X-API-Key ヘッダー推奨)

プレイグラウンドで実行 →

パラメータ

  • latnumber必須Latitude · 例: 37.5704
  • lngnumber必須Longitude · 例: 126.9921
  • radiusinteger任意Radius in meters (default 1000, max 5000) · 例: 500
  • business_categorystring任意Category filter · 例: cafe
  • keywordstring任意Partial match on name/address/menu item
  • sortstring任意distance (default, nearest first) or discovery (recommendation ranking within the radius). Use distance for 'closest to me', discovery for 'somewhere good near here'. meta.sort reports the sort actually applied (may degrade to distance on deep pages or wide radii). · 例: discovery
  • recommended_forstring任意Narrow by occasion (comma, all must match). Natural language resolves too. Values: solo_dining, date, group_dining, family, business_meeting, formal_gathering, late_night… Full list & aliases at /api/v1/meta. · 例: group_dining
  • atmospherestring任意Atmosphere (comma). quiet, lively, view, cozy, trendy, spacious, traditional, clean, work_study, rainy_mood. · 例: quiet
  • parkingboolean任意Only places with confirmed parking. See parking_type for the kind. · 例: true
  • parking_typestring任意Parking type: onsite, valet, partner, nearby, none. Natural language (e.g. 발렛→valet) resolves. · 例: onsite
  • reservableboolean任意Only reservable places (crawl-confirmed plus Yumi Partner venues). · 例: true
  • payment_methodsstring任意Require payment methods (comma, all must match). cash, card, naver_pay, kakao_pay, toss_pay, alipay, wechat_pay, unionpay, apple_pay, samsung_pay… apple_pay/samsung_pay/unionpay are owner-confirmed. · 例: alipay
  • servesstring任意Serves (comma). coffee, alcohol, dessert, vegetarian, vegan. · 例: alcohol
  • dietarystring任意Dietary (comma). vegan_options, vegetarian_options, fully_vegan, mixed_group_suitable, vegetarian_mixed_group_suitable, gluten_free. Natural words (KR/EN) resolve (vegan/plant-based → vegan_options, mixed → mixed_group_suitable, gf → gluten_free). For a mixed group use mixed_group_suitable (confirmed vegan MEAL, not just a drink). gluten_free is owner-confirmed only; if a region has fewer than 10 confirmed venues the result is withheld and meta.dietaryCoverage reports it. · 例: vegan_options
  • foreign_languagesstring任意Languages the venue can serve customers in (ISO 639-1, comma, all must match). en, zh, ja, es, de, fr. Owner-confirmed. Natural language (영어→en, 일본어→ja) resolves. e.g. English-speaking venues for foreign guests. · 例: en
  • subtypestring任意Normalized venue sub-type (comma = OR, 40+). Food: korean, korean_bbq, gukbap_soup, noodles, chinese, japanese, sushi_sashimi, italian, seafood… Cafe: coffee, dessert, bakery, brunch, traditional_tea… Bars: cocktail_bar, wine_bar, izakaya, pocha, hof_beer… Natural language resolves. Prefer subtype over broad business_category for venue-type intent. Full list at /api/v1/meta. · 例: korean_bbq
  • bbq_meatstring任意Meat type a Korean BBQ venue serves (comma = OR): pork, beef, duck, lamb. Independent of subtype — subtype=korean_bbq picks the venue type, bbq_meat=pork narrows the meat. Mixed venues match both. · 例: pork
  • viewstring任意View type (comma = OR): ocean, sunset, river, mountain, night, city, garden. A venue with ocean+sunset matches both. Natural language (바다뷰→ocean, 한강뷰→river, 야경→night) resolves. · 例: ocean
  • pet_friendlyboolean任意Example boolean presence filter. Attach the param to require =true (only confirmed places). Full list (wifi, private_room, outdoor_seating, group_friendly, takeout, delivery, corkage_free, has_promotion, real_bar, rooftop, hanok, photo_spot, local_favorite, nursing_room, live_music, omakase…) plus special filters (muslim_friendly, legacy, local_food, exclude, featured_by, associated_with) at /api/v1/meta. · 例: true
  • open_atstring任意Only places open at that time — a point or a meal window (KST). Point: 2026-08-26T19:00, '2026-08-26 19:00', '19:00' (today), 'now'. Meal windows: 'lunch' (11:00-14:00), 'dinner' (17:30-21:00), breakfast, brunch, late_night, a custom range '11:00-14:00', or combined with a date '2026-08-29 lunch'. Relative days: only 오늘/내일/모레 (today/tomorrow) are understood — send any other date absolutely. A window matches venues open for at least part of it, and the resolved range is echoed in meta.openAt.window. Based on regular hours, last order, and break times, including past-midnight sessions. Temporary closures and being full are not knowable. Venues with unconfirmed hours are excluded by default and reported via meta.openAt.unknownHoursExcluded. · 例: 2026-08-26T19:00
  • include_unknown_hoursboolean任意Escape hatch for open_at only. true also returns venues whose hours are unconfirmed (those are 'unknown', not 'open at that time'). · 例: true
  • reservation_channelstring任意How the venue can be booked (comma = OR): yumi (bookable via POST /api/v1/reservations) · external (third-party booking link) · phone. 'Accepts reservations' is not 'has a table at that time' — actual availability is only known by placing a request. · 例: yumi
  • fieldsstring任意Pick fields (Field Mask). Comma-separated tier names (core/contact_hours/quality/edge/media), 'all', or individual field names. Defaults to core. Call tokens = the highest field tier requested (per-request; page_size does not affect tokens). Owner-uploaded photos come via photos (media tier, highest cost 8 — venue & menu image URLs); in lists use photoCount (quality) for a cheap count. recommendedFor may include occasion tags such as solo_dining, late_night, and late_night_eatery. · 例: core,rating,accessHints
  • pageinteger任意Page (default 1) · 例: 1
  • page_sizeinteger任意Items per page (max 100). Does not affect tokens (per-request billing). Live API keys can access up to a 5,000-result window; beyond that use Bulk Export. · 例: 20

レスポンス例

json

{
  "success": true,
  "data": [
    {
      "id": "11892345",
      "name": "콩부자 홍제점",
      "category": "restaurant",
      "categoryLabel": "국밥",
      "location": {
        "lat": 37.5891,
        "lng": 126.9436
      },
      "address": {
        "road": "서울 서대문구 통일로 450",
        "jibun": "서울 서대문구 홍제동 330"
      },
      "regionCode": "1141011100",
      "confidence": 0.64,
      "sourceCount": 2,
      "possiblyClosed": false,
      "lastSeenAt": "2026-06-18T03:00:00.000Z",
      "distanceM": 0
    }
  ],
  "meta": {
    "total": 12,
    "page": 1,
    "pageSize": 20,
    "totalPages": 1,
    "center": {
      "lat": 37.5704,
      "lng": 126.9921
    },
    "radius": 500
  }
}
GET/api/v1/places/{id}

Place detail

A single place. Use fields to fetch only the tiers you need (fields=all returns hours, menu, access hints, recommendation context, and more).

認証が必要(Bearer / X-API-Key ヘッダー推奨)

プレイグラウンドで実行 →

パラメータ

  • idstring必須Place id (canonical) · 例: 11782345
  • fieldsstring任意Pick fields (Field Mask). Comma-separated tier names (core/contact_hours/quality/edge/media), 'all', or individual field names. Defaults to core. Call tokens = the highest field tier requested (per-request; page_size does not affect tokens). Owner-uploaded photos come via photos (media tier, highest cost 8 — venue & menu image URLs); in lists use photoCount (quality) for a cheap count. recommendedFor may include occasion tags such as solo_dining, late_night, and late_night_eatery. · 例: core,rating,accessHints

レスポンス例

json

{
  "success": true,
  "data": {
    "id": "11892345",
    "name": "콩부자 홍제점",
    "category": "restaurant",
    "categoryLabel": "국밥",
    "location": {
      "lat": 37.5891,
      "lng": 126.9436
    },
    "address": {
      "road": "서울 서대문구 통일로 450",
      "jibun": "서울 서대문구 홍제동 330"
    },
    "regionCode": "1141011100",
    "confidence": 0.64,
    "sourceCount": 2,
    "possiblyClosed": false,
    "lastSeenAt": "2026-06-18T03:00:00.000Z",
    "rating": null,
    "reviewCount": 10731,
    "latestReviewDate": "2026-06-15",
    "freshnessScore": 0.82,
    "dataQuality": {
      "veracity": 5,
      "completeness": 1,
      "confidence": 0.64,
      "recency": 0.99,
      "last_verified_days_ago": 4
    },
    "price": {
      "level": 2,
      "avg": 8000,
      "min": 4500,
      "max": 12000
    },
    "menuSummary": {
      "count": 12,
      "items": [
        "콩나물국밥",
        "수육",
        "모둠전"
      ]
    },
    "openNow": {
      "open": true,
      "reason": "open",
      "lastOrderPassed": false
    },
    "closureSignal": null,
    "promotion": null,
    "nearestStation": {
      "station": "홍제",
      "walkMin": 5
    },
    "photoCount": 5,
    "photos": {
      "count": 5,
      "main": "https://<supabase>/storage/v1/object/public/owner-photos/<uid>/11892345/1718000000000.jpg",
      "gallery": [
        {
          "category": "interior",
          "url": "https://<supabase>/storage/v1/object/public/owner-photos/<uid>/11892345/1718000000000.jpg",
          "isMain": true
        },
        {
          "category": "exterior",
          "url": "https://<supabase>/storage/v1/object/public/owner-photos/<uid>/11892345/1718000000001.jpg",
          "isMain": false
        }
      ],
      "menu": [
        {
          "menuItem": "콩나물국밥",
          "url": "https://<supabase>/storage/v1/object/public/owner-photos/<uid>/11892345/1718000000002.jpg"
        }
      ],
      "menuBoard": [
        "https://<supabase>/storage/v1/object/public/owner-photos/<uid>/11892345/1718000000003.jpg"
      ]
    },
    "phone": "02-123-4567",
    "homepage": null,
    "bookingUrl": null,
    "yumiReservable": false,
    "reservationChannels": [
      "phone"
    ],
    "snsLinks": null,
    "businessHours": [
      {
        "day": "mon",
        "closed": false,
        "open": "00:00",
        "close": "24:00",
        "endsNextDay": false,
        "breaks": [],
        "lastOrder": null
      }
    ],
    "is24h": true,
    "temporaryClosures": null,
    "accessHints": {
      "subway": [
        {
          "station": "홍제",
          "lines": [
            "3호선"
          ],
          "distanceM": 360,
          "walkMin": 5
        },
        {
          "station": "무악재",
          "lines": [
            "3호선"
          ],
          "distanceM": 920,
          "walkMin": 13
        }
      ]
    },
    "recommendedFor": [
      "solo_dining",
      "late_night",
      "late_night_eatery"
    ],
    "atmosphere": [
      "캐주얼",
      "빠른"
    ],
    "menu": [
      {
        "name": "콩나물국밥",
        "price": 8000,
        "recommend": true,
        "isNew": false,
        "description": "24시간 끓인 진한 국물에 아삭한 콩나물."
      },
      {
        "name": "매생이굴국밥",
        "price": 9500,
        "recommend": false,
        "isNew": true
      }
    ],
    "serviceAttributes": {
      "parking": true,
      "parking_type": "onsite",
      "parking_fee": "paid",
      "parking_note": "매장 주차 가능(유료)",
      "dine_in": true,
      "reservable": true,
      "venue_subtype": "gukbap_soup",
      "foreign_languages": [
        "en"
      ],
      "dietary": {
        "fully_vegan": false,
        "vegan_options": true,
        "vegetarian_options": true,
        "mixed_group_suitable": true,
        "vegan_menu_count": 3,
        "vegan_main_count": 2,
        "non_vegan_menu_count": 8,
        "confidence": 0.62,
        "note": "비건 메뉴와 일반 메뉴가 함께 있어 비건과 비(非)비건이 같이 가기 좋아요. 조리 분리는 확인이 필요해요."
      }
    },
    "atmosphereScores": {
      "late_night": 6,
      "late_night_eatery": 8,
      "quiet": 6.5,
      "lively": 4
    },
    "aiSummary": "홍제역 근처 캐주얼 국밥집, 혼밥·심야식당 수요에 적합.",
    "influencerFeatures": null
  }
}
GET/api/v1/places/{id}/history

Place history

Daily rating and activity-freshness (freshnessScore) trend (accumulated snapshots). A signal you can use to judge changes in a place's activity yourself.

認証が必要(Bearer / X-API-Key ヘッダー推奨)

プレイグラウンドで実行 →

パラメータ

  • idstring必須Place id (canonical) · 例: 11782345

レスポンス例

json

{
  "success": true,
  "data": [
    {
      "date": "2026-06-18",
      "reviewCount": 10731,
      "rating": null,
      "latestReviewDate": "2026-06-15",
      "freshnessScore": 0.82
    }
  ]
}
GET/api/v1/regions

Regions · resolve dong name

Resolves a dong (neighborhood) name into codes & coordinates (location lookup when you have no GPS). Dong names are not unique (e.g. Hongje-dong = Seoul Seodaemun-gu + Gangwon Gangneung), so candidates are returned disambiguated by sido/sigungu, with place counts and a representative center. Feed a chosen center into /places/nearby to also cover adjacent dongs. Without dong, lists all regions that have places.

認証が必要(Bearer / X-API-Key ヘッダー推奨)

プレイグラウンドで実行 →

パラメータ

  • dongstring任意Dong name (e.g. 홍제동) — returns candidates · 例: 홍제동
  • sigungustring任意Narrow by sigungu (e.g. 서대문구)
  • sidostring任意Narrow by sido (e.g. 서울특별시)
  • region_codestring任意Look up a single region code
  • include_emptyboolean任意Include regions with no places yet (default false)

レスポンス例

json

{
  "success": true,
  "data": [
    {
      "regionCode": "1141011100",
      "sido": "서울특별시",
      "sigungu": "서대문구",
      "dong": "홍제동",
      "fullName": "서울특별시 서대문구 홍제동",
      "center": {
        "lat": 37.577976,
        "lng": 126.938483
      },
      "placeCount": 280
    }
  ]
}
GET/api/v1/categories

Categories

Place counts per category in the oneset.

認証が必要(Bearer / X-API-Key ヘッダー推奨)

プレイグラウンドで実行 →

パラメータ

パラメータなし

レスポンス例

json

{
  "success": true,
  "data": [
    {
      "category": "restaurant",
      "count": 276878
    }
  ]
}
GET/api/v1/stats

Dataset stats

Total places, regions, multi-source share, average confidence, category breakdown.

認証が必要(Bearer / X-API-Key ヘッダー推奨)

プレイグラウンドで実行 →

パラメータ

パラメータなし

レスポンス例

json

{
  "success": true,
  "data": {
    "totalPlaces": 414485,
    "totalRegions": 1563,
    "multiSourcePlaces": 345701,
    "avgConfidence": 0.886,
    "byCategory": [
      {
        "category": "restaurant",
        "count": 276878
      },
      {
        "category": "cafe",
        "count": 106796
      },
      {
        "category": "bar",
        "count": 30636
      }
    ]
  }
}
GET/api/v1/meta

Filter & field vocabulary

Key-free (no billing, 1h cache). Returns the supported attribute filters, values, natural-language aliases, and field tiers. The single source of truth for filter vocabulary, which MCP and SDKs sync from automatically.

キー不要 · 課金なし

プレイグラウンドで実行 →

パラメータ

パラメータなし

レスポンス例

json

{
  "version": 1,
  "filters": {
    "boolean": [
      "wifi",
      "parking",
      "outdoor_seating",
      "pet_friendly",
      "group_friendly",
      "kids_friendly",
      "reservable",
      "takeout",
      "delivery",
      "dine_in",
      "catering",
      "corkage_free",
      "wheelchair_accessible",
      "high_chair",
      "no_kids_zone",
      "smoking_area",
      "restroom_gender_separated",
      "power_outlets",
      "stroller_storage",
      "deposit_required",
      "restroom_clean",
      "waiting_expected",
      "leftover_packing",
      "repeat_customers",
      "private_room",
      "has_promotion",
      "real_bar",
      "rooftop",
      "hanok",
      "photo_spot",
      "local_favorite",
      "nursing_room",
      "live_music",
      "fireplace",
      "floor_seating",
      "counter_seating",
      "inside_market",
      "board_game",
      "sports_bar",
      "temple_food",
      "natural_wine",
      "craft_beer",
      "omakase"
    ],
    "enum": {
      "parking_type": [
        "onsite",
        "valet",
        "partner",
        "nearby",
        "none"
      ]
    },
    "subtype": [
      "korean",
      "korean_bbq",
      "gukbap_soup",
      "noodles",
      "chinese",
      "japanese",
      "sushi_sashimi",
      "italian",
      "seafood",
      "coffee",
      "dessert",
      "bakery",
      "brunch",
      "traditional_tea",
      "cocktail_bar",
      "wine_bar",
      "izakaya",
      "pocha",
      "hof_beer"
    ],
    "bbq_meat": [
      "pork",
      "beef",
      "duck",
      "lamb"
    ],
    "view": [
      "ocean",
      "sunset",
      "river",
      "mountain",
      "night",
      "city",
      "garden"
    ],
    "reservationChannel": [
      "yumi",
      "external",
      "phone"
    ],
    "array": {
      "payment_methods": [
        "cash",
        "card",
        "toss_pay",
        "kakao_pay",
        "naver_pay",
        "zero_pay",
        "local_gift",
        "gov_support",
        "alipay",
        "wechat_pay",
        "apple_pay",
        "samsung_pay",
        "unionpay"
      ],
      "serves": [
        "coffee",
        "alcohol",
        "dessert",
        "vegetarian",
        "vegan"
      ],
      "dietary": [
        "vegan_options",
        "vegetarian_options",
        "fully_vegan",
        "mixed_group_suitable",
        "vegetarian_mixed_group_suitable",
        "gluten_free"
      ],
      "foreign_languages": [
        "en",
        "zh",
        "ja",
        "es",
        "de",
        "fr"
      ],
      "recommended_for": [
        "solo_dining",
        "solo_drinking",
        "date",
        "group_dining",
        "group_drinking",
        "family",
        "business_meeting",
        "formal_gathering",
        "late_night",
        "late_night_eatery"
      ],
      "atmosphere": [
        "cozy",
        "quiet",
        "lively",
        "spacious",
        "view",
        "trendy",
        "traditional",
        "clean",
        "work_study",
        "rainy_mood"
      ]
    },
    "aliases": {
      "recommended_for": {
        "회식": "group_dining",
        "혼밥": "solo_dining",
        "상견례": "formal_gathering"
      },
      "atmosphere": {
        "조용한": "quiet",
        "뷰맛집": "view"
      },
      "parking_type": {
        "발렛": "valet"
      },
      "foreign_languages": {
        "영어": "en",
        "일본어": "ja"
      },
      "subtype": {
        "삼겹살": "korean_bbq",
        "국밥": "gukbap_soup",
        "칵테일바": "cocktail_bar"
      },
      "bbq_meat": {
        "삼겹살": "pork",
        "한우": "beef",
        "오리": "duck"
      },
      "view": {
        "바다뷰": "ocean",
        "한강뷰": "river",
        "야경": "night"
      },
      "dietary": {
        "비건": "vegan_options",
        "글루텐프리": "gluten_free"
      }
    }
  },
  "fields": {
    "tiers": {
      "core": 1,
      "contact_hours": 2,
      "quality": 2,
      "edge": 4,
      "media": 8
    },
    "byField": {
      "name": "core",
      "temporaryClosures": "contact_hours",
      "rating": "quality",
      "serviceAttributes": "edge",
      "influencerFeatures": "edge",
      "photos": "media"
    }
  },
  "coverage": {
    "supported": [
      "서울",
      "경기",
      "부산",
      "제주"
    ],
    "note": "현재 서울·경기·부산·제주 4개 시/도만 공식 제공(coverage 확대 중). 그 밖 지역은 결과가 비면 '아직 미지원'으로 안내."
  }
}
POST/api/v1/reservations

Request a reservation

Request a table reservation at a Yumi Partner venue (detail shows yumiReservable=true). No prepayment. On success the owner's app gets an instant push and the response starts as status='pending' (not yet confirmed). The owner accepting → confirmed, declining → cancelled, no response (~5 min) → expired. Poll the status endpoint (GET) for the outcome. The guest is texted progress via KakaoTalk/SMS. Non-partners return 422 reservation_not_available (do not retry — point to the external bookingUrl/phone). Pass idempotencyKey to safely retry the same request without creating duplicates.

認証が必要(Bearer / X-API-Key ヘッダー推奨)

パラメータ

パラメータなし

リクエストボディ (JSON)

  • placeIdstring必須Canonical place id. Get it from a search first. · 例: 11782345
  • reservationTimestring必須Requested date & time in ISO 8601 with timezone offset (future). Korea is +09:00. · 例: 2026-09-01T19:00:00+09:00
  • guestCountinteger必須Party size (at least 1). · 例: 2
  • guestPhonestring必須Guest phone (required) — for status texts (KakaoTalk/SMS) and no-show contact. Missing → guest_phone_required. · 例: 010-1234-5678
  • guestNamestring任意Guest name (recommended) so the owner knows who's coming. · 例: 홍길동
  • notestring任意Optional note to the owner (seating, occasion, allergies).
  • idempotencyKeystring任意Stable key to safely retry the same reservation. Auto-generated if omitted.

レスポンス例

json

{
  "success": true,
  "data": {
    "reservationId": "b1f2c3d4-0000-0000-0000-000000000000",
    "status": "pending",
    "placeId": "11782345",
    "expiresAt": "2026-09-01T10:05:00.000Z"
  }
}
GET/api/v1/reservations/{id}

Reservation status (long-poll)

Check a reservation's current status. status: pending, confirmed, cancelled, expired, no_show. Pass ?wait=<sec> (max 25) to long-poll — it returns the moment the reservation settles (confirmed/cancelled/expired); if still pending, call again to fill the ~5-minute window, then report the final settled outcome.

認証が必要(Bearer / X-API-Key ヘッダー推奨)

パラメータ

  • idstring必須The reservationId returned by the create call. · 例: b1f2c3d4-0000-0000-0000-000000000000
  • waitinteger任意Long-poll seconds (0-25). Omit for a one-shot check. · 例: 25

レスポンス例

json

{
  "success": true,
  "data": {
    "reservationId": "b1f2c3d4-0000-0000-0000-000000000000",
    "placeId": "11782345",
    "status": "confirmed",
    "settled": true,
    "reservationTime": "2026-09-01T19:00:00+09:00",
    "guestCount": 2,
    "approvedAt": "2026-09-01T10:02:11.000Z",
    "createdAt": "2026-09-01T10:00:00.000Z",
    "expiresAt": "2026-09-01T10:05:00.000Z"
  }
}
POST/api/v1/live-status

Live status (ask the venue right now)

Send the owner a time-sensitive question that map/review/static data can't answer and that changes through the day — (A) is this menu item available now / today's fresh stock / sold out (kind=item), (D) how long is the wait right now (kind=wait), (E) can a party of N get in right now (kind=seats, headcount required). Same rail as reservations: at a venue with an active owner (on the Yumi Partners app) the app gets an instant push and the response starts as status='pending' (5-minute answer window). The owner answers with one tap → available, limited, unavailable, soon, or not_offered; poll GET /api/v1/live-status/{queryId} (long-poll) for the outcome. To avoid re-bothering the owner, if a fresh answer already exists for the same venue+topic it's reused instantly (reused=true), and a pending identical question is joined. If 'now' is outside confirmed opening hours the owner is not disturbed and you get blocked='closed_now' immediately (do not retry — surface the hours). Venues without an active owner return 422 live_status_not_available. Do not use this for static info like hours, parking, or pet policy — answer those from search.

認証が必要(Bearer / X-API-Key ヘッダー推奨)

パラメータ

パラメータなし

リクエストボディ (JSON)

  • placeIdstring必須Canonical place id. Get it from a search first. · 例: 11782345
  • kindstring必須Question kind: item (menu/stock) · wait (queue) · seats (immediate seating, include headcount). · 例: item
  • topicstring必須The subject as a bare token, not a sentence. e.g. '두바이 쫀득 쿠키', 'yellowtail', 'wait', 'party of 10'. For item, use the venue's actual menu name. · 例: 두바이 쫀득 쿠키
  • questionstring任意The guest's original wording (optional), for owner context. · 例: 지금 두바이 쫀득 쿠키 있어요?

レスポンス例

json

{
  "success": true,
  "data": {
    "queryId": "c2e4f6a8-0000-0000-0000-000000000000",
    "placeId": "11782345",
    "kind": "item",
    "topic": "두바이 쫀득 쿠키",
    "status": "pending",
    "note": null,
    "settled": false,
    "fresh": false,
    "interestedCount": 1,
    "expiresAt": "2026-09-04T00:05:00.000Z"
  }
}
GET/api/v1/live-status/{queryId}

Live status result (long-poll)

Check a live question's current status. status: pending, available, limited, unavailable, soon, not_offered, no_response (owner didn't answer in 5 min). Pass ?wait=<sec> (max 25) to long-poll — it returns the moment the owner answers or the 5-minute window lapses (settled); if still pending, call again to fill the ~5-minute window, then report the result with the verified time. note may carry the owner's extra memo (e.g. wait '20분', 'we can seat you separately'). verifiedAt = when it was confirmed; validUntil = how long the answer stays reusable for other guests (varies by kind).

認証が必要(Bearer / X-API-Key ヘッダー推奨)

パラメータ

  • queryIdstring必須The queryId returned by the create call. · 例: c2e4f6a8-0000-0000-0000-000000000000
  • waitinteger任意Long-poll seconds (0-25). Omit for a one-shot check. · 例: 25

レスポンス例

json

{
  "success": true,
  "data": {
    "queryId": "c2e4f6a8-0000-0000-0000-000000000000",
    "placeId": "11782345",
    "kind": "wait",
    "topic": "웨이팅",
    "status": "limited",
    "note": "20분",
    "settled": true,
    "verifiedAt": "2026-09-04T00:02:30.000Z",
    "verifiedBy": "merchant",
    "validUntil": "2026-09-04T00:12:30.000Z",
    "fresh": true,
    "interestedCount": 3,
    "createdAt": "2026-09-04T00:00:00.000Z",
    "expiresAt": "2026-09-04T00:05:00.000Z"
  }
}
GET/api/v1/live-status

Fresh live answer (optional)

If a still-valid owner-confirmed answer exists for placeId + topic, it's returned without asking (found:true + status, note, verifiedAt, validUntil). Otherwise found:false — then POST to ask fresh. You usually only need POST (it reuses on its own); use this only to peek at 'just-confirmed' info without triggering anything.

認証が必要(Bearer / X-API-Key ヘッダー推奨)

パラメータ

  • placeIdstring必須Canonical place id. · 例: 11782345
  • topicstring必須The subject token (same as POST's topic). · 例: 두바이 쫀득 쿠키

レスポンス例

json

{
  "success": true,
  "data": {
    "found": true,
    "queryId": "c2e4f6a8-0000-0000-0000-000000000000",
    "placeId": "11782345",
    "kind": "item",
    "topic": "두바이 쫀득 쿠키",
    "status": "available",
    "note": null,
    "verifiedAt": "2026-09-04T00:02:30.000Z",
    "verifiedBy": "merchant",
    "validUntil": "2026-09-04T00:32:30.000Z",
    "fresh": true,
    "interestedCount": 4
  }
}

Hide Me Please, Inc.

© 2026 Hide Me Please, Inc. All rights reserved.

事業者登録番号 777-86-02664

代表者 Yuhyun

通信販売業許可 2023-Seoul Jung-gu-0094

2F, 33 Eulji-ro 11-gil, Jung-gu, Seoul 04543

カスタマーサポート +82 70-7954-1357

メール ixplorer@hidemeplease.xyz

個人情報保護責任者 Yuhyun

ホスティング提供 Vercel Inc.