{"openapi":"3.0.3","info":{"title":"Markdown & Code Aware Smart RAG Document Chunker API","version":"1.0.0","description":"Splits Markdown, documentation, and prose into token-budgeted RAG chunks while preserving atomic fenced code blocks and Markdown tables, injecting hierarchical heading breadcrumbs, and generating deterministic chunk IDs."},"servers":[{"url":"https://api.tinplate.dev","description":"Production Edge Gateway"}],"components":{"schemas":{"RagChunkerResponseData":{"type":"object","properties":{"chunk_count":{"type":"integer","minimum":0,"exclusiveMinimum":true},"total_chars":{"type":"integer","minimum":0},"total_estimated_tokens":{"type":"integer","minimum":0},"avg_chunk_tokens":{"type":"number","minimum":0},"preserved_code_blocks":{"type":"integer","minimum":0},"preserved_tables":{"type":"integer","minimum":0},"chunks":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":0},"chunk_id":{"type":"string"},"text":{"type":"string"},"raw_text":{"type":"string"},"heading_path":{"type":"array","items":{"type":"string"}},"block_types":{"type":"array","items":{"type":"string","enum":["heading","prose","code","table","list"]}},"char_count":{"type":"integer","minimum":0},"estimated_tokens":{"type":"integer","minimum":0},"start_line":{"type":"integer","minimum":0,"exclusiveMinimum":true},"end_line":{"type":"integer","minimum":0,"exclusiveMinimum":true}},"required":["index","chunk_id","text","raw_text","heading_path","block_types","char_count","estimated_tokens","start_line","end_line"]}}},"required":["chunk_count","total_chars","total_estimated_tokens","avg_chunk_tokens","preserved_code_blocks","preserved_tables","chunks"]},"RagChunkerRequest":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":200000,"description":"Raw Markdown, technical documentation, or prose document to split into semantic RAG chunks.","example":"# Edge Gateway Guide\n\n## Authentication\nAll API calls require a proxy secret header.\n\n```bash\ncurl -X POST https://api.tinplate.dev/v1/json-heal\n```\n\n## Rate Limits\n| Plan | Quota |\n| --- | --- |\n| Basic | 100 |\n| Pro | 10000 |"},"max_tokens":{"type":"integer","minimum":32,"maximum":8192,"default":256,"description":"Target maximum token budget per chunk (default: 256)."},"overlap_tokens":{"type":"integer","minimum":0,"maximum":1024,"default":24,"description":"Approximate trailing token overlap carried into the next chunk within the same section (default: 24)."},"prepend_breadcrumbs":{"type":"boolean","default":true,"description":"Prepend the active Markdown heading breadcrumb path (e.g. '[Context: Guide > Auth]') to each chunk's 'text' field for embedding context."},"split_on_heading_level":{"type":"integer","minimum":1,"maximum":6,"default":2,"description":"Always start a new chunk when encountering a heading at or above this level (1 = H1, 2 = H1/H2)."}},"required":["text"]},"ResponseMeta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string","format":"uuid"},"ms":{"type":"integer","minimum":0},"version":{"type":"string","example":"1.0.0"}}},"ErrorEnvelope":{"type":"object","required":["ok","error","meta"],"properties":{"ok":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_input"},"message":{"type":"string","example":"Request body failed validation"}}},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}}},"parameters":{}},"paths":{"/v1/rag-chunker":{"post":{"tags":["35_RAG_CHUNKER"],"summary":"Split Markdown or text into token-budgeted RAG chunks with heading breadcrumbs and intact code/table blocks","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RagChunkerRequest"}}}},"responses":{"200":{"description":"Token-budgeted chunks with heading paths, block types, line numbers, and deterministic chunk_id hashes","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"data":{"$ref":"#/components/schemas/RagChunkerResponseData"},"meta":{"$ref":"#/components/schemas/ResponseMeta"}},"required":["ok","data","meta"]}}}},"400":{"description":"Invalid input or malformed JSON request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"Missing or invalid authentication credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"413":{"description":"Request payload exceeds subscribed plan byte cap","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}}}}