{"openapi":"3.1.0","info":{"title":"DistyMap API","description":"電子部品メーカーの正規代理店データベース API","version":"0.1.0"},"paths":{"/api/manufacturers":{"get":{"tags":["API"],"summary":"Api Manufacturers","description":"メーカー名から代理店一覧を検索する","operationId":"api_manufacturers_api_manufacturers_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","description":"メーカー名（表記ゆれ可）","title":"Q"},"description":"メーカー名（表記ゆれ可）"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"カテゴリで絞り込み","title":"Category"},"description":"カテゴリで絞り込み"},{"name":"territory","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"テリトリーで絞り込み（前方一致）","title":"Territory"},"description":"テリトリーで絞り込み（前方一致）"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/distributors":{"get":{"tags":["API"],"summary":"Api Distributors","description":"代理店名から取扱メーカー一覧を検索する","operationId":"api_distributors_api_distributors_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","description":"代理店名","title":"Q"},"description":"代理店名"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"カテゴリで絞り込み","title":"Category"},"description":"カテゴリで絞り込み"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/normalize":{"get":{"tags":["API"],"summary":"Api Normalize","description":"メーカー名の表記ゆれを正規名に変換する","operationId":"api_normalize_api_normalize_get","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","description":"正規化したいメーカー名","title":"Name"},"description":"正規化したいメーカー名"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/categories":{"get":{"tags":["API"],"summary":"Api Categories","description":"標準カテゴリの一覧と説明を返す","operationId":"api_categories_api_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/stats":{"get":{"tags":["API"],"summary":"Api Stats","description":"データベースのカバレッジ統計を返す","operationId":"api_stats_api_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/health":{"get":{"tags":["API"],"summary":"Api Health","description":"稼働確認用の軽量ヘルスチェック","operationId":"api_health_api_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/search":{"get":{"tags":["API"],"summary":"Api Search","description":"メーカー・代理店を横断検索する（ライブサーチ用）","operationId":"api_search_api_search_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","description":"検索キーワード（メーカー名または代理店名）","default":"","title":"Q"},"description":"検索キーワード（メーカー名または代理店名）"},{"name":"source","in":"query","required":false,"schema":{"type":"string","description":"呼び出し元。ui/live/api など","default":"api","title":"Source"},"description":"呼び出し元。ui/live/api など"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"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"}}}}