{"openapi":"3.1.0","info":{"title":"EDEN API","summary":"한국 관광 트렌드와 방한시장 데이터 API","description":"\n한국 관광 트렌드와 지역 관광 정보 및 방한시장 데이터를 제공하는 **EDEN 공식 API 명세**입니다.\n아래 각 API를 펼치면 입력값, 응답 스키마와 `Try it out`을 사용할 수 있습니다.\n[OpenAPI JSON 다운로드](/openapi.json)\n\n### 시작하기\n\n- 운영 주소: `https://api.edenapi.org`\n- 현재 공개 API는 별도 인증 키 없이 사용할 수 있습니다. 원천 서비스의 키는 전달하지 않습니다.\n- 브라우저의 다른 도메인에서도 호출할 수 있습니다. 쿠키와 인증 정보를 포함하지 마세요.\n- API는 DB에 게시된 데이터만 조회합니다. 추천 POST도 외부 수집이나 LLM 호출을 실행하지 않습니다.\n\n```bash\ncurl --get 'https://api.edenapi.org/v1/trends'   --data-urlencode 'keyword=Korea travel' --data 'country=US&social_sources=youtube'\ncurl 'https://api.edenapi.org/v1/markets/inbound?countries=JP&countries=CN&include=fx'\n```\n\n```javascript\nconst response = await fetch('https://api.edenapi.org/v1/markets/JP/alerts?limit=5');\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst { data, meta } = await response.json();\nconsole.log(data, meta.availability, meta.as_of);\n```\n\n### 입력 규칙\n\n- `country`와 `countries`는 ISO 3166-1 두 글자 국가 코드입니다. 예: `JP`, `CN`, `US`.\n- `currency`는 ISO 4217 세 글자 통화 코드입니다. 예: `JPY`, `CNY`, `USD`.\n- 배열은 같은 이름을 반복합니다. 예: `countries=JP&countries=CN`, `include=visitors&include=fx`.\n- `area_code`에는 행정구역 코드 또는 EDEN 지역 ID를 사용합니다.\n- `content_id`에는 EDEN 관광지 ID를 사용합니다. 기존 TourAPI 콘텐츠 ID도 별칭으로 조회됩니다.\n- 날짜는 ISO 8601 형식입니다. 시간에는 시간대 정보를 포함하세요.\n  응답의 기본 시간대는 `Asia/Seoul`입니다.\n  원천이 날짜만 제공하는 경우에는 시각 단위의 정밀도를 보장하지 않습니다.\n- 필수값과 허용값 및 상한은 각 API의 Parameters와 Schemas에 명시되어 있습니다.\n\n### 응답 읽기\n\n성공 응답은 `{ \"data\": ..., \"meta\": ... }` 구조입니다. HTTP 200만으로 데이터 존재를 판단하지 마세요.\n\n| 필드 | 의미 |\n| --- | --- |\n| `meta.availability` | `available`: 가능, `partial`: 일부 가능, `unavailable`: 불가 |\n| `meta.reason` | 데이터가 부족하거나 제공되지 않는 구체적인 이유 |\n| `meta.as_of` | 게시 데이터의 기준 시점. 현재 시각이나 원천 공통 발표일이 아닙니다. |\n| `meta.generated_at` | 이 응답을 만든 시각. 원천 데이터 갱신 시각이 아닙니다. |\n| `meta.freshness` / `meta.stale` | 허용된 데이터 수명과 최신성 상태 |\n| `meta.sources` | 원천별 가용성, 데이터 기준일, 마지막 성공 시각과 사유 |\n| `meta.formula_versions` | 지표 계산에 사용된 공식 버전 |\n| `meta.request_id` | 문제 확인에 사용할 요청 식별자. `X-Request-ID` 헤더에도 포함됩니다. |\n\n`data`나 개별 값은 `null`일 수 있습니다. 이를 0으로 바꾸지 마세요. 데이터 블록에도 별도의\n`availability`와 `reason`이 있을 수 있으므로 화면에서 해당 블록의 상태를 함께 확인하세요.\n수집은 제한된 분량으로 순환 실행합니다. 월간 통계는 발표 주기를 따릅니다.\n모든 지역이 동시에 갱신되지는 않습니다.\n지역 방문 데이터는 약 30일 늦게 발표되는 원천이며, 해당 지연을 반영해 최신성을 판단합니다.\n\n### 지표와 제공 범위\n\n트렌드는 사전에 수집한 키워드만 조회합니다. 임의의 검색어를 입력해도 수집을 시작하지 않습니다.\n현재 YouTube의 수집 키워드는 다음과 같습니다.\n다른 키워드나 지역 세부 조건에는 데이터가 없을 수 있습니다.\n\n| `country` | `keyword` |\n| --- | --- |\n| `CN` | `韩国旅游` / `首尔旅游` / `济州岛旅游` |\n| `JP` | `韓国旅行` / `ソウル旅行` / `済州島旅行` |\n| `TW` | `韓國旅遊` / `首爾旅遊` / `濟州島旅遊` |\n| `US` 또는 `PH` | `Korea travel` / `Seoul travel` / `Jeju travel` |\n\n\n- YouTube 지표는 검색 결과 영상의 공개 지표입니다. 검색 국가 조건은 시청자 국적을 뜻하지 않습니다.\n- Instagram과 Facebook 및 Reddit은 승인된 데이터가 없어 `unavailable`로 표시될 수 있습니다.\n  NAVER 검색 추세는 저장과 재제공 권리 확인 전까지 비활성 상태입니다.\n- X와 TikTok은 수집 대상이 아닙니다.\n  Weibo와 Douyin 및 Xiaohongshu도 제외하며 LINE도 수집하지 않습니다.\n- ECOS 관광수지는 한국 전체의 월간 일반여행 수지입니다. 국가별 양자 수지가 아닙니다.\n- 여행 예상 예산과 연령 지수처럼 근거 원천이 없는 값은 추정해서 채우지 않습니다.\n- 공지의 번역과 요약은 Upstage를 사용합니다. 원문 링크와 번역 가용성을 함께 확인하세요.\n- 공지 자동 갱신 대상은 5개 시장의 한국 공관과 K-ETA 및 한국관광공사입니다.\n  `source_scope=local`의 현지 기관 공지는 자동 갱신을 지원하지 않습니다.\n  과거 저장된 공지가 반환되더라도 원천의 가용성과 갱신 시각을 확인하세요.\n- 공지나 날씨 등 원천에 발표 시각이 없으면 그 사유를 표시합니다. \n  수집 시각을 발표 시각으로 대체하지 않습니다.\n\n### 기본 요청 예시\n\n```text\nGET /v1/trends?keyword=Korea%20travel&country=US&social_sources=youtube\nGET /v1/regions/1100000000/insights?period=30d\nGET /v1/places/eden_place_161fb775402b53b78a0a?lang=ko&shops_limit=5\nGET /v1/forecasts/visitors?area_code=1100000000&days=7\nGET /v1/visitors/timeseries?area_code=1100000000&period=30d&granularity=day\nGET /v1/markets/inbound?countries=JP&countries=CN\nGET /v1/markets/JP/alerts?limit=20\nPOST /v1/recommendations/destinations\n{\"target_country\":\"JP\",\"travel_window\":{\"season\":\"autumn\"},\"themes\":[\"culture\"],\"limit\":5}\n```\n\n### 최소 범위와 계산 계약\n\n계획의 상한은 17개 시도와 JP/CN/TW/US/PH입니다. 실제 수집은 최신 활성 시도 기준입니다.\n2026년 7월 행정구역 개편으로 현재 기준정보는 16개 시도이며 광주와 전남의 과거 코드는 보존합니다.\n관광지는 한국어와 좌표 및 분류가 있는\n고유 장소를 시도당 최대 30곳 선정합니다. 아직 확보하지 못한 지역과 기간은 결측으로 표시합니다.\n`keyword`는 NFKC 정규화와 양끝 공백 제거 후 검증합니다. 빈 검색어는 422입니다.\n트렌드 기간은 7일, 30일, 90일이며 확보된 최신 관측을 끝점으로 조회합니다.\n`social_sources` 생략 시 YouTube를 사용합니다. 명시적으로 선택한 SNS만 지표와 최신성에 반영합니다.\n영상 수와 조회 수는 검색 표본이며 매일의 표본 합계를 고유 영상 수나 국적별 시청자로 해석하지 마세요.\n\n방문 시계열은 최근 456일의 제한된 일별 관측에서 계산합니다. `basis_period`는 실제 조회 창이며\n자료 발표 지연 때문에 오늘과 다를 수 있습니다. 비교 구간이 불완전하면 변화율은 null입니다.\n월간 수요와 다양성은 각자의 최신 `data_period`를 유지합니다.\n상세 지역 대신 시도를 사용하면 `requested_area_code`와 응답 `area`가 실제 자료 범위를 나타냅니다.\n\n방문 전망 기본값은 7일입니다. 1일부터 30일까지 명시적 요청을 받습니다.\n공식 예측이 없으면 최근 90일 내 28일 이상 관측에서 같은 요일의 중앙값을 구하고\n지역 관측 분포의 동률 중간 순위 백분위를 `demand_score`로 제공합니다.\n요일 표본이 3개 미만이면 전체 중앙값을 씁니다. 최신 관측이 60일보다 오래되면 제공하지 않습니다.\n`historical_weekday_proxy`는 참고 수요 지수이며 인원 예측이 아닙니다. 7일 이후도 같은 역사적 기준을\n연장한 값입니다. `expected_visitors`와 검증되지 않은 `confidence`는 null입니다.\n날씨와 행사는 별도 참고 정보이며 임의의 방문객 증감 계수를 적용하지 않습니다.\n\n`change_rate`는 백분율(%)입니다. `krw_rate`는 외화 1단위당 원화(KRW)입니다.\n항공편 수와 여객 수는 서로 대체하지 않습니다. 각 원천은 자체 발표 주기로 최신성을 판단합니다.\n`data_as_of`는 관측 시점, `last_checked_at`은 마지막 확인 시도, `last_success_at`은 마지막\n정상 확인 시각입니다. 공지는 새 발표가 없어도 정상 확인 시각으로 갱신 상태를 판단합니다.\n`since`는 시간대가 있어야 하며 발표 또는 수집 시각이 경계값 이상인 공지를 반환합니다.\n정렬은 수집 시각 내림차순이며 동률이면 발표 시각 내림차순 후 ID 오름차순입니다.\n일반 공지는 최근 90일의 최신 20건, 현재 활성 입국 규정은 별도 최신 1건을 보존합니다.\n\n추천의 `travel_window.days`와 `party_size`는 deprecated 호환 입력입니다.\n일정 가능성과 수용량을 보장하지 않습니다. 예산도 검증 원천이 없어 적용하지 않습니다.\n`applied_constraints`와 `unapplied_inputs`에서 실제 적용 조건과 미지원 사유를 확인하세요.\n접근성이나 이동시간 등의 필수 조건을 검증할 수 없으면 추천을 unavailable로 반환합니다.\n\n### 호출 제한과 오류\n\n운영 서버는 IP당 초당 5회와 전체 초당 20회로 제한합니다. 일시 초과 허용량은 각각 20회와 40회입니다.\n프론트에서는 응답을 재사용하고 불필요한 반복 조회를 피하세요. \n429와 일시적인 5xx는 간격을 늘려 재시도하세요.\n요청 본문 상한은 64KiB이며 응답 상한은 2MiB입니다.\n\n| HTTP | 처리 방법 |\n| --- | --- |\n| 404 | 지역이나 관광지 ID 또는 URL을 확인하세요. |\n| 413 | 요청 본문 크기를 줄이세요. |\n| 422 | 필수값과 허용값을 확인하세요. `error.details`에 검증 위치가 있습니다. |\n| 429 | 호출 제한 초과입니다. 잠시 후 재시도하세요. 프록시 오류 본문은 JSON이 아닐 수 있습니다. |\n| 500 | `request_id`를 남기세요. `RESPONSE_TOO_LARGE`이면 조회 범위를 줄이세요. |\n| 502 / 503 / 504 | 서버의 일시적인 처리 제한이나 장애입니다. 잠시 후 재시도하세요. |\n\n앱 오류는 `{ \"request_id\": \"...\", \"error\": { \"code\": \"...\", \"message\": \"...\" } }` 형식입니다.\n프록시에서 생성한 오류에는 이 형식이 없을 수 있으므로 HTTP 상태부터 검사하세요.\n","version":"0.2.0"},"paths":{"/v1/trends":{"get":{"tags":["trends"],"summary":"키워드 관광 관심도 조회","description":"기간별 관심도와 원천별 지표를 조회합니다. YouTube 검색 표본은 실제 시청자 국적 통계가 아닙니다.","operationId":"get_trends_v1_trends_get","parameters":[{"name":"keyword","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":200,"examples":["Korea travel"],"title":"Keyword"},"description":"사전 수집한 검색어. NFKC 정규화 후 양끝 공백을 제거하며 빈 값은 422입니다."},{"name":"area_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Area Code"},"description":"행정구역 코드 또는 EDEN 지역 ID. 시도 대체 시 실제 자료 지역을 응답에 표시합니다."},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"const":"all","type":"string"}],"default":"all","title":"Country"},"description":"ISO 3166-1 alpha-2 국가 코드. 초기 시장은 JP/CN/TW/US/PH입니다.","example":"US"},{"name":"social_sources","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["youtube","instagram","reddit","facebook"],"type":"string"}},{"type":"null"}],"title":"Social Sources"},"description":"선택 SNS만 조회합니다. 생략 시 youtube. 미승인 원천은 unavailable입니다."},{"name":"period","in":"query","required":false,"schema":{"enum":["7d","30d","90d"],"type":"string","default":"30d","title":"Period"},"description":"최신 확보 관측을 끝점으로 하는 조회 기간. 미수집 구간은 결측으로 표시합니다."},{"name":"time_unit","in":"query","required":false,"schema":{"enum":["day","week","month"],"type":"string","default":"day","title":"Time Unit"},"description":"트렌드 관측의 집계 간격. day/week/month이며 고유 영상 수를 뜻하지 않습니다."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":10,"title":"Limit"},"description":"반환 항목 수. 기본값과 최대값은 schema에 표시됩니다."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope_TrendData_"},"examples":{"observed":{"summary":"2026-09-11 실제 게시 자료 조회 예시","description":"/v1/trends?keyword=Korea%20travel&country=US&social_sources=youtube","value":{"data":{"keyword":"Korea travel","area_code":null,"country":"US","period":"30d","time_unit":"day","interest_index":null,"change_rate":null,"source_metrics":[{"source_id":"SRC_YOUTUBE","observed_at":"2026-09-10T00:00:00Z","posts":50,"views":51132,"reactions":null,"search_ratio":null,"score":null,"availability":"partial","reason":"최근 공개 동영상 최대 20건의 표본이며 지역 필터는 시청자 거주 국가가 아닌 재생 가능 지역입니다."}],"source_availability":{"SRC_YOUTUBE":{"availability":"partial","reason":"최근 공개 동영상 최대 20건의 표본이며 지역 필터는 시청자 거주 국가가 아닌 재생 가능 지역입니다."}},"series":[{"timestamp":"2026-09-10T00:00:00Z","search_ratio":null,"youtube_views":51132,"sns_mentions":null,"destination_searches":null,"interest_index":null}],"rising_keywords":[],"sources":["SRC_YOUTUBE"]},"meta":{"request_id":"aa1418b3-3150-458b-b9a6-6601640002f0","generated_at":"2026-09-11T12:06:22.388355+09:00","as_of":"2026-09-11T03:36:04+09:00","timezone":"Asia/Seoul","spatial_resolution":"none","stale":false,"freshness":{"status":"fresh","age_seconds":30618,"max_acceptable_age_seconds":172800},"availability":"partial","reason":"일부 social signal 원천 또는 정규화 점수를 제공할 수 없습니다.","formula_versions":{"interest_index":"interest_index_v1","rising_keywords":"rising_keyword_equal_window_v1"},"sources":[{"source_id":"SRC_YOUTUBE","status":"available","data_as_of":"2026-09-10T18:36:04Z","last_success_at":"2026-09-10T18:36:06Z","last_checked_at":"2026-09-10T18:36:06Z","stale":false,"reason":null}]}}},"unavailable":{"summary":"자료 부족 시 구조 예시","description":"수치나 관측을 채우지 않은 unavailable 응답의 구조 예시입니다.","value":{"data":null,"meta":{"request_id":"example-unavailable","generated_at":"2026-09-11T12:00:00+09:00","as_of":null,"timezone":"Asia/Seoul","spatial_resolution":"none","stale":false,"freshness":{"status":"unavailable","age_seconds":null,"max_acceptable_age_seconds":null},"availability":"unavailable","reason":"요청 조건에 게시된 자료가 없습니다.","formula_versions":{},"sources":[]}}}}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Request body too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Request validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"호출 제한. 프록시 본문은 JSON이 아닐 수 있습니다.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"게이트웨이 오류. 본문은 JSON이 아닐 수 있습니다."},"503":{"description":"일시적 서비스 제한","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"504":{"description":"게이트웨이 시간 초과. 본문은 JSON이 아닐 수 있습니다."},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/regions/{area_code}/insights":{"get":{"tags":["regions"],"summary":"지역 관광 인사이트 조회","description":"지역의 방문 지표와 관광 수요 및 다양성을 조회합니다. include를 생략하면 세 블록을 모두 반환합니다. 비교 기간의 자료가 없으면 해당 비교는 제공되지 않습니다.","operationId":"get_region_insights_v1_regions__area_code__insights_get","parameters":[{"name":"area_code","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"examples":["1100000000"],"title":"Area Code"},"description":"행정구역 코드 또는 EDEN 지역 ID. 시도 대체 시 실제 자료 지역을 응답에 표시합니다."},{"name":"period","in":"query","required":false,"schema":{"enum":["7d","30d","90d"],"type":"string","default":"30d","title":"Period"},"description":"최신 확보 관측을 끝점으로 하는 조회 기간. 미수집 구간은 결측으로 표시합니다."},{"name":"visitor_type","in":"query","required":false,"schema":{"enum":["all","domestic","foreign"],"type":"string","default":"all","title":"Visitor Type"},"description":"all은 전체, domestic은 내국인, foreign은 외국인 방문 지표입니다."},{"name":"compare","in":"query","required":false,"schema":{"anyOf":[{"enum":["previous_period","previous_year"],"type":"string"},{"type":"null"}],"title":"Compare"},"description":"이전 동일 길이 기간 또는 전년 동기 비교. 완전한 비교 관측이 없으면 null입니다."},{"name":"include","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["visitors","demand","diversity"],"type":"string"}},{"type":"null"}],"title":"Include"},"description":"반환할 정보 블록. 배열은 같은 이름을 반복합니다. 생략 시 열거된 기본 블록 전체입니다."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope_RegionInsightData_"},"examples":{"observed":{"summary":"2026-09-11 실제 게시 자료 조회 예시","description":"/v1/regions/1100000000/insights?period=30d","value":{"data":{"reference_information":{"place_category_counts":{"AC":3,"C01":3,"EV":3,"EX":3,"FD":3,"HS":3,"LS":2,"NA":2,"SH":2,"VE":2,"관광지":2,"숙박":2},"scope":"현재 선정한 한국어 관광지의 실제 분류별 수. 공식 수요 또는 다양성 지수가 아닙니다."},"requested_area_code":null,"basis_period":{"start":"2026-07-13","end":"2026-08-11"},"area":{"area_code":"1100000000","eden_area_id":"eden_area_6672fa064d0a5027bd84","name":"서울특별시","spatial_resolution":"sido"},"period":"30d","visitors":{"completeness_ratio":1.0,"total":193744284,"domestic":188160179,"foreign":5584105,"change_rate":null,"availability":"available","reason":null},"demand":{"data_period":"2026-07","stay_index":78.8517,"spend_index":100.0,"avg_stay_nights":null,"availability":"partial","reason":"일부 수요 차원이 없습니다."},"diversity":{"data_period":"2026-07","age_index":null,"nationality_index":100.0,"availability":"partial","reason":"연령 다양성 원천이 없어 국적 다양성만 제공합니다."},"comparison":null,"sources":["SRC_KTO_REGIONAL_VISITORS","SRC_KTO_DEMAND_INTENSITY","SRC_KTO_DIVERSITY"]},"meta":{"request_id":"e8603f0b-dc6d-4c74-a134-9b76584602eb","generated_at":"2026-09-11T12:06:22.422315+09:00","as_of":"2026-07-01T09:00:00+09:00","timezone":"Asia/Seoul","spatial_resolution":"sido","stale":true,"freshness":{"status":"stale","age_seconds":6231982,"max_acceptable_age_seconds":259200},"availability":"partial","reason":"일부 지역 데이터 블록이 없습니다.","formula_versions":{"regional_product":"regional_product_v1"},"sources":[{"source_id":"SRC_KTO_DEMAND_INTENSITY","status":"stale","data_as_of":"2026-07-01T00:00:00Z","last_success_at":"2026-09-10T09:52:23Z","last_checked_at":"2026-09-10T09:52:23Z","stale":true,"reason":"data_age_exceeded: 원천 데이터가 freshness 기준을 초과했습니다."},{"source_id":"SRC_KTO_DIVERSITY","status":"stale","data_as_of":"2026-07-01T00:00:00Z","last_success_at":"2026-09-10T09:52:37Z","last_checked_at":"2026-09-10T09:52:37Z","stale":true,"reason":"data_age_exceeded: 원천 데이터가 freshness 기준을 초과했습니다."},{"source_id":"SRC_KTO_REGIONAL_VISITORS","status":"available","data_as_of":"2026-08-11T00:00:00Z","last_success_at":"2026-09-10T16:49:44Z","last_checked_at":"2026-09-10T16:49:44Z","stale":false,"reason":null}]}}},"unavailable":{"summary":"자료 부족 시 구조 예시","description":"수치나 관측을 채우지 않은 unavailable 응답의 구조 예시입니다.","value":{"data":null,"meta":{"request_id":"example-unavailable","generated_at":"2026-09-11T12:00:00+09:00","as_of":null,"timezone":"Asia/Seoul","spatial_resolution":"none","stale":false,"freshness":{"status":"unavailable","age_seconds":null,"max_acceptable_age_seconds":null},"availability":"unavailable","reason":"요청 조건에 게시된 자료가 없습니다.","formula_versions":{},"sources":[]}}}}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Request body too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Request validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"호출 제한. 프록시 본문은 JSON이 아닐 수 있습니다.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"게이트웨이 오류. 본문은 JSON이 아닐 수 있습니다."},"503":{"description":"일시적 서비스 제한","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"504":{"description":"게이트웨이 시간 초과. 본문은 JSON이 아닐 수 있습니다."},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/places/{content_id}":{"get":{"tags":["places"],"summary":"관광지 상세 조회","description":"추천 결과의 content_id 또는 기존 TourAPI ID로 조회합니다. 요청 언어가 없으면 fallback과 실제 language를 확인하세요. 주변 상점의 반경은 미터 단위입니다.","operationId":"get_place_v1_places__content_id__get","parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":128,"examples":["eden_place_161fb775402b53b78a0a"],"title":"Content Id"},"description":"정규화된 EDEN 관광지 ID 또는 검증된 원천 별칭. 존재하지 않으면 404입니다."},{"name":"lang","in":"query","required":false,"schema":{"enum":["ko","en","ja","zh-CN"],"type":"string","default":"ko","title":"Lang"},"description":"요청 관광지 언어. 미보유 언어는 한국어, 한국어도 없으면 실제 보유 언어를 표시합니다."},{"name":"shops_limit","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"description":"주변 상점 개수. 연관 관광지와 별도.","default":5,"title":"Shops Limit"},"description":"주변 상점 개수. 연관 관광지와 별도."},{"name":"radius_m","in":"query","required":false,"schema":{"type":"integer","maximum":5000,"minimum":100,"default":1000,"title":"Radius M"},"description":"주변 상점 검색 반경. 단위 m. 보유한 주변 상점에서 조회합니다."},{"name":"related_limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":5,"title":"Related Limit"},"description":"연관 관광지 최대 반환 수. 주변 상점 개수와 별도입니다."},{"name":"include","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["related","shops","hub"],"type":"string"}},{"type":"null"}],"title":"Include"},"description":"반환할 정보 블록. 배열은 같은 이름을 반복합니다. 생략 시 열거된 기본 블록 전체입니다."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope_PlaceData_"},"examples":{"observed":{"summary":"2026-09-11 실제 게시 자료 조회 예시","description":"/v1/places/eden_place_161fb775402b53b78a0a?lang=ko&shops_limit=5","value":{"data":{"content_id":"eden_place_161fb775402b53b78a0a","language":"ko","requested_language":"ko","fallback":false,"available_languages":["ko"],"title":"짜장면박물관","category":"VE","address":"인천광역시 제물포구 차이나타운로 56-14","location":{"lat":37.4747905,"lng":126.6181675},"location_availability":{"availability":"available","reason":null},"overview":null,"hub":null,"related_places":null,"nearby_shops":[{"shop_id":"eden_shop_e010db8bc14159c5ad27","name":"티에이치중부","category":"경영 컨설팅업","distance_m":778.756},{"shop_id":"eden_shop_06a144bf306d5d93bbdc","name":"올댓빈티지","category":"기타 의류 소매업","distance_m":779.687},{"shop_id":"eden_shop_2897388b04ed5966af71","name":"이베로-아시아인스티튜트","category":"교육컨설팅업","distance_m":783.78},{"shop_id":"eden_shop_caed0c665a555a92b197","name":"등나무집","category":"돼지고기 구이/찜","distance_m":786.411},{"shop_id":"eden_shop_9811bc9d74f15c558e26","name":"오빈티지","category":"기타 의류 소매업","distance_m":794.641}],"sources":["SRC_SEMAS_SHOPS","SRC_TOUR_KO"]},"meta":{"request_id":"121be509-a1d4-497b-b3a4-0c199a7f054c","generated_at":"2026-09-11T12:06:22.497329+09:00","as_of":"2026-08-21T02:31:26+09:00","timezone":"Asia/Seoul","spatial_resolution":"place","stale":true,"freshness":{"status":"stale","age_seconds":1848896,"max_acceptable_age_seconds":259200},"availability":"partial","reason":"중심 관광지 원천을 사용할 수 없습니다. 연관 관광지 원천을 사용할 수 없습니다.","formula_versions":{"related_score":"inverse_rank_v1","nearby_distance":"haversine_wgs84_v1"},"sources":[{"source_id":"SRC_KTO_PLACE_HUB","status":"stale","data_as_of":"2026-07-01T00:00:00Z","last_success_at":"2026-09-10T09:58:16Z","last_checked_at":"2026-09-10T09:58:16Z","stale":true,"reason":"data_age_exceeded: 원천 데이터가 freshness 기준을 초과했습니다."},{"source_id":"SRC_KTO_PLACE_RELATED","status":"stale","data_as_of":"2026-07-01T00:00:00Z","last_success_at":"2026-09-10T12:32:05Z","last_checked_at":"2026-09-10T12:32:05Z","stale":true,"reason":"data_age_exceeded: 원천 데이터가 freshness 기준을 초과했습니다."},{"source_id":"SRC_SEMAS_SHOPS","status":"degraded","data_as_of":null,"last_success_at":"2026-09-10T04:01:50Z","last_checked_at":"2026-09-10T04:01:50Z","stale":false,"reason":"일부 operation 또는 page 수집 실패"},{"source_id":"SRC_TOUR_KO","status":"degraded","data_as_of":"2026-09-09T13:26:56Z","last_success_at":"2026-09-10T15:01:12Z","last_checked_at":"2026-09-10T15:01:12Z","stale":false,"reason":"일부 operation 또는 page 수집 실패"}]}}},"unavailable":{"summary":"자료 부족 시 구조 예시","description":"수치나 관측을 채우지 않은 unavailable 응답의 구조 예시입니다.","value":{"data":null,"meta":{"request_id":"example-unavailable","generated_at":"2026-09-11T12:00:00+09:00","as_of":null,"timezone":"Asia/Seoul","spatial_resolution":"none","stale":false,"freshness":{"status":"unavailable","age_seconds":null,"max_acceptable_age_seconds":null},"availability":"unavailable","reason":"요청 조건에 게시된 자료가 없습니다.","formula_versions":{},"sources":[]}}}}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Request body too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Request validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"호출 제한. 프록시 본문은 JSON이 아닐 수 있습니다.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"게이트웨이 오류. 본문은 JSON이 아닐 수 있습니다."},"503":{"description":"일시적 서비스 제한","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"504":{"description":"게이트웨이 시간 초과. 본문은 JSON이 아닐 수 있습니다."},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/forecasts/visitors":{"get":{"tags":["forecasts"],"summary":"지역 방문 전망 조회","description":"최대 30일의 게시된 방문 전망과 선택한 보조 정보를 조회합니다. nx와 ny는 함께 입력해야 합니다. 전망 점수와 실제 예상 방문자 수는 다른 값이며 근거가 없는 값은 null입니다.","operationId":"get_visitor_forecast_v1_forecasts_visitors_get","parameters":[{"name":"area_code","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"examples":["1100000000"],"title":"Area Code"},"description":"행정구역 코드 또는 EDEN 지역 ID. 시도 대체 시 실제 자료 지역을 응답에 표시합니다."},{"name":"place_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Place Name"},"description":"사전 수집된 공식 전망의 관광지명. 지역 참고 지수를 관광지 인원으로 대체하지 않습니다."},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":30,"minimum":1,"default":7,"title":"Days"},"description":"전망 일수. 기본 7일, 1~30일. 7일 이후 참고 전망은 동일 역사적 기준의 연장입니다."},{"name":"nx","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Nx"},"description":"기상청 격자의 X 좌표. ny와 함께 입력하며 미수집 격자는 unavailable입니다."},{"name":"ny","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ny"},"description":"기상청 격자의 Y 좌표. nx와 함께 입력하며 미수집 격자는 unavailable입니다."},{"name":"include","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["weather","festivals","holidays"],"type":"string"}},{"type":"null"}],"title":"Include"},"description":"반환할 정보 블록. 배열은 같은 이름을 반복합니다. 생략 시 열거된 기본 블록 전체입니다."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope_VisitorForecastData_"},"examples":{"observed":{"summary":"2026-09-11 실제 게시 자료 조회 예시","description":"/v1/forecasts/visitors?area_code=1100000000&days=7","value":{"data":{"area_code":"1100000000","requested_area_code":"1100000000","data_area_code":"1100000000","spatial_resolution":"sido","eden_area_id":"eden_area_6672fa064d0a5027bd84","place_name":null,"horizon_days":7,"daily":[{"date":"2026-09-11","source_concentration_rate":null,"demand_score":72.8814,"expected_visitors":null,"confidence":null,"weather":{"temperature_c":20.0,"precipitation_probability_pct":20.0,"condition":"cloudy","grid_source":"area_center","nx":60,"ny":127,"availability":"available","reason":null},"festivals":null,"holiday":null,"adjustment_factors":{},"method":"historical_weekday_proxy","basis_period":{"start":"2026-06-14","end":"2026-08-11"},"sample_count":59,"basis":"같은 요일 중앙값: 8개 표본","availability":"partial","reason":"일부 참고 정보가 없습니다: festivals, holidays"},{"date":"2026-09-12","source_concentration_rate":null,"demand_score":57.6271,"expected_visitors":null,"confidence":null,"weather":{"temperature_c":21.0,"precipitation_probability_pct":20.0,"condition":"cloudy","grid_source":"area_center","nx":60,"ny":127,"availability":"available","reason":null},"festivals":null,"holiday":null,"adjustment_factors":{},"method":"historical_weekday_proxy","basis_period":{"start":"2026-06-14","end":"2026-08-11"},"sample_count":59,"basis":"같은 요일 중앙값: 8개 표본","availability":"partial","reason":"일부 참고 정보가 없습니다: festivals, holidays"},{"date":"2026-09-13","source_concentration_rate":null,"demand_score":9.322,"expected_visitors":null,"confidence":null,"weather":{"temperature_c":20.0,"precipitation_probability_pct":20.0,"condition":"cloudy","grid_source":"area_center","nx":60,"ny":127,"availability":"available","reason":null},"festivals":null,"holiday":null,"adjustment_factors":{},"method":"historical_weekday_proxy","basis_period":{"start":"2026-06-14","end":"2026-08-11"},"sample_count":59,"basis":"같은 요일 중앙값: 9개 표본","availability":"partial","reason":"일부 참고 정보가 없습니다: festivals, holidays"},{"date":"2026-09-14","source_concentration_rate":null,"demand_score":41.5254,"expected_visitors":null,"confidence":null,"weather":{"temperature_c":22.0,"precipitation_probability_pct":10.0,"condition":"clear","grid_source":"area_center","nx":60,"ny":127,"availability":"available","reason":null},"festivals":null,"holiday":null,"adjustment_factors":{},"method":"historical_weekday_proxy","basis_period":{"start":"2026-06-14","end":"2026-08-11"},"sample_count":59,"basis":"같은 요일 중앙값: 9개 표본","availability":"partial","reason":"일부 참고 정보가 없습니다: festivals, holidays"},{"date":"2026-09-15","source_concentration_rate":null,"demand_score":50.0,"expected_visitors":null,"confidence":null,"weather":{"temperature_c":19.0,"precipitation_probability_pct":0.0,"condition":"clear","grid_source":"area_center","nx":60,"ny":127,"availability":"available","reason":null},"festivals":null,"holiday":null,"adjustment_factors":{},"method":"historical_weekday_proxy","basis_period":{"start":"2026-06-14","end":"2026-08-11"},"sample_count":59,"basis":"같은 요일 중앙값: 9개 표본","availability":"partial","reason":"일부 참고 정보가 없습니다: festivals, holidays"},{"date":"2026-09-16","source_concentration_rate":null,"demand_score":57.6271,"expected_visitors":null,"confidence":null,"weather":null,"festivals":null,"holiday":null,"adjustment_factors":{},"method":"historical_weekday_proxy","basis_period":{"start":"2026-06-14","end":"2026-08-11"},"sample_count":59,"basis":"같은 요일 중앙값: 8개 표본","availability":"partial","reason":"일부 참고 정보가 없습니다: weather, festivals, holidays"},{"date":"2026-09-17","source_concentration_rate":null,"demand_score":62.7119,"expected_visitors":null,"confidence":null,"weather":null,"festivals":null,"holiday":null,"adjustment_factors":{},"method":"historical_weekday_proxy","basis_period":{"start":"2026-06-14","end":"2026-08-11"},"sample_count":59,"basis":"같은 요일 중앙값: 8개 표본","availability":"partial","reason":"일부 참고 정보가 없습니다: weather, festivals, holidays"}],"weather":[{"temperature_c":20.0,"precipitation_probability_pct":20.0,"condition":"cloudy","grid_source":"area_center","nx":60,"ny":127,"availability":"available","reason":null},{"temperature_c":21.0,"precipitation_probability_pct":20.0,"condition":"cloudy","grid_source":"area_center","nx":60,"ny":127,"availability":"available","reason":null},{"temperature_c":20.0,"precipitation_probability_pct":20.0,"condition":"cloudy","grid_source":"area_center","nx":60,"ny":127,"availability":"available","reason":null},{"temperature_c":22.0,"precipitation_probability_pct":10.0,"condition":"clear","grid_source":"area_center","nx":60,"ny":127,"availability":"available","reason":null},{"temperature_c":19.0,"precipitation_probability_pct":0.0,"condition":"clear","grid_source":"area_center","nx":60,"ny":127,"availability":"available","reason":null}],"festivals":null,"holiday":null,"sources":["SRC_KMA_FORECAST","SRC_KTO_REGIONAL_VISITORS"]},"meta":{"request_id":"8502a99a-6ffa-4253-877d-2dbb8b232313","generated_at":"2026-09-11T12:06:22.548834+09:00","as_of":"2026-08-27T05:35:17+09:00","timezone":"Asia/Seoul","spatial_resolution":"sido","stale":false,"freshness":{"status":"fresh","age_seconds":1319465,"max_acceptable_age_seconds":5184000},"availability":"partial","reason":"일부 날짜에서 요청한 참고 원천이 없습니다.","formula_versions":{"visitor_forecast":"historical_weekday_proxy"},"sources":[{"source_id":"SRC_KMA_FORECAST","status":"available","data_as_of":"2026-09-10T14:00:00Z","last_success_at":"2026-09-10T16:50:15Z","last_checked_at":"2026-09-10T16:50:15Z","stale":false,"reason":null},{"source_id":"SRC_KTO_REGIONAL_VISITORS","status":"available","data_as_of":"2026-08-11T00:00:00Z","last_success_at":"2026-09-10T16:49:44Z","last_checked_at":"2026-09-10T16:49:44Z","stale":false,"reason":null}]}}},"unavailable":{"summary":"자료 부족 시 구조 예시","description":"수치나 관측을 채우지 않은 unavailable 응답의 구조 예시입니다.","value":{"data":null,"meta":{"request_id":"example-unavailable","generated_at":"2026-09-11T12:00:00+09:00","as_of":null,"timezone":"Asia/Seoul","spatial_resolution":"none","stale":false,"freshness":{"status":"unavailable","age_seconds":null,"max_acceptable_age_seconds":null},"availability":"unavailable","reason":"요청 조건에 게시된 자료가 없습니다.","formula_versions":{},"sources":[]}}}}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Request body too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Request validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"호출 제한. 프록시 본문은 JSON이 아닐 수 있습니다.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"게이트웨이 오류. 본문은 JSON이 아닐 수 있습니다."},"503":{"description":"일시적 서비스 제한","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"504":{"description":"게이트웨이 시간 초과. 본문은 JSON이 아닐 수 있습니다."},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/visitors/timeseries":{"get":{"tags":["visitors"],"summary":"지역 방문 시계열 조회","description":"일별 또는 주별이나 월별 방문 지표를 조회합니다. 실제 방문자 수와 원천 혼잡도 지표를 구분해서 사용하세요. 원천 발표 지연은 meta와 sources에 표시됩니다.","operationId":"get_visitor_timeseries_v1_visitors_timeseries_get","parameters":[{"name":"area_code","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"examples":["1100000000"],"title":"Area Code"},"description":"행정구역 코드 또는 EDEN 지역 ID. 시도 대체 시 실제 자료 지역을 응답에 표시합니다."},{"name":"period","in":"query","required":false,"schema":{"enum":["7d","30d","90d","12m"],"type":"string","default":"30d","title":"Period"},"description":"최신 확보 관측을 끝점으로 하는 조회 기간. 미수집 구간은 결측으로 표시합니다."},{"name":"granularity","in":"query","required":false,"schema":{"enum":["day","week","month"],"type":"string","default":"day","title":"Granularity"},"description":"방문 집계 단위. day/week/month. 더 거친 관측을 일별 값으로 나누지 않습니다."},{"name":"visitor_type","in":"query","required":false,"schema":{"enum":["all","domestic","foreign"],"type":"string","default":"all","title":"Visitor Type"},"description":"all은 전체, domestic은 내국인, foreign은 외국인 방문 지표입니다."},{"name":"attraction_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Attraction Name"},"description":"관광지별 방문 원천의 관광지명. 관측이 없으면 unavailable입니다."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope_VisitorTimeseriesData_"},"examples":{"observed":{"summary":"2026-09-11 실제 게시 자료 조회 예시","description":"/v1/visitors/timeseries?area_code=1100000000&period=30d&granularity=day","value":{"data":{"requested_area_code":null,"basis_period":{"start":"2026-07-13","end":"2026-08-11"},"area":{"area_code":"1100000000","eden_area_id":"eden_area_6672fa064d0a5027bd84","name":"서울특별시","spatial_resolution":"sido"},"period":"30d","granularity":"day","visitor_type":"all","attraction_name":null,"summary":{"total":193744284,"domestic":188160179,"foreign":5584105,"peak_visitors":6887682,"peak_concentration_rate":null,"completeness_ratio":1.0},"series":[{"period_start":"2026-07-13","grain":"day","subject_type":"area","total":6486570,"domestic":6300522,"foreign":186048,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-07-14","grain":"day","subject_type":"area","total":6469906,"domestic":6293431,"foreign":176475,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-07-15","grain":"day","subject_type":"area","total":6640076,"domestic":6464241,"foreign":175835,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-07-16","grain":"day","subject_type":"area","total":6837816,"domestic":6658369,"foreign":179447,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-07-17","grain":"day","subject_type":"area","total":6273159,"domestic":6078219,"foreign":194940,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-07-18","grain":"day","subject_type":"area","total":6301457,"domestic":6100420,"foreign":201037,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-07-19","grain":"day","subject_type":"area","total":6168640,"domestic":5976184,"foreign":192456,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-07-20","grain":"day","subject_type":"area","total":6435234,"domestic":6252922,"foreign":182312,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-07-21","grain":"day","subject_type":"area","total":6530625,"domestic":6360162,"foreign":170463,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-07-22","grain":"day","subject_type":"area","total":6652871,"domestic":6483716,"foreign":169155,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-07-23","grain":"day","subject_type":"area","total":6676385,"domestic":6505461,"foreign":170924,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-07-24","grain":"day","subject_type":"area","total":6887682,"domestic":6698525,"foreign":189157,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-07-25","grain":"day","subject_type":"area","total":6637176,"domestic":6444309,"foreign":192867,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-07-26","grain":"day","subject_type":"area","total":6179684,"domestic":5988914,"foreign":190770,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-07-27","grain":"day","subject_type":"area","total":6530305,"domestic":6344422,"foreign":185883,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-07-28","grain":"day","subject_type":"area","total":6611369,"domestic":6429441,"foreign":181928,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-07-29","grain":"day","subject_type":"area","total":6698790,"domestic":6519013,"foreign":179777,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-07-30","grain":"day","subject_type":"area","total":6720619,"domestic":6538946,"foreign":181673,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-07-31","grain":"day","subject_type":"area","total":6835290,"domestic":6650865,"foreign":184425,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-08-01","grain":"day","subject_type":"area","total":6147089,"domestic":5964106,"foreign":182983,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-08-02","grain":"day","subject_type":"area","total":5806494,"domestic":5625956,"foreign":180538,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-08-03","grain":"day","subject_type":"area","total":6236135,"domestic":6056295,"foreign":179840,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-08-04","grain":"day","subject_type":"area","total":6331659,"domestic":6150925,"foreign":180734,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-08-05","grain":"day","subject_type":"area","total":6396670,"domestic":6212189,"foreign":184481,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-08-06","grain":"day","subject_type":"area","total":6400097,"domestic":6207026,"foreign":193071,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-08-07","grain":"day","subject_type":"area","total":6539024,"domestic":6336288,"foreign":202736,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-08-08","grain":"day","subject_type":"area","total":6357455,"domestic":6154425,"foreign":203030,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-08-09","grain":"day","subject_type":"area","total":6003389,"domestic":5803599,"foreign":199790,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-08-10","grain":"day","subject_type":"area","total":6418952,"domestic":6221671,"foreign":197281,"concentration_rate":null,"completeness_ratio":1.0},{"period_start":"2026-08-11","grain":"day","subject_type":"area","total":6533666,"domestic":6339617,"foreign":194049,"concentration_rate":null,"completeness_ratio":1.0}],"sources":["SRC_KTO_REGIONAL_VISITORS"]},"meta":{"request_id":"9413a859-3ec8-4938-8c25-e70a93b872bc","generated_at":"2026-09-11T12:06:22.578617+09:00","as_of":"2026-08-27T05:35:17+09:00","timezone":"Asia/Seoul","spatial_resolution":"sido","stale":false,"freshness":{"status":"fresh","age_seconds":1319465,"max_acceptable_age_seconds":2937600},"availability":"available","reason":null,"formula_versions":{"regional_product":"regional_product_v1"},"sources":[{"source_id":"SRC_KTO_REGIONAL_VISITORS","status":"available","data_as_of":"2026-08-11T00:00:00Z","last_success_at":"2026-09-10T16:49:44Z","last_checked_at":"2026-09-10T16:49:44Z","stale":false,"reason":null}]}}},"unavailable":{"summary":"자료 부족 시 구조 예시","description":"수치나 관측을 채우지 않은 unavailable 응답의 구조 예시입니다.","value":{"data":null,"meta":{"request_id":"example-unavailable","generated_at":"2026-09-11T12:00:00+09:00","as_of":null,"timezone":"Asia/Seoul","spatial_resolution":"none","stale":false,"freshness":{"status":"unavailable","age_seconds":null,"max_acceptable_age_seconds":null},"availability":"unavailable","reason":"요청 조건에 게시된 자료가 없습니다.","formula_versions":{},"sources":[]}}}}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Request body too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Request validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"호출 제한. 프록시 본문은 JSON이 아닐 수 있습니다.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"게이트웨이 오류. 본문은 JSON이 아닐 수 있습니다."},"503":{"description":"일시적 서비스 제한","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"504":{"description":"게이트웨이 시간 초과. 본문은 JSON이 아닐 수 있습니다."},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/markets/inbound":{"get":{"tags":["markets"],"summary":"국가별 방한시장 비교","description":"countries=JP&countries=CN처럼 국가 코드를 반복해 전달합니다. 환율과 항공 및 방문 지표의 기준 시점은 서로 다를 수 있습니다. tourism_balance는 한국 전체 일반여행 수지이며 국가별 양자 수지가 아닙니다.","operationId":"get_inbound_markets_v1_markets_inbound_get","parameters":[{"name":"countries","in":"query","required":true,"schema":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z]{2}$"},"minItems":1,"examples":[["JP","CN"]],"title":"Countries"},"description":"비교할 국가 목록. 같은 파라미터를 반복합니다. 초기 시장은 JP/CN/TW/US/PH입니다."},{"name":"social_sources","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["youtube","instagram","reddit","facebook"],"type":"string"}},{"type":"null"}],"title":"Social Sources"},"description":"선택 SNS만 조회합니다. 생략 시 youtube. 미승인 원천은 unavailable입니다."},{"name":"period","in":"query","required":false,"schema":{"enum":["3m","6m","12m","24m"],"type":"string","default":"12m","title":"Period"},"description":"최신 확보 관측을 끝점으로 하는 조회 기간. 미수집 구간은 결측으로 표시합니다."},{"name":"currency","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{3}$"},{"type":"null"}],"title":"Currency"},"description":"ISO 4217 통화 코드. 환율은 외화 1단위당 KRW이며 미보유 통화는 unavailable입니다."},{"name":"forecast_days","in":"query","required":false,"schema":{"type":"integer","maximum":7,"minimum":1,"default":7,"title":"Forecast Days"},"description":"향후 항공 일정 조회 일수. 기본 7일, 1~7일입니다."},{"name":"include","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["visitors","flights","flight_schedule","fx","tourism_balance","social_interest"],"type":"string"}},{"type":"null"}],"title":"Include"},"description":"반환할 정보 블록. 배열은 같은 이름을 반복합니다. 생략 시 열거된 기본 블록 전체입니다."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope_InboundData_"},"examples":{"observed":{"summary":"2026-09-11 실제 게시 자료 조회 예시","description":"/v1/markets/inbound?countries=JP&countries=CN","value":{"data":{"period":"12m","markets":[{"country":"CN","visitors":6158257,"visitor_change_rate":27.7129,"arriving_flights":41913,"passengers":null,"flight_schedule":{"forecast_days":7,"flights":1175,"change_rate":null,"major_routes":[{"origin":"PVG","destination":"ICN","flights":286},{"origin":"TAO","destination":"ICN","flights":281},{"origin":"PEK","destination":"ICN","flights":135},{"origin":"CAN","destination":"ICN","flights":73},{"origin":"SZX","destination":"ICN","flights":71},{"origin":"HGH","destination":"ICN","flights":65},{"origin":"DLC","destination":"ICN","flights":60},{"origin":"NKG","destination":"ICN","flights":57},{"origin":"TFU","destination":"ICN","flights":42},{"origin":"CKG","destination":"ICN","flights":35}],"availability":"available","reason":null},"fx":{"currency":"CNY","krw_rate":199.65,"change_rate":null,"rate_date":"2026-09-10","source_id":"SRC_KEXIM_FX","availability":"available","reason":null},"tourism_balance_usd":-50300000.0,"tourism_balance_scope":"KR_total","tourism_balance_period":"2026-07","social_interest":null,"source_availability":{"flight_schedule":{"availability":"available","reason":null},"flights":{"availability":"partial","reason":"국가별 도착 운항편 수는 있으나 여객 수는 원천에서 제공하지 않습니다."},"fx":{"availability":"available","reason":null},"social_interest":{"availability":"unavailable","reason":"요청한 SNS 원천의 관측이 없습니다."},"tourism_balance":{"availability":"available","reason":"한국 전체 일반여행 수지이며 국가별 수지가 아닙니다."},"visitors":{"availability":"available","reason":null}},"inbound_score":91.2016,"sources":[{"source_id":"SRC_AIRPORT_COUNTRY","status":"stale","data_as_of":"2026-07-01T00:00:00Z","last_success_at":"2026-09-10T09:52:15Z","last_checked_at":"2026-09-10T09:52:15Z","stale":true,"reason":"data_age_exceeded: 원천 데이터가 freshness 기준을 초과했습니다."},{"source_id":"SRC_AIRPORT_WEEKLY","status":"degraded","data_as_of":"2026-09-10T22:21:24Z","last_success_at":"2026-09-10T22:21:26Z","last_checked_at":"2026-09-10T22:21:26Z","stale":false,"reason":"원천 발표시각을 확인할 수 없어 freshness를 보수적으로 처리했습니다."},{"source_id":"SRC_BOK_ECOS","status":"available","data_as_of":"2026-09-10T00:00:00Z","last_success_at":"2026-09-10T12:31:59Z","last_checked_at":"2026-09-10T12:31:59Z","stale":false,"reason":null},{"source_id":"SRC_KEXIM_FX","status":"available","data_as_of":"2026-09-09T15:00:00Z","last_success_at":"2026-09-10T12:31:57Z","last_checked_at":"2026-09-10T12:31:57Z","stale":false,"reason":null},{"source_id":"SRC_KTO_INBOUND_STATS","status":"stale","data_as_of":"2026-07-31T14:59:59Z","last_success_at":"2026-09-10T09:57:43Z","last_checked_at":"2026-09-10T09:57:43Z","stale":true,"reason":"data_age_exceeded: 원천 데이터가 freshness 기준을 초과했습니다."},{"source_id":"SRC_YOUTUBE","status":"available","data_as_of":"2026-09-10T18:36:04Z","last_success_at":"2026-09-10T18:36:06Z","last_checked_at":"2026-09-10T18:36:06Z","stale":false,"reason":null}]},{"country":"JP","visitors":4014334,"visitor_change_rate":15.7506,"arriving_flights":52341,"passengers":null,"flight_schedule":{"forecast_days":7,"flights":1896,"change_rate":null,"major_routes":[{"origin":"NRT","destination":"ICN","flights":547},{"origin":"KIX","destination":"ICN","flights":442},{"origin":"FUK","destination":"ICN","flights":375},{"origin":"NGO","destination":"ICN","flights":210},{"origin":"CTS","destination":"ICN","flights":161},{"origin":"OKA","destination":"ICN","flights":98},{"origin":"HND","destination":"ICN","flights":63}],"availability":"available","reason":null},"fx":{"currency":"JPY","krw_rate":8.7242,"change_rate":null,"rate_date":"2026-09-10","source_id":"SRC_KEXIM_FX","availability":"available","reason":null},"tourism_balance_usd":-50300000.0,"tourism_balance_scope":"KR_total","tourism_balance_period":"2026-07","social_interest":null,"source_availability":{"flight_schedule":{"availability":"available","reason":null},"flights":{"availability":"partial","reason":"국가별 도착 운항편 수는 있으나 여객 수는 원천에서 제공하지 않습니다."},"fx":{"availability":"available","reason":null},"social_interest":{"availability":"unavailable","reason":"요청한 SNS 원천의 관측이 없습니다."},"tourism_balance":{"availability":"available","reason":"한국 전체 일반여행 수지이며 국가별 수지가 아닙니다."},"visitors":{"availability":"available","reason":null}},"inbound_score":75.9572,"sources":[{"source_id":"SRC_AIRPORT_COUNTRY","status":"stale","data_as_of":"2026-07-01T00:00:00Z","last_success_at":"2026-09-10T09:52:15Z","last_checked_at":"2026-09-10T09:52:15Z","stale":true,"reason":"data_age_exceeded: 원천 데이터가 freshness 기준을 초과했습니다."},{"source_id":"SRC_AIRPORT_WEEKLY","status":"degraded","data_as_of":"2026-09-10T22:21:24Z","last_success_at":"2026-09-10T22:21:26Z","last_checked_at":"2026-09-10T22:21:26Z","stale":false,"reason":"원천 발표시각을 확인할 수 없어 freshness를 보수적으로 처리했습니다."},{"source_id":"SRC_BOK_ECOS","status":"available","data_as_of":"2026-09-10T00:00:00Z","last_success_at":"2026-09-10T12:31:59Z","last_checked_at":"2026-09-10T12:31:59Z","stale":false,"reason":null},{"source_id":"SRC_KEXIM_FX","status":"available","data_as_of":"2026-09-09T15:00:00Z","last_success_at":"2026-09-10T12:31:57Z","last_checked_at":"2026-09-10T12:31:57Z","stale":false,"reason":null},{"source_id":"SRC_KTO_INBOUND_STATS","status":"stale","data_as_of":"2026-07-31T14:59:59Z","last_success_at":"2026-09-10T09:57:43Z","last_checked_at":"2026-09-10T09:57:43Z","stale":true,"reason":"data_age_exceeded: 원천 데이터가 freshness 기준을 초과했습니다."},{"source_id":"SRC_YOUTUBE","status":"available","data_as_of":"2026-09-10T18:36:04Z","last_success_at":"2026-09-10T18:36:06Z","last_checked_at":"2026-09-10T18:36:06Z","stale":false,"reason":null}]}]},"meta":{"request_id":"b084dbdf-ec70-4c53-8d4a-6291f8b69dde","generated_at":"2026-09-11T12:06:22.613226+09:00","as_of":"2026-07-01T09:00:00+09:00","timezone":"Asia/Seoul","spatial_resolution":"country","stale":true,"freshness":{"status":"stale","age_seconds":6231982,"max_acceptable_age_seconds":172800},"availability":"partial","reason":"요청한 일부 방한시장 데이터 제품을 아직 제공할 수 없습니다.","formula_versions":{"inbound_score":"inbound_score_v1"},"sources":[{"source_id":"SRC_AIRPORT_COUNTRY","status":"stale","data_as_of":"2026-08-01T00:00:00Z","last_success_at":"2026-09-10T09:52:15Z","last_checked_at":"2026-09-10T09:52:15Z","stale":true,"reason":"data_age_exceeded: 원천 데이터가 freshness 기준을 초과했습니다."},{"source_id":"SRC_AIRPORT_WEEKLY","status":"degraded","data_as_of":null,"last_success_at":"2026-09-10T22:21:26Z","last_checked_at":"2026-09-10T22:21:26Z","stale":false,"reason":"원천 발표시각을 확인할 수 없어 freshness를 보수적으로 처리했습니다."},{"source_id":"SRC_BOK_ECOS","status":"available","data_as_of":"2026-09-10T00:00:00Z","last_success_at":"2026-09-10T12:31:59Z","last_checked_at":"2026-09-10T12:31:59Z","stale":false,"reason":null},{"source_id":"SRC_KEXIM_FX","status":"available","data_as_of":"2026-09-09T15:00:00Z","last_success_at":"2026-09-10T12:31:57Z","last_checked_at":"2026-09-10T12:31:57Z","stale":false,"reason":null},{"source_id":"SRC_KTO_INBOUND_STATS","status":"stale","data_as_of":"2026-07-31T14:59:59Z","last_success_at":"2026-09-10T09:57:43Z","last_checked_at":"2026-09-10T09:57:43Z","stale":true,"reason":"data_age_exceeded: 원천 데이터가 freshness 기준을 초과했습니다."},{"source_id":"SRC_YOUTUBE","status":"available","data_as_of":"2026-09-10T18:36:04Z","last_success_at":"2026-09-10T18:36:06Z","last_checked_at":"2026-09-10T18:36:06Z","stale":false,"reason":null}]}}},"unavailable":{"summary":"자료 부족 시 구조 예시","description":"수치나 관측을 채우지 않은 unavailable 응답의 구조 예시입니다.","value":{"data":null,"meta":{"request_id":"example-unavailable","generated_at":"2026-09-11T12:00:00+09:00","as_of":null,"timezone":"Asia/Seoul","spatial_resolution":"none","stale":false,"freshness":{"status":"unavailable","age_seconds":null,"max_acceptable_age_seconds":null},"availability":"unavailable","reason":"요청 조건에 게시된 자료가 없습니다.","formula_versions":{},"sources":[]}}}}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Request body too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Request validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"호출 제한. 프록시 본문은 JSON이 아닐 수 있습니다.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"게이트웨이 오류. 본문은 JSON이 아닐 수 있습니다."},"503":{"description":"일시적 서비스 제한","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"504":{"description":"게이트웨이 시간 초과. 본문은 JSON이 아닐 수 있습니다."},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/markets/{country}/alerts":{"get":{"tags":["markets"],"summary":"국가별 공식 공지 조회","description":"비자와 입국 및 안전 공지와 시장 동향을 조회합니다. source_url에서 원문을 확인할 수 있습니다. 번역이 준비되지 않았으면 원문으로 fallback되며 번역과 요약의 가용성은 별도 필드에 표시됩니다.","operationId":"get_market_alerts_v1_markets__country__alerts_get","parameters":[{"name":"country","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z]{2}$","examples":["JP"],"title":"Country"},"description":"ISO 3166-1 alpha-2 국가 코드. 초기 시장은 JP/CN/TW/US/PH입니다.","example":"JP"},{"name":"types","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["visa","entry","safety","travel","market_trend"],"type":"string"}},{"type":"null"}],"title":"Types"},"description":"공식 공지 유형 필터. 일반 공지 90일, 활성 입국 규정 최신본을 대상으로 합니다."},{"name":"source_scope","in":"query","required":false,"schema":{"enum":["korean","local","all"],"type":"string","default":"all","title":"Source Scope"},"description":"korean은 한국 기관, local은 현지 기관, all은 전체. 현지 자동 수집은 미지원입니다."},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"시간대 필수. 발표 또는 수집 시각이 since 이상인 공지. 수집 시각 내림차순. 동률이면 발표 시각 내림차순 후 ID 오름차순.","title":"Since"},"description":"시간대 필수. 발표 또는 수집 시각이 since 이상인 공지. 수집 시각 내림차순. 동률이면 발표 시각 내림차순 후 ID 오름차순."},{"name":"language","in":"query","required":false,"schema":{"enum":["ko","en"],"type":"string","default":"ko","title":"Language"},"description":"공지 요청 언어. 번역이 없으면 실제 원문 언어로 반환합니다."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"},"description":"반환 항목 수. 기본값과 최대값은 schema에 표시됩니다."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope_AlertsData_"},"examples":{"observed":{"summary":"2026-09-11 실제 게시 자료 조회 예시","description":"/v1/markets/JP/alerts?limit=20","value":{"data":{"country":"JP","items":[{"id":"eden_alert_bc651220f8e3594d91e1","type":"safety","title":"간사이 지역 호우 및 토사재해 관련 안전 유의[경보 해제]","title_original":"간사이 지역 호우 및 토사재해 관련 안전 유의[경보 해제]","language_original":"ko","summary":null,"language":"ko","requested_language":"ko","fallback":false,"translation_availability":{"availability":"available","reason":null},"summary_availability":{"availability":"unavailable","reason":"요청 언어의 검증된 요약이 없습니다."},"translation_model":null,"status":"active","published_at":"2026-09-09T00:00:00Z","source_country":"JP","source_type":"embassy","source_name":"주일본 대한민국 대사관","source_url":"https://overseas.mofa.go.kr/jp-ko/brd/m_26893/view.do?seq=1945804&page=1","updated_at":"2026-09-10T18:56:53Z"},{"id":"eden_alert_f488684d8e2f53eaa3bb","type":"safety","title":"도카이(東海) 지역 호우발생 가능성에 따른 안전 유의","title_original":"도카이(東海) 지역 호우발생 가능성에 따른 안전 유의","language_original":"ko","summary":null,"language":"ko","requested_language":"ko","fallback":false,"translation_availability":{"availability":"available","reason":null},"summary_availability":{"availability":"unavailable","reason":"요청 언어의 검증된 요약이 없습니다."},"translation_model":null,"status":"active","published_at":"2026-09-08T00:00:00Z","source_country":"JP","source_type":"embassy","source_name":"주일본 대한민국 대사관","source_url":"https://overseas.mofa.go.kr/jp-ko/brd/m_26893/view.do?seq=1945803&page=1","updated_at":"2026-09-10T18:56:53Z"},{"id":"eden_alert_629e880cfb735ee6a8cf","type":"safety","title":"도쿄도 이즈제도, 치바현, 이바라키현 폭우 관련 안전 공지","title_original":"도쿄도 이즈제도, 치바현, 이바라키현 폭우 관련 안전 공지","language_original":"ko","summary":null,"language":"ko","requested_language":"ko","fallback":false,"translation_availability":{"availability":"available","reason":null},"summary_availability":{"availability":"unavailable","reason":"요청 언어의 검증된 요약이 없습니다."},"translation_model":null,"status":"active","published_at":"2026-09-07T00:00:00Z","source_country":"JP","source_type":"embassy","source_name":"주일본 대한민국 대사관","source_url":"https://overseas.mofa.go.kr/jp-ko/brd/m_26893/view.do?seq=1945802&page=1","updated_at":"2026-09-10T18:56:53Z"},{"id":"eden_alert_351648162db8519da6f4","type":"safety","title":"동북지방 집중호우에 따른 안전공지 (아오모리현, 아키타현)","title_original":"동북지방 집중호우에 따른 안전공지 (아오모리현, 아키타현)","language_original":"ko","summary":null,"language":"ko","requested_language":"ko","fallback":false,"translation_availability":{"availability":"available","reason":null},"summary_availability":{"availability":"unavailable","reason":"요청 언어의 검증된 요약이 없습니다."},"translation_model":null,"status":"active","published_at":"2026-09-03T00:00:00Z","source_country":"JP","source_type":"embassy","source_name":"주일본 대한민국 대사관","source_url":"https://overseas.mofa.go.kr/jp-ko/brd/m_26893/view.do?seq=1945797&page=1","updated_at":"2026-09-10T18:56:53Z"},{"id":"eden_alert_9fe0cef9cfad59c4b592","type":"safety","title":"주나고야총영사관 관할지역 임시대피소 안내","title_original":"주나고야총영사관 관할지역 임시대피소 안내","language_original":"ko","summary":null,"language":"ko","requested_language":"ko","fallback":false,"translation_availability":{"availability":"available","reason":null},"summary_availability":{"availability":"unavailable","reason":"요청 언어의 검증된 요약이 없습니다."},"translation_model":null,"status":"active","published_at":"2026-09-01T00:00:00Z","source_country":"JP","source_type":"embassy","source_name":"주일본 대한민국 대사관","source_url":"https://overseas.mofa.go.kr/jp-ko/brd/m_26893/view.do?seq=1945792&page=1","updated_at":"2026-09-10T18:56:53Z"},{"id":"eden_alert_ce8a553f7a48553badde","type":"market_trend","title":"(일본)JTB 해외여행 리포트 2026를 통해 본 ‘가기 쉬운 한국’에서 ‘가고 싶은 한국’으로","title_original":"(일본)JTB 해외여행 리포트 2026를 통해 본‘가기 쉬운 한국’에서‘가고 싶은 한국’으로","language_original":"ko","summary":"도쿄지사가 2026-08-31에 게시한 이 안내는 JTB 해외여행 리포트 2026을 바탕으로 일본 아웃바운드 시장과 방한관광 시사점을 정리한다. 2025년 일본인 출국자 수는 1,473만 명으로 2019년의 73.4% 수준에 머물렀고, 방일외래객은 4,268만 명으로 2019년의 134.0%까지 증가해 인·아웃바운드 회복 격차가 커졌다. 해외여행 저해 요인으로는 높은 여행비용(54.9%), 치안 우려(54.0%), 언어 불안(44.4%)이 꼽혔으며, 엔저와 물가 상승, 높은 항공운임·유류할증료가 복합적으로 작용하고 있으나 엔저 자체에 대한 소비자 저항감은 다소 완화되는 양상이다. 한국은 일본 아웃바운드 회복에서 예외적인 시장으로, 한국 노선 항공좌석은 2019년 대비 129%까지 회복되었고 2025년 방한 일본인 수는 약 365만 명으로 최근 20년간 최대를 기록했으나, 희망 목적지 순위에서는 하와이(52.3%), 이탈리아(39.1%), 프랑스(34.6%), 호주(34.2%), 대만(33.0%)에 이어 6위(31.4%)에 머물렀다. 방한시장은 여성, 특히 2030 여성 비중이 30~40%로 시장을 이끌지만 최근 1030 남성 수요가 늘어 성별 집중이 완화되는 특징이 있다. 여행 경향은 목적지보다 여행 방식을 중시하는 Whycation으로 확대되고 있으며, 주요 목적은 자연풍경 감상(47.3%), 현지 음식 경험(38.7%), 휴양·휴식(34.7%) 순이다. 또한 모험보다 안심을 중시하는 경향이 강해, 예상외의 일을 피하고 예측 가능한 여행을 선호하며, 비일상의 의미도 완전히 다른 모험보다 익숙한 카페·거리 등을 통해 ‘평소와 조금 다른 일상(異日常)’을 즐기는 방향으로 변화하고 있다. Z세대 등 젊은층의 해외여행 의향은 높지만 실제 출국은 제한적이며, 해외여행을 2~3년에 1회 이상 간다는 응답은 2016년 14.7%에서 2026년 8.1%로 약 절반 감소했다. JTB는 회복 지연 요인으로 단카이세대(1947~1949년생)의 고령화, 가족층의 비용 부담, 젊은층의 가치관 변화, 아웃바운드용 항공좌석 부족을 제시하며, Safe·Secure·Stress-free와 일정 유연성, 학교 휴가제도 개선 등 가족여행 제약 완화, 성수기·주요 공항 중심에서 계절·지역별 잠재수요 발굴이 필요하다고 본다. 방한관광 마케팅 측면에서는 ‘가깝고 쉽게 갈 수 있는 곳’에서 ‘일부러 선택하는 곳’으로 가치를 확장하고, 장기휴가 시 하와이·유럽과 달리 제주·강릉 등 해양·자연·미식·카페·웰니스를 결합한 가까운 휴양 포지셔닝, 가족여행을 신규 성장축으로 육성, Z세대에는 異日常과 실패 없는 여행 이미지 강화, 서울·쇼핑 중심 반복방문을 지역·체험 중심으로 확장, 여름 해양·고원·야간관광, 겨울 미식·온천·설경, 봄·가을 지역축제·트레킹 등 계절별 여행동기 개발과 골든위크 직후 5월병 연계 재충전 여행 등 비수기 재해석이 제안된다.","language":"ko","requested_language":"ko","fallback":false,"translation_availability":{"availability":"available","reason":null},"summary_availability":{"availability":"available","reason":null},"translation_model":"solar-pro4","status":"active","published_at":"2026-08-31T16:25:00Z","source_country":"JP","source_type":"tourism_board","source_name":"한국관광공사 관광데이터랩","source_url":"https://datalab.visitkorea.or.kr/site/portal/ex/bbs/View.do?cbIdx=1602&cbIdx2=1132&bcIdx=311190&pageIndex=1&tgtTypeCd=&searchKey=&searchKey1=&searchKey2=&searchKey3=","updated_at":"2026-09-10T16:49:05Z"},{"id":"eden_alert_5ae4f10ec04c545bb72b","type":"entry","title":"출입국사실증명 발급 안내 — 주일본 대한민국 대사관","title_original":"출입국사실증명 안내","language_original":"und","summary":"출입국사실증명 발급 안내 — 주일본 대한민국 대사관. 신청 대상: 한국 국적자만 신청 가능하며, 일본 내 재류자격이 있는 사람만 신청할 수 있습니다(외국 국적자는 불가). 재류자격이 없는 경우(관광비자 입국, 불법체류 등)에는 발급되지 않습니다. 공통 구비서류: 출입국사실증명 발급신청서 1부(영사관 비치), 한국 여권 원본(영사관 조회가 가능한 신분증은 여권이며 유효한 여권 필요). 수수료: 1건당 260엔. 소요시간: 즉시 발급(접수 순서대로 발급하므로 대기시간이 있을 수 있음). 참고사항: 우편접수는 시행하지 않습니다. 한국 여권의 출입국 기록 조회 및 발급만 가능합니다. 위임을 받은 사람도 발급 가능하며, 이 경우 본인의 위임장과 여권, 대리인의 여권이 필요합니다. 위임장은 위임자가 서식 하단 위임장란을 작성해야 하며, 서명란은 위임자의 여권상 서명과 일치해야 하므로 여권에 사인이 없는 경우 여권에 사인이 필요합니다. 미성년자는 친권자가 신청해야 하며, 가족관계증명서(주민번호 13자리 표기본) 1부와 부 또는 모의 여권이 필요합니다(위임장란 작성 불요). 조회 결과 입국-입국, 출국-출국으로 나타나는 경우 당 영사관에서는 발급이 불가하며, 담당부서(인천공항출입국 관리사무소, 032-740-7391)로 연락·문의해야 합니다. 주소: 東京都港区南麻布1-2-5(우편번호 106-0047). 전화: +81-3-3455-2601(영사, 근무시간), +81-3-3452-7611/9(대표). 업무시간: 대사관(월-금) 09:00~18:00, 점심시간 12:00~13:15; 영사과(월-금) 09:00~17:00, 민원창구 휴게시간 12:00~13:30. 긴급연락처(사건사고 등 긴급상황, 휴일·평일 18:00 이후): +81-70-2153-5454.","language":"ko","requested_language":"ko","fallback":false,"translation_availability":{"availability":"available","reason":null},"summary_availability":{"availability":"available","reason":null},"translation_model":"solar-pro4","status":"active","published_at":"2015-11-04T00:00:00Z","source_country":"JP","source_type":"embassy","source_name":"주일본 대한민국 대사관","source_url":"https://overseas.mofa.go.kr/jp-ko/wpge/m_1163/contents.do","updated_at":"2026-08-10T16:58:16Z"},{"id":"eden_alert_c4ceb542827e5c4e920e","type":"visa","title":"K-ETA 상담센터 휴무 안내 (2026.08.17.(월))","title_original":"■ K-ETA 상담센터 휴무 안내 (2026.08.17.(월)) ■","language_original":"und","summary":"K-ETA 상담센터 휴무 안내 (2026.08.17.(월) / 광복절 대체공휴일): 2026년 8월 17일 K-ETA 상담 업무가 한시적으로 중단됩니다. 해당 기간에도 K-ETA 심사는 정상적으로 진행됩니다. 문의 사항 접수는 가능하나, 답변은 2026년 8월 18일(화)부터 순차적으로 받아보실 수 있습니다.","language":"ko","requested_language":"ko","fallback":false,"translation_availability":{"availability":"available","reason":null},"summary_availability":{"availability":"available","reason":null},"translation_model":"solar-pro4","status":"active","published_at":"2026-08-06T15:00:00Z","source_country":"JP","source_type":"immigration","source_name":"대한민국 법무부 K-ETA","source_url":"https://www.k-eta.go.kr/portal/board/viewboarddetail.do?bbsSn=320937&esntlPnotiMtYn=Y","updated_at":"2026-08-10T16:13:18Z"}]},"meta":{"request_id":"4e714efc-e93b-45a5-ad60-66a242581553","generated_at":"2026-09-11T12:06:22.640175+09:00","as_of":"2026-09-11T03:56:53+09:00","timezone":"Asia/Seoul","spatial_resolution":"country","stale":true,"freshness":{"status":"stale","age_seconds":29369,"max_acceptable_age_seconds":10800},"availability":"available","reason":null,"formula_versions":{},"sources":[{"source_id":"SRC_EMBASSY_NOTICE","status":"available","data_as_of":"2026-09-09T00:00:00Z","last_success_at":"2026-09-10T18:56:53Z","last_checked_at":"2026-09-10T18:56:53Z","stale":false,"reason":null},{"source_id":"SRC_KETA","status":"available","data_as_of":"2026-09-10T22:37:34Z","last_success_at":"2026-09-10T22:37:37Z","last_checked_at":"2026-09-10T22:37:37Z","stale":false,"reason":null},{"source_id":"SRC_KTO_MARKET_TREND","status":"available","data_as_of":"2026-08-31T19:17:00Z","last_success_at":"2026-09-10T22:13:41Z","last_checked_at":"2026-09-10T22:13:41Z","stale":false,"reason":null}]}}},"unavailable":{"summary":"자료 부족 시 구조 예시","description":"수치나 관측을 채우지 않은 unavailable 응답의 구조 예시입니다.","value":{"data":null,"meta":{"request_id":"example-unavailable","generated_at":"2026-09-11T12:00:00+09:00","as_of":null,"timezone":"Asia/Seoul","spatial_resolution":"none","stale":false,"freshness":{"status":"unavailable","age_seconds":null,"max_acceptable_age_seconds":null},"availability":"unavailable","reason":"요청 조건에 게시된 자료가 없습니다.","formula_versions":{},"sources":[]}}}}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Request body too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Request validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"호출 제한. 프록시 본문은 JSON이 아닐 수 있습니다.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"게이트웨이 오류. 본문은 JSON이 아닐 수 있습니다."},"503":{"description":"일시적 서비스 제한","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"504":{"description":"게이트웨이 시간 초과. 본문은 JSON이 아닐 수 있습니다."},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/recommendations/destinations":{"post":{"tags":["recommendations"],"summary":"여행 조건별 목적지 추천","description":"게시된 데이터에서 목적지를 추천하는 읽기 전용 POST입니다. 데이터 수집이나 LLM 호출을 유발하지 않습니다. 예산과 접근성 등 근거가 부족한 조건은 충족된 것으로 추정하지 않으며 응답의 가용성과 사유를 확인해야 합니다.","operationId":"recommend_destinations_v1_recommendations_destinations_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecommendationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope_RecommendationsData_"},"examples":{"observed":{"summary":"2026-09-11 실제 게시 자료 조회 예시","description":"/v1/recommendations/destinations","value":{"data":{"recommendations":[{"rank":1,"score":88.0,"region":{"area_code":"2812500000","eden_area_id":"eden_area_159a13682c965e30aa19","name":"제물포구"},"place":{"content_id":"eden_place_3a3ebecb1d645f268db2","title":"쓰라린 아픔을 견뎌내고 문화가 된 역사를 기억하는 여행","location":{"lat":37.4728825,"lng":126.6209923}},"estimated_budget_krw":null,"budget_availability":{"availability":"unavailable","reason":"검증된 관광지별 예산 원천이 없습니다."},"crowd_index":null,"related_places":[],"reasons":["요청한 테마와 관광지 분류가 일치합니다."],"sources":["SRC_TOUR_KO"],"formula_version":"recommendation_score_v1"},{"rank":2,"score":80.5853,"region":{"area_code":"5011000000","eden_area_id":"eden_area_19dd56856c83593f80f2","name":"제주시"},"place":{"content_id":"eden_place_1e6c2d9214b359edbd4b","title":"2025 제주 반려동물 문화산업 한마당","location":{"lat":33.4918757,"lng":126.5238622}},"estimated_budget_krw":null,"budget_availability":{"availability":"unavailable","reason":"검증된 관광지별 예산 원천이 없습니다."},"crowd_index":null,"related_places":[],"reasons":["요청한 테마와 관광지 분류가 일치합니다.","공식 지역 수요 지수를 반영했습니다."],"sources":["SRC_KTO_DEMAND_INTENSITY","SRC_TOUR_KO"],"formula_version":"recommendation_score_v1"},{"rank":3,"score":78.4624,"region":{"area_code":"5013000000","eden_area_id":"eden_area_cb9a47435cd454bb9795","name":"서귀포시"},"place":{"content_id":"eden_place_00dd0af88fe4583bb523","title":"서귀포천문과학문화관","location":{"lat":33.2888777,"lng":126.4604112}},"estimated_budget_krw":null,"budget_availability":{"availability":"unavailable","reason":"검증된 관광지별 예산 원천이 없습니다."},"crowd_index":null,"related_places":[],"reasons":["요청한 테마와 관광지 분류가 일치합니다.","공식 지역 수요 지수를 반영했습니다."],"sources":["SRC_KTO_DEMAND_INTENSITY","SRC_TOUR_KO"],"formula_version":"recommendation_score_v1"},{"rank":4,"score":78.4624,"region":{"area_code":"5013000000","eden_area_id":"eden_area_cb9a47435cd454bb9795","name":"서귀포시"},"place":{"content_id":"eden_place_048b8368b09051849ffd","title":"2026 서귀포 원도심 문화페스티벌","location":{"lat":33.2470808,"lng":126.5644589}},"estimated_budget_krw":null,"budget_availability":{"availability":"unavailable","reason":"검증된 관광지별 예산 원천이 없습니다."},"crowd_index":null,"related_places":[],"reasons":["요청한 테마와 관광지 분류가 일치합니다.","공식 지역 수요 지수를 반영했습니다."],"sources":["SRC_KTO_DEMAND_INTENSITY","SRC_TOUR_KO"],"formula_version":"recommendation_score_v1"},{"rank":5,"score":72.8716,"region":{"area_code":"1111000000","eden_area_id":"eden_area_8ea219a62fbd52138725","name":"종로구"},"place":{"content_id":"eden_place_0017794b4e3d50f8851b","title":"경희궁","location":{"lat":37.5703879,"lng":126.9684918}},"estimated_budget_krw":null,"budget_availability":{"availability":"unavailable","reason":"검증된 관광지별 예산 원천이 없습니다."},"crowd_index":null,"related_places":[],"reasons":["요청한 테마와 관광지 분류가 일치합니다.","공식 지역 수요 지수를 반영했습니다."],"sources":["SRC_KTO_DEMAND_INTENSITY","SRC_TOUR_KO"],"formula_version":"recommendation_score_v1"}],"applied_constraints":{"target_country":"JP","themes":["culture"]},"unapplied_inputs":[{"field":"travel_window.season","value":"autumn","reason":"계절별 관측에 근거한 혼잡도 회피 순위를 적용하지 않았습니다."}]},"meta":{"request_id":"7d48310c-9930-43ea-882f-8dec88ce9afe","generated_at":"2026-09-11T12:06:22.670432+09:00","as_of":"2026-07-01T09:00:00+09:00","timezone":"Asia/Seoul","spatial_resolution":"place","stale":true,"freshness":{"status":"stale","age_seconds":6231982,"max_acceptable_age_seconds":259200},"availability":"partial","reason":"관광지별 검증 예산 원천이 없어 예산 값은 제공하지 않습니다.","formula_versions":{"crowd_index":"crowd_index_v1","recommendation_score":"recommendation_score_v1"},"sources":[{"source_id":"SRC_KTO_DEMAND_INTENSITY","status":"stale","data_as_of":"2026-07-01T00:00:00Z","last_success_at":"2026-09-10T09:52:23Z","last_checked_at":"2026-09-10T09:52:23Z","stale":true,"reason":"data_age_exceeded: 원천 데이터가 freshness 기준을 초과했습니다."},{"source_id":"SRC_KTO_PLACE_RELATED","status":"stale","data_as_of":"2026-07-01T00:00:00Z","last_success_at":"2026-09-10T12:32:05Z","last_checked_at":"2026-09-10T12:32:05Z","stale":true,"reason":"data_age_exceeded: 원천 데이터가 freshness 기준을 초과했습니다."},{"source_id":"SRC_KTO_REGIONAL_VISITORS","status":"available","data_as_of":"2026-08-11T00:00:00Z","last_success_at":"2026-09-10T16:49:44Z","last_checked_at":"2026-09-10T16:49:44Z","stale":false,"reason":null},{"source_id":"SRC_TOUR_KO","status":"degraded","data_as_of":"2026-09-09T13:26:56Z","last_success_at":"2026-09-10T15:01:12Z","last_checked_at":"2026-09-10T15:01:12Z","stale":false,"reason":"일부 operation 또는 page 수집 실패"}]}}},"unavailable":{"summary":"자료 부족 시 구조 예시","description":"수치나 관측을 채우지 않은 unavailable 응답의 구조 예시입니다.","value":{"data":null,"meta":{"request_id":"example-unavailable","generated_at":"2026-09-11T12:00:00+09:00","as_of":null,"timezone":"Asia/Seoul","spatial_resolution":"none","stale":false,"freshness":{"status":"unavailable","age_seconds":null,"max_acceptable_age_seconds":null},"availability":"unavailable","reason":"요청 조건에 게시된 자료가 없습니다.","formula_versions":{},"sources":[]}}}}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Request body too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Request validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"호출 제한. 프록시 본문은 JSON이 아닐 수 있습니다.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"게이트웨이 오류. 본문은 JSON이 아닐 수 있습니다."},"503":{"description":"일시적 서비스 제한","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"504":{"description":"게이트웨이 시간 초과. 본문은 JSON이 아닐 수 있습니다."},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"schemas":{"AlertItem":{"properties":{"id":{"type":"string","title":"Id","description":"공지 고유 ID. 수정본은 같은 ID를 사용."},"type":{"type":"string","enum":["visa","entry","safety","travel","market_trend"],"title":"Type","description":"공지 유형 또는 요청한 기간 비교 유형."},"title":{"type":"string","title":"Title","description":"실제로 반환한 언어의 콘텐츠 제목."},"title_original":{"type":"string","title":"Title Original","description":"공지 원문의 제목. 번역 여부와 무관하게 제공."},"language_original":{"type":"string","enum":["ko","en","ja","zh-CN","zh-TW","und"],"title":"Language Original","description":"공지 원문의 실제 언어 코드."},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary","description":"방문 집계 요약 또는 공지의 보유 요약. 없는 요약을 생성해 채우지 않음."},"language":{"type":"string","enum":["ko","en","ja","zh-CN","zh-TW","und"],"title":"Language","description":"반환 콘텐츠의 실제 언어 코드."},"requested_language":{"type":"string","enum":["ko","en"],"title":"Requested Language","description":"클라이언트가 요청한 언어 코드. 실제 language와 비교."},"fallback":{"type":"boolean","title":"Fallback","description":"요청 언어와 실제 반환 언어가 다르면 true."},"translation_availability":{"$ref":"#/components/schemas/BlockAvailability","description":"요청 언어 번역 제공 여부. 불가여도 원문은 제공 가능."},"summary_availability":{"$ref":"#/components/schemas/BlockAvailability","description":"공지 요약의 제공 가능 여부."},"translation_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Translation Model","description":"보유 번역과 요약을 생성한 모델. 미생성 시 null."},"status":{"type":"string","enum":["active","inactive"],"title":"Status","description":"원천 수집 상태 또는 최신성 상태. 공지에서는 가용성의 상태 값."},"published_at":{"type":"string","format":"date-time","title":"Published At","description":"공지의 원문 발표 시각. 수집 시각과 구분."},"source_country":{"type":"string","pattern":"^[A-Za-z]{2}$","title":"Source Country","description":"공식 공지 발행기관이 속한 국가 코드. 대상 시장과 구분."},"source_type":{"type":"string","enum":["embassy","tourism_board","immigration","foreign_affairs"],"title":"Source Type","description":"공식 발행기관의 유형."},"source_name":{"type":"string","title":"Source Name","description":"공식 공지 발행기관 이름."},"source_url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Source Url","description":"원문을 직접 확인할 수 있는 URL."},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"공지 현재 수정본의 갱신 시각."}},"additionalProperties":false,"type":"object","required":["id","type","title","title_original","language_original","language","requested_language","fallback","translation_availability","summary_availability","status","published_at","source_country","source_type","source_name","source_url","updated_at"],"title":"AlertItem"},"AlertsData":{"properties":{"country":{"type":"string","pattern":"^[A-Za-z]{2}$","title":"Country","description":"시장 ISO alpha-2 코드. 트렌드 all은 수집 시장 전체."},"items":{"items":{"$ref":"#/components/schemas/AlertItem"},"type":"array","title":"Items","description":"필터와 정렬을 적용한 실제 공지 목록. 없으면 빈 목록."}},"additionalProperties":false,"type":"object","required":["country","items"],"title":"AlertsData"},"AreaSummary":{"properties":{"area_code":{"type":"string","title":"Area Code","description":"행정구역 코드. 요청 시에는 EDEN 지역 ID도 허용."},"eden_area_id":{"type":"string","title":"Eden Area Id","description":"행정구역의 EDEN 고유 ID."},"name":{"type":"string","title":"Name","description":"해당 원천에서 확인한 지역 또는 장소 이름."},"spatial_resolution":{"type":"string","title":"Spatial Resolution","description":"실제 자료의 공간 단위. 요청 지역보다 넓을 수 있음."}},"additionalProperties":false,"type":"object","required":["area_code","eden_area_id","name","spatial_resolution"],"title":"AreaSummary"},"Availability":{"type":"string","enum":["available","partial","unavailable"],"title":"Availability"},"BasisPeriod":{"properties":{"start":{"type":"string","format":"date","title":"Start","description":"관측 또는 계산 구간의 시작 날짜. 경계 포함."},"end":{"type":"string","format":"date","title":"End","description":"관측 또는 계산 구간의 마지막 날짜. 경계 포함."}},"additionalProperties":false,"type":"object","required":["start","end"],"title":"BasisPeriod"},"BlockAvailability":{"properties":{"availability":{"$ref":"#/components/schemas/Availability","description":"available은 제공 가능, partial은 일부 제공, unavailable은 제공 불가."},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"자료 부족 또는 미지원이나 미적용의 구체적인 사유. 정상 제공이면 null."}},"additionalProperties":false,"type":"object","required":["availability"],"title":"BlockAvailability"},"Comparison":{"properties":{"type":{"type":"string","enum":["previous_period","previous_year"],"title":"Type","description":"공지 유형 또는 요청한 기간 비교 유형."},"baseline_start":{"type":"string","format":"date","title":"Baseline Start","description":"비교 관측 창 시작 날짜. 경계 포함."},"baseline_end":{"type":"string","format":"date","title":"Baseline End","description":"비교 관측 창 마지막 날짜. 경계 포함."},"change_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Change Rate","description":"이전 비교 구간 대비 변화율(%). 기준값 0 또는 비교 관측 부족 시 null."}},"additionalProperties":false,"type":"object","required":["type","baseline_start","baseline_end"],"title":"Comparison"},"DemandSummary":{"properties":{"data_period":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Period","description":"해당 월간 지표의 최신 관측 월(YYYY-MM). 일별 조회 기간과 독립적입니다."},"stay_index":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Stay Index","description":"공식 원천의 관광 체류 지수(0~100). 없으면 null."},"spend_index":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Spend Index","description":"공식 원천의 관광 지출 지수(0~100). 없으면 null."},"avg_stay_nights":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Avg Stay Nights","description":"공식 관측의 평균 숙박일 수(박). 원천이 없으면 null."},"availability":{"$ref":"#/components/schemas/Availability","description":"available은 제공 가능, partial은 일부 제공, unavailable은 제공 불가."},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"자료 부족 또는 미지원이나 미적용의 구체적인 사유. 정상 제공이면 null."}},"additionalProperties":false,"type":"object","required":["availability"],"title":"DemandSummary"},"DiversitySummary":{"properties":{"data_period":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Period","description":"해당 월간 지표의 최신 관측 월(YYYY-MM). 일별 조회 기간과 독립적입니다."},"age_index":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Age Index","description":"공식 원천의 연령 다양성 지수(0~100). 원천이 없으면 null."},"nationality_index":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Nationality Index","description":"공식 국적 다양성 지수(0~100). 원천이 없으면 null."},"availability":{"$ref":"#/components/schemas/Availability","description":"available은 제공 가능, partial은 일부 제공, unavailable은 제공 불가."},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"자료 부족 또는 미지원이나 미적용의 구체적인 사유. 정상 제공이면 null."}},"additionalProperties":false,"type":"object","required":["availability"],"title":"DiversitySummary"},"Envelope_AlertsData_":{"properties":{"data":{"anyOf":[{"$ref":"#/components/schemas/AlertsData"},{"type":"null"}],"description":"선택한 API의 결과. 핵심 자료를 제공할 수 없으면 null일 수 있음."},"meta":{"$ref":"#/components/schemas/Meta","description":"가용성과 최신성 및 출처와 요청 추적 정보."}},"additionalProperties":false,"type":"object","required":["data","meta"],"title":"Envelope[AlertsData]"},"Envelope_InboundData_":{"properties":{"data":{"anyOf":[{"$ref":"#/components/schemas/InboundData"},{"type":"null"}],"description":"선택한 API의 결과. 핵심 자료를 제공할 수 없으면 null일 수 있음."},"meta":{"$ref":"#/components/schemas/Meta","description":"가용성과 최신성 및 출처와 요청 추적 정보."}},"additionalProperties":false,"type":"object","required":["data","meta"],"title":"Envelope[InboundData]"},"Envelope_PlaceData_":{"properties":{"data":{"anyOf":[{"$ref":"#/components/schemas/PlaceData"},{"type":"null"}],"description":"선택한 API의 결과. 핵심 자료를 제공할 수 없으면 null일 수 있음."},"meta":{"$ref":"#/components/schemas/Meta","description":"가용성과 최신성 및 출처와 요청 추적 정보."}},"additionalProperties":false,"type":"object","required":["data","meta"],"title":"Envelope[PlaceData]"},"Envelope_RecommendationsData_":{"properties":{"data":{"anyOf":[{"$ref":"#/components/schemas/RecommendationsData"},{"type":"null"}],"description":"선택한 API의 결과. 핵심 자료를 제공할 수 없으면 null일 수 있음."},"meta":{"$ref":"#/components/schemas/Meta","description":"가용성과 최신성 및 출처와 요청 추적 정보."}},"additionalProperties":false,"type":"object","required":["data","meta"],"title":"Envelope[RecommendationsData]"},"Envelope_RegionInsightData_":{"properties":{"data":{"anyOf":[{"$ref":"#/components/schemas/RegionInsightData"},{"type":"null"}],"description":"선택한 API의 결과. 핵심 자료를 제공할 수 없으면 null일 수 있음."},"meta":{"$ref":"#/components/schemas/Meta","description":"가용성과 최신성 및 출처와 요청 추적 정보."}},"additionalProperties":false,"type":"object","required":["data","meta"],"title":"Envelope[RegionInsightData]"},"Envelope_TrendData_":{"properties":{"data":{"anyOf":[{"$ref":"#/components/schemas/TrendData"},{"type":"null"}],"description":"선택한 API의 결과. 핵심 자료를 제공할 수 없으면 null일 수 있음."},"meta":{"$ref":"#/components/schemas/Meta","description":"가용성과 최신성 및 출처와 요청 추적 정보."}},"additionalProperties":false,"type":"object","required":["data","meta"],"title":"Envelope[TrendData]"},"Envelope_VisitorForecastData_":{"properties":{"data":{"anyOf":[{"$ref":"#/components/schemas/VisitorForecastData"},{"type":"null"}],"description":"선택한 API의 결과. 핵심 자료를 제공할 수 없으면 null일 수 있음."},"meta":{"$ref":"#/components/schemas/Meta","description":"가용성과 최신성 및 출처와 요청 추적 정보."}},"additionalProperties":false,"type":"object","required":["data","meta"],"title":"Envelope[VisitorForecastData]"},"Envelope_VisitorTimeseriesData_":{"properties":{"data":{"anyOf":[{"$ref":"#/components/schemas/VisitorTimeseriesData"},{"type":"null"}],"description":"선택한 API의 결과. 핵심 자료를 제공할 수 없으면 null일 수 있음."},"meta":{"$ref":"#/components/schemas/Meta","description":"가용성과 최신성 및 출처와 요청 추적 정보."}},"additionalProperties":false,"type":"object","required":["data","meta"],"title":"Envelope[VisitorTimeseriesData]"},"ErrorDetail":{"properties":{"code":{"type":"string","title":"Code","description":"클라이언트가 오류를 구별하는 안정된 오류 코드."},"message":{"type":"string","title":"Message","description":"사람이 읽을 수 있는 오류 설명."},"details":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Details","description":"오류 필드 위치와 사유. 부가 정보가 없으면 null."}},"additionalProperties":false,"type":"object","required":["code","message"],"title":"ErrorDetail"},"ErrorResponse":{"properties":{"request_id":{"type":"string","title":"Request Id","description":"요청 추적 ID. X-Request-ID 응답 헤더와 같음."},"error":{"$ref":"#/components/schemas/ErrorDetail","description":"실패 코드와 메시지 및 입력 오류 정보."}},"additionalProperties":false,"type":"object","required":["request_id","error"],"title":"ErrorResponse"},"FlightRoute":{"properties":{"origin":{"type":"string","title":"Origin","description":"항공편의 출발 공항 또는 노선 출발지 원천 코드."},"destination":{"type":"string","title":"Destination","description":"항공편의 도착 공항 또는 노선 목적지 원천 코드."},"flights":{"type":"integer","minimum":0.0,"title":"Flights","description":"해당 기간 또는 노선의 운항편 수. 미수집 집계는 null."}},"additionalProperties":false,"type":"object","required":["origin","destination","flights"],"title":"FlightRoute"},"FlightSchedule":{"properties":{"forecast_days":{"type":"integer","maximum":7.0,"minimum":1.0,"title":"Forecast Days","description":"항공 일정 집계 일수. 기본 7, 최소 1, 최대 7."},"flights":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Flights","description":"해당 기간 또는 노선의 운항편 수. 미수집 집계는 null."},"change_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Change Rate","description":"이전 비교 구간 대비 변화율(%). 기준값 0 또는 비교 관측 부족 시 null."},"major_routes":{"items":{"$ref":"#/components/schemas/FlightRoute"},"type":"array","title":"Major Routes","description":"기간 내 운항편 수 상위 주요 노선. 최대 10개."},"availability":{"$ref":"#/components/schemas/Availability","description":"available은 제공 가능, partial은 일부 제공, unavailable은 제공 불가."},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"자료 부족 또는 미지원이나 미적용의 구체적인 사유. 정상 제공이면 null."}},"additionalProperties":false,"type":"object","required":["forecast_days","major_routes","availability"],"title":"FlightSchedule"},"ForecastDay":{"properties":{"date":{"type":"string","format":"date","title":"Date","description":"Asia/Seoul 기준 전망 대상 날짜."},"source_concentration_rate":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Source Concentration Rate","description":"공식 전망 원천의 집중률(%). 미보유 시 null."},"demand_score":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Demand Score","description":"0~100 참고 수요 지수. 역사적 요일 중앙값의 동률 중간 순위 백분위 또는 공식 지표."},"expected_visitors":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Expected Visitors","description":"공식 원천이 제공한 예상 인원. 참고 지수로 인원을 만들지 않으며 없으면 null."},"confidence":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Confidence","description":"검증된 신뢰도만 허용합니다. 현재 참고 전망에서는 null."},"weather":{"anyOf":[{"$ref":"#/components/schemas/Weather"},{"type":"null"}],"description":"실제로 제공되는 구간의 기상 참고 정보. 없으면 null."},"festivals":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Festivals","description":"실제 원천의 해당 구간 행사 참고 정보. 전망 인원 보정에 사용하지 않음."},"holiday":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Holiday","description":"공식 공휴일 참고 정보. 미보유 시 null 또는 빈 목록."},"adjustment_factors":{"additionalProperties":{"type":"number"},"type":"object","title":"Adjustment Factors","description":"현재 전망은 임의의 날씨 및 행사 보정을 하지 않으므로 빈 객체."},"method":{"anyOf":[{"type":"string","enum":["official","historical_weekday_proxy"]},{"type":"null"}],"title":"Method","description":"official은 공식 전망. historical_weekday_proxy는 방문 관측에 기반한 참고 지수."},"basis_period":{"anyOf":[{"$ref":"#/components/schemas/BasisPeriod"},{"type":"null"}],"description":"계산 또는 조회에 사용한 실제 관측 구간. start와 end 경계를 포함합니다."},"sample_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Sample Count","description":"참고 전망의 분포에 사용한 유효 일별 관측 수. 같은 날짜는 한 번 셉니다."},"basis":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Basis","description":"같은 요일 표본 수와 전체 중앙값 대체 여부 및 장기 연장 설명."},"availability":{"$ref":"#/components/schemas/Availability","description":"available은 제공 가능, partial은 일부 제공, unavailable은 제공 불가."},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"자료 부족 또는 미지원이나 미적용의 구체적인 사유. 정상 제공이면 null."}},"additionalProperties":false,"type":"object","required":["date","availability"],"title":"ForecastDay"},"Freshness":{"properties":{"status":{"type":"string","enum":["fresh","stale","unavailable"],"title":"Status","description":"원천 수집 상태 또는 최신성 상태. 공지에서는 가용성의 상태 값."},"age_seconds":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Age Seconds","description":"응답 생성 시각에서 자료 기준 시각까지 지난 초. 기준일이 없으면 null."},"max_acceptable_age_seconds":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Max Acceptable Age Seconds","description":"발표 주기를 반영한 허용 자료 수명(초). 미정이면 null."}},"additionalProperties":false,"type":"object","required":["status"],"title":"Freshness"},"FxData":{"properties":{"currency":{"type":"string","pattern":"^[A-Za-z]{3}$","title":"Currency","description":"ISO 4217 통화 코드."},"krw_rate":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Krw Rate","description":"외화 1단위당 원화(KRW). 검증된 환율 관측이 없으면 null."},"change_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Change Rate","description":"이전 비교 구간 대비 변화율(%). 기준값 0 또는 비교 관측 부족 시 null."},"rate_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Rate Date","description":"적용한 환율의 관측 날짜. 미보유 시 null."},"source_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Id","description":"EDEN 원천 레지스트리의 식별자."},"availability":{"$ref":"#/components/schemas/Availability","description":"available은 제공 가능, partial은 일부 제공, unavailable은 제공 불가."},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"자료 부족 또는 미지원이나 미적용의 구체적인 사유. 정상 제공이면 null."}},"additionalProperties":false,"type":"object","required":["currency","availability"],"title":"FxData"},"HubInfo":{"properties":{"is_hub":{"type":"boolean","title":"Is Hub","description":"관광거점 공식 원천에서 거점으로 분류했는지 여부."},"rank":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Rank","description":"원천 거점 순위 또는 추천 결과 내 순위. 1부터 시작."},"score_as_of":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Score As Of","description":"거점 또는 관계 점수의 원천 기준 시각. 미보유 시 null."}},"additionalProperties":false,"type":"object","required":["is_hub"],"title":"HubInfo"},"InboundData":{"properties":{"period":{"type":"string","enum":["3m","6m","12m","24m"],"title":"Period","description":"최신 확보 관측을 끝점으로 하는 조회 기간."},"markets":{"items":{"$ref":"#/components/schemas/InboundMarket"},"type":"array","title":"Markets","description":"선택한 국가별 방한시장 정보."}},"additionalProperties":false,"type":"object","required":["period","markets"],"title":"InboundData"},"InboundMarket":{"properties":{"country":{"type":"string","pattern":"^[A-Za-z]{2}$","title":"Country","description":"시장 ISO alpha-2 코드. 트렌드 all은 수집 시장 전체."},"visitors":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Visitors","description":"방문 관측(연인원) 또는 지역 방문 블록. 보조 자료 미선택 시 null."},"visitor_change_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Visitor Change Rate","description":"전기 대비 방문 지표 변화율(%). 비교 관측 부족 시 null."},"arriving_flights":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Arriving Flights","description":"해당 국가에서 도착하는 운항편 수. 여객 수와 다른 지표입니다."},"passengers":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Passengers","description":"원천이 제공한 항공 여객 수(명). 항공편 수를 대입하지 않으며 없으면 null."},"flight_schedule":{"anyOf":[{"$ref":"#/components/schemas/FlightSchedule"},{"type":"null"}],"description":"요청한 향후 1~7일의 항공 일정 집계. 미선택 시 null."},"fx":{"anyOf":[{"$ref":"#/components/schemas/FxData"},{"type":"null"}],"description":"해당 시장 통화의 환율 블록. 미선택 시 null."},"tourism_balance_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tourism Balance Usd","description":"한국 전체의 월간 일반여행 수지(USD). 해당 국가와의 양자 수지가 아닙니다."},"tourism_balance_scope":{"anyOf":[{"type":"string","const":"KR_total"},{"type":"null"}],"title":"Tourism Balance Scope","description":"관광수지 적용 범위. 국가별 양자 수지가 아닌 한국 전체."},"tourism_balance_period":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}$"},{"type":"null"}],"title":"Tourism Balance Period","description":"한국 전체 관광수지의 최신 관측 월(YYYY-MM). 없으면 null."},"social_interest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/SocialInterest"},"type":"object"},{"type":"null"}],"title":"Social Interest","description":"수집 SNS 표본의 참고 관심도. 미선택 시 null."},"source_availability":{"additionalProperties":{"$ref":"#/components/schemas/BlockAvailability"},"type":"object","title":"Source Availability","description":"선택한 원천별 제공 가능 여부와 사유."},"inbound_score":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Inbound Score","description":"관측에 기반한 방한시장 비교 지수(0~100). 근거 부족 시 null."},"sources":{"items":{"$ref":"#/components/schemas/SourceMeta"},"type":"array","title":"Sources","description":"실제 사용한 출처 ID 또는 원천별 최신성 정보 목록."}},"additionalProperties":false,"type":"object","required":["country","source_availability","sources"],"title":"InboundMarket"},"Location":{"properties":{"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat","description":"WGS84 위도(도). 미보유 시 null."},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng","description":"WGS84 경도(도). 미보유 시 null."}},"additionalProperties":false,"type":"object","required":["lat","lng"],"title":"Location"},"Meta":{"properties":{"request_id":{"type":"string","title":"Request Id","description":"요청 추적 ID. X-Request-ID 응답 헤더와 같음."},"generated_at":{"type":"string","format":"date-time","title":"Generated At","description":"현재 응답 또는 번역을 생성한 시각. 원천 관측 시각이 아닙니다."},"as_of":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"As Of","description":"선택한 게시 자료의 기준 시각. 원천마다 실제 관측 시점이 다릅니다."},"timezone":{"type":"string","title":"Timezone","default":"Asia/Seoul","description":"날짜 해석 기본 시간대. Asia/Seoul."},"spatial_resolution":{"$ref":"#/components/schemas/SpatialResolution","default":"none","description":"실제 자료의 공간 단위. 요청 지역보다 넓을 수 있음."},"stale":{"type":"boolean","title":"Stale","default":false,"description":"선택한 자료가 원천 발표 주기별 허용 수명을 초과했는지 여부."},"freshness":{"$ref":"#/components/schemas/Freshness","description":"선택한 원천의 발표 주기를 반영한 최신성 상태."},"availability":{"$ref":"#/components/schemas/Availability","description":"available은 제공 가능, partial은 일부 제공, unavailable은 제공 불가."},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"자료 부족 또는 미지원이나 미적용의 구체적인 사유. 정상 제공이면 null."},"formula_versions":{"additionalProperties":{"type":"string"},"type":"object","title":"Formula Versions","description":"사용한 제품과 지표별 계산 공식 버전."},"sources":{"items":{"$ref":"#/components/schemas/SourceMeta"},"type":"array","title":"Sources","description":"실제 사용한 출처 ID 또는 원천별 최신성 정보 목록."}},"additionalProperties":false,"type":"object","required":["request_id","generated_at","as_of","freshness","availability"],"title":"Meta"},"NearbyShop":{"properties":{"shop_id":{"type":"string","title":"Shop Id","description":"상점 원천의 고유 ID."},"name":{"type":"string","title":"Name","description":"해당 원천에서 확인한 지역 또는 장소 이름."},"category":{"type":"string","title":"Category","description":"원천에서 확인한 장소 분류 코드 또는 이름. 임의 테마를 만들지 않음."},"distance_m":{"type":"number","minimum":0.0,"title":"Distance M","description":"관광지 좌표에서 상점 좌표까지 직선거리(m). 이동거리가 아님."}},"additionalProperties":false,"type":"object","required":["shop_id","name","category","distance_m"],"title":"NearbyShop"},"PlaceData":{"properties":{"content_id":{"type":"string","title":"Content Id","description":"상세 조회에 사용할 고유 EDEN 관광지 ID."},"language":{"type":"string","enum":["ko","en","ja","zh-CN"],"title":"Language","description":"반환 콘텐츠의 실제 언어 코드."},"requested_language":{"type":"string","enum":["ko","en","ja","zh-CN"],"title":"Requested Language","description":"클라이언트가 요청한 언어 코드. 실제 language와 비교."},"fallback":{"type":"boolean","title":"Fallback","description":"요청 언어와 실제 반환 언어가 다르면 true."},"available_languages":{"items":{"type":"string","enum":["ko","en","ja","zh-CN"]},"type":"array","title":"Available Languages","description":"현재 보유한 콘텐츠 언어 코드 목록."},"title":{"type":"string","title":"Title","description":"실제로 반환한 언어의 콘텐츠 제목."},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category","description":"원천에서 확인한 장소 분류 코드 또는 이름. 임의 테마를 만들지 않음."},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address","description":"실제 반환 언어의 원천 주소. 미보유 시 null."},"location":{"anyOf":[{"$ref":"#/components/schemas/Location"},{"type":"null"}],"description":"원천 WGS84 좌표. 위치 가용성을 함께 확인."},"location_availability":{"$ref":"#/components/schemas/BlockAvailability","description":"좌표 제공 가능 여부. 미보유 좌표를 0으로 대체하지 않음."},"overview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Overview","description":"보유한 관광지 소개. 요청 언어가 없으면 실제 반환 언어 사용."},"hub":{"anyOf":[{"$ref":"#/components/schemas/HubInfo"},{"type":"null"}],"description":"보유한 관광거점 원천의 정보. 원천이 없으면 null."},"related_places":{"anyOf":[{"items":{"$ref":"#/components/schemas/RelatedPlace"},"type":"array"},{"type":"null"}],"title":"Related Places","description":"보유한 연관 관광지. 주변 상점과 별도 목록."},"nearby_shops":{"anyOf":[{"items":{"$ref":"#/components/schemas/NearbyShop"},"type":"array"},{"type":"null"}],"title":"Nearby Shops","description":"반경 내 보유 상점을 직선거리순으로 반환. 기본 5, 최대 20."},"sources":{"items":{"type":"string"},"type":"array","title":"Sources","description":"실제 사용한 출처 ID 또는 원천별 최신성 정보 목록."}},"additionalProperties":false,"type":"object","required":["content_id","language","requested_language","fallback","available_languages","title","location_availability","sources"],"title":"PlaceData"},"RecommendationConstraints":{"properties":{"max_travel_minutes":{"anyOf":[{"type":"integer","maximum":720.0,"minimum":1.0},{"type":"null"}],"title":"Max Travel Minutes","description":"필수 최대 이동시간(분). 이동 원천이 없어 지정 시 추천 불가."},"avoid_crowds":{"type":"boolean","title":"Avoid Crowds","default":false,"description":"보유한 혼잡 참고 지표를 추천 순위에 반영. 기본 false."},"accessibility_required":{"type":"boolean","title":"Accessibility Required","default":false,"description":"필수 접근성 조건. 검증 원천이 없어 true이면 추천 불가."},"extra":{"additionalProperties":true,"type":"object","title":"Extra","description":"추가 필수 조건. 비어 있지 않으면 미지원 키를 밝히고 추천 불가."}},"additionalProperties":false,"type":"object","title":"RecommendationConstraints"},"RecommendationItem":{"properties":{"rank":{"type":"integer","minimum":1.0,"title":"Rank","description":"원천 거점 순위 또는 추천 결과 내 순위. 1부터 시작."},"score":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Score","description":"원천 또는 계산한 참고 점수(0~100). 근거 부족 시 null 가능한 필드만 null."},"region":{"$ref":"#/components/schemas/RecommendationRegion","description":"추천 관광지가 실제 속하는 지역."},"place":{"$ref":"#/components/schemas/RecommendationPlace","description":"상세 조회로 연결되는 추천 관광지."},"estimated_budget_krw":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Estimated Budget Krw","description":"검증된 여행 비용(KRW). 현재 관광지별 원천이 없어 null."},"budget_availability":{"$ref":"#/components/schemas/BlockAvailability","description":"비용 검증 가능 여부. 현재 원천이 없어 unavailable."},"crowd_index":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Crowd Index","description":"보유 원천에 기반한 0~100 혼잡 참고 지수. 근거가 없으면 null."},"related_places":{"items":{"$ref":"#/components/schemas/RelatedPlace"},"type":"array","title":"Related Places","description":"보유한 연관 관광지. 주변 상점과 별도 목록."},"reasons":{"items":{"type":"string"},"type":"array","title":"Reasons","description":"추천의 실제 필터 또는 점수 근거 설명."},"sources":{"items":{"type":"string"},"type":"array","title":"Sources","description":"실제 사용한 출처 ID 또는 원천별 최신성 정보 목록."},"formula_version":{"type":"string","title":"Formula Version","description":"추천 점수 계산의 공식 버전."}},"additionalProperties":false,"type":"object","required":["rank","score","region","place","budget_availability","related_places","reasons","sources","formula_version"],"title":"RecommendationItem"},"RecommendationPlace":{"properties":{"content_id":{"type":"string","title":"Content Id","description":"상세 조회에 사용할 고유 EDEN 관광지 ID."},"title":{"type":"string","title":"Title","description":"실제로 반환한 언어의 콘텐츠 제목."},"location":{"$ref":"#/components/schemas/Location","description":"원천 WGS84 좌표. 위치 가용성을 함께 확인."}},"additionalProperties":false,"type":"object","required":["content_id","title","location"],"title":"RecommendationPlace"},"RecommendationRegion":{"properties":{"area_code":{"type":"string","title":"Area Code","description":"행정구역 코드. 요청 시에는 EDEN 지역 ID도 허용."},"eden_area_id":{"type":"string","title":"Eden Area Id","description":"행정구역의 EDEN 고유 ID."},"name":{"type":"string","title":"Name","description":"해당 원천에서 확인한 지역 또는 장소 이름."}},"additionalProperties":false,"type":"object","required":["area_code","eden_area_id","name"],"title":"RecommendationRegion"},"RecommendationRequest":{"properties":{"target_country":{"type":"string","pattern":"^[A-Za-z]{2}$","title":"Target Country","description":"추천 대상 시장 ISO alpha-2 코드. 초기 JP/CN/TW/US/PH."},"travel_window":{"$ref":"#/components/schemas/TravelWindow","description":"희망 계절과 deprecated 체류일 호환 입력."},"budget_krw":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Budget Krw","description":"요청 예산(KRW). 현재 비용 검증 원천이 없어 순위에 미반영."},"themes":{"items":{"type":"string","enum":["nature","culture","food","kpop"]},"type":"array","title":"Themes","description":"nature/culture/food/kpop 중 일치하는 테마를 가진 관광지 필터."},"area_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Area Code","description":"행정구역 코드. 요청 시에는 EDEN 지역 ID도 허용."},"party_size":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":1.0},{"type":"null"}],"title":"Party Size","description":"호환 입력. 수용량과 순위에 반영하지 않습니다.","deprecated":true},"constraints":{"$ref":"#/components/schemas/RecommendationConstraints","description":"추천 필터와 필수 조건. 적용 여부는 응답에서 확인."},"limit":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Limit","default":5,"description":"최대 반환 건수. 추천 기본 5, 최소 1, 최대 20."}},"additionalProperties":false,"type":"object","required":["target_country","travel_window"],"title":"RecommendationRequest","examples":[{"limit":5,"target_country":"JP","themes":["culture","nature"],"travel_window":{"season":"autumn"}}]},"RecommendationsData":{"properties":{"recommendations":{"items":{"$ref":"#/components/schemas/RecommendationItem"},"type":"array","title":"Recommendations","description":"조건에 맞는 고유 관광지 추천. 검증 불가 필수 조건이면 빈 목록."},"applied_constraints":{"additionalProperties":true,"type":"object","title":"Applied Constraints","description":"실제 필터와 순위에 반영한 입력 조건 및 값."},"unapplied_inputs":{"items":{"$ref":"#/components/schemas/UnappliedInput"},"type":"array","title":"Unapplied Inputs","description":"명시적으로 전달했지만 적용하지 못한 입력의 이름, 값과 사유."}},"additionalProperties":false,"type":"object","required":["recommendations"],"title":"RecommendationsData"},"RegionInsightData":{"properties":{"reference_information":{"anyOf":[{"$ref":"#/components/schemas/RegionReferenceInformation"},{"type":"null"}],"description":"공식 지수와 구분한 보유 관광지 참고 정보. 구형 게시본이면 null."},"requested_area_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requested Area Code","description":"원래 요청한 지역. 시도 대체 자료를 요청 지역의 관측으로 해석하지 마세요."},"basis_period":{"anyOf":[{"additionalProperties":{"type":"string","format":"date"},"type":"object"},{"type":"null"}],"title":"Basis Period","description":"계산 또는 조회에 사용한 실제 관측 구간. start와 end 경계를 포함합니다."},"area":{"$ref":"#/components/schemas/AreaSummary","description":"실제 자료에 대응하는 행정구역."},"period":{"type":"string","enum":["7d","30d","90d"],"title":"Period","description":"최신 확보 관측을 끝점으로 하는 조회 기간."},"visitors":{"anyOf":[{"$ref":"#/components/schemas/VisitorSummary"},{"type":"null"}],"description":"방문 관측(연인원) 또는 지역 방문 블록. 보조 자료 미선택 시 null."},"demand":{"anyOf":[{"$ref":"#/components/schemas/DemandSummary"},{"type":"null"}],"description":"공식 월간 수요 지표 블록. 미선택 시 null."},"diversity":{"anyOf":[{"$ref":"#/components/schemas/DiversitySummary"},{"type":"null"}],"description":"공식 월간 다양성 지표 블록. 미선택 시 null."},"comparison":{"anyOf":[{"$ref":"#/components/schemas/Comparison"},{"type":"null"}],"description":"요청한 이전 기간 또는 전년 동기 비교. 미요청 시 null."},"sources":{"items":{"type":"string"},"type":"array","title":"Sources","description":"실제 사용한 출처 ID 또는 원천별 최신성 정보 목록."}},"additionalProperties":false,"type":"object","required":["area","period","sources"],"title":"RegionInsightData"},"RegionReferenceInformation":{"properties":{"place_category_counts":{"additionalProperties":{"type":"integer"},"type":"object","title":"Place Category Counts","description":"선정 관광지의 실제 분류별 수(곳). 전수 통계가 아님."},"scope":{"type":"string","title":"Scope","description":"참고 정보의 실제 모집단과 해석 범위."}},"additionalProperties":false,"type":"object","required":["place_category_counts","scope"],"title":"RegionReferenceInformation"},"RelatedPlace":{"properties":{"content_id":{"type":"string","title":"Content Id","description":"상세 조회에 사용할 고유 EDEN 관광지 ID."},"title":{"type":"string","title":"Title","description":"실제로 반환한 언어의 콘텐츠 제목."},"relation_type":{"type":"string","title":"Relation Type","description":"원천에서 확인한 장소 간 연관 유형."},"score":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Score","description":"원천 또는 계산한 참고 점수(0~100). 근거 부족 시 null 가능한 필드만 null."},"score_as_of":{"type":"string","format":"date-time","title":"Score As Of","description":"거점 또는 관계 점수의 원천 기준 시각. 미보유 시 null."}},"additionalProperties":false,"type":"object","required":["content_id","title","relation_type","score","score_as_of"],"title":"RelatedPlace"},"RisingKeyword":{"properties":{"keyword":{"type":"string","title":"Keyword","description":"NFKC 정규화하고 양끝 공백을 제거한 수집 검색어."},"score":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Score","description":"원천 또는 계산한 참고 점수(0~100). 근거 부족 시 null 가능한 필드만 null."}},"additionalProperties":false,"type":"object","required":["keyword","score"],"title":"RisingKeyword"},"SocialInterest":{"properties":{"semantics":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Semantics","description":"SNS 지표의 표본 의미. 실제 국적별 시청자 수가 아님."},"posts":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Posts","description":"검색 표본의 게시물 또는 영상 관측 수. 날짜별 합계는 고유 게시물 수가 아닙니다."},"views":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Views","description":"검색 표본 영상의 조회 수 합계. 실제 국적별 시청자 수가 아닙니다."},"reactions":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Reactions","description":"해당 원천 표본의 반응 수. 미제공 반응을 0으로 대체하지 않습니다."},"score":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Score","description":"원천 또는 계산한 참고 점수(0~100). 근거 부족 시 null 가능한 필드만 null."},"availability":{"$ref":"#/components/schemas/Availability","description":"available은 제공 가능, partial은 일부 제공, unavailable은 제공 불가."},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"자료 부족 또는 미지원이나 미적용의 구체적인 사유. 정상 제공이면 null."}},"additionalProperties":false,"type":"object","required":["availability"],"title":"SocialInterest"},"SourceMeta":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"EDEN 원천 레지스트리의 식별자."},"status":{"$ref":"#/components/schemas/SourceStatus","description":"원천 수집 상태 또는 최신성 상태. 공지에서는 가용성의 상태 값."},"data_as_of":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Data As Of","description":"해당 원천 관측의 기준 시점. 마지막 수집 시각과 다를 수 있습니다."},"last_success_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Success At","description":"변경 없음도 포함한 마지막 정상 원천 확인 시각."},"last_checked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Checked At","description":"마지막 수집 확인을 시도한 시각. 성공 여부는 status로 구분합니다."},"stale":{"type":"boolean","title":"Stale","default":false,"description":"선택한 자료가 원천 발표 주기별 허용 수명을 초과했는지 여부."},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"자료 부족 또는 미지원이나 미적용의 구체적인 사유. 정상 제공이면 null."}},"additionalProperties":false,"type":"object","required":["source_id","status"],"title":"SourceMeta"},"SourceMetric":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"EDEN 원천 레지스트리의 식별자."},"observed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Observed At","description":"해당 검색 표본 지표의 실제 관측 시각. 미보유 시 null."},"posts":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Posts","description":"검색 표본의 게시물 또는 영상 관측 수. 날짜별 합계는 고유 게시물 수가 아닙니다."},"views":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Views","description":"검색 표본 영상의 조회 수 합계. 실제 국적별 시청자 수가 아닙니다."},"reactions":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Reactions","description":"해당 원천 표본의 반응 수. 미제공 반응을 0으로 대체하지 않습니다."},"search_ratio":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Search Ratio","description":"해당 검색 원천의 상대 검색 비율. 선택 원천이 제공하지 않으면 null."},"score":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Score","description":"원천 또는 계산한 참고 점수(0~100). 근거 부족 시 null 가능한 필드만 null."},"availability":{"$ref":"#/components/schemas/Availability","description":"available은 제공 가능, partial은 일부 제공, unavailable은 제공 불가."},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"자료 부족 또는 미지원이나 미적용의 구체적인 사유. 정상 제공이면 null."}},"additionalProperties":false,"type":"object","required":["source_id","availability"],"title":"SourceMetric"},"SourceStatus":{"type":"string","enum":["available","degraded","stale","unavailable","disabled"],"title":"SourceStatus"},"SpatialResolution":{"type":"string","enum":["country","sido","sigungu","eupmyeondong","place","none"],"title":"SpatialResolution"},"TimeseriesPoint":{"properties":{"period_start":{"type":"string","format":"date","title":"Period Start","description":"해당 반환 집계 구간의 시작 날짜."},"grain":{"type":"string","enum":["day","week","month"],"title":"Grain","description":"원천 관측의 집계 단위. 실제 원천보다 세밀하게 분해하지 않음."},"subject_type":{"type":"string","enum":["area","attraction"],"title":"Subject Type","description":"area는 지역 전체 관측, attraction은 관광지별 관측."},"total":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Total","description":"선택한 방문 유형의 관측 합계(연인원). 고유 인원 수가 아니며 없으면 null."},"domestic":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Domestic","description":"원천 내국인 방문 지표(연인원). 없거나 외국인만 요청하면 null."},"foreign":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Foreign","description":"원천 외국인 방문 지표(연인원). 없거나 내국인만 요청하면 null."},"concentration_rate":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Concentration Rate","description":"원천 방문 집중률(%). 원천이 없으면 null."},"completeness_ratio":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Completeness Ratio","description":"요청 관측 창의 제공 비율(0~1). 누락된 날짜를 0명으로 해석하지 마세요."}},"additionalProperties":false,"type":"object","required":["period_start","grain","subject_type","completeness_ratio"],"title":"TimeseriesPoint"},"TimeseriesSummary":{"properties":{"total":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Total","description":"선택한 방문 유형의 관측 합계(연인원). 고유 인원 수가 아니며 없으면 null."},"domestic":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Domestic","description":"원천 내국인 방문 지표(연인원). 없거나 외국인만 요청하면 null."},"foreign":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Foreign","description":"원천 외국인 방문 지표(연인원). 없거나 내국인만 요청하면 null."},"peak_visitors":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Peak Visitors","description":"조회 구간의 단일 집계 최대 방문 지표(연인원). 없으면 null."},"peak_concentration_rate":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Peak Concentration Rate","description":"조회 구간의 최대 방문 집중률(%). 없으면 null."},"completeness_ratio":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Completeness Ratio","description":"요청 관측 창의 제공 비율(0~1). 누락된 날짜를 0명으로 해석하지 마세요."}},"additionalProperties":false,"type":"object","required":["completeness_ratio"],"title":"TimeseriesSummary"},"TravelWindow":{"properties":{"season":{"type":"string","enum":["spring","summer","autumn","winter"],"title":"Season","description":"여행 계절. 계절 혼잡 원천이 있는 경우에만 순위에 반영."},"days":{"anyOf":[{"type":"integer","maximum":30.0,"minimum":1.0},{"type":"null"}],"title":"Days","description":"호환 입력. 일정 가능성과 순위에 반영하지 않습니다.","deprecated":true}},"additionalProperties":false,"type":"object","required":["season"],"title":"TravelWindow"},"TrendData":{"properties":{"keyword":{"type":"string","title":"Keyword","description":"NFKC 정규화하고 양끝 공백을 제거한 수집 검색어."},"area_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Area Code","description":"행정구역 코드. 요청 시에는 EDEN 지역 ID도 허용."},"country":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"string","const":"all"}],"title":"Country","description":"시장 ISO alpha-2 코드. 트렌드 all은 수집 시장 전체."},"period":{"type":"string","enum":["7d","30d","90d"],"title":"Period","description":"최신 확보 관측을 끝점으로 하는 조회 기간."},"time_unit":{"type":"string","enum":["day","week","month"],"title":"Time Unit","description":"트렌드 집계 간격 day/week/month."},"interest_index":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Interest Index","description":"비교 가능한 관측의 관광 관심 참고 지수(0~100). 비교 부족 시 null."},"change_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Change Rate","description":"이전 비교 구간 대비 변화율(%). 기준값 0 또는 비교 관측 부족 시 null."},"source_metrics":{"items":{"$ref":"#/components/schemas/SourceMetric"},"type":"array","title":"Source Metrics","description":"선택한 원천의 실제 표본 수와 관측 지표."},"source_availability":{"additionalProperties":{"$ref":"#/components/schemas/BlockAvailability"},"type":"object","title":"Source Availability","description":"선택한 원천별 제공 가능 여부와 사유."},"series":{"items":{"$ref":"#/components/schemas/TrendPoint"},"type":"array","title":"Series","description":"시간순 관측 시계열. 결측은 0으로 채우지 않음."},"rising_keywords":{"items":{"$ref":"#/components/schemas/RisingKeyword"},"type":"array","title":"Rising Keywords","description":"비교 관측이 있는 수집 검색어의 상승 순위. 없으면 빈 목록."},"sources":{"items":{"type":"string"},"type":"array","title":"Sources","description":"실제 사용한 출처 ID 또는 원천별 최신성 정보 목록."}},"additionalProperties":false,"type":"object","required":["keyword","country","period","time_unit","source_metrics","source_availability","series","rising_keywords","sources"],"title":"TrendData"},"TrendPoint":{"properties":{"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"트렌드 반환 집계의 기준 시각."},"search_ratio":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Search Ratio","description":"해당 검색 원천의 상대 검색 비율. 선택 원천이 제공하지 않으면 null."},"youtube_views":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Youtube Views","description":"YouTube 검색 표본의 영상 조회 수 합계. 시청자 국적 통계가 아님."},"sns_mentions":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Sns Mentions","description":"선택 SNS 표본의 게시물 관측 수. 미보유 시 null."},"destination_searches":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Destination Searches","description":"해당 관측 구간의 관광지 검색 수. 원천이 없으면 null."},"interest_index":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Interest Index","description":"비교 가능한 관측의 관광 관심 참고 지수(0~100). 비교 부족 시 null."}},"additionalProperties":false,"type":"object","required":["timestamp"],"title":"TrendPoint"},"UnappliedInput":{"properties":{"field":{"type":"string","title":"Field","description":"적용하지 못한 입력의 필드 경로."},"value":{"title":"Value","description":"미적용 입력으로 명시적으로 전달한 원래 값."},"reason":{"type":"string","title":"Reason","description":"자료 부족 또는 미지원이나 미적용의 구체적인 사유. 정상 제공이면 null."}},"additionalProperties":false,"type":"object","required":["field","value","reason"],"title":"UnappliedInput"},"VisitorForecastData":{"properties":{"area_code":{"type":"string","title":"Area Code","description":"행정구역 코드. 요청 시에는 EDEN 지역 ID도 허용."},"requested_area_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requested Area Code","description":"원래 요청한 지역. 시도 대체 자료를 요청 지역의 관측으로 해석하지 마세요."},"data_area_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Area Code","description":"실제 전망 산출에 사용한 지역 코드."},"spatial_resolution":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Spatial Resolution","description":"실제 자료의 공간 단위. 요청 지역보다 넓을 수 있음."},"eden_area_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eden Area Id","description":"행정구역의 EDEN 고유 ID."},"place_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Place Name","description":"요청한 공식 관광지 전망 이름. 지역 전망이면 null."},"horizon_days":{"type":"integer","maximum":30.0,"minimum":1.0,"title":"Horizon Days","description":"전망 반환 일수. 기본 7, 최소 1, 최대 30."},"daily":{"items":{"$ref":"#/components/schemas/ForecastDay"},"type":"array","title":"Daily","description":"요청 시작일부터 날짜별 전망. 전망 근거가 없으면 해당 값은 null."},"weather":{"anyOf":[{"items":{"$ref":"#/components/schemas/Weather"},"type":"array"},{"type":"null"}],"title":"Weather","description":"실제로 제공되는 구간의 기상 참고 정보. 없으면 null."},"festivals":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Festivals","description":"실제 원천의 해당 구간 행사 참고 정보. 전망 인원 보정에 사용하지 않음."},"holiday":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Holiday","description":"공식 공휴일 참고 정보. 미보유 시 null 또는 빈 목록."},"sources":{"items":{"type":"string"},"type":"array","title":"Sources","description":"실제 사용한 출처 ID 또는 원천별 최신성 정보 목록."}},"additionalProperties":false,"type":"object","required":["area_code","horizon_days","daily","sources"],"title":"VisitorForecastData"},"VisitorSummary":{"properties":{"completeness_ratio":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Completeness Ratio","description":"요청 관측 창의 제공 비율(0~1). 누락된 날짜를 0명으로 해석하지 마세요."},"total":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Total","description":"선택한 방문 유형의 관측 합계(연인원). 고유 인원 수가 아니며 없으면 null."},"domestic":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Domestic","description":"원천 내국인 방문 지표(연인원). 없거나 외국인만 요청하면 null."},"foreign":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Foreign","description":"원천 외국인 방문 지표(연인원). 없거나 내국인만 요청하면 null."},"change_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Change Rate","description":"이전 비교 구간 대비 변화율(%). 기준값 0 또는 비교 관측 부족 시 null."},"availability":{"$ref":"#/components/schemas/Availability","description":"available은 제공 가능, partial은 일부 제공, unavailable은 제공 불가."},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"자료 부족 또는 미지원이나 미적용의 구체적인 사유. 정상 제공이면 null."}},"additionalProperties":false,"type":"object","required":["availability"],"title":"VisitorSummary"},"VisitorTimeseriesData":{"properties":{"requested_area_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requested Area Code","description":"원래 요청한 지역. 시도 대체 자료를 요청 지역의 관측으로 해석하지 마세요."},"basis_period":{"anyOf":[{"additionalProperties":{"type":"string","format":"date"},"type":"object"},{"type":"null"}],"title":"Basis Period","description":"계산 또는 조회에 사용한 실제 관측 구간. start와 end 경계를 포함합니다."},"area":{"$ref":"#/components/schemas/AreaSummary","description":"실제 자료에 대응하는 행정구역."},"period":{"type":"string","title":"Period","description":"최신 확보 관측을 끝점으로 하는 조회 기간."},"granularity":{"type":"string","enum":["day","week","month"],"title":"Granularity","description":"반환 방문 시계열의 day/week/month 집계 단위."},"visitor_type":{"type":"string","enum":["all","domestic","foreign"],"title":"Visitor Type","description":"all/domestic/foreign 중 반환 방문 유형."},"attraction_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attraction Name","description":"관광지별 방문 원천의 조회 대상 이름. 지역 집계이면 null."},"summary":{"$ref":"#/components/schemas/TimeseriesSummary","description":"방문 집계 요약 또는 공지의 보유 요약. 없는 요약을 생성해 채우지 않음."},"series":{"items":{"$ref":"#/components/schemas/TimeseriesPoint"},"type":"array","title":"Series","description":"시간순 관측 시계열. 결측은 0으로 채우지 않음."},"sources":{"items":{"type":"string"},"type":"array","title":"Sources","description":"실제 사용한 출처 ID 또는 원천별 최신성 정보 목록."}},"additionalProperties":false,"type":"object","required":["area","period","granularity","visitor_type","summary","series","sources"],"title":"VisitorTimeseriesData"},"Weather":{"properties":{"temperature_c":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature C","description":"기상청 예보 기온(섭씨). 실제 예보가 없으면 null."},"precipitation_probability_pct":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Precipitation Probability Pct","description":"기상청 강수 확률(%). 실제 예보가 없으면 null."},"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition","description":"기상청 관측 코드에서 해석한 날씨 상태. 미보유 시 null."},"grid_source":{"type":"string","enum":["area_center","parent_area","request"],"title":"Grid Source","description":"기상 자료의 공간 근거. parent_area는 시도 대표 격자 대체."},"nx":{"type":"integer","title":"Nx","description":"기상청 대표 격자 X 좌표. 미수집 시 null."},"ny":{"type":"integer","title":"Ny","description":"기상청 대표 격자 Y 좌표. 미수집 시 null."},"availability":{"$ref":"#/components/schemas/Availability","description":"available은 제공 가능, partial은 일부 제공, unavailable은 제공 불가."},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"자료 부족 또는 미지원이나 미적용의 구체적인 사유. 정상 제공이면 null."}},"additionalProperties":false,"type":"object","required":["grid_source","nx","ny","availability"],"title":"Weather"}}},"tags":[{"name":"trends","description":"키워드 관심도와 원천별 지표"},{"name":"regions","description":"지역 방문과 관광 수요 및 다양성"},{"name":"places","description":"관광지 상세와 주변 정보"},{"name":"forecasts","description":"방문 전망과 날씨 및 행사"},{"name":"visitors","description":"방문 지표 시계열"},{"name":"markets","description":"방한시장 비교와 국가별 공식 공지"},{"name":"recommendations","description":"여행 조건에 따른 목적지 추천"}]}