{"openapi":"3.1.0","info":{"title":"Vassal Enterprises · LTO Markets API","version":"1.3.0","description":"Long-term outlook (1990–2050) for energy markets. Source: Vassal Enterprises House View, LTO 2026 data pack. Read-only."},"servers":[{"url":"https://vassal-lto-api.pperera.workers.dev"}],"paths":{"/v1/meta":{"get":{"summary":"Dataset metadata","responses":{"200":{"description":"OK"}}}},"/v1/evidence":{"get":{"summary":"Cited external evidence with scenario labels; house view unchanged","parameters":[{"name":"topic","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Unknown topic"}}}},"/v1/sheets":{"get":{"summary":"List sheets","responses":{"200":{"description":"OK"}}}},"/v1/sheets/{slug}":{"get":{"summary":"Sheet detail","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/v1/series":{"get":{"summary":"Search / filter series","parameters":[{"name":"q","in":"query","schema":{"type":"string"}},{"name":"sheet","in":"query","schema":{"type":"string"}},{"name":"block","in":"query","schema":{"type":"string"}},{"name":"kind","in":"query","schema":{"type":"string"}},{"name":"unit","in":"query","schema":{"type":"string"}},{"name":"totals_only","in":"query","schema":{"type":"boolean"}},{"name":"include_yoy","in":"query","schema":{"type":"boolean"}},{"name":"year","in":"query","schema":{"type":"integer"}},{"name":"from","in":"query","schema":{"type":"integer"}},{"name":"to","in":"query","schema":{"type":"integer"}},{"name":"include","in":"query","schema":{"type":"string","enum":["values"]}},{"name":"limit","in":"query","schema":{"type":"integer","default":200}},{"name":"offset","in":"query","schema":{"type":"integer","default":0}},{"name":"format","in":"query","schema":{"type":"string","enum":["json","csv"]}}],"responses":{"200":{"description":"OK"}}}},"/v1/series/{sid}":{"get":{"summary":"One series with values","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string"},"description":"Series id, e.g. key-outputs/oil-demand-by-sector/aviation"},{"name":"from","in":"query","schema":{"type":"integer"}},{"name":"to","in":"query","schema":{"type":"integer"}},{"name":"format","in":"query","schema":{"type":"string","enum":["json","csv"]}}],"responses":{"200":{"description":"OK"}}}},"/v1/series/{sid}/cagr":{"get":{"summary":"CAGR between two years","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string"},"description":"Series id, e.g. key-outputs/oil-demand-by-sector/aviation"},{"name":"from","in":"query","schema":{"type":"integer"},"required":true},{"name":"to","in":"query","schema":{"type":"integer"},"required":true}],"responses":{"200":{"description":"OK"}}}},"/v1/series/{sid}/stats":{"get":{"summary":"Snapshots, horizon CAGRs, trend, peak","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string"},"description":"Series id, e.g. key-outputs/oil-demand-by-sector/aviation"}],"responses":{"200":{"description":"OK"}}}},"/v1/batch":{"get":{"summary":"Several series by id","parameters":[{"name":"ids","in":"query","required":true,"schema":{"type":"string"}},{"name":"from","in":"query","schema":{"type":"integer"}},{"name":"to","in":"query","schema":{"type":"integer"}},{"name":"format","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"wide","in":"query","schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK"}}}},"/v1/outlook":{"get":{"summary":"Long-term outlook, all topics","responses":{"200":{"description":"OK"}}}},"/v1/outlook/{topic}":{"get":{"summary":"Outlook for one topic","parameters":[{"name":"topic","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/v1/fx":{"get":{"summary":"FX guidance","responses":{"200":{"description":"OK"}}}},"/v1/fx/{ccy}":{"get":{"summary":"FX for one currency","parameters":[{"name":"ccy","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/v1/assumptions":{"get":{"summary":"Macro assumption notes","responses":{"200":{"description":"OK"}}}},"/v1/reviews":{"get":{"summary":"Analyst reviews of the house view vs published sources (with links)","responses":{"200":{"description":"OK"}}}},"/v1/reviews/{id}":{"get":{"summary":"One review: findings, sources, recommendations","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/v1/signals":{"get":{"summary":"Latest weekly LLM scan of external outlooks vs the house view (all topics)","responses":{"200":{"description":"OK"}}}},"/v1/signals/{topic}":{"get":{"summary":"Latest signals for one topic","parameters":[{"name":"topic","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/v1/signals/history":{"get":{"summary":"Scan history: dates; ?all=1 concatenates every run (topics scanned that day); ?format=csv flat table; ?topic= filter","parameters":[{"name":"date","in":"query","schema":{"type":"string"}},{"name":"all","in":"query","schema":{"type":"boolean"}},{"name":"topic","in":"query","schema":{"type":"string"}},{"name":"format","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"limit","in":"query","schema":{"type":"integer","default":52}}],"responses":{"200":{"description":"OK"}}}}}}