{"openapi":"3.1.0","info":{"title":"Ongo Document Search Server","version":"0.1.0"},"paths":{"/preview/token":{"get":{"summary":"Preview Token","description":"프리뷰 재생용 단기 토큰. 콘솔이 <audio src>에 이걸 붙인다.","operationId":"preview_token_preview_token_get","parameters":[{"name":"x-api-key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}}},"security":[{"ApiKeyAuth":[]}]}},"/preview/{rid}":{"get":{"summary":"Preview","description":"오디오(청명) 프리뷰 클립 스트리밍.","operationId":"preview_preview__rid__get","parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","title":"Rid"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key"}},{"name":"t","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"T"}},{"name":"x-api-key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}}},"security":[{"ApiKeyAuth":[]}]}},"/health":{"get":{"summary":"Health","description":"Liveness and identity: which product this is, what media it indexes, and what shape\n/match returns. Pass the admin key to also get build diagnostics.","operationId":"health_health_get","parameters":[{"name":"x-admin-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/feedback":{"post":{"summary":"Feedback","description":"Record what was actually chosen, or report a bug / give an opinion.","operationId":"feedback_feedback_post","parameters":[{"name":"x-api-key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}}},"security":[{"ApiKeyAuth":[]}]}},"/signup":{"post":{"summary":"Signup","description":"Sign up with an email and get a free API key instantly. Existing emails receive a key hint instead.","operationId":"signup_signup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/match":{"post":{"summary":"Match","description":"Search your indexed documents with a sentence. Returns `documents`, each with `evidence` snippets and their location in the file (page/paragraph). Also `match_quality` (good|weak|none) and `index_size`. Note: there is no `winner_index` — that field exists only on the asset-matching products.","operationId":"match_match_post","parameters":[{"name":"x-api-key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentMatchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}}},"security":[{"ApiKeyAuth":[]}]}},"/token/agent":{"post":{"summary":"Issue Agent Token","description":"에이전트 프롬프트에 넣을 **24시간 · 색인 전용** 토큰 발급.","operationId":"issue_agent_token_token_agent_post","parameters":[{"name":"x-api-key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}}},"security":[{"ApiKeyAuth":[]}]}},"/index/add_doc":{"post":{"summary":"Index Add Doc","description":"Index documents: the file is parsed server-side into located chunks (paragraph / table row /\npage), embedded, then the original bytes are discarded. Only text chunks + vectors are stored.","operationId":"index_add_doc_index_add_doc_post","parameters":[{"name":"x-api-key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocAddRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}}},"security":[{"ApiKeyAuth":[]}]}},"/index/status":{"get":{"summary":"Index Status","description":"Indexing progress and counts for your library.","operationId":"index_status_index_status_get","parameters":[{"name":"x-api-key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}}},"security":[{"ApiKeyAuth":[]}]}},"/index/list":{"get":{"summary":"Index List","description":"List your indexed assets — per-folder counts plus every path, with caption status.\nUseful to verify what made it into the index (and for incremental sync clients).","operationId":"index_list_index_list_get","parameters":[{"name":"x-api-key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}}},"security":[{"ApiKeyAuth":[]}]}},"/index":{"delete":{"summary":"Index Clear","description":"Delete your entire index (thumbnails and vectors).","operationId":"index_clear_index_delete","parameters":[{"name":"x-api-key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}}},"security":[{"ApiKeyAuth":[]}]}},"/index/diff":{"post":{"summary":"Index Diff","description":"Compare your folder's file list with the server index — then upload thumbnails only for new files.","operationId":"index_diff_index_diff_post","parameters":[{"name":"x-api-key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncPaths"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}}},"security":[{"ApiKeyAuth":[]}]}},"/index/prune":{"post":{"summary":"Index Prune","description":"Remove assets no longer present in your folder. Index quota is freed; used caption credits are not refunded.","operationId":"index_prune_index_prune_post","parameters":[{"name":"x-api-key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncPaths"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}}},"security":[{"ApiKeyAuth":[]}]}},"/index/remove":{"post":{"summary":"Index Remove","description":"Remove selected images (paths) and/or whole folders from your index.\nIndex quota is freed; used caption credits are not refunded (embedding/caption GPU already spent).","operationId":"index_remove_index_remove_post","parameters":[{"name":"x-api-key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}}},"security":[{"ApiKeyAuth":[]}]}},"/index/remap":{"post":{"summary":"Index Remap","description":"Move your library without re-indexing: rewrite the path prefix of existing records.","operationId":"index_remap_index_remap_post","parameters":[{"name":"x-api-key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemapRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}}},"security":[{"ApiKeyAuth":[]}]}},"/account":{"get":{"summary":"Account","description":"Your plan, quotas and usage.","operationId":"account_account_get","parameters":[{"name":"x-api-key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}}},"security":[{"ApiKeyAuth":[]}]}},"/billing/status":{"get":{"summary":"Billing Status","description":"Whether card checkout is available, and which plans are actually purchasable.","operationId":"billing_status_billing_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/billing/checkout":{"post":{"summary":"Billing Checkout","description":"Create a card checkout session for a plan or caption pack. Returns the payment page URL.","operationId":"billing_checkout_billing_checkout_post","parameters":[{"name":"x-api-key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}}},"security":[{"ApiKeyAuth":[]}]}},"/billing/portal":{"get":{"summary":"Billing Portal","description":"구독 관리(해지·카드 변경) 포털 URL. LS가 호스팅 — 프로레이션·당월 환불 없음·세금을 처리한다.\n카드(LS) 구독 계정만 대상(수동 Studio·무료는 404). 링크는 서명·만료되므로 누를 때마다 새로 발급.","operationId":"billing_portal_billing_portal_get","parameters":[{"name":"x-api-key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}}},"security":[{"ApiKeyAuth":[]}]}},"/review":{"post":{"summary":"Submit Review","description":"Submit a review. Your first review earns bonus caption credits. Reviews may be quoted publicly only if allow_public is true.","operationId":"submit_review_review_post","parameters":[{"name":"x-api-key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}}},"security":[{"ApiKeyAuth":[]}]}}},"components":{"schemas":{"AudioVectorAddRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AudioVectorItem"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"AudioVectorAddRequest"},"AudioVectorItem":{"properties":{"path":{"type":"string","title":"Path"},"preview_b64":{"type":"string","title":"Preview B64"},"audio_vec":{"items":{"type":"number"},"type":"array","title":"Audio Vec"},"cap_vec":{"items":{"type":"number"},"type":"array","title":"Cap Vec"},"caption":{"type":"string","title":"Caption","default":""},"fname_vec":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"title":"Fname Vec"},"duration_sec":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Sec"}},"type":"object","required":["path","preview_b64","audio_vec","cap_vec"],"title":"AudioVectorItem"},"AxisRequest":{"properties":{"high":{"type":"string","title":"High"},"low":{"type":"string","title":"Low"},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"},"pool":{"type":"integer","maximum":300.0,"minimum":1.0,"title":"Pool","default":50},"top_k":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Top K","default":20},"ids":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Ids"}},"type":"object","required":["high","low"],"title":"AxisRequest"},"CaptionModeRequest":{"properties":{"mode":{"type":"string","title":"Mode"}},"type":"object","required":["mode"],"title":"CaptionModeRequest"},"CaptionRequest":{"properties":{"paths":{"items":{"type":"string"},"type":"array","title":"Paths","default":[]},"folders":{"items":{"type":"string"},"type":"array","title":"Folders","default":[]}},"type":"object","title":"CaptionRequest"},"CheckoutRequest":{"properties":{"plan":{"type":"string","title":"Plan"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"}},"type":"object","required":["plan"],"title":"CheckoutRequest"},"DocAddRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/DocItem"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"DocAddRequest"},"DocItem":{"properties":{"path":{"type":"string","title":"Path"},"data_b64":{"type":"string","title":"Data B64"}},"type":"object","required":["path","data_b64"],"title":"DocItem"},"DocumentEvidence":{"properties":{"loc":{"type":"string","title":"Loc"},"kind":{"type":"string","title":"Kind"},"snippet":{"type":"string","title":"Snippet"},"rid":{"type":"string","title":"Rid"},"score":{"type":"number","title":"Score"}},"type":"object","required":["loc","kind","snippet","rid","score"],"title":"DocumentEvidence"},"DocumentMatchResponse":{"properties":{"match_id":{"type":"string","title":"Match Id"},"match_quality":{"type":"string","title":"Match Quality"},"reason":{"type":"string","title":"Reason"},"index_size":{"type":"integer","title":"Index Size"},"index_kind":{"type":"string","title":"Index Kind"},"documents":{"items":{"$ref":"#/components/schemas/MatchedDocument"},"type":"array","title":"Documents"},"rerank_status":{"type":"string","title":"Rerank Status"}},"type":"object","required":["match_id","match_quality","reason","index_size","index_kind","documents","rerank_status"],"title":"DocumentMatchResponse","description":"Document/recording search response (온고 · 경청)."},"FeedbackRequest":{"properties":{"query":{"type":"string","title":"Query"},"candidates":{"items":{"type":"string"},"type":"array","title":"Candidates"},"ai_winner":{"type":"string","title":"Ai Winner","default":""},"user_choice":{"type":"string","title":"User Choice","default":""},"overridden":{"type":"boolean","title":"Overridden","default":false},"layout_rule_preset":{"type":"string","title":"Layout Rule Preset","default":""},"client":{"type":"string","title":"Client","default":"unknown"},"context":{"type":"string","title":"Context","default":"document"},"match_id":{"type":"string","title":"Match Id","default":""},"judge":{"type":"string","title":"Judge","default":"human"},"note":{"type":"string","title":"Note","default":""},"kind":{"type":"string","title":"Kind","default":"pick"}},"type":"object","required":["query","candidates"],"title":"FeedbackRequest","description":"A user's confirmed selection for a match — sent by any client (Unity, web, or your own pipeline)."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IndexAddRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/IndexItem"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"IndexAddRequest"},"IndexItem":{"properties":{"path":{"type":"string","title":"Path"},"thumb_b64":{"type":"string","title":"Thumb B64"},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Width"},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height"},"rel_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rel Path"}},"type":"object","required":["path","thumb_b64"],"title":"IndexItem"},"MatchRequest":{"properties":{"query":{"type":"string","title":"Query"},"top_k":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Top K","default":5},"context":{"type":"string","title":"Context","default":"document"},"rerank":{"type":"boolean","title":"Rerank","default":true},"min_width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Width"}},"type":"object","required":["query"],"title":"MatchRequest"},"MatchedDocument":{"properties":{"file_path":{"type":"string","title":"File Path"},"name":{"type":"string","title":"Name"},"score":{"type":"number","title":"Score"},"evidence":{"items":{"$ref":"#/components/schemas/DocumentEvidence"},"type":"array","title":"Evidence"}},"type":"object","required":["file_path","name","score","evidence"],"title":"MatchedDocument"},"RemapRequest":{"properties":{"from_prefix":{"type":"string","title":"From Prefix"},"to_prefix":{"type":"string","title":"To Prefix"},"dry_run":{"type":"boolean","title":"Dry Run","default":false}},"type":"object","required":["from_prefix","to_prefix"],"title":"RemapRequest"},"RemoveRequest":{"properties":{"paths":{"items":{"type":"string"},"type":"array","title":"Paths","default":[]},"folders":{"items":{"type":"string"},"type":"array","title":"Folders","default":[]}},"type":"object","title":"RemoveRequest"},"ReviewRequest":{"properties":{"rating":{"type":"integer","title":"Rating"},"text":{"type":"string","title":"Text"},"name":{"type":"string","title":"Name","default":""},"allow_public":{"type":"boolean","title":"Allow Public","default":false}},"type":"object","required":["rating","text"],"title":"ReviewRequest"},"SignupRequest":{"properties":{"email":{"type":"string","title":"Email"}},"type":"object","required":["email"],"title":"SignupRequest"},"SpeechAddRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SpeechChunk"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"SpeechAddRequest"},"SpeechChunk":{"properties":{"path":{"type":"string","title":"Path"},"doc":{"type":"string","title":"Doc"},"loc":{"type":"string","title":"Loc"},"start_sec":{"type":"number","title":"Start Sec"},"text":{"type":"string","title":"Text"},"txt_vec":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"title":"Txt Vec"},"fname_vec":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"title":"Fname Vec"},"segs":{"anyOf":[{"items":{"items":{},"type":"array"},"type":"array","maxItems":400},{"type":"null"}],"title":"Segs"},"speaker":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Speaker"},"tc_start":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Tc Start"},"fps":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Fps"}},"type":"object","required":["path","doc","loc","start_sec","text"],"title":"SpeechChunk"},"SyncPaths":{"properties":{"paths":{"items":{"type":"string"},"type":"array","title":"Paths"}},"type":"object","required":["paths"],"title":"SyncPaths"},"UIGenRequest":{"properties":{"request":{"type":"string","title":"Request"},"mine":{"type":"boolean","title":"Mine","default":false}},"type":"object","required":["request"],"title":"UIGenRequest","description":"T1 UI 껍데기 생성 요청 (베타)."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VectorAddRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/VectorItem"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"VectorAddRequest"},"VectorItem":{"properties":{"path":{"type":"string","title":"Path"},"thumb_b64":{"type":"string","title":"Thumb B64"},"img_vec":{"items":{"type":"number"},"type":"array","title":"Img Vec"},"txt_vec":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"title":"Txt Vec"},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Width"},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height"},"rel_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rel Path"}},"type":"object","required":["path","thumb_b64","img_vec"],"title":"VectorItem"}},"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Your API key. Sign up at /signup to get one instantly."}}}}