{"openapi":"3.0.3","info":{"title":"Ju Jingyi (鞠婧祎) Official Platform REST API & Kiku AI Agent","version":"1.4.6","description":"Official public REST API and Kiku AI Agent platform (npm: kiku-agent) providing high-precision datasets, autonomous ReAct agent CLI, and MCP server for Ju Jingyi's filmography, discography, 4K official music videos, commercial endorsements, career milestones (2013–2026), honors & awards, social media feeds, and global fuzzy cross-search.","termsOfService":"https://jujingyi-kikuuu.vercel.app/api-docs","contact":{"name":"Ju Jingyi Fan Platform Developer Team","url":"https://jujingyi-kikuuu.vercel.app","email":"contact@jujingyi-kikuuu.vercel.app"},"license":{"name":"Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)","url":"https://creativecommons.org/licenses/by-nc/4.0/"}},"servers":[{"url":"https://jujingyi-kikuuu.vercel.app/api/v1","description":"Active Current Server (Auto-detected)"},{"url":"https://jujingyi-kikuuu.vercel.app/api/v1","description":"Production Vercel Cloud Server"},{"url":"http://localhost:3000/api/v1","description":"Local Node.js Development Server"}],"tags":[{"name":"System","description":"API status, health checks, rate limits, and specifications"},{"name":"Stats","description":"Aggregated platform statistics and metric counts"},{"name":"Profile","description":"Artist biography, talents, physical stats, and official social accounts"},{"name":"Fandom","description":"Miju fan-community details, official colors, and fan history"},{"name":"Quotes","description":"Famous quotes, life philosophy, and mottos by Ju Jingyi"},{"name":"Works","description":"Filmography catalog, historical & modern dramas, movies, and character roles"},{"name":"Music","description":"Deduplicated discography, OSTs, studio singles, and 4K music videos"},{"name":"Commercial","description":"Commercial endorsements, luxury partnerships, and Global Ambassador roles"},{"name":"Milestones","description":"Career timeline chronology from SNH48 debut (2013) to solo era (2026)"},{"name":"Media","description":"Curated high-resolution photo gallery and visual archives"},{"name":"Honors","description":"Awards, SNH48 General Election records, and industry accolades"},{"name":"Social","description":"Live social feed cards from Douyin, Weibo, and Studio channels"},{"name":"Search","description":"Global fuzzy search engine spanning all 9 data categories"},{"name":"Auth","description":"Developer API keys generation for high-rate quota (100 req/min)"}],"paths":{"/health":{"get":{"tags":["System"],"summary":"API Health & Environment Detection","description":"Returns API operational status, uptime, detected environment (Localhost vs Production), and active endpoints count.","operationId":"getHealthStatus","responses":{"200":{"description":"System is operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}},"/system/hardware":{"get":{"tags":["System"],"summary":"Detected GPU / VRAM Hardware Report","description":"Queries local hardware detection (nvidia-smi, rocm-smi, Apple unified-memory heuristic, or the KIKU_VRAM_TOTAL_GB override) and returns the VRAM target used by the predictive VRAM engine.","operationId":"getSystemHardware","responses":{"200":{"description":"Hardware report with the resolved VRAM target","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"success"},"data":{"type":"object","properties":{"available":{"type":"boolean","example":true},"target":{"type":"object","properties":{"vendor":{"type":"string","example":"NVIDIA"},"name":{"type":"string","example":"NVIDIA GeForce RTX 4090"},"totalBytes":{"type":"integer","example":25769803776},"freeBytes":{"type":"integer","nullable":true},"source":{"type":"string","example":"nvidia-smi (NVML)"}}}}}}}}}}}}},"/models/estimate-vram":{"post":{"tags":["System"],"summary":"Predictive VRAM Footprint Estimation","description":"Estimates model weights, KV cache, activation workspace and runtime overhead for a target model/quantization/context configuration and classifies feasibility (GREEN / YELLOW / RED) against available VRAM. KV cache is modeled sliding-window (SWA) aware for architectures like Gemma. Accepts a model name (built-in registry or HuggingFace lookup), a local .gguf path, or explicit architecture fields. With model=auto while LM Studio has a model loaded, classification.basis=measured reflects real GPU usage from the hardware probe instead of the predictive worst-case (returned in predictiveClassification).","operationId":"estimateVram","requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","example":"qwen2.5-coder-32b-instruct"},"model_path":{"type":"string","example":"./models/qwen2.5-coder-32b-q4_k_m.gguf"},"quant":{"type":"string","example":"q4_k_m"},"contextLength":{"type":"integer","example":16384},"cacheBits":{"type":"integer","example":16,"description":"KV cache precision (FP16=16, Q8_0=8)"},"batchSize":{"type":"integer","example":1},"images":{"type":"integer","example":0,"description":"VLM correction: concurrent image tokens budget"}}}}}},"responses":{"200":{"description":"Footprint breakdown with allocation-zone classification and remediation suggestions","content":{"application/json":{"schema":{"type":"object"}}}}}},"get":{"tags":["System"],"summary":"Predictive VRAM Footprint Estimation (query parameters)","operationId":"estimateVramQuery","parameters":[{"name":"model","in":"query","schema":{"type":"string"},"example":"qwen2.5-7b-instruct"},{"name":"ctx","in":"query","schema":{"type":"integer"},"example":8192},{"name":"quant","in":"query","schema":{"type":"string"},"example":"q4_k_m"}],"responses":{"200":{"description":"Footprint breakdown with allocation-zone classification","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/quiz/challenge":{"get":{"tags":["System"],"summary":"Request Anti-Cheat Quiz Challenge Token","description":"Generates a one-time cryptographic challenge token valid for 15 minutes. The 'mcp' track issues a 12-question challenge for the MCP OAuth App; the 'vip' track issues a 15-question challenge for the Developer VIP Key.","operationId":"getQuizChallengeToken","parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["vip","mcp"],"default":"vip"},"description":"Quiz track. 'mcp' returns a 12-question token (totalQuestions: 12) for claiming an MCP OAuth App via POST /keys/claim with type=mcp; 'vip' returns the 15-question Developer VIP challenge."}],"responses":{"200":{"description":"Fresh challenge token generated","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"success"},"code":{"type":"integer","example":200},"data":{"type":"object","properties":{"challengeToken":{"type":"string","example":"kiku_chal_1a2b3c4d5e6f..."},"expiresAt":{"type":"string","format":"date-time"},"totalQuestions":{"type":"integer","example":15}}}}}}}}}}},"/stats":{"get":{"tags":["Stats"],"summary":"Platform & Artist Overview Statistics","description":"Aggregates numerical statistics including total drama works, discography tracks, 4K MVs, brand endorsements, awards, and social followers.","operationId":"getPlatformStats","responses":{"200":{"description":"Aggregated statistical overview","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsResponse"}}}}}}},"/profile":{"get":{"tags":["Profile"],"summary":"Artist Profile, Talents & Social Links","description":"Provides Ju Jingyi's full biographical data, multilingual names, birth date, physical attributes, musical talents, and official verified social media links.","operationId":"getProfileData","responses":{"200":{"description":"Artist profile details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileData"}}}}}}},"/fandom":{"get":{"tags":["Fandom"],"summary":"Miju Fan Community Profile","description":"Returns Miju (蜜橘) fan-community data, official support colors (Sky Blue, Sakura Pink, Gold), slogan, and community history.","operationId":"getFandomProfile","responses":{"200":{"description":"Fandom details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FandomData"}}}}}}},"/quotes":{"get":{"tags":["Quotes"],"summary":"Famous Quotes & Mottos","description":"Returns iconic inspirational quotes spoken by Ju Jingyi in Chinese, English, and Thai.","operationId":"getQuotes","responses":{"200":{"description":"List of inspirational quotes","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"success"},"code":{"type":"integer","example":200},"data":{"type":"array","items":{"$ref":"#/components/schemas/Quote"}}}}}}}}}},"/character-roles":{"get":{"tags":["Works"],"summary":"Iconic Drama Character Roles","description":"Returns all dramatic characters portrayed by Ju Jingyi with character bios, drama associations, personalities, and iconic traits.","operationId":"getCharacterRoles","responses":{"200":{"description":"List of dramatic character roles","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"success"},"code":{"type":"integer","example":200},"data":{"type":"array","items":{"$ref":"#/components/schemas/CharacterRole"}}}}}}}}}},"/works":{"get":{"tags":["Works"],"summary":"Complete Filmography & Dramas","description":"Lists all 18 authentic drama and movie records with factual Thai synopses, characters, co-stars, directors, platforms, and OST links.","operationId":"getWorks","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","enum":["historical-drama","modern-drama","movie"]},"description":"Filter by work category"},{"name":"year","in":"query","required":false,"schema":{"type":"integer","example":2024},"description":"Filter by release year"},{"name":"search","in":"query","required":false,"schema":{"type":"string","example":"In Blossom"},"description":"Search in title or character name"}],"responses":{"200":{"description":"Filtered list of filmography works","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"success"},"code":{"type":"integer","example":200},"data":{"type":"array","items":{"$ref":"#/components/schemas/Work"}},"meta":{"type":"object","properties":{"totalCount":{"type":"integer","example":18},"filteredCount":{"type":"integer","example":1}}}}}}}}}}},"/works/{id}":{"get":{"tags":["Works"],"summary":"Single Work Details","description":"Retrieve comprehensive details for a specific drama or movie by ID.","operationId":"getWorkById","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","example":"in-blossom"},"description":"Slug ID of the drama or movie"}],"responses":{"200":{"description":"Work details","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"success"},"code":{"type":"integer","example":200},"data":{"$ref":"#/components/schemas/Work"}}}}}},"404":{"description":"Work not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/discography":{"get":{"tags":["Music"],"summary":"Deduplicated Discography Catalog","description":"Returns deduplicated catalog of verified singles, albums, and OST tracks sung by Ju Jingyi.","operationId":"getDiscography","parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["latest","ost","singles"]},"description":"Filter by release type"},{"name":"year","in":"query","required":false,"schema":{"type":"integer","example":2026},"description":"Filter by release year"},{"name":"search","in":"query","required":false,"schema":{"type":"string","example":"Like a Silk"},"description":"Search in song title or drama association"}],"responses":{"200":{"description":"List of music tracks","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"success"},"code":{"type":"integer","example":200},"data":{"type":"array","items":{"$ref":"#/components/schemas/DiscographyTrack"}}}}}}}}}},"/discography/{id}":{"get":{"tags":["Music"],"summary":"Single Discography Track Details","description":"Retrieve specific track details by song ID.","operationId":"getDiscographyById","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","example":"ost-in-blossom"},"description":"ID of the discography track"}],"responses":{"200":{"description":"Song details","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"success"},"code":{"type":"integer","example":200},"data":{"$ref":"#/components/schemas/DiscographyTrack"}}}}}},"404":{"description":"Track not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/mv":{"get":{"tags":["Music"],"summary":"Official Music Videos & Stage Performances","description":"Returns official 4K MVs, drama theme music videos, and live festival performances.","operationId":"getMusicVideos","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","enum":["Official-MV","OST-Music-Video","Stage-Performance"]},"description":"Filter by MV category"}],"responses":{"200":{"description":"List of official music videos","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"success"},"code":{"type":"integer","example":200},"data":{"type":"array","items":{"$ref":"#/components/schemas/MusicVideo"}}}}}}}}}},"/brands":{"get":{"tags":["Commercial"],"summary":"Commercial Endorsements & Brand Partnerships","description":"Returns official brand spokesperson roles, luxury fashion partnerships, and beauty ambassadorships.","operationId":"getBrandEndorsements","parameters":[{"name":"isGlobal","in":"query","required":false,"schema":{"type":"boolean"},"description":"Filter for Global Brand Ambassador roles"}],"responses":{"200":{"description":"List of brand endorsements","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"success"},"code":{"type":"integer","example":200},"data":{"type":"array","items":{"$ref":"#/components/schemas/Brand"}}}}}}}}}},"/timeline":{"get":{"tags":["Milestones"],"summary":"Career Milestones & Chronology (2013–2026)","description":"Chronological milestone entries from SNH48 audition in 2013 to independent solo career in 2026.","operationId":"getTimelineMilestones","parameters":[{"name":"era","in":"query","required":false,"schema":{"type":"string","enum":["snh48","solo"]},"description":"Filter by career era"}],"responses":{"200":{"description":"Timeline records","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"success"},"code":{"type":"integer","example":200},"data":{"type":"array","items":{"$ref":"#/components/schemas/Milestone"}}}}}}}}}},"/gallery":{"get":{"tags":["Media"],"summary":"High-Resolution Gallery Photos","description":"Curated high-resolution photography collections, red carpet visuals, and stage photos.","operationId":"getGalleryPhotos","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","enum":["fashion","drama","stage","portrait"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":12,"example":6},"description":"Maximum number of photos to return"}],"responses":{"200":{"description":"Photo collection","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"success"},"code":{"type":"integer","example":200},"data":{"type":"array","items":{"$ref":"#/components/schemas/GalleryItem"}}}}}}}}}},"/awards":{"get":{"tags":["Honors"],"summary":"Awards, Honors & Hall of Fame Records","description":"Complete list of music awards, drama honors, fashion accolades, and SNH48 Senbatsu Election championship records.","operationId":"getAwardsAndHonors","responses":{"200":{"description":"Awards and honors","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"success"},"code":{"type":"integer","example":200},"data":{"type":"array","items":{"$ref":"#/components/schemas/Award"}}}}}}}}}},"/social":{"get":{"tags":["Social"],"summary":"Live Social Media Feed Cards","description":"Returns structured social feed cards from Douyin, Weibo, and Studio channels.","operationId":"getSocialFeeds","parameters":[{"name":"platform","in":"query","required":false,"schema":{"type":"string","enum":["douyin","weibo"]},"description":"Filter by platform"}],"responses":{"200":{"description":"Social feed cards","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"success"},"code":{"type":"integer","example":200},"data":{"type":"array","items":{"$ref":"#/components/schemas/SocialCard"}}}}}}}}}},"/social/douyin/embed":{"get":{"tags":["Social"],"summary":"Generate Douyin Official Iframe Player Embed","description":"Generates HTML iframe embed code and share URLs conforming to Open Douyin IFrame Video Player specifications.","operationId":"getDouyinIframeEmbed","parameters":[{"name":"itemId","in":"query","required":false,"schema":{"type":"string","example":"7384920194819283921"},"description":"Douyin video item ID"}],"responses":{"200":{"description":"Douyin iframe embed response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"success"},"code":{"type":"integer","example":200},"data":{"type":"object","properties":{"platform":{"type":"string","example":"Douyin (抖音)"},"itemId":{"type":"string","example":"7384920194819283921"},"iframeSrc":{"type":"string","example":"https://www.iesdouyin.com/share/video/7384920194819283921/"},"iframeHtml":{"type":"string"},"shareUrl":{"type":"string"}}}}}}}}}}},"/social/weibo/live":{"get":{"tags":["Social"],"summary":"Live Sina Weibo Dynamic Feed","description":"Returns live synchronized Weibo updates matching Open Weibo user_timeline and mobile feed container specifications.","operationId":"getWeiboLiveFeed","responses":{"200":{"description":"Live Weibo feed records","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"success"},"code":{"type":"integer","example":200},"data":{"type":"object","properties":{"platform":{"type":"string","example":"Sina Weibo (新浪微博)"},"account":{"type":"string","example":"鞠婧祎 (Ju Jingyi)"},"uid":{"type":"string","example":"3669102477"},"containerId":{"type":"string","example":"1076033669102477"},"status":{"type":"string","example":"synced"},"cards":{"type":"array","items":{"$ref":"#/components/schemas/SocialCard"}}}}}}}}}}}},"/search":{"get":{"tags":["Search"],"summary":"Global Cross-Dataset Fuzzy Search","description":"Performs full-text fuzzy search across works, discography, music videos, and timeline milestones.","operationId":"searchGlobal","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","example":"In Blossom"},"description":"Search keyword"}],"responses":{"200":{"description":"Search results matching query","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}},"400":{"description":"Missing required query parameter q","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/keys/revoke":{"post":{"tags":["Auth"],"summary":"Revoke Developer VIP Key or MCP OAuth App","description":"Deactivates an active key in database and clears authorization cache.","operationId":"revokeApiKey","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"apiKey":{"type":"string","description":"API Key to revoke"},"clientId":{"type":"string","description":"OAuth Client ID to revoke"}}}}}},"responses":{"200":{"description":"Key or App revoked successfully","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"success"},"code":{"type":"integer","example":200},"message":{"type":"string","example":"Key / OAuth App revoked successfully and deactivated in database."}}}}}}}}}},"components":{"securitySchemes":{"ApiKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Developer API Key passed in request header"}},"schemas":{"HealthResponse":{"type":"object","properties":{"status":{"type":"string","example":"success"},"code":{"type":"integer","example":200},"timestamp":{"type":"string","format":"date-time"},"data":{"type":"object","properties":{"apiName":{"type":"string","example":"Ju Jingyi Official Chronicle REST API"},"version":{"type":"string","example":"v1.4.6"},"status":{"type":"string","example":"operational"},"environment":{"type":"string","example":"production"},"isLocal":{"type":"boolean","example":false},"currentHost":{"type":"string","example":"jujingyi-kikuuu.vercel.app"},"uptimeSeconds":{"type":"integer","example":3600},"endpointsCount":{"type":"integer","example":32},"tier":{"type":"string","example":"Public"},"baseUrl":{"type":"string","example":"https://jujingyi-kikuuu.vercel.app/api/v1"},"documentation":{"type":"string","example":"https://jujingyi-kikuuu.vercel.app/api-docs"},"openApiSpec":{"type":"string","example":"https://jujingyi-kikuuu.vercel.app/api/v1/openapi.json"}}}}},"StatsResponse":{"type":"object","properties":{"status":{"type":"string","example":"success"},"code":{"type":"integer","example":200},"data":{"type":"object","properties":{"artist":{"type":"string","example":"Ju Jingyi (鞠婧祎)"},"actingWorksCount":{"type":"integer","example":18},"discographyTracksCount":{"type":"integer","example":45},"musicVideosCount":{"type":"integer","example":18},"brandEndorsementsCount":{"type":"integer","example":12},"timelineMilestonesCount":{"type":"integer","example":18},"awardsCount":{"type":"integer","example":12},"socialFollowers":{"type":"object","properties":{"weibo":{"type":"string","example":"31.5M+"},"douyin":{"type":"string","example":"24.8M+"},"instagram":{"type":"string","example":"3.2M+"}}}}}}},"Work":{"type":"object","properties":{"id":{"type":"string","example":"in-blossom"},"titleTh":{"type":"string","example":"บุปผารักอลวน"},"titleCn":{"type":"string","example":"花间令"},"titleEn":{"type":"string","example":"In Blossom"},"role":{"type":"string","example":"หยางไฉ่เวย / ซ่างกวนจื่อ (Yang Caiwei / Shangguan Zhi)"},"characterCn":{"type":"string","example":"杨采薇 / 上官芷"},"category":{"type":"string","example":"historical-drama"},"year":{"type":"integer","example":2024},"status":{"type":"string","example":"ออกอากาศจบแล้ว (40 ตอน)"},"platform":{"type":"string","example":"YOUKU"},"synopsisTh":{"type":"string"},"coStars":{"type":"array","items":{"type":"string"}},"director":{"type":"string","example":"จงชิง (Zhong Qing)"},"milestone":{"type":"string","example":"ทำดัชนีความนิยม YOUKU ทะลุ 10,000 รวดเร็วที่สุดของปี 2024"},"themeSong":{"type":"object","properties":{"titleTh":{"type":"string","example":"ดั่งแพรไหม (Like a Silk)"},"titleCn":{"type":"string","example":"《如纱》"},"youtubeId":{"type":"string","example":"DafSXZZo9AI"}}}}},"DiscographyTrack":{"type":"object","properties":{"id":{"type":"string","example":"ost-in-blossom"},"titleTh":{"type":"string","example":"ดั่งแพรไหม"},"titleCn":{"type":"string","example":"如纱"},"titleEn":{"type":"string","example":"Like a Silk"},"year":{"type":"integer","example":2024},"work":{"type":"string","example":"ซีรีส์ บุปผารักอลวน (In Blossom OST)"},"duration":{"type":"string","example":"3:42"},"youtubeId":{"type":"string","example":"DafSXZZo9AI"},"theme":{"type":"string","example":"เพลงประกอบซีรีส์ (OST)"},"isNew":{"type":"boolean","example":true},"catalogTypes":{"type":"array","items":{"type":"string","enum":["latest","ost","singles"]},"example":["latest","ost"]}}},"MusicVideo":{"type":"object","properties":{"id":{"type":"string","example":"mv-veil-of-shadows"},"titleTh":{"type":"string","example":"ไม่ทรมาน (Bu Ku - Veil of Shadows OST)"},"titleCn":{"type":"string","example":"不苦"},"category":{"type":"string","example":"OST-Music-Video"},"youtubeId":{"type":"string","example":"9AeErG03SZw"},"duration":{"type":"string","example":"3:30"}}},"Brand":{"type":"object","properties":{"id":{"type":"string","example":"brand-lanvin"},"nameEn":{"type":"string","example":"LANVIN Paris"},"nameCn":{"type":"string","example":"浪凡"},"tier":{"type":"string","example":"Global Brand Ambassador"},"category":{"type":"string","example":"High-End Fashion & Haute Couture"},"isGlobal":{"type":"boolean","example":true}}},"Milestone":{"type":"object","properties":{"year":{"type":"integer","example":2024},"title":{"type":"string","example":"In Blossom Phenomenon & Independent Breakthrough"},"titleCn":{"type":"string","example":"《花间令》全网大爆与个人独立突破"},"era":{"type":"string","example":"solo"}}},"GalleryItem":{"type":"object","properties":{"id":{"type":"string","example":"gal-1"},"title":{"type":"string","example":"Weibo Night Red Carpet Haute Couture"},"category":{"type":"string","example":"fashion"},"imageUrl":{"type":"string"}}},"Award":{"type":"object","properties":{"id":{"type":"string","example":"award-snh-1"},"year":{"type":"integer","example":2017},"title":{"type":"string","example":"SNH48 4th Senbatsu Election Champion (No. 1)"},"titleCn":{"type":"string","example":"SNH48第四届总选举第一名 (连霸殿堂级)"},"category":{"type":"string","example":"SNH48 Election Legend"}}},"SocialCard":{"type":"object","properties":{"id":{"type":"string","example":"social-douyin-1"},"platform":{"type":"string","example":"douyin"},"authorName":{"type":"string","example":"鞠婧祎"},"content":{"type":"string"},"likes":{"type":"string","example":"1.8M+"},"comments":{"type":"string","example":"128K+"}}},"ProfileData":{"type":"object","properties":{"name":{"type":"object","properties":{"cn":{"type":"string","example":"鞠婧祎"},"pinyin":{"type":"string","example":"Jū Jìngyī"},"en":{"type":"string","example":"Ju Jingyi (Kiku)"},"th":{"type":"string","example":"จวีจิ้งอี"}}},"birthDate":{"type":"string","example":"1994-06-18"},"birthPlace":{"type":"string","example":"Suining, Sichuan, China (遂宁, 四川)"},"zodiac":{"type":"string","example":"Gemini / Dog"},"height":{"type":"string","example":"159 cm"}}},"FandomData":{"type":"object","properties":{"fandomName":{"type":"string","example":"Miju (蜜橘)"},"fandomNickname":{"type":"string","example":"Miju (蜜橘)"},"slogan":{"type":"string","example":"鞠躬尽瘁，为婧而生 (Devoted with respect, born for Jingyi)"},"officialColors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"Crystal Blue"},"hex":{"type":"string","example":"#58B2DC"}}}}}},"Quote":{"type":"object","properties":{"quoteCn":{"type":"string","example":"无论走得多远，都不要忘记为什么出发。"},"quoteTh":{"type":"string","example":"ไม่ว่าจะก้าวไปไกลแค่ไหน อย่าลืมว่าเราเริ่มต้นเดินทางเพราะอะไร"},"quoteEn":{"type":"string","example":"No matter how far you go, never forget why you started."},"author":{"type":"string","example":"鞠婧祎 (Ju Jingyi)"}}},"CharacterRole":{"type":"object","properties":{"characterNameTh":{"type":"string","example":"หานอวิ๋นซี (Han Yunxi)"},"characterNameCn":{"type":"string","example":"韩芸汐"},"dramaTitleTh":{"type":"string","example":"หยุนซี หมอพิษหญิงยอดอัจฉริยะ (Legend of Yunxi)"},"dramaTitleCn":{"type":"string","example":"芸汐传"},"year":{"type":"integer","example":2018},"roleDescriptionTh":{"type":"string"}}},"SearchResponse":{"type":"object","properties":{"status":{"type":"string","example":"success"},"code":{"type":"integer","example":200},"data":{"type":"object","properties":{"works":{"type":"array","items":{"$ref":"#/components/schemas/Work"}},"discography":{"type":"array","items":{"$ref":"#/components/schemas/DiscographyTrack"}},"musicVideos":{"type":"array","items":{"$ref":"#/components/schemas/MusicVideo"}},"timeline":{"type":"array","items":{"$ref":"#/components/schemas/Milestone"}}}},"meta":{"type":"object","properties":{"query":{"type":"string","example":"In Blossom"},"totalMatches":{"type":"integer","example":4}}}}},"ErrorResponse":{"type":"object","properties":{"status":{"type":"string","example":"error"},"code":{"type":"integer","example":404},"timestamp":{"type":"string","format":"date-time"},"message":{"type":"string","example":"Resource not found"}}}}}}