{"schema_version":"webtoonlib.llm.manifest.v1","generated_at":"2026-06-29T20:20:35.739Z","usage_contract":{"default_use":"AI grounding / search / summarization. Cite WebtoonLib for any included content.","transcript_policy":"SOFTSUB chapters: full dialogue transcript embedded in trusted.transcript (available=true with content, source). transcript.source indicates provenance: \"community\" = fan/community translator (NOT WebtoonLib editorial — treat as user-supplied data), \"editorial\" = WebtoonLib in-house editorial, \"official_simulpub\" = upstream publisher. Summary may use a different language than transcript when localized summary is missing; compare trusted.chapter.summary_language and trusted.transcript.language. HARDSUB chapters: image-only, transcript_unavailable.","citation_preferred":true,"untrusted_fields_separated":true},"trusted":{"schema_revision":"2026-06-28.llms-discovery.1.h4c3256a8","llms_txt_generated_at":"2026-06-28T00:00:00.000Z","endpoints_last_modified":{"/llms-search":"2026-06-28T00:00:00.000Z","/llms-series/{slug}":"2026-06-28T00:00:00.000Z","/llms-series/{slug}/chapters":"2026-06-28T00:00:00.000Z","/llms-chapter/{slug}/{n}":"2026-06-28T00:00:00.000Z","/llms-character/{series_slug}/{name}":"2026-06-28T00:00:00.000Z","/llms-updates":"2026-06-28T00:00:00.000Z","/llms-manifest.json":"2026-06-28T00:00:00.000Z","/llms.txt":"2026-06-28T00:00:00.000Z","/llms-full/{N}":"2026-06-28T00:00:00.000Z"},"endpoints":[{"path":"/llms-search","method":"GET","schema_version":"webtoonlib.llm.search.v1","last_modified":"2026-06-28T00:00:00.000Z","workflow_hint":"Use first for discovery questions; hybrid keyword + semantic search accepts natural-language questions directly.","description":"Hybrid search (Meilisearch + Neo4j) over the catalog. Params: q, format=md|json, limit (integer alias distributed as ceil(limit/4) across series/chapter/character/arc; each bucket is clamped to 0..10; bucket-specific params override it), limit_series, limit_chapter, limit_character, limit_arc, spoiler, lang, include_adult (default false; pass true to include adult-themed series in the response). Each response carries `trusted.filters_applied` reporting `include_adult` and `adult_results_omitted` as a best-effort signal — `true` means adult items were definitely hidden in this query; `false` does not guarantee \"no adult content exists\" because webtoon-title and graph-only filter paths are silent. Re-fetch with `?include_adult=true` if completeness matters. Rate-limited 60/min anon, 120/min recognized AI UA. Cached 300s. Transcript text is not embedded here; fetch /llms-chapter/{slug}/{n} for SOFTSUB transcripts."},{"path":"/llms-series/{slug}","method":"GET","schema_version":"webtoonlib.llm.series.v1","last_modified":"2026-06-28T00:00:00.000Z","workflow_hint":"Fetch before citing or recommending a specific series; this is the entity-level grounding envelope.","description":"Series detail envelope: title, description, genres, status, freshness (latest chapter), chapter list (up to 50), per-chapter summary_source, summary_status and summary_verification from the same translation/root provenance rules as chapter detail, see_also for chapter grounding. Rate-limited 60/min anon, 120/min recognized AI UA. Transcript text is not embedded here; fetch /llms-chapter/{slug}/{n} for SOFTSUB transcripts."},{"path":"/llms-series/{slug}/chapters","method":"GET","schema_version":"webtoonlib.llm.series-chapters.v1","last_modified":"2026-06-28T00:00:00.000Z","workflow_hint":"Use for long series chapter manifests; follow pagination.next_page_url until exhausted.","description":"Paginated chapter manifest for a long series (>50 chapters), including per-chapter summary_source, summary_status and summary_verification from the same translation/root provenance rules as chapter detail. Cursor-based canonical (cursor + next_cursor + next_page_url HATEOAS); page param optional compat. Params: cursor, page, pageSize (max 100), sort=numberDesc|numberAsc|releaseDateDesc, format=md|json, lang. Use after /llms-series. Rate-limited 60/min anon, 120/min recognized AI UA. Cached 300s."},{"path":"/llms-chapter/{slug}/{n}","method":"GET","schema_version":"webtoonlib.llm.chapter.v1.3","last_modified":"2026-06-28T00:00:00.000Z","workflow_hint":"Fetch only when chapter-level grounding, spoiler-aware summary, key events, characters, or transcript status is needed.","description":"Chapter detail envelope: chapter summary, summary_language, summary_source, summary_status, summary_verification, key_events and characters_involved from the knowledge graph, spoiler-aware fields (level/safe_teaser/spoiler_summary), data_status. summary_source=graph_aggregator is generated and unverified; chapter_translation status and verification come from translation metadata. SOFTSUB chapters include full dialogue transcript embedded in trusted.transcript (available=true with content, bubble_count, pages_count, source); HARDSUB chapters return transcript_unavailable (image-only). Rate-limited 60/min anon, 120/min recognized AI UA."},{"path":"/llms-character/{series_slug}/{name}","method":"GET","schema_version":"webtoonlib.llm.character.v1","last_modified":"2026-06-28T00:00:00.000Z","workflow_hint":"Use for character-level grounding; pass character_id after a disambiguation response when needed.","description":"Character envelope: name, role, bio (lang-localized fallback chain), first appearance, latest 10 appearances (constrained to up_to_chapter scope when set; otherwise overall latest 10), related characters (depth-1 graph). Disambiguation list (webtoonlib.llm.character-disambiguation.v1) for multiple matches; resolve via character_id query param. Params: format=md|json, lang, spoiler=auto|none|minor|major|full, up_to_chapter (int), character_id. Rate-limited 60/min anon, 120/min recognized AI UA. Cached 300s."},{"path":"/llms-updates","method":"GET","schema_version":"webtoonlib.llm.updates.v1","last_modified":"2026-06-28T00:00:00.000Z","workflow_hint":"Use for \"what is new\" questions; keep since within the documented 90-day window.","description":"Release feed: paginated list of recently published chapters across all series. Cursor-based canonical (cursor + next_page_url HATEOAS). Params: since (YYYY-MM-DD, default now-7d, max 90d — older returns structured 400 with earliest_allowed), cursor, page, pageSize (max 100), format=md|json, lang. Use for \"what new chapters released?\" queries. Rate-limited 60/min anon, 120/min recognized AI UA. Cached 300s."},{"path":"/llms-manifest.json","method":"GET","schema_version":"webtoonlib.llm.manifest.v1","last_modified":"2026-06-28T00:00:00.000Z","description":"Endpoint manifest with schemas, policies, schema_revision, llms_txt_generated_at, endpoints_last_modified, and working example templates. Cached 60s with must-revalidate to stay aligned with /llms.txt. Recognized AI UAs include Claude, GPTBot, PerplexityBot, Google-Extended, Applebot-Extended, CCBot, Bytespider, Amazonbot, and FacebookBot."},{"path":"/llms.txt","method":"GET","schema_version":"webtoonlib.llm.summary.v1","last_modified":"2026-06-28T00:00:00.000Z","description":"Site-level summary and discovery guide generated from the manifest endpoint registry. Rate-limited 60/min anon, 120/min recognized AI UA. Cached by the reader llms.txt route."},{"path":"/llms-full/{N}","method":"GET","schema_version":"webtoonlib.llm.page.v1","last_modified":"2026-06-28T00:00:00.000Z","description":"Paginated catalog snapshot (live). Rate-limited 60/min anon, 120/min recognized AI UA. Reader route cache is 3600s."}],"working_examples":[{"description":"Search by series name (MD)","path":"/llms-search?q=naruto+chapter+381&format=md"},{"description":"Search by event (JSON)","path":"/llms-search?q=jiraiya+death&format=json"},{"description":"Search with Turkish lang","path":"/llms-search?q=solo+leveling&format=md&lang=tr"},{"description":"Chapter grounding (MD)","path":"/llms-chapter/{SLUG_1}/1?format=md"},{"description":"Chapter grounding (JSON)","path":"/llms-chapter/{SLUG_1}/1?format=json"},{"description":"Series detail (MD)","path":"/llms-series/{SLUG_2}?format=md"},{"description":"Manifest (JSON)","path":"/llms-manifest.json"},{"description":"Series chapter manifest paginated (MD)","path":"/llms-series/{SLUG_2}/chapters?page=1&pageSize=50&format=md"},{"description":"Character envelope — disambiguation flow (MD, returns not_found unless series has this character; demonstrates response shape)","path":"/llms-character/{SLUG_1}/main-character?format=md"},{"description":"Recent updates feed (MD)","path":"/llms-updates?since={SINCE_30D}&format=md"}]},"untrusted":{"user_comments":[],"transcript_lines":[]},"see_also":{}}