{"components":{"schemas":{"domain.AnswerDTO":{"properties":{"content":{"description":"분류된 답변 본문 (미완료/건너뜀이면 빈 문자열)","type":"string"},"createdAt":{"description":"생성 일시 (RFC3339)","type":"string"},"fanouts":{"description":"AI가 답변 생성 시 수행한 검색 쿼리(query fan-out) 목록. 페이지네이션 없이 전체 제공","items":{"type":"string"},"type":"array","uniqueItems":false},"id":{"description":"답변 ID","type":"string"},"markdownURL":{"description":"답변 원본 마크다운(스크래핑 원문)의 CDN URL. 원본이 없거나 변환 실패 시 null(생략)","type":"string"},"model":{"description":"실행된 모델 (예: CHATGPT)","type":"string"},"promptID":{"description":"답변 대상 프롬프트 ID","type":"string"},"query":{"description":"실행된 질의 텍스트","type":"string"},"region":{"description":"지역 코드 (예: KR)","type":"string"},"runID":{"description":"이 답변을 생성한 Run ID (제출 시 발급). 연관 Run이 없으면 생략","type":"string"},"sources":{"description":"답변에 인용된 출처 목록. 페이지네이션 없이 전체 제공","items":{"$ref":"#/components/schemas/domain.AnswerSourceDTO"},"type":"array","uniqueItems":false},"status":{"description":"실행 상태 (PENDING: 진행중, SUCCESS: 완료, FAILED: 실패 또는 스킵)","type":"string"}},"required":["id","model","promptID","region","status"],"type":"object"},"domain.AnswerSourceDTO":{"properties":{"domain":{"description":"출처 도메인 (루트 도메인 기준, 예: naver.com). 출처 집계 API의 domain 필터에 그대로 넣을 수 있습니다. 판별하지 못한 경우 생략됩니다","type":"string"},"title":{"description":"출처 콘텐츠 제목 (분류 전이면 빈 문자열)","type":"string"},"url":{"description":"출처 URL","type":"string"}},"type":"object"},"domain.BrandDTO":{"properties":{"createdAt":{"description":"생성 일시 (RFC3339)","type":"string"},"description":{"description":"브랜드 설명","type":"string"},"id":{"description":"브랜드 ID","type":"string"},"name":{"description":"브랜드명","type":"string"},"synonyms":{"description":"브랜드 동의어 목록","items":{"type":"string"},"type":"array","uniqueItems":false},"websites":{"description":"브랜드 웹사이트 URL 목록","items":{"type":"string"},"type":"array","uniqueItems":false}},"required":["id","name"],"type":"object"},"domain.BulkCreatePromptItem":{"properties":{"content":{"description":"프롬프트 내용 (최대 1000자)","maxLength":1000,"type":"string"},"promptSetID":{"description":"소속 프롬프트 세트 ID (필수)","type":"string"}},"required":["content","promptSetID"],"type":"object"},"domain.BulkCreatePromptRequest":{"properties":{"prompts":{"description":"생성할 프롬프트 목록 (1~100개)","items":{"$ref":"#/components/schemas/domain.BulkCreatePromptItem"},"maxItems":100,"minItems":1,"type":"array","uniqueItems":false}},"required":["prompts"],"type":"object"},"domain.BulkCreatePromptResponse":{"properties":{"ids":{"description":"생성된 프롬프트 ID 목록 (요청 순서와 동일)","items":{"type":"string"},"type":"array","uniqueItems":false}},"required":["ids"],"type":"object"},"domain.CountAnswersResponse":{"properties":{"count":{"description":"검색어 중 하나라도 매칭된 답변 개수","type":"integer"}},"type":"object"},"domain.CreateBrandRequest":{"properties":{"description":{"description":"브랜드 설명 (최대 1000자)","maxLength":1000,"type":"string"},"name":{"description":"브랜드명 (최대 100자)","maxLength":100,"type":"string"},"synonyms":{"description":"브랜드 동의어 목록 (최대 50개, 각 100자 이내)","items":{"type":"string"},"maxItems":50,"type":"array","uniqueItems":false},"websites":{"description":"브랜드 웹사이트 URL 목록 (최대 20개, 각 항목 URL 형식·scheme 포함·2048자 이내)","items":{"type":"string"},"maxItems":20,"type":"array","uniqueItems":false}},"required":["name","synonyms"],"type":"object"},"domain.CreateBrandResponse":{"properties":{"id":{"description":"생성된 브랜드 ID","type":"string"}},"required":["id"],"type":"object"},"domain.CreatePromptRequest":{"properties":{"content":{"description":"프롬프트 내용 (최대 1000자)","maxLength":1000,"type":"string"},"promptSetID":{"description":"소속 프롬프트 세트 ID (필수)","type":"string"}},"required":["content","promptSetID"],"type":"object"},"domain.CreatePromptResponse":{"properties":{"id":{"description":"생성된 프롬프트 ID","type":"string"}},"required":["id"],"type":"object"},"domain.CreatePromptSetRequest":{"properties":{"description":{"description":"설명 (최대 1000자)","maxLength":1000,"type":"string"},"name":{"description":"이름 (최대 100자)","maxLength":100,"type":"string"}},"required":["name"],"type":"object"},"domain.CreatePromptSetResponse":{"properties":{"id":{"description":"생성된 프롬프트 세트 ID","type":"string"}},"required":["id"],"type":"object"},"domain.Error":{"properties":{"code":{"type":"string"},"details":{}},"type":"object"},"domain.ExtractProperNounsRequest":{"properties":{"lang":{"description":"auto/ko/en (기본 auto)","enum":["auto","ko","en"],"type":"string"},"text":{"description":"분석 대상 텍스트","maxLength":100000,"type":"string"}},"required":["text"],"type":"object"},"domain.ExtractProperNounsResponse":{"properties":{"properNouns":{"description":"미등록 고유명사 목록","items":{"$ref":"#/components/schemas/domain.ProperNounDTO"},"type":"array","uniqueItems":false}},"type":"object"},"domain.FanoutStatisticDTO":{"properties":{"count":{"description":"이 쿼리가 등장한 횟수","type":"integer"},"latestCreatedAt":{"description":"이 쿼리가 가장 최근 등장한 시각 (RFC3339)","type":"string"},"models":{"description":"이 쿼리를 던진 모델 목록 (중복 제거, 예: CHATGPT)","items":{"type":"string"},"type":"array","uniqueItems":false},"query":{"description":"AI가 던진 검색 쿼리 문자열","type":"string"},"regions":{"description":"이 쿼리가 나온 지역 목록 (중복 제거, 예: KR)","items":{"type":"string"},"type":"array","uniqueItems":false}},"type":"object"},"domain.GetAnswerResponse":{"properties":{"content":{"description":"분류된 답변 본문 (미완료/건너뜀이면 빈 문자열)","type":"string"},"createdAt":{"description":"생성 일시 (RFC3339)","type":"string"},"fanouts":{"description":"AI가 답변 생성 시 수행한 검색 쿼리(query fan-out) 목록. 페이지네이션 없이 전체 제공","items":{"type":"string"},"type":"array","uniqueItems":false},"id":{"description":"답변 ID","type":"string"},"markdownURL":{"description":"답변 원본 마크다운(스크래핑 원문)의 CDN URL. 원본이 없거나 변환 실패 시 null(생략)","type":"string"},"model":{"description":"실행된 모델 (예: CHATGPT)","type":"string"},"promptID":{"description":"답변 대상 프롬프트 ID","type":"string"},"query":{"description":"실행된 질의 텍스트","type":"string"},"region":{"description":"지역 코드 (예: KR)","type":"string"},"runID":{"description":"이 답변을 생성한 Run ID (제출 시 발급). 연관 Run이 없으면 생략","type":"string"},"sources":{"description":"답변에 인용된 출처 목록. 페이지네이션 없이 전체 제공","items":{"$ref":"#/components/schemas/domain.AnswerSourceDTO"},"type":"array","uniqueItems":false},"status":{"description":"실행 상태 (PENDING: 진행중, SUCCESS: 완료, FAILED: 실패 또는 스킵)","type":"string"}},"required":["id","model","promptID","region","status"],"type":"object"},"domain.GetBrandResponse":{"properties":{"createdAt":{"description":"생성 일시 (RFC3339)","type":"string"},"description":{"description":"브랜드 설명","type":"string"},"id":{"description":"브랜드 ID","type":"string"},"name":{"description":"브랜드명","type":"string"},"synonyms":{"description":"브랜드 동의어 목록","items":{"type":"string"},"type":"array","uniqueItems":false},"websites":{"description":"브랜드 웹사이트 URL 목록","items":{"type":"string"},"type":"array","uniqueItems":false}},"required":["id","name"],"type":"object"},"domain.GetGoogleKeywordMetricsRequest":{"properties":{"countryCode":{"description":"국가 코드 (ISO 3166-1 alpha-2, 기본 \"KR\")","type":"string"},"keywords":{"description":"조회할 키워드 목록 (1~100개, 중복 불가, 각 80자 이내)","items":{"type":"string"},"maxItems":100,"minItems":1,"type":"array","uniqueItems":true},"languageCode":{"description":"언어 코드 (ISO 639-1, 기본 \"ko\")","type":"string"}},"required":["keywords"],"type":"object"},"domain.GetGoogleKeywordMetricsResponse":{"properties":{"countryCode":{"description":"적용된 국가 코드 (기본값 반영)","type":"string"},"items":{"description":"키워드별 지표 (요청 keywords 순서 유지)","items":{"$ref":"#/components/schemas/domain.GoogleKeywordMetricsItemDTO"},"type":"array","uniqueItems":false},"languageCode":{"description":"적용된 언어 코드 (기본값 반영)","type":"string"}},"required":["countryCode","items","languageCode"],"type":"object"},"domain.GetMyCreditBalanceResponse":{"properties":{"balance":{"description":"현재 크레딧 잔액 (유료+플랜 합계, 소수점 포함 가능)","type":"number"}},"type":"object"},"domain.GetMyOrganizationResponse":{"properties":{"createdAt":{"description":"조직 생성일","type":"string"},"name":{"description":"조직명","type":"string"},"organizationID":{"description":"조직 ID","type":"string"},"region":{"description":"조직 리전 (ISO 3166-1 alpha-2 국가 코드, 예: KR / US)","type":"string"},"websites":{"description":"조직 웹사이트 리스트 (없으면 필드 생략)","items":{"type":"string"},"type":"array","uniqueItems":false}},"required":["createdAt","name","organizationID","region"],"type":"object"},"domain.GetNaverKeywordMetricsRequest":{"properties":{"keywords":{"description":"조회할 키워드 목록 (1~15개, 중복 불가, 각 80자 이내)","items":{"type":"string"},"maxItems":15,"minItems":1,"type":"array","uniqueItems":true}},"required":["keywords"],"type":"object"},"domain.GetNaverKeywordMetricsResponse":{"properties":{"items":{"description":"키워드별 지표 (요청 keywords 순서 유지)","items":{"$ref":"#/components/schemas/domain.NaverKeywordMetricsItemDTO"},"type":"array","uniqueItems":false}},"required":["items"],"type":"object"},"domain.GetNaverKeywordTrendRequest":{"properties":{"keywords":{"description":"조회할 키워드 목록 (1~15개, 중복 불가, 각 80자 이내)","items":{"type":"string"},"maxItems":15,"minItems":1,"type":"array","uniqueItems":true}},"required":["keywords"],"type":"object"},"domain.GetNaverKeywordTrendResponse":{"properties":{"items":{"description":"키워드별 트렌드 (요청 keywords 순서 유지)","items":{"$ref":"#/components/schemas/domain.NaverKeywordTrendItemDTO"},"type":"array","uniqueItems":false}},"required":["items"],"type":"object"},"domain.GetPromptResponse":{"properties":{"answerCount":{"description":"프롬프트로 수집된 답변 수","type":"integer"},"content":{"description":"프롬프트 내용","type":"string"},"createdAt":{"description":"생성 일시 (RFC3339)","type":"string"},"id":{"description":"프롬프트 ID","type":"string"},"promptSetID":{"description":"소속 프롬프트 세트 ID","type":"string"}},"required":["content","id","promptSetID"],"type":"object"},"domain.GetPromptSetResponse":{"properties":{"createdAt":{"description":"생성 일시 (RFC3339)","type":"string"},"description":{"description":"설명 (없으면 null)","type":"string"},"id":{"description":"프롬프트 세트 ID","type":"string"},"name":{"description":"이름","type":"string"},"promptCount":{"description":"세트에 소속된 프롬프트 수","type":"integer"}},"required":["id","name"],"type":"object"},"domain.GetRunStatusResponse":{"properties":{"answers":{"description":"TaskContent별 세부 진행 상태","items":{"$ref":"#/components/schemas/domain.RunAnswerStatus"},"type":"array","uniqueItems":false},"failedCount":{"description":"실패(스킵 포함) 수","type":"integer"},"finishedCount":{"description":"종료(성공+실패) 수","type":"integer"},"runID":{"description":"TaskGenerationRun ID","type":"string"},"runningCount":{"description":"아직 진행 중인 수","type":"integer"},"status":{"description":"RUNNING | FINISHED","type":"string"},"successCount":{"description":"성공 수","type":"integer"},"totalCount":{"description":"전체 TaskContent 수","type":"integer"}},"type":"object"},"domain.GetSiteKeywordAnalysisStatusResponse":{"properties":{"error":{"description":"FAILED일 때 사유","type":"string"},"keywords":{"description":"COMPLETED일 때만 채워짐","items":{"$ref":"#/components/schemas/domain.SiteKeywordDTO"},"type":"array","uniqueItems":false},"maxPages":{"description":"제출 시 요청한 최대 분석 페이지 수","type":"integer"},"processedPages":{"description":"지금까지 시도(성공+실패) 완료한 페이지 수","type":"integer"},"status":{"description":"PENDING/IN_PROGRESS/COMPLETED/FAILED","type":"string"},"taskID":{"type":"string"},"totalPages":{"description":"처리 대상 페이지 수 (IN_PROGRESS 진입 후 확정)","type":"integer"}},"type":"object"},"domain.GoogleKeywordMetricsDTO":{"description":"검색 지표 (null = 데이터 없음)","properties":{"cpc":{"description":"평균 클릭당 비용 (USD)","type":"number"},"keywordDifficulty":{"description":"SEO 난이도 (0~100)","type":"integer"},"monthlySearches":{"description":"최근 12개월 월별 검색량","items":{"$ref":"#/components/schemas/domain.GoogleMonthlySearchDTO"},"type":"array","uniqueItems":false},"searchIntent":{"description":"검색 의도 (informational | navigational | commercial | transactional)","type":"string"},"searchVolume":{"description":"월평균 검색량. null = Google Ads 제한 카테고리(의료·금융 등)로 검색량 비공개","type":"integer"},"searchVolumeTrend":{"$ref":"#/components/schemas/domain.GoogleSearchVolumeTrendDTO"}},"type":"object"},"domain.GoogleKeywordMetricsItemDTO":{"properties":{"keyword":{"description":"키워드 (요청 원문 그대로)","type":"string"},"metrics":{"$ref":"#/components/schemas/domain.GoogleKeywordMetricsDTO"}},"required":["keyword"],"type":"object"},"domain.GoogleMonthlySearchDTO":{"properties":{"month":{"description":"월 (1~12)","type":"integer"},"searchVolume":{"description":"해당 월 검색량","type":"integer"},"year":{"description":"연도","type":"integer"}},"required":["month","year"],"type":"object"},"domain.GoogleSearchVolumeTrendDTO":{"description":"기간별 검색량 증감률 (%)","properties":{"monthly":{"description":"전월 대비 (%)","type":"number"},"quarterly":{"description":"전분기 대비 (%)","type":"number"},"yearly":{"description":"전년 대비 (%)","type":"number"}},"type":"object"},"domain.ListAnswersResponse":{"properties":{"answers":{"description":"답변 목록","items":{"$ref":"#/components/schemas/domain.AnswerDTO"},"type":"array","uniqueItems":false},"nextCursor":{"description":"다음 페이지 cursor (더 이상 없으면 null)","type":"string"}},"type":"object"},"domain.ListBrandsResponse":{"properties":{"brands":{"description":"브랜드 목록","items":{"$ref":"#/components/schemas/domain.BrandDTO"},"type":"array","uniqueItems":false},"nextCursor":{"description":"다음 페이지 cursor (더 이상 없으면 null)","type":"string"}},"type":"object"},"domain.ListFanoutStatisticsResponse":{"properties":{"fanouts":{"description":"등장 횟수 내림차순 검색 쿼리 랭킹 (상위 limit개)","items":{"$ref":"#/components/schemas/domain.FanoutStatisticDTO"},"type":"array","uniqueItems":false}},"type":"object"},"domain.ListGoogleKeywordSuggestionsResponse":{"properties":{"countryCode":{"description":"적용된 국가 코드 (기본값 반영)","type":"string"},"keyword":{"description":"조회 기준 키워드 (에코)","type":"string"},"languageCode":{"description":"적용된 언어 코드 (기본값 반영)","type":"string"},"metrics":{"$ref":"#/components/schemas/domain.GoogleKeywordMetricsDTO"},"suggestedKeywords":{"description":"제안 키워드 (검색량 내림차순, 기준 키워드 제외)","items":{"$ref":"#/components/schemas/domain.GoogleKeywordMetricsItemDTO"},"type":"array","uniqueItems":false}},"required":["countryCode","keyword","languageCode","suggestedKeywords"],"type":"object"},"domain.ListGoogleRelatedKeywordsResponse":{"properties":{"countryCode":{"description":"적용된 국가 코드 (기본값 반영)","type":"string"},"keyword":{"description":"조회 기준 키워드 (에코)","type":"string"},"languageCode":{"description":"적용된 언어 코드 (기본값 반영)","type":"string"},"metrics":{"$ref":"#/components/schemas/domain.GoogleKeywordMetricsDTO"},"relatedKeywords":{"description":"연관 키워드 (검색량 내림차순, 기준 키워드 제외)","items":{"$ref":"#/components/schemas/domain.GoogleKeywordMetricsItemDTO"},"type":"array","uniqueItems":false}},"required":["countryCode","keyword","languageCode","relatedKeywords"],"type":"object"},"domain.ListModelsResponse":{"properties":{"models":{"description":"지원 모델 목록","items":{"$ref":"#/components/schemas/domain.ModelItem"},"type":"array","uniqueItems":false}},"type":"object"},"domain.ListNaverKeywordSuggestionsResponse":{"properties":{"keyword":{"description":"조회 기준 키워드 (에코)","type":"string"},"metrics":{"$ref":"#/components/schemas/domain.NaverKeywordMetricsDTO"},"suggestedKeywords":{"description":"제안 키워드 (검색량 내림차순, 기준 키워드 제외)","items":{"$ref":"#/components/schemas/domain.NaverKeywordMetricsItemDTO"},"type":"array","uniqueItems":false}},"required":["keyword","suggestedKeywords"],"type":"object"},"domain.ListNaverRelatedKeywordsResponse":{"properties":{"keyword":{"description":"조회 기준 키워드 (에코)","type":"string"},"metrics":{"$ref":"#/components/schemas/domain.NaverKeywordMetricsDTO"},"relatedKeywords":{"description":"연관 키워드 (검색량 내림차순, 기준 키워드 제외)","items":{"$ref":"#/components/schemas/domain.NaverKeywordMetricsItemDTO"},"type":"array","uniqueItems":false}},"required":["keyword","relatedKeywords"],"type":"object"},"domain.ListPromptSetsResponse":{"properties":{"nextCursor":{"description":"다음 페이지 cursor (없으면 null)","type":"string"},"promptSets":{"description":"프롬프트 세트 목록","items":{"$ref":"#/components/schemas/domain.PromptSetDTO"},"type":"array","uniqueItems":false}},"type":"object"},"domain.ListPromptsResponse":{"properties":{"nextCursor":{"description":"다음 페이지 cursor (더 이상 없으면 null)","type":"string"},"prompts":{"description":"프롬프트 목록","items":{"$ref":"#/components/schemas/domain.PromptDTO"},"type":"array","uniqueItems":false}},"type":"object"},"domain.ListRunItem":{"properties":{"failedCount":{"description":"실패(스킵 포함) 수","type":"integer"},"finishedCount":{"description":"종료(성공+실패) 수","type":"integer"},"runID":{"description":"TaskGenerationRun ID","type":"string"},"runningCount":{"description":"아직 진행 중인 수","type":"integer"},"status":{"description":"RUNNING | FINISHED","type":"string"},"successCount":{"description":"성공 수","type":"integer"},"totalCount":{"description":"전체 TaskContent 수","type":"integer"}},"type":"object"},"domain.ListRunsResponse":{"properties":{"nextCursor":{"description":"다음 페이지 cursor (없으면 null)","type":"string"},"runs":{"description":"Run 목록","items":{"$ref":"#/components/schemas/domain.ListRunItem"},"type":"array","uniqueItems":false}},"type":"object"},"domain.ListSourceStatisticsDomainsResponse":{"properties":{"domains":{"description":"인용 수 내림차순 도메인 랭킹 (상위 limit개)","items":{"$ref":"#/components/schemas/domain.SourceDomainStatisticDTO"},"type":"array","uniqueItems":false},"totalCitations":{"description":"스코프 내 총 인용 수 (동일 URL이 여러 답변에 인용되면 각각 1건)","type":"integer"},"totalDomains":{"description":"스코프 내 고유 도메인 수 (집계 단위 기준, 도메인 미확인 인용 제외). 도메인 종류가 매우 많아 정확히 셀 수 없는 경우 null","type":"integer"}},"type":"object"},"domain.ListSourceStatisticsURLsResponse":{"properties":{"totalCitations":{"description":"스코프 내 총 인용 수","type":"integer"},"urls":{"description":"인용 수 내림차순 URL 랭킹 (상위 limit개)","items":{"$ref":"#/components/schemas/domain.SourceURLStatisticDTO"},"type":"array","uniqueItems":false}},"type":"object"},"domain.ListTokenNeighborsResponse":{"properties":{"neighbors":{"description":"기준 단어(들) 앞뒤에 함께 나온 토큰 랭킹 (상위 limit개)","items":{"$ref":"#/components/schemas/domain.NeighborTokenDTO"},"type":"array","uniqueItems":false},"words":{"description":"요청한 기준 단어 목록(원문 그대로)","items":{"type":"string"},"type":"array","uniqueItems":false}},"type":"object"},"domain.ListTokenStatisticsResponse":{"properties":{"tokens":{"description":"등장 답변 수 내림차순 토큰 랭킹 (상위 limit개)","items":{"$ref":"#/components/schemas/domain.TokenStatisticDTO"},"type":"array","uniqueItems":false}},"type":"object"},"domain.ModelItem":{"properties":{"model":{"$ref":"#/components/schemas/domain.Platform"},"name":{"description":"모델 표시명 (예: ChatGPT)","type":"string"}},"type":"object"},"domain.NaverKeywordMetricsDTO":{"description":"검색 지표 (null = 데이터 없음)","properties":{"adDepth":{"description":"월평균 노출 광고 개수","type":"integer"},"avgCTRMobile":{"description":"모바일 월평균 클릭률 (%)","type":"number"},"avgCTRPC":{"description":"PC 월평균 클릭률 (%)","type":"number"},"avgClickMobile":{"description":"모바일 월평균 클릭수","type":"number"},"avgClickPC":{"description":"PC 월평균 클릭수","type":"number"},"competition":{"description":"경쟁 정도 (낮음 | 중간 | 높음)","type":"string"},"mobileBelowThreshold":{"description":"true 면 모바일 검색량이 10 미만(정확한 값 불명)","type":"boolean"},"pcBelowThreshold":{"description":"true 면 PC 검색량이 10 미만(정확한 값 불명)","type":"boolean"},"searchVolumeMobile":{"description":"모바일 월간 검색량","type":"integer"},"searchVolumePC":{"description":"PC 월간 검색량","type":"integer"},"searchVolumeTotal":{"description":"월간 검색량 합계 (PC+모바일)","type":"integer"}},"type":"object"},"domain.NaverKeywordMetricsItemDTO":{"properties":{"keyword":{"description":"키워드 (요청 원문 그대로)","type":"string"},"metrics":{"$ref":"#/components/schemas/domain.NaverKeywordMetricsDTO"}},"required":["keyword"],"type":"object"},"domain.NaverKeywordTrendDTO":{"description":"검색 트렌드 (null = 데이터 없음)","properties":{"anchor":{"$ref":"#/components/schemas/domain.NaverTrendAnchorDTO"},"points":{"description":"최근 12개월(완결 월) 상대 검색 비율 시계열 (오름차순)","items":{"$ref":"#/components/schemas/domain.NaverTrendPointDTO"},"type":"array","uniqueItems":false}},"required":["points"],"type":"object"},"domain.NaverKeywordTrendItemDTO":{"properties":{"keyword":{"description":"키워드 (요청 원문 그대로)","type":"string"},"trend":{"$ref":"#/components/schemas/domain.NaverKeywordTrendDTO"}},"required":["keyword"],"type":"object"},"domain.NaverTrendAnchorDTO":{"description":"절대 환산 앵커. null = 검색광고 절대 검색수 조회 불가","properties":{"month":{"description":"앵커 월 (1~12)","type":"integer"},"searchVolumeTotal":{"description":"검색광고 기준 해당 월 절대 검색수 (PC+모바일)","type":"integer"},"year":{"description":"앵커 월의 연도 (points 의 마지막 완결 월)","type":"integer"}},"type":"object"},"domain.NaverTrendPointDTO":{"properties":{"month":{"description":"월 (1~12)","type":"integer"},"ratio":{"description":"조회 기간 내 최댓값=100 기준 정규화된 상대 비율 (0~100)","type":"number"},"year":{"description":"연도","type":"integer"}},"required":["month","year"],"type":"object"},"domain.NeighborTokenDTO":{"properties":{"answerCount":{"description":"이 이웃 토큰이 기준 단어(들) 중 하나의 window 이내에 함께 나온 답변 수","type":"integer"},"token":{"description":"이웃 토큰","type":"string"},"totalAnswerCount":{"description":"기준 단어 근접 여부와 무관하게 이 토큰이 스코프 전체에서 등장한 답변 수\n(include=totalAnswerCount 지정 시에만 포함, 미지정 시 생략). answerCount와의 비율로 보면\n\"이 토큰이 등장할 때 얼마나 자주 기준 단어 근처에 나오는지\"가 드러나,\n원래 흔한 단어와 실제 연관어를 구분할 수 있습니다.","type":"integer"}},"type":"object"},"domain.Platform":{"description":"모델 식별자 (예: CHATGPT)","enum":["CHATGPT","GOOGLE_OVERVIEW","GOOGLE_AI","PERPLEXITY","GEMINI","GEMINI_CITATION_ENHANCED","GROK","MS_COPILOT","CLAUDE","CHATGPT_PAID","NAVER_AI_BRIEFING","NAVER_AI_TAB"],"type":"string","x-enum-comments":{"PlatformChatGPT_Paid":"PD-1243: ChatGPT 유료 모드 (수기 입력 전용)","PlatformClaude":"PD-776: Anthropic Claude","PlatformGemini_CitationEnhanced":"PD-776: Gemini 변형","PlatformNaverAIBriefing":"PD-1243: 네이버 AI 브리핑 (수기 입력 전용)","PlatformNaverAITab":"PD-1243: 네이버 AI 탭 (수기 입력 전용)"},"x-enum-varnames":["PlatformChatGPT","PlatformGoogleOverview","PlatformGoogleAI","PlatformPerplexity","PlatformGemini","PlatformGemini_CitationEnhanced","PlatformGrok","PlatformMSCopilot","PlatformClaude","PlatformChatGPT_Paid","PlatformNaverAIBriefing","PlatformNaverAITab"]},"domain.PromptDTO":{"properties":{"content":{"description":"프롬프트 내용","type":"string"},"createdAt":{"description":"생성 일시 (RFC3339)","type":"string"},"id":{"description":"프롬프트 ID","type":"string"},"promptSetID":{"description":"소속 프롬프트 세트 ID","type":"string"}},"required":["content","id","promptSetID"],"type":"object"},"domain.PromptSetDTO":{"properties":{"createdAt":{"description":"생성 일시 (RFC3339)","type":"string"},"description":{"description":"설명 (없으면 null)","type":"string"},"id":{"description":"프롬프트 세트 ID","type":"string"},"name":{"description":"이름","type":"string"}},"required":["id","name"],"type":"object"},"domain.ProperNounDTO":{"properties":{"frequency":{"description":"텍스트 내 등장 빈도","type":"integer"},"lang":{"description":"언어 (ko/en)","type":"string"},"tag":{"description":"품사 태그 (NNP/NNG)","type":"string"},"word":{"description":"단어(복합명사는 통째)","type":"string"}},"type":"object"},"domain.RegionItem":{"properties":{"code":{"description":"리전 코드 (ISO 3166-1 alpha-2, 예: KR)","type":"string"},"name":{"description":"리전 표시명 (영문, 예: South Korea)","type":"string"}},"type":"object"},"domain.RunAnswerStatus":{"properties":{"model":{"description":"모델","type":"string"},"promptID":{"description":"프롬프트 ID","type":"string"},"query":{"description":"실행된 질의","type":"string"},"region":{"description":"지역","type":"string"},"status":{"description":"PENDING | SUCCESS | FAILED","type":"string"}},"type":"object"},"domain.RunModel":{"enum":["CHATGPT","GOOGLE_OVERVIEW","GOOGLE_AI","PERPLEXITY","GEMINI","NAVER_AI_BRIEFING","NAVER_AI_TAB","CLAUDE"],"type":"string","x-enum-varnames":["RunModelChatGPT","RunModelGoogleOverview","RunModelGoogleAI","RunModelPerplexity","RunModelGemini","RunModelNaverAIBriefing","RunModelNaverAITab","RunModelClaude"]},"domain.SiteKeywordDTO":{"properties":{"keyword":{"description":"추출된 키워드","type":"string"},"sourceURLCount":{"description":"이 키워드가 발견된 페이지 수 (항상 포함)","type":"integer"},"sources":{"description":"발견된 페이지별 url/context (발견 순서). includeSourceURLs/includeContext 중 하나라도 true일 때만 포함","items":{"$ref":"#/components/schemas/domain.SiteKeywordSourceDTO"},"type":"array","uniqueItems":false}},"type":"object"},"domain.SiteKeywordSourceDTO":{"properties":{"contexts":{"description":"이 페이지에서 키워드가 등장한 원문 문장·구절 인용 목록. 같은 키워드가 여러 문장에서\n언급되면 모두 포함됩니다. 인용문이 확인되지 않은 페이지는 비어 있을 수(생략될 수) 있습니다.","items":{"type":"string"},"type":"array","uniqueItems":false},"url":{"description":"키워드가 발견된 페이지 URL","type":"string"}},"type":"object"},"domain.SourceDomainStatisticDTO":{"properties":{"citationCount":{"description":"이 도메인의 총 인용 수","type":"integer"},"domain":{"description":"집계 단위 (기본 eTLD+1, 예: naver.com / groupBy=subdomain 이면 서브도메인 포함, 예: blog.naver.com)","type":"string"},"models":{"description":"모델별 인용 수 분해 (include=models 일 때만, 인용 수 내림차순)","items":{"$ref":"#/components/schemas/domain.SourceModelStatisticDTO"},"type":"array","uniqueItems":false}},"type":"object"},"domain.SourceModelStatisticDTO":{"properties":{"citationCount":{"description":"해당 모델에서의 인용 수","type":"integer"},"model":{"description":"모델 (예: CHATGPT)","type":"string"}},"type":"object"},"domain.SourceURLStatisticDTO":{"properties":{"citationCount":{"description":"이 URL의 총 인용 수","type":"integer"},"domain":{"description":"해당 URL의 도메인 (도메인 미확인 시 빈 문자열)","type":"string"},"quotes":{"description":"AI가 이 URL을 인용한 텍스트 조각 (include=quotes 일 때만, 중복 제거, URL당 최대 20개)","items":{"type":"string"},"type":"array","uniqueItems":false},"url":{"description":"인용된 URL","type":"string"},"urlVariants":{"description":"이 URL로 병합된 원본 URL 목록 (include=urlVariants 지정 시에만 포함). 항상 자기 자신을\n포함하며, 모바일 주소(m.)나 표시용 쿼리 파라미터처럼 표기만 다른 같은 문서의 URL이\n하나로 합쳐졌을 때 어떤 URL들이 합쳐졌는지 확인하는 용도입니다.","items":{"type":"string"},"type":"array","uniqueItems":false}},"type":"object"},"domain.SubmitRunRequest":{"properties":{"models":{"description":"실행 모델 목록 (1~20개, 중복은 1회로 처리, 예: CHATGPT). 목록에 없는 값은 400 으로 거부된다 — GET /models 로 조회 가능","items":{"$ref":"#/components/schemas/domain.RunModel"},"maxItems":20,"minItems":1,"type":"array","uniqueItems":false},"promptIDs":{"description":"실행할 프롬프트 ID 목록 (1~500개, 중복은 1회로 처리). promptSetID 와 정확히 하나만 지정합니다","items":{"type":"string"},"maxItems":500,"minItems":1,"type":"array","uniqueItems":false},"promptSetID":{"description":"실행할 프롬프트 세트 ID — 세트 소속 프롬프트 전체를 실행합니다. promptIDs 와 정확히 하나만 지정합니다. 세트 프롬프트 수에 500개 제한은 없으며 총 실행 수 상한(10,000)만 적용","type":"string"},"region":{"description":"실행 지역(ISO 3166-1 alpha-2, 예: KR·US·JP). 생략 시 KR. 지원하지 않는 코드는 400. 모델마다 지원 지역이 다를 수 있으며(GET /regions?model= 로 확인), 지원하지 않는 조합은 400","type":"string"},"repeatCount":{"description":"각 프롬프트(question)별 반복 실행 횟수 (기본 1, 최대 100). 총 실행 수(프롬프트 수 × 모델 수 × 반복 횟수)가 10,000을 초과하면 400 (RUN_TOO_MANY_TASKS)","maximum":100,"minimum":1,"type":"integer"}},"required":["models"],"type":"object"},"domain.SubmitRunResponse":{"properties":{"runID":{"description":"제출된 Run의 ID. Run 상태 조회에 사용합니다","type":"string"}},"type":"object"},"domain.SubmitSiteKeywordAnalysisRequest":{"properties":{"maxPages":{"description":"입력 URL을 포함해 분석할 최대 페이지 수 (1~50). 1이면 입력 URL만 분석하고,\n2 이상이면 사이트맵과 내부 링크에서 추가 페이지를 찾습니다.","maximum":50,"minimum":1,"type":"integer"},"url":{"description":"분석 대상 URL (scheme 포함, 최대 2048자)","maxLength":2048,"type":"string"}},"required":["maxPages","url"],"type":"object"},"domain.SubmitSiteKeywordAnalysisResponse":{"properties":{"taskID":{"description":"분석 작업 ID. 상태 조회의 taskID로 사용합니다","type":"string"}},"type":"object"},"domain.TokenStatisticDTO":{"properties":{"answerCount":{"description":"이 토큰이 등장한 답변 수 (한 답변에 여러 번 나와도 1)","type":"integer"},"avgPosition":{"description":"답변 내 평균 첫 등장 위치 (0=맨앞, 1=맨뒤). 원문 글자 위치가 아니라 추출된 명사 나열 기준의 상대 위치. 명사가 1개뿐인 답변은 위치가 정의되지 않아 평균에서 제외되며, 그런 답변에만 등장한 토큰은 0으로 표기됨","type":"number"},"token":{"description":"토큰 (답변에서 추출한 명사, 소문자 통일)","type":"string"}},"type":"object"},"domain.UpdateBrandRequest":{"properties":{"description":{"description":"브랜드 설명 (최대 1000자)","maxLength":1000,"type":"string"},"name":{"description":"브랜드명 (최대 100자)","maxLength":100,"type":"string"},"synonyms":{"description":"브랜드 동의어 목록 (최대 50개, 각 100자 이내)","items":{"type":"string"},"maxItems":50,"type":"array","uniqueItems":false},"websites":{"description":"브랜드 웹사이트 URL 목록 (최대 20개, 각 항목 URL 형식·scheme 포함·2048자 이내)","items":{"type":"string"},"maxItems":20,"type":"array","uniqueItems":false}},"required":["synonyms"],"type":"object"},"domain.UpdatePromptRequest":{"properties":{"content":{"description":"프롬프트 내용 (최대 1000자)","maxLength":1000,"type":"string"},"promptSetID":{"description":"이동할 프롬프트 세트 ID (미제공 시 세트 유지)","type":"string"}},"type":"object"},"domain.UpdatePromptSetRequest":{"properties":{"description":{"description":"설명 (최대 1000자)","maxLength":1000,"type":"string"},"name":{"description":"이름 (최대 100자)","maxLength":100,"type":"string"}},"type":"object"},"github_com_chainshiftlabs_console-api-go_internal_platform_domain.ListRegionsResponse":{"properties":{"regions":{"description":"지원 리전 목록","items":{"$ref":"#/components/schemas/domain.RegionItem"},"type":"array","uniqueItems":false}},"type":"object"}},"securitySchemes":{"OrgAPIKeyAuth":{"description":"\"조직 API 키를 입력하세요. 예: 'cs_live_xxxx' 또는 'cs_test_xxxx'\"","in":"header","name":"API-Key","type":"apiKey"}}},"externalDocs":{"description":"","url":""},"info":{"description":"외부 파트너용 플랫폼 API. 조직 API 키 기반 인증을 사용합니다.\n### 공통 요청 제한\n- 요청 body 크기는 최대 2MiB이며, 초과 시 413과 함께 `COMMON_REQUEST_BODY_TOO_LARGE` 코드를 반환합니다.\n- 배열 파라미터와 문자열 필드에는 엔드포인트별 개수·길이 상한이 있습니다. 상한은 각 필드/파라미터 설명에 명시되어 있으며, 위반 시 400과 함께 `COMMON_VALIDATION` 코드를 반환합니다.\n- 검증 실패 시 `details` 배열에 위반 필드와 사유가 담깁니다. 예: `{\"code\":\"COMMON_VALIDATION\",\"message\":\"데이터 검증에 실패했습니다\",\"details\":[\"keywords: 최대 100개까지 입력할 수 있습니다\"]}`\n- `message`와 `details`는 Accept-Language 헤더에 따라 한국어(ko) 또는 영어(en)로 제공됩니다.","title":"Platform API","version":"1.0"},"openapi":"3.1.0","paths":{"/v1beta/platform/answers":{"get":{"description":"조직의 답변(실행) 목록을 최신순 cursor 페이지네이션으로 조회합니다. 각 답변은 본문과 함께 인용 출처(sources)·검색 쿼리(fanouts)·원본 마크다운 URL(markdownURL)을 포함하며, PENDING/FAILED 실행도 상태와 함께 반환됩니다.","operationId":"listAnswers","parameters":[{"description":"특정 Run으로 범위를 좁히는 필터 (제출 시 발급된 Run ID) (ID 문자열)","in":"query","name":"runID","schema":{"type":"string"}},{"description":"특정 프롬프트 세트로 범위를 좁히는 필터 (ID 문자열)","in":"query","name":"promptSetID","schema":{"type":"string"}},{"description":"특정 프롬프트로 범위를 좁히는 필터 (ID 문자열)","in":"query","name":"promptID","schema":{"type":"string"}},{"description":"특정 모델로 범위를 좁히는 필터 (예: CHATGPT)","in":"query","name":"model","schema":{"type":"string"}},{"description":"특정 지역으로 범위를 좁히는 필터 (예: KR)","in":"query","name":"region","schema":{"type":"string"}},{"description":"실행 상태 필터 (PENDING, SUCCESS, FAILED)","in":"query","name":"status","schema":{"type":"string"}},{"description":"생성일 시작 (RFC3339)","in":"query","name":"from","schema":{"type":"string"}},{"description":"생성일 종료 (RFC3339)","in":"query","name":"to","schema":{"type":"string"}},{"description":"이전 응답의 nextCursor (첫 요청은 생략)","in":"query","name":"cursor","schema":{"type":"string"}},{"description":"페이지 크기 (기본 20, 최대 100)","in":"query","name":"limit","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.ListAnswersResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: cursor 형식 오류(COMMON_INVALID_CURSOR), limit 범위 위반(1~100), 또는 status 값 오류"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"답변 목록 조회","tags":["Answer"]}},"/v1beta/platform/answers/count":{"get":{"description":"조직의 답변 본문을 전문검색해, 검색어 중 하나라도 매칭되는 답변의 개수를 셉니다. 한 검색어 안의 여러 단어는 순서대로 인접한 구문(phrase)으로 매칭하고, 검색어 사이는 OR로 처리합니다.","operationId":"countAnswers","parameters":[{"description":"검색어 목록 (1~20개, 각 200자 이내). 여러 번 전달(예: ?word=인공 지능\u0026word=갤럭시). 한 검색어의 여러 단어는 구문(phrase, 인접) 매칭","in":"query","name":"word","required":true,"schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"특정 프롬프트로 범위를 좁히는 필터 (ID 문자열)","in":"query","name":"promptID","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.CountAnswersResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: word가 비어 있거나 개수(1~20개)·길이(각 200자) 제한 위반"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"답변 전문검색 카운트","tags":["Answer"]}},"/v1beta/platform/answers/statistics/neighbors":{"get":{"description":"기준 단어가 나온 답변에서 그 단어 앞뒤(±window 토큰)에 함께 등장한 토큰을 집계합니다. word를 여러 개 주면 하나의 기준 집합(union)으로 봅니다 — 브랜드명과 유사어를 함께 넣는 용도입니다. 한국어 전용이며, include=totalAnswerCount 지정 시 각 토큰의 전체 등장 답변 수(비교 기준값)가 추가됩니다.","operationId":"listAnswerStatisticsNeighbors","parameters":[{"description":"기준 단어. 여러 번 전달 가능(1~20개, 각 200자 이내. 예: ?word=갤럭시\u0026word=Galaxy). 각 단어를 형태소 단위로 매칭하며, 여러 단어는 하나의 기준 집합으로 합쳐 집계합니다","in":"query","name":"word","required":true,"schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"특정 Run 필터 (제출 시 발급된 Run ID). runID·promptID 중 최소 하나 필수 (ID 문자열)","in":"query","name":"runID","schema":{"type":"string"}},{"description":"특정 프롬프트 필터. runID·promptID 중 최소 하나 필수 (ID 문자열)","in":"query","name":"promptID","schema":{"type":"string"}},{"description":"모델 필터. GET /models 로 조회 가능한 모델만 허용","in":"query","name":"model","schema":{"enum":["CHATGPT","GOOGLE_OVERVIEW","GOOGLE_AI","PERPLEXITY","GEMINI","NAVER_AI_BRIEFING","NAVER_AI_TAB","CLAUDE"],"type":"string"}},{"description":"기준 단어 앞뒤 몇 개의 명사 토큰까지 이웃으로 볼지 (기본 5, 최대 20)","in":"query","name":"window","schema":{"type":"integer"}},{"description":"상위 몇 개 이웃 토큰까지 반환할지 (기본 50, 최대 200)","in":"query","name":"limit","schema":{"type":"integer"}},{"description":"추가로 포함할 필드 (선택, 현재 totalAnswerCount 지원)","in":"query","name":"include","schema":{"items":{"enum":["totalAnswerCount"],"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.ListTokenNeighborsResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: word 누락, 20개 초과 또는 각 200자 초과, runID·promptID 둘 다 누락, window·limit 범위 위반, 지원하지 않는 model·include 값"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"특정 단어의 근접 토큰 집계 조회","tags":["AnswerStatistics"]}},"/v1beta/platform/answers/statistics/tokens":{"get":{"description":"답변 본문에서 자주 등장한 명사 토큰을 등장 답변 수 기준 상위 랭킹으로 반환합니다. 등장 답변 수는 한 답변에 여러 번 나와도 1로 셉니다. 한국어 형태소 분석 기반이라 비한국어 답변은 집계되지 않습니다.","operationId":"listAnswerStatisticsTokens","parameters":[{"description":"특정 Run 필터 (제출 시 발급된 Run ID). runID·promptID 중 최소 하나 필수 (ID 문자열)","in":"query","name":"runID","schema":{"type":"string"}},{"description":"특정 프롬프트 필터. runID·promptID 중 최소 하나 필수 (ID 문자열)","in":"query","name":"promptID","schema":{"type":"string"}},{"description":"모델 필터. GET /models 로 조회 가능한 모델만 허용","in":"query","name":"model","schema":{"enum":["CHATGPT","GOOGLE_OVERVIEW","GOOGLE_AI","PERPLEXITY","GEMINI","NAVER_AI_BRIEFING","NAVER_AI_TAB","CLAUDE"],"type":"string"}},{"description":"상위 몇 개 토큰까지 반환할지 (기본 50, 최대 200)","in":"query","name":"limit","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.ListTokenStatisticsResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: runID·promptID 둘 다 누락, limit 범위 위반(1~200), 지원하지 않는 model 값"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"답변 토큰 집계 조회","tags":["AnswerStatistics"]}},"/v1beta/platform/answers/{answerID}":{"get":{"description":"답변 단건을 조회합니다. 응답 구조는 목록 항목과 동일하게 인용 출처(sources)·검색 쿼리(fanouts)·원본 마크다운 URL(markdownURL)을 포함합니다.","operationId":"getAnswer","parameters":[{"description":"답변 ID (ID 문자열)","in":"path","name":"answerID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.GetAnswerResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: answerID 형식이 올바르지 않습니다"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"답변을 찾을 수 없습니다 (ANSWER_NOT_FOUND)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"답변 단건 조회","tags":["Answer"]}},"/v1beta/platform/brands":{"get":{"description":"조직의 브랜드 목록을 최신순 cursor 페이지네이션으로 조회합니다.","operationId":"listBrands","parameters":[{"description":"이전 응답의 nextCursor (첫 요청은 생략)","in":"query","name":"cursor","schema":{"type":"string"}},{"description":"페이지 크기 (기본 20, 최대 100)","in":"query","name":"limit","schema":{"type":"integer"}},{"description":"브랜드명 부분 일치 검색 (검색 조건 변경 시 cursor 비우고 재조회)","in":"query","name":"nameContains","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.ListBrandsResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: cursor 형식 오류(COMMON_INVALID_CURSOR) 또는 limit 범위 위반(1~100)"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"브랜드 목록 조회","tags":["Brand"]},"post":{"description":"조직에 브랜드를 생성합니다. 브랜드는 답변에서 자사 언급을 추적할 때 기준이 되는 브랜드명·동의어(synonyms)·웹사이트(websites)를 관리하는 리소스입니다.","operationId":"createBrand","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.CreateBrandRequest","description":"브랜드 생성 요청","summary":"request"}}},"description":"브랜드 생성 요청","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.CreateBrandResponse"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: 검증 실패 (브랜드명 누락/초과, 웹사이트 URL 형식 오류 등)"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"브랜드 생성","tags":["Brand"]}},"/v1beta/platform/brands/{brandID}":{"delete":{"description":"브랜드를 삭제합니다.","operationId":"deleteBrand","parameters":[{"description":"브랜드 ID (ID 문자열)","in":"path","name":"brandID","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: brandID 형식이 올바르지 않습니다"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"브랜드를 찾을 수 없습니다 (USER_BRAND_NOT_FOUND)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"브랜드 삭제","tags":["Brand"]},"get":{"description":"브랜드 단건을 조회합니다.","operationId":"getBrand","parameters":[{"description":"브랜드 ID (ID 문자열)","in":"path","name":"brandID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.GetBrandResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: brandID 형식이 올바르지 않습니다"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"브랜드를 찾을 수 없습니다 (USER_BRAND_NOT_FOUND)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"브랜드 단건 조회","tags":["Brand"]},"patch":{"description":"브랜드를 부분 수정합니다. 제공한 필드만 변경되고 나머지는 유지됩니다.","operationId":"updateBrand","parameters":[{"description":"브랜드 ID (ID 문자열)","in":"path","name":"brandID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.UpdateBrandRequest","description":"브랜드 수정 요청 (부분 수정)","summary":"request"}}},"description":"브랜드 수정 요청 (부분 수정)","required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: 검증 실패 (빈 브랜드명(USER_BRAND_NAME_REQUIRED), 브랜드명 초과, 웹사이트 URL 형식 오류 등)"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"브랜드를 찾을 수 없습니다 (USER_BRAND_NOT_FOUND)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"브랜드 수정","tags":["Brand"]}},"/v1beta/platform/common/proper-nouns/extract":{"post":{"description":"텍스트에서 일반명사·고유명사를 추출합니다.","operationId":"extractProperNouns","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.ExtractProperNounsRequest","description":"고유명사 추출 요청","summary":"request"}}},"description":"고유명사 추출 요청","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.ExtractProperNounsResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: 텍스트 누락 또는 길이 초과"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"미등록 고유명사 추출","tags":["ProperNoun","devonly"]}},"/v1beta/platform/common/proper-nouns/extract-strict":{"post":{"description":"텍스트에서 명사를 추출하되 고유명사 오탐을 제거합니다.","operationId":"extractProperNounsStrict","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"type":"object"},{"$ref":"#/components/schemas/domain.ExtractProperNounsRequest","description":"고유명사 추출 요청","summary":"request"}]}}},"description":"고유명사 추출 요청","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.ExtractProperNounsResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: 텍스트 누락 또는 길이 초과"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"미등록 고유명사 추출 (엄격)","tags":["ProperNoun","devonly"]}},"/v1beta/platform/credits/me":{"get":{"description":"조직의 현재 크레딧 잔액(유료+플랜 합계)을 조회합니다. 사용 이력이 없는 조직은 잔액 0으로 응답합니다.","operationId":"getMyCreditBalance","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.GetMyCreditBalanceResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"내 조직 크레딧 잔액 조회","tags":["Credit"]}},"/v1beta/platform/fanouts/statistics":{"get":{"description":"AI가 답변을 생성하며 실제로 던진 검색 쿼리(fan-out)를 등장 횟수 기준 상위 랭킹으로 반환합니다. fan-out은 CHATGPT·PERPLEXITY·CLAUDE 답변에서만 수집되며, 그 외 모델은 항상 빈 결과입니다.","operationId":"listFanoutStatistics","parameters":[{"description":"특정 Run 필터 (제출 시 발급된 Run ID). runID·promptID 중 최소 하나 필수 (ID 문자열)","in":"query","name":"runID","schema":{"type":"string"}},{"description":"특정 프롬프트 필터. runID·promptID 중 최소 하나 필수 (ID 문자열)","in":"query","name":"promptID","schema":{"type":"string"}},{"description":"모델 필터. GET /models 로 조회 가능한 모델만 허용","in":"query","name":"model","schema":{"enum":["CHATGPT","GOOGLE_OVERVIEW","GOOGLE_AI","PERPLEXITY","GEMINI","NAVER_AI_BRIEFING","NAVER_AI_TAB","CLAUDE"],"type":"string"}},{"description":"상위 몇 개 쿼리까지 반환할지 (기본 50, 최대 200)","in":"query","name":"limit","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.ListFanoutStatisticsResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: runID·promptID 둘 다 누락, limit 범위 위반(1~200), 지원하지 않는 model 값"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"팬아웃(검색 쿼리) 집계 조회","tags":["FanoutStatistics"]}},"/v1beta/platform/keywords/google/metrics":{"post":{"description":"키워드 목록(최대 100개)의 구글 검색 지표(월평균 검색량·SEO 난이도·CPC·검색 의도·검색량 추이)를 조회합니다. 데이터가 없는 키워드는 metrics가 null이며, metrics는 있으나 searchVolume이 null이면 검색량이 비공개된 키워드입니다.","operationId":"getGoogleKeywordMetrics","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.GetGoogleKeywordMetricsRequest","description":"키워드 지표 조회 요청","summary":"request"}}},"description":"키워드 지표 조회 요청","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.GetGoogleKeywordMetricsResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: 검증 실패(키워드 1~100개·중복 불가·각 80자 이내), 지원하지 않는 국가 코드(KEYWORD_COUNTRY_NOT_SUPPORTED), 공급자 거부(KEYWORD_METRICS_PROVIDER_REJECTED — 언어·국가 조합 오류 등)"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"지표 공급자 호출 실패 (KEYWORD_METRICS_PROVIDER_UNAVAILABLE)"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"키워드 지표 기능 비활성 (KEYWORD_METRICS_NOT_CONFIGURED)"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"구글 키워드 지표 조회","tags":["Keyword"]}},"/v1beta/platform/keywords/google/related":{"get":{"description":"기준 키워드와 연관된 구글 키워드를 검색량 내림차순으로 조회합니다. 기준 키워드는 목록에서 제외되며, 그 지표는 응답의 metrics 필드로 제공됩니다.","operationId":"listGoogleRelatedKeywords","parameters":[{"description":"연관 키워드를 조회할 기준 키워드 (80자 이내)","in":"query","name":"keyword","required":true,"schema":{"type":"string"}},{"description":"언어 코드 (ISO 639-1, 기본 ko)","in":"query","name":"languageCode","schema":{"type":"string"}},{"description":"국가 코드 (ISO 3166-1 alpha-2, 기본 KR)","in":"query","name":"countryCode","schema":{"type":"string"}},{"description":"최대 반환 개수 (기본 30, 최대 100)","in":"query","name":"limit","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.ListGoogleRelatedKeywordsResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: 검증 실패, 지원하지 않는 국가 코드(KEYWORD_COUNTRY_NOT_SUPPORTED), 공급자 거부(KEYWORD_METRICS_PROVIDER_REJECTED)"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"지표 공급자 호출 실패 (KEYWORD_METRICS_PROVIDER_UNAVAILABLE)"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"키워드 지표 기능 비활성 (KEYWORD_METRICS_NOT_CONFIGURED)"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"구글 연관 키워드 조회","tags":["Keyword"]}},"/v1beta/platform/keywords/google/suggestions":{"get":{"description":"기준 키워드를 포함하는 세부(롱테일) 구글 키워드를 검색량 내림차순으로 조회합니다. 기준 키워드는 목록에서 제외되며, 그 지표는 응답의 metrics 필드로 제공됩니다. 기준 키워드에 검색 데이터가 없으면 metrics가 null입니다.","operationId":"listGoogleKeywordSuggestions","parameters":[{"description":"세부 키워드를 조회할 기준 키워드 (80자 이내)","in":"query","name":"keyword","required":true,"schema":{"type":"string"}},{"description":"언어 코드 (ISO 639-1, 기본 ko)","in":"query","name":"languageCode","schema":{"type":"string"}},{"description":"국가 코드 (ISO 3166-1 alpha-2, 기본 KR)","in":"query","name":"countryCode","schema":{"type":"string"}},{"description":"최대 반환 개수 (기본 30, 최대 100)","in":"query","name":"limit","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.ListGoogleKeywordSuggestionsResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: 검증 실패, 지원하지 않는 국가 코드(KEYWORD_COUNTRY_NOT_SUPPORTED), 공급자 거부(KEYWORD_METRICS_PROVIDER_REJECTED)"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"지표 공급자 호출 실패 (KEYWORD_METRICS_PROVIDER_UNAVAILABLE)"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"키워드 지표 기능 비활성 (KEYWORD_METRICS_NOT_CONFIGURED)"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"구글 키워드 제안(자동완성) 조회","tags":["Keyword"]}},"/v1beta/platform/keywords/naver/metrics":{"post":{"description":"키워드 목록(최대 15개)의 네이버 검색 지표(PC·모바일 검색량·클릭수·클릭률·경쟁 정도·평균 노출 광고 수)를 조회합니다. 한국 시장 전용이라 언어·국가 코드 파라미터가 없습니다. 데이터가 없거나 검색 수요가 거의 없는 키워드는 metrics가 null입니다.","operationId":"getNaverKeywordMetrics","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.GetNaverKeywordMetricsRequest","description":"키워드 지표 조회 요청","summary":"request"}}},"description":"키워드 지표 조회 요청","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.GetNaverKeywordMetricsResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: 검증 실패(키워드 1~15개·중복 불가·각 80자 이내)"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"지표 공급자 호출 실패 (KEYWORD_METRICS_PROVIDER_UNAVAILABLE)"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"키워드 지표 기능 비활성 (KEYWORD_METRICS_NOT_CONFIGURED)"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"네이버 키워드 지표 조회","tags":["Keyword"]}},"/v1beta/platform/keywords/naver/related":{"get":{"description":"기준 키워드와 연관된 네이버 키워드를 검색량 내림차순으로 조회합니다. 기준 키워드는 목록에서 제외되며, 그 지표는 응답의 metrics 필드로 제공됩니다.","operationId":"listNaverRelatedKeywords","parameters":[{"description":"연관 키워드를 조회할 기준 키워드 (80자 이내)","in":"query","name":"keyword","required":true,"schema":{"type":"string"}},{"description":"최대 반환 개수 (기본 30, 최대 100)","in":"query","name":"limit","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.ListNaverRelatedKeywordsResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: 검증 실패"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"지표 공급자 호출 실패 (KEYWORD_METRICS_PROVIDER_UNAVAILABLE)"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"키워드 지표 기능 비활성 (KEYWORD_METRICS_NOT_CONFIGURED)"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"네이버 연관 키워드 조회","tags":["Keyword"]}},"/v1beta/platform/keywords/naver/suggestions":{"get":{"description":"기준 키워드를 포함하는 세부(롱테일) 네이버 키워드를 검색량 내림차순으로 조회합니다. 기준 키워드는 목록에서 제외되며, 그 지표는 응답의 metrics 필드로 제공됩니다.","operationId":"listNaverKeywordSuggestions","parameters":[{"description":"세부 키워드를 조회할 기준 키워드 (80자 이내)","in":"query","name":"keyword","required":true,"schema":{"type":"string"}},{"description":"최대 반환 개수 (기본 30, 최대 100)","in":"query","name":"limit","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.ListNaverKeywordSuggestionsResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: 검증 실패"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"지표 공급자 호출 실패 (KEYWORD_METRICS_PROVIDER_UNAVAILABLE)"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"키워드 지표 기능 비활성 (KEYWORD_METRICS_NOT_CONFIGURED)"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"네이버 키워드 제안(자동완성) 조회","tags":["Keyword"]}},"/v1beta/platform/keywords/naver/trend":{"post":{"description":"키워드 목록(최대 15개)의 네이버 최근 12개월 검색 트렌드를 조회합니다. 값은 절대 검색량이 아니라 기간 내 최댓값을 100으로 한 상대 비율(0~100)이며, 절대 환산이 필요하면 응답의 anchor 값으로 스케일링할 수 있습니다. 데이터가 없는 키워드는 trend가 null입니다.","operationId":"getNaverKeywordTrend","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.GetNaverKeywordTrendRequest","description":"키워드 트렌드 조회 요청","summary":"request"}}},"description":"키워드 트렌드 조회 요청","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.GetNaverKeywordTrendResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: 검증 실패(키워드 1~15개·중복 불가·각 80자 이내)"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"지표 공급자 호출 실패 (KEYWORD_METRICS_PROVIDER_UNAVAILABLE)"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"키워드 지표 기능 비활성 (KEYWORD_METRICS_NOT_CONFIGURED)"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"네이버 키워드 12개월 검색 트렌드 조회","tags":["Keyword"]}},"/v1beta/platform/models":{"get":{"description":"Run 제출에 사용할 수 있는 지원 모델 목록을 조회합니다. 반환되는 모델 코드는 Run 제출(submitRun)의 models 값과 통계 API의 model 필터 값으로 사용합니다.","operationId":"listModels","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.ListModelsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"모델 목록 조회","tags":["Model"]}},"/v1beta/platform/organizations/me":{"get":{"description":"API 키가 속한 조직의 기본 정보(조직명·웹사이트·리전)를 조회합니다. 발급받은 API 키가 어느 조직에 연결되어 있는지 확인할 때 사용합니다.","operationId":"getMyOrganization","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.GetMyOrganizationResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"조직을 찾을 수 없습니다 (ORGANIZATION_NOT_FOUND)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"내 조직 정보 조회","tags":["Organization"]}},"/v1beta/platform/prompt-sets":{"get":{"description":"조직의 프롬프트 세트 목록을 cursor 페이지네이션으로 조회합니다. 기본 정렬은 asc이며 order로 desc를 선택할 수 있습니다.","operationId":"listPromptSets","parameters":[{"description":"이전 응답의 nextCursor (첫 요청은 생략)","in":"query","name":"cursor","schema":{"type":"string"}},{"description":"페이지 크기 (기본 20, 최대 100)","in":"query","name":"limit","schema":{"type":"integer"}},{"description":"정렬 방향 (asc 기본, desc)","in":"query","name":"order","schema":{"enum":["asc","desc"],"type":"string"}},{"description":"이름 prefix 검색","in":"query","name":"nameStartsWith","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.ListPromptSetsResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: cursor 형식 오류(COMMON_INVALID_CURSOR), limit/order 검증 실패"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"프롬프트 세트 목록 조회","tags":["PromptSet"]},"post":{"description":"조직에 프롬프트 세트를 생성합니다. 프롬프트 세트는 프롬프트를 묶어 관리하는 단위로, Run 제출 시 promptSetID로 세트 전체를 한 번에 실행할 수 있습니다.","operationId":"createPromptSet","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.CreatePromptSetRequest","description":"프롬프트 세트 생성 요청","summary":"request"}}},"description":"프롬프트 세트 생성 요청","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.CreatePromptSetResponse"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: 검증 실패 (이름 누락/초과 등)"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"프롬프트 세트 생성","tags":["PromptSet"]}},"/v1beta/platform/prompt-sets/{promptSetID}":{"delete":{"description":"프롬프트 세트를 삭제합니다.","operationId":"deletePromptSet","parameters":[{"description":"프롬프트 세트 ID (ID 문자열)","in":"path","name":"promptSetID","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: promptSetID 형식 오류"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"프롬프트 세트를 찾을 수 없습니다 (PROMPT_SET_NOT_FOUND)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"프롬프트 세트 삭제","tags":["PromptSet"]},"get":{"description":"프롬프트 세트 단건을 조회합니다.","operationId":"getPromptSet","parameters":[{"description":"프롬프트 세트 ID (ID 문자열)","in":"path","name":"promptSetID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.GetPromptSetResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: promptSetID 형식 오류"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"프롬프트 세트를 찾을 수 없습니다 (PROMPT_SET_NOT_FOUND)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"프롬프트 세트 단건 조회","tags":["PromptSet"]},"patch":{"description":"프롬프트 세트를 부분 수정합니다. 제공한 필드만 변경되고 나머지는 유지됩니다.","operationId":"updatePromptSet","parameters":[{"description":"프롬프트 세트 ID (ID 문자열)","in":"path","name":"promptSetID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.UpdatePromptSetRequest","description":"프롬프트 세트 수정 요청 (부분 수정)","summary":"request"}}},"description":"프롬프트 세트 수정 요청 (부분 수정)","required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: 빈 이름(PROMPT_SET_NAME_REQUIRED), 이름 초과 등"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"프롬프트 세트를 찾을 수 없습니다 (PROMPT_SET_NOT_FOUND)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"프롬프트 세트 수정","tags":["PromptSet"]}},"/v1beta/platform/prompts":{"get":{"description":"조직의 프롬프트 목록을 최신순 cursor 페이지네이션으로 조회합니다. promptSetID 지정 시 해당 세트만, 미지정 시 전체를 조회합니다.","operationId":"listPrompts","parameters":[{"description":"특정 프롬프트 세트로 범위를 좁히는 필터 (미지정 시 조직의 모든 프롬프트 세트 조회) (ID 문자열)","in":"query","name":"promptSetID","schema":{"type":"string"}},{"description":"이전 응답의 nextCursor (첫 요청은 생략)","in":"query","name":"cursor","schema":{"type":"string"}},{"description":"페이지 크기 (기본 20, 최대 100)","in":"query","name":"limit","schema":{"type":"integer"}},{"description":"프롬프트 내용 부분 일치 검색 (검색 조건 변경 시 cursor 비우고 재조회)","in":"query","name":"contentContains","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.ListPromptsResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: cursor 형식 오류(COMMON_INVALID_CURSOR) 또는 limit 범위 위반(1~100)"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"프롬프트 세트를 찾을 수 없습니다 (PROMPT_SET_NOT_FOUND, promptSetID 지정 시)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"프롬프트 목록 조회","tags":["Prompt"]},"post":{"description":"프롬프트 세트에 프롬프트를 생성합니다. promptSetID는 필수입니다. 세트당 프롬프트는 최대 1,000개까지 생성할 수 있습니다.","operationId":"createPrompt","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.CreatePromptRequest","description":"프롬프트 생성 요청","summary":"request"}}},"description":"프롬프트 생성 요청","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.CreatePromptResponse"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: 검증 실패 (내용 누락/초과, promptSetID 누락)"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"프롬프트 세트를 찾을 수 없습니다 (PROMPT_SET_NOT_FOUND)"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"세트당 프롬프트 최대 개수(1,000개) 초과 (PROMPT_SET_PROMPT_LIMIT_EXCEEDED)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"프롬프트 생성","tags":["Prompt"]}},"/v1beta/platform/prompts/bulk":{"post":{"description":"프롬프트를 한 번에 최대 100개까지 생성합니다. 하나라도 검증에 실패하면 전체가 생성되지 않습니다(all-or-nothing). 세트당 프롬프트는 최대 1,000개까지이며, 한 세트라도 한도를 넘기면 전체가 생성되지 않습니다.","operationId":"bulkCreatePrompt","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.BulkCreatePromptRequest","description":"프롬프트 벌크 생성 요청","summary":"request"}}},"description":"프롬프트 벌크 생성 요청","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.BulkCreatePromptResponse"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: 검증 실패 (목록 비었음/100개 초과, 내용 누락/초과, promptSetID 누락)"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"프롬프트 세트를 찾을 수 없습니다 (PROMPT_SET_NOT_FOUND)"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"세트당 프롬프트 최대 개수(1,000개) 초과 (PROMPT_SET_PROMPT_LIMIT_EXCEEDED)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"프롬프트 벌크 생성","tags":["Prompt"]}},"/v1beta/platform/prompts/{promptID}":{"delete":{"description":"프롬프트를 삭제합니다.","operationId":"deletePrompt","parameters":[{"description":"프롬프트 ID (ID 문자열)","in":"path","name":"promptID","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: promptID 형식이 올바르지 않습니다"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"프롬프트를 찾을 수 없습니다 (QUESTION_NOT_FOUND)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"프롬프트 삭제","tags":["Prompt"]},"get":{"description":"프롬프트 단건을 조회합니다.","operationId":"getPrompt","parameters":[{"description":"프롬프트 ID (ID 문자열)","in":"path","name":"promptID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.GetPromptResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: promptID 형식이 올바르지 않습니다"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"프롬프트를 찾을 수 없습니다 (QUESTION_NOT_FOUND)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"프롬프트 단건 조회","tags":["Prompt"]},"patch":{"description":"프롬프트를 부분 수정합니다. 제공한 필드만 변경되고 나머지는 유지됩니다. promptSetID 제공 시 해당 세트로 이동합니다. 이동 대상 세트가 한도(1,000개)에 도달했으면 이동할 수 없습니다.","operationId":"updatePrompt","parameters":[{"description":"프롬프트 ID (ID 문자열)","in":"path","name":"promptID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.UpdatePromptRequest","description":"프롬프트 수정 요청 (부분 수정)","summary":"request"}}},"description":"프롬프트 수정 요청 (부분 수정)","required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: 검증 실패 (빈 내용(QUESTION_CONTENT_REQUIRED), 내용 초과 등)"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"프롬프트(QUESTION_NOT_FOUND) 또는 이동 대상 프롬프트 세트(PROMPT_SET_NOT_FOUND)을 찾을 수 없습니다"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"이동 대상 세트의 프롬프트 최대 개수(1,000개) 초과 (PROMPT_SET_PROMPT_LIMIT_EXCEEDED)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"프롬프트 수정","tags":["Prompt"]}},"/v1beta/platform/regions":{"get":{"description":"Run 제출(submitRun)의 region 값으로 사용할 수 있는 지원 리전 목록을 조회합니다. model 을 지정하면 해당 모델이 지원하는 리전만, 생략하면 전체 리전을 반환합니다.","operationId":"listRegions","parameters":[{"description":"모델 코드(예: CHATGPT). 지정 시 해당 모델이 지원하는 리전만 반환합니다. GET /models 로 조회 가능한 값이어야 하며, 미지원 모델이면 400","in":"query","name":"model","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/github_com_chainshiftlabs_console-api-go_internal_platform_domain.ListRegionsResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: 플랫폼 API 미지원 모델(MODEL_NOT_SUPPORTED)"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"리전 목록 조회","tags":["Region"]}},"/v1beta/platform/runs":{"get":{"description":"조직이 제출한 Run 목록을 상태·건수(전체/완료/성공/실패/진행중)와 함께 최신순 cursor 페이지네이션으로 조회합니다.","operationId":"listPlatformRuns","parameters":[{"description":"이전 응답의 nextCursor (첫 요청은 생략)","in":"query","name":"cursor","schema":{"type":"string"}},{"description":"페이지 크기 (기본 10, 최대 10)","in":"query","name":"limit","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.ListRunsResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: cursor 형식 오류(COMMON_INVALID_CURSOR) 또는 limit 범위 위반(1~10)"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"Run 목록 조회","tags":["Run"]},"post":{"description":"조직의 프롬프트들을 지정한 모델로 단발성 실행하는 Run을 생성합니다. 실행 대상은 promptIDs(개별 프롬프트 지정) 또는 promptSetID(프롬프트 세트 전체) 중 정확히 하나로 지정합니다. 진행 상태는 반환된 runID로 Run 상태 조회에서 확인합니다.","operationId":"submitPlatformRun","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.SubmitRunRequest","description":"Run 제출 요청","summary":"request"}}},"description":"Run 제출 요청","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.SubmitRunResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: 검증 실패 (모델 누락·개수 초과, promptIDs/promptSetID 미지정·중복 지정(RUN_PROMPT_TARGET_REQUIRED), 빈 프롬프트 세트(PROMPT_SET_EMPTY), 미지원 모델, 모델이 지원하지 않는 지역(REGION_NOT_SUPPORTED_FOR_MODEL), 총 실행 수 초과(RUN_TOO_MANY_TASKS) 등)"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS): 실행 규모(모델×프롬프트×반복)에 필요한 크레딧이 잔액보다 큽니다"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"프롬프트(PROMPT_NOT_FOUND) 또는 프롬프트 세트(PROMPT_SET_NOT_FOUND)를 찾을 수 없습니다 (타 조직 소유 포함)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"Run 제출","tags":["Run"]}},"/v1beta/platform/runs/{runID}":{"get":{"description":"제출한 Run(runID)의 진행 상태와 전체/완료/성공/실패/진행중 건수, 항목별 세부 상태(answers)를 조회합니다.","operationId":"getPlatformRunStatus","parameters":[{"description":"Run ID (제출 시 반환된 runID 문자열)","in":"path","name":"runID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.GetRunStatusResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: runID 형식 오류"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"Run을 찾을 수 없습니다 (TASK_GENERATION_RUN_NOT_FOUND)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"Run 상태 조회","tags":["Run"]}},"/v1beta/platform/siteKeywordAnalyses":{"post":{"description":"URL을 크롤링해 키워드 후보를 추출하는 분석을 제출합니다. 비동기로 처리되며 taskID로 상태를 조회합니다.","operationId":"submitPlatformSiteKeywordAnalysis","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.SubmitSiteKeywordAnalysisRequest","description":"분석 제출 요청","summary":"request"}}},"description":"분석 제출 요청","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.SubmitSiteKeywordAnalysisResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: url 또는 maxPages 범위(1~50) 검증 실패"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"사이트 키워드 분석 제출","tags":["Keyword"]}},"/v1beta/platform/siteKeywordAnalyses/{taskID}":{"get":{"description":"제출된 분석 작업(taskID)의 진행 상태와, 완료됐다면 추출된 키워드 결과를 조회합니다.","operationId":"getPlatformSiteKeywordAnalysisStatus","parameters":[{"description":"Task ID (제출 시 반환된 taskID 문자열)","in":"path","name":"taskID","required":true,"schema":{"type":"string"}},{"description":"true면 키워드별 sources 항목에 url을 포함합니다 (기본 false). sourceURLCount는 항상 포함됩니다","in":"query","name":"includeSourceURLs","schema":{"type":"boolean"}},{"description":"true면 키워드별 sources 항목에 contexts(키워드가 등장한 원문 인용 목록)를 포함합니다 (기본 false). includeSourceURLs와 독립적으로 지정할 수 있으며, 인용문이 확인되지 않은 페이지는 contexts가 비어 있을 수 있습니다","in":"query","name":"includeContext","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.GetSiteKeywordAnalysisStatusResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: taskID 형식 오류"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"분석 작업을 찾을 수 없습니다 (PLATFORM_SITE_KEYWORD_ANALYSIS_NOT_FOUND)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"사이트 키워드 분석 상태 조회","tags":["Keyword"]}},"/v1beta/platform/sources/statistics/domains":{"get":{"description":"조직의 답변에 인용된 출처를 도메인 단위로 집계합니다. domains는 인용 수 내림차순 상위 limit개만 담는 랭킹이며(페이지네이션 아님), 스코프 내 총 인용 수(totalCitations)와 고유 도메인 수(totalDomains)를 함께 반환합니다. 기본 집계 단위는 루트 도메인이라 blog.naver.com과 cafe.naver.com이 naver.com으로 합산되며, groupBy=subdomain으로 서브도메인별 집계를 선택할 수 있습니다.","operationId":"listSourceStatisticsDomains","parameters":[{"description":"특정 Run 필터 (제출 시 발급된 Run ID). runID·promptID 중 최소 하나 필수 (ID 문자열)","in":"query","name":"runID","schema":{"type":"string"}},{"description":"특정 프롬프트 필터. runID·promptID 중 최소 하나 필수 (ID 문자열)","in":"query","name":"promptID","schema":{"type":"string"}},{"description":"모델 필터. GET /models 로 조회 가능한 모델만 허용","in":"query","name":"model","schema":{"enum":["CHATGPT","GOOGLE_OVERVIEW","GOOGLE_AI","PERPLEXITY","GEMINI","NAVER_AI_BRIEFING","NAVER_AI_TAB","CLAUDE"],"type":"string"}},{"description":"도메인 필터. 여러 번 전달 가능(최대 50개, 각 253자 이내). 매칭 축은 groupBy를 따름(domain이면 루트 도메인 domain=naver.com, subdomain이면 서브도메인 domain=blog.naver.com). 상위 limit 밖 도메인도 필터로 지정하면 지표를 확인할 수 있음","in":"query","name":"domain","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"집계 단위 (기본 domain: 루트 도메인 합산. subdomain: 서브도메인별로 구분. www.는 항상 제거되어 상위 도메인과 합산)","in":"query","name":"groupBy","schema":{"enum":["domain","subdomain"],"type":"string"}},{"description":"추가로 포함할 필드. 현재 지원 값은 models 하나(예: ?include=models). 도메인별 모델 분해를 함께 반환","in":"query","name":"include","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"상위 몇 개 도메인까지 반환할지 (기본 50, 최대 200)","in":"query","name":"limit","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.ListSourceStatisticsDomainsResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: runID·promptID 둘 다 누락, limit 범위 위반(1~200), domain 필터 개수(50개)·길이(253자) 초과, 지원하지 않는 groupBy·model·include 값"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"도메인별 인용 집계 조회","tags":["SourceStatistics"]}},"/v1beta/platform/sources/statistics/urls":{"get":{"description":"조직의 답변에 인용된 출처를 URL 단위로 집계합니다. urls는 인용 수 내림차순 상위 limit개만 담는 랭킹이며(페이지네이션 아님), 스코프 내 총 인용 수(totalCitations)를 함께 반환합니다. domain을 지정하면 그 도메인 아래 인용된 URL만 보므로, 자사 페이지가 인용됐는지 상위 limit 제한에 걸리지 않고 확인할 수 있습니다.","operationId":"listSourceStatisticsURLs","parameters":[{"description":"특정 Run 필터 (제출 시 발급된 Run ID). runID·promptID 중 최소 하나 필수 (ID 문자열)","in":"query","name":"runID","schema":{"type":"string"}},{"description":"특정 프롬프트 필터. runID·promptID 중 최소 하나 필수 (ID 문자열)","in":"query","name":"promptID","schema":{"type":"string"}},{"description":"모델 필터. GET /models 로 조회 가능한 모델만 허용","in":"query","name":"model","schema":{"enum":["CHATGPT","GOOGLE_OVERVIEW","GOOGLE_AI","PERPLEXITY","GEMINI","NAVER_AI_BRIEFING","NAVER_AI_TAB","CLAUDE"],"type":"string"}},{"description":"도메인 필터. 여러 번 전달 가능(최대 50개, 각 253자 이내. 예: ?domain=naver.com\u0026domain=mybrand.com). 루트 도메인 기준","in":"query","name":"domain","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"추가로 포함할 필드 (예: ?include=quotes). 지원 값: quotes(AI가 인용한 텍스트 조각, URL당 최대 20개·중복 제거), urlVariants(이 URL로 정규화·병합된 원본 URL 목록)","in":"query","name":"include","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"상위 몇 개 URL까지 반환할지 (기본 50, 최대 200)","in":"query","name":"limit","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.ListSourceStatisticsURLsResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"잘못된 요청: runID·promptID 둘 다 누락, limit 범위 위반(1~200), domain 필터 개수(50개)·길이(253자) 초과, 지원하지 않는 model 또는 include 값"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"인증 실패: API 키가 유효하지 않습니다"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"크레딧 부족 (INSUFFICIENT_CREDITS)"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"요청 한도 초과 (PLATFORM_RATE_LIMIT_EXCEEDED, Retry-After 헤더 참조)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain.Error"}}},"description":"서버 내부 오류"}},"security":[{"OrgAPIKeyAuth":[]}],"summary":"URL별 인용 집계 조회","tags":["SourceStatistics"]}}},"servers":[{"url":"https://dev-platform-api.trychainshift.ai/api"}],"tags":[{"description":"API 키가 귀속되는 최상위 계정 단위입니다. 조직의 기본 정보를 조회합니다.","name":"Organization"},{"description":"AI 서비스에서 노출을 모니터링하는 대상 브랜드입니다. 브랜드 등록·조회·수정·삭제를 제공합니다.","name":"Brand"},{"description":"브랜드와 시장을 분석하기 위한 키워드 인텔리전스입니다. 구글·네이버 검색 지표, 연관·자동완성 키워드 조회와 사이트 URL 기반 키워드 분석을 제공합니다.","name":"Keyword"},{"description":"프롬프트를 목적별로 묶는 그룹입니다. 프롬프트 세트 생성·조회·수정·삭제를 제공합니다.","name":"PromptSet"},{"description":"AI 서비스에 질의하는 문장 단위입니다. 프롬프트 생성·조회·수정·삭제와 대량 생성을 제공합니다.","name":"Prompt"},{"description":"실행(Run)에 사용하는 AI 서비스 모델입니다. 지원 모델 목록을 조회합니다.","name":"Model"},{"description":"Run 제출에 사용하는 실행 지역입니다. 지원 리전 목록을 조회합니다.","name":"Region"},{"description":"프롬프트를 AI 서비스에 실제로 실행하는 작업 단위입니다. Run 제출과 진행 상태·목록 조회를 제공합니다.","name":"Run"},{"description":"실행으로 수집된 AI 서비스의 응답입니다. 인용 출처·검색 쿼리를 포함한 답변을 조회합니다.","name":"Answer"},{"description":"답변에 인용된 출처를 도메인·URL 단위로 집계한 지표입니다. 인용 요약, 도메인별·URL별 인용 집계를 조회합니다.","name":"SourceStatistics"},{"description":"답변 본문의 토큰(Kiwi 명사)을 집계한 지표입니다. 많이 나온 토큰 랭킹과 특정 단어의 근접 토큰을 조회합니다.","name":"AnswerStatistics"},{"description":"AI가 답변 생성 시 실제로 던진 검색 쿼리(팬아웃)를 집계한 지표입니다. 검색 쿼리별 등장 횟수 랭킹을 조회합니다.","name":"FanoutStatistics"},{"description":"텍스트에서 고유명사를 식별하는 부가 기능입니다. 고유명사 추출을 제공합니다.","name":"ProperNoun"},{"description":"조직 크레딧 잔액 및 플랫폼 API 과금 정보입니다. 현재 크레딧 잔액을 조회합니다.","name":"Credit"}]}