{"openapi":"3.1.0","info":{"title":"anthroposophy.ai","description":"Agent-first retrieval substrate for Rudolf Steiner's complete works. Multilingual (en, de) with side-by-side comparison across editions.","version":"2.0.0"},"paths":{"/v1/steiner/verify/ga/{ga}":{"head":{"summary":"Verify Volume","operationId":"verify_volume_v1_steiner_verify_ga__ga__head","parameters":[{"name":"ga","in":"path","required":true,"schema":{"type":"string","title":"Ga"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Verify Volume","operationId":"verify_volume_v1_steiner_verify_ga__ga__get","parameters":[{"name":"ga","in":"path","required":true,"schema":{"type":"string","title":"Ga"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/steiner/verify/ga/{ga}/{lecture}":{"head":{"summary":"Verify Lecture","operationId":"verify_lecture_v1_steiner_verify_ga__ga___lecture__head","parameters":[{"name":"ga","in":"path","required":true,"schema":{"type":"string","title":"Ga"}},{"name":"lecture","in":"path","required":true,"schema":{"type":"string","title":"Lecture"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Verify Lecture","operationId":"verify_lecture_v1_steiner_verify_ga__ga___lecture__get","parameters":[{"name":"ga","in":"path","required":true,"schema":{"type":"string","title":"Ga"}},{"name":"lecture","in":"path","required":true,"schema":{"type":"string","title":"Lecture"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/steiner/verify/ga/{ga}/{lecture}/p{passage_n}":{"head":{"summary":"Verify Passage","operationId":"verify_passage_v1_steiner_verify_ga__ga___lecture__p_passage_n__head","parameters":[{"name":"ga","in":"path","required":true,"schema":{"type":"string","title":"Ga"}},{"name":"lecture","in":"path","required":true,"schema":{"type":"string","title":"Lecture"}},{"name":"passage_n","in":"path","required":true,"schema":{"type":"string","title":"Passage N"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Verify Passage","operationId":"verify_passage_v1_steiner_verify_ga__ga___lecture__p_passage_n__get","parameters":[{"name":"ga","in":"path","required":true,"schema":{"type":"string","title":"Ga"}},{"name":"lecture","in":"path","required":true,"schema":{"type":"string","title":"Lecture"}},{"name":"passage_n","in":"path","required":true,"schema":{"type":"string","title":"Passage N"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/steiner/ga/{ga}":{"get":{"summary":"Volume","operationId":"volume_v1_steiner_ga__ga__get","parameters":[{"name":"ga","in":"path","required":true,"schema":{"type":"string","title":"Ga"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/steiner/ga/{ga}/{lecture}":{"get":{"summary":"Lecture","operationId":"lecture_v1_steiner_ga__ga___lecture__get","parameters":[{"name":"ga","in":"path","required":true,"schema":{"type":"string","title":"Ga"}},{"name":"lecture","in":"path","required":true,"schema":{"type":"string","title":"Lecture"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"}},{"name":"compact","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Compact"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/steiner/ga/{ga}/{lecture}/p{passage_n}":{"get":{"summary":"Passage","operationId":"passage_v1_steiner_ga__ga___lecture__p_passage_n__get","parameters":[{"name":"ga","in":"path","required":true,"schema":{"type":"string","title":"Ga"}},{"name":"lecture","in":"path","required":true,"schema":{"type":"string","title":"Lecture"}},{"name":"passage_n","in":"path","required":true,"schema":{"type":"string","title":"Passage N"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"}},{"name":"window","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Window"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/steiner/search":{"get":{"summary":"Search","description":"Full-text search over the Steiner corpus. `lang` defaults to `en`\n(English translations, with the default edition picked per volume).\nPass `lang=de` for the German originals. Optional `edition=` selects\na specific witness. `fields=compact` shrinks large result sets.","operationId":"search_v1_steiner_search_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","default":"en","title":"Lang"}},{"name":"n","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"N"}},{"name":"ga","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ga"}},{"name":"ga_range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ga Range"}},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Date"}},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Date"}},{"name":"edition","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Edition"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"fields","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fields"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/steiner/{lang}/ga/{ga}/{lecture}/p{passage_n}.json":{"get":{"summary":"Passage Json","description":"Fetch a single passage in the given language and edition.\n\nReturns the passage text plus `available_versions[]` (every other\nwitness for the same locus), `edition_basis` (text-version provenance,\ne.g. \"Steiner 1894 first edition\" for GA 4 GPP1916), and\n`alignment_confidence` (paragraph-count agreement with the original-\nlanguage source).\n\n`lang` is `en` or `de`. Omit `edition` to get the default for that\nlanguage; pass a specific code (e.g. `RSP1964`, `GPP1916`, `original`)\nto select a witness. `window=N` (0-5) adds up to N neighboring\npassages per side under `context.before`/`context.after`.","operationId":"passage_json_v1_steiner__lang__ga__ga___lecture__p_passage_n__json_get","parameters":[{"name":"lang","in":"path","required":true,"schema":{"type":"string","title":"Lang"}},{"name":"ga","in":"path","required":true,"schema":{"type":"string","title":"Ga"}},{"name":"lecture","in":"path","required":true,"schema":{"type":"string","title":"Lecture"}},{"name":"passage_n","in":"path","required":true,"schema":{"type":"string","title":"Passage N"}},{"name":"edition","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Edition"}},{"name":"window","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Window"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/steiner/verify-quote":{"post":{"summary":"Verify Quote","description":"Verify that a quotation matches the corpus, byte-for-byte or by\nverdict rung (match / match_normalized / match_spliced / near_miss /\nno_match). POST a JSON body:\n\nSingle: `{\"candidate\": \"...\", \"ga\"?, \"lecture\"?, \"passage_number\"?,\n\"lang\"?, \"edition\"?}` — locus fields scope the check; omit them for a\ncorpus-wide FTS locate.\n\nBatch ledger: `{\"quotes\": [{...}, ...]}` (max 50) — per-item results\nplus a summary with `all_quote_safe`.","operationId":"verify_quote_v1_steiner_verify_quote_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"summary":"Health","description":"Lightweight health check; verifies search.db is reachable.","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"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"}}}}