{"openapi":"3.1.0","info":{"title":"Lexipedia API","version":"1.0.0","description":"Read-only public API for the Lexipedia document corpus."},"servers":[{"url":"https://lexipedia.io"}],"paths":{"/api/v1/docs":{"get":{"summary":"List documents","tags":["Documents"],"parameters":[{"name":"locale","in":"query","required":false,"description":"Preferred response language. Defaults to fr.","schema":{"type":"string"}},{"name":"language","in":"query","required":false,"description":"Preferred exact document language.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size. Default 20, maximum 100.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"offset","in":"query","required":false,"description":"Zero-based result offset. Maximum 10000.","schema":{"type":"integer","minimum":0,"maximum":10000}},{"name":"type","in":"query","required":false,"description":"Filter by document type.","schema":{"type":"string","enum":["decision","legislation","law","ordinance","treaty","publication","preparatory","circular"]}},{"name":"jurisdiction","in":"query","required":false,"description":"Filter by lowercase jurisdiction code.","schema":{"type":"string"}},{"name":"canton","in":"query","required":false,"description":"Filter by uppercase Swiss canton code.","schema":{"type":"string"}},{"name":"source","in":"query","required":false,"description":"Filter by canonical source code.","schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated results.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Document"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"links":{"type":"object"}},"required":["data","pagination","links"]}}}},"500":{"description":"Internal error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/docs/search":{"get":{"summary":"Search documents","tags":["Documents"],"parameters":[{"name":"q","in":"query","required":false,"description":"Full-text search query. The query alias is also accepted.","schema":{"type":"string"}},{"name":"query","in":"query","required":false,"description":"Alias for q.","schema":{"type":"string"}},{"name":"locale","in":"query","required":false,"description":"Preferred response language. Defaults to fr.","schema":{"type":"string"}},{"name":"language","in":"query","required":false,"description":"Preferred exact document language.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size. Default 20, maximum 100.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"offset","in":"query","required":false,"description":"Zero-based result offset. Maximum 10000.","schema":{"type":"integer","minimum":0,"maximum":10000}},{"name":"type","in":"query","required":false,"description":"Filter by document type. May be repeated.","schema":{"type":"array","items":{"type":"string","enum":["decision","law","publication","preparatory","circular"]}}},{"name":"documentId","in":"query","required":false,"description":"Filter by document id. May be repeated.","schema":{"type":"array","items":{"type":"integer","minimum":1}}},{"name":"sort","in":"query","required":false,"description":"Sort field. Defaults to relevance.","schema":{"type":"string","enum":["relevance","date","citation_count","number"],"default":"relevance"}},{"name":"order","in":"query","required":false,"description":"Sort direction. Defaults to desc.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}}],"responses":{"200":{"description":"Paginated results.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/DocumentSearchResult"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"links":{"type":"object"}},"required":["data","pagination","links"]}}}},"400":{"description":"Invalid search query or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Search backend unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/docs/{documentId}":{"get":{"summary":"Get a document","tags":["Documents"],"parameters":[{"name":"documentId","in":"path","required":true,"description":"Canonical Lexipedia document id.","schema":{"type":"integer","minimum":1}},{"name":"locale","in":"query","required":false,"description":"Preferred response language. Defaults to fr.","schema":{"type":"string"}}],"responses":{"200":{"description":"Document detail.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/DocumentDetail"}},"required":["data"]}}}},"400":{"description":"Invalid document id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Pagination":{"type":"object","properties":{"limit":{"type":"integer"},"offset":{"type":"integer"},"total":{"type":"integer"}},"required":["limit","offset","total"]},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{}},"required":["code","message"]}},"required":["error"]},"Document":{"type":"object","properties":{"documentId":{"type":"integer"},"document_ref":{"type":["string","null"]},"content_ref":{"type":["string","null"]},"kind":{"type":"string","enum":["decision","legislation","publication","preparatory","circular"]},"type":{"type":"string","enum":["decision","legislation","publication","preparatory","circular"]},"identifier":{"type":["string","null"]},"language":{"type":["string","null"]},"availableLanguages":{"type":"array","items":{"type":"string"}},"title":{"type":["string","null"]},"titleShort":{"type":["string","null"]},"abbreviation":{"type":["string","null"]},"summary":{"type":["string","null"]},"source":{"type":["string","null"]},"sourceUrl":{"type":["string","null"]},"publicUrl":{"type":["string","null"]},"jurisdiction":{"type":["string","null"]},"canton":{"type":["string","null"]},"status":{"type":["string","null"]},"updatedAt":{"type":["string","null"]}}},"DocumentDetail":{"allOf":[{"$ref":"#/components/schemas/Document"},{"type":"object","properties":{"contentHtml":{"type":"string"},"contentText":{"type":"string"},"metadata":{"type":"object","additionalProperties":true}},"required":["contentHtml","contentText","metadata"]}]},"DocumentSearchResult":{"type":"object","properties":{"id":{"type":["integer","string","null"]},"documentId":{"type":["integer","null"]},"documentContentId":{"type":["integer","null"]},"document_ref":{"type":["string","null"]},"content_ref":{"type":["string","null"]},"chunk_ref":{"type":["string","null"]},"source":{"type":"string"},"resultType":{"type":"string"},"scope":{"type":["string","null"]},"number":{"type":["string","null"]},"documentTitle":{"type":["string","null"]},"snippet":{"type":["string","null"]},"language":{"type":["string","null"]},"jurisdiction":{"type":["string","null"]},"canton":{"type":["string","null"]},"slug":{"type":["string","null"]},"score":{"type":"number"},"matchedFields":{"type":"array","items":{"type":"string"}}}}}}}