{"openapi":"3.1.0","info":{"title":"VineScout AI API","version":"0.1.0","description":"Developer API for seeded vineyard diligence, transparent scoring, harvest-risk signals, OrbitAI handoff prompts, memos, outreach, imports, and watchlist alerts."},"servers":[{"url":"/api"}],"paths":{"/health":{"get":{"summary":"Health and provider status","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/vineyards":{"get":{"summary":"List ranked seeded vineyards","responses":{"200":{"description":"Ranked vineyards","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/vineyards/{id}":{"get":{"summary":"Get vineyard diligence data","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Vineyard","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/vineyards/search":{"post":{"summary":"Search and filter ranked vineyards","requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VineyardSearch"},"examples":{"franceLowRisk":{"value":{"countries":["France"],"maxHarvestRisk":55,"minChinaFit":70}}}}}},"responses":{"200":{"description":"Search results","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/vineyards/import-csv":{"post":{"summary":"Import vineyard candidates from CSV","security":[{"AdminToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["csv"],"properties":{"csv":{"type":"string"}}}}}},"responses":{"200":{"description":"Import result","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Admin token required","content":{"application/json":{"schema":{"type":"object"}}}},"503":{"description":"Hosted write API disabled","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/buyer-profile":{"post":{"summary":"Create or update a buyer profile","security":[{"AdminToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuyerProfileInput"}}}},"responses":{"200":{"description":"Buyer profile and strategy","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Admin token required","content":{"application/json":{"schema":{"type":"object"}}}},"503":{"description":"Hosted write API disabled","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/score":{"post":{"summary":"Score a vineyard against the demo buyer profile","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["opportunityId"],"properties":{"opportunityId":{"type":"string"}}}}}},"responses":{"200":{"description":"Score","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/weather":{"get":{"summary":"Fetch optional Open-Meteo weather risk proxy","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number"}}],"responses":{"200":{"description":"Weather risk or unavailable provenance","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/stac/status":{"get":{"summary":"Report optional STAC/Copernicus adapter status","responses":{"200":{"description":"STAC status","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/orbitai/task-prompt":{"post":{"summary":"Generate Eye-of-God handoff prompt","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["opportunityId"],"properties":{"opportunityId":{"type":"string"}}}}}},"responses":{"200":{"description":"Prompt","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/orbitai/evidence":{"post":{"summary":"Attach pasted Eye-of-God result","security":[{"AdminToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidenceInput"}}}},"responses":{"200":{"description":"Evidence item","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Admin token required","content":{"application/json":{"schema":{"type":"object"}}}},"503":{"description":"Hosted write API disabled","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/memos":{"post":{"summary":"Generate a deal memo","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["opportunityId"],"properties":{"opportunityId":{"type":"string"}}}}}},"responses":{"200":{"description":"Deal memo","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/outreach":{"post":{"summary":"Generate outreach pack","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["opportunityId"],"properties":{"opportunityId":{"type":"string"}}}}}},"responses":{"200":{"description":"Outreach pack","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/webhooks/alerts":{"post":{"summary":"Mock inbound alert webhook","security":[{"AdminToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["opportunityId","title"],"properties":{"opportunityId":{"type":"string"},"title":{"type":"string"},"severity":{"type":"string","enum":["low","medium","high"]}}}}}},"responses":{"200":{"description":"Alert","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Admin token required","content":{"application/json":{"schema":{"type":"object"}}}},"503":{"description":"Hosted write API disabled","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/openapi.json":{"get":{"summary":"OpenAPI document","responses":{"200":{"description":"OpenAPI","content":{"application/json":{"schema":{"type":"object"}}}}}}}},"components":{"securitySchemes":{"AdminToken":{"type":"apiKey","in":"header","name":"x-vinescout-admin-token"}},"schemas":{"EvidenceSource":{"type":"string","enum":["seeded_demo","live_public","orbitai_relay","eye_of_god_handoff","user_uploaded","unavailable"]},"DealType":{"type":"string","enum":["supply_contract","minority_investment","acquisition","joint_venture"]},"BuyerProfileInput":{"type":"object","required":["companyName"],"properties":{"companyName":{"type":"string"},"companyType":{"type":"string","enum":["importer","dtc_brand","distributor","strategic_investor","family_office","other"]},"channels":{"type":"array","items":{"type":"string"}},"targetProducts":{"type":"array","items":{"type":"string"}},"targetCountries":{"type":"array","items":{"type":"string"}},"preferredDealTypes":{"type":"array","items":{"$ref":"#/components/schemas/DealType"}},"budgetMinUsd":{"type":"number"},"budgetMaxUsd":{"type":"number"},"targetChinaPriceTier":{"type":"string","enum":["value","premium","luxury","mixed"]},"riskAppetite":{"type":"string","enum":["low","medium","high"]},"timeline":{"type":"string"},"notes":{"type":"string","description":"Optional user-uploaded text summary; files are read client-side in the demo UI."}}},"VineyardSearch":{"type":"object","properties":{"countries":{"type":"array","items":{"type":"string"}},"varietal":{"type":"string"},"dealType":{"$ref":"#/components/schemas/DealType"},"minOverallFit":{"type":"number"},"maxHarvestRisk":{"type":"number"},"minChinaFit":{"type":"number"},"minExportReadiness":{"type":"number"},"query":{"type":"string"}}},"EvidenceInput":{"type":"object","required":["opportunityId","rawText"],"properties":{"opportunityId":{"type":"string"},"rawText":{"type":"string","minLength":10},"title":{"type":"string","default":"Eye-of-God pasted result"}}}}}}