{"x402Version":2,"payTo":"0x0adc7adac7bbaffffbd73505711e42378c4f9f9e","resources":[{"id":3337,"slug":"3337","resource":"https://toolshed.lemon-agent.dev/convert/md-html","description":"Markdown to HTML. POST a Markdown file; the response is an HTML FRAGMENT — CommonMark plus GitHub tables, no <html> wrapper and no stylesheet. It does not sanitize: raw HTML in the input passes through, so sanitize before rendering untrusted output into a page.","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x0adc7adac7bbaffffbd73505711e42378c4f9f9e","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"4000","maxTimeoutSeconds":60},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"7zXRc8sYkhjezbwXQw43beBrKDmhTMA7mkNfqRjdZ6gw","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"4000","maxTimeoutSeconds":60}],"outputSchema":{"bazaar":{"info":{"input":{"body":"# Title\n\nSome **bold** text.\n","bodyType":"text","method":"POST","type":"http"},"output":{"example":"<h1>Title</h1>\n<p>Some <strong>bold</strong> text.</p>\n","format":"text/html","type":"text"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"description":"the raw Markdown file as the request body, up to 256 KB","maxLength":262144,"type":"string"},"bodyType":{"const":"text","type":"string"},"method":{"const":"POST","type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"additionalProperties":false,"properties":{"example":{"description":"the sample request body above, converted — what a the converted HTML file as the response body (text/html) looks like","type":"string"},"format":{"const":"text/html","description":"the converted HTML file as the response body (text/html)","type":"string"},"type":{"const":"text","type":"string"}},"required":["type","format"],"type":"object"}},"required":["input"],"type":"object"}}},"tags":["bazaar"],"sourceHost":"toolshed.lemon-agent.dev","lastUpdated":"2026-09-18T14:21:57.759Z","quality":{"calls30d":6,"uniquePayers30d":3,"lastCalledAt":"2026-09-18T14:22:22.67Z"},"liveness":{},"verified":false,"featured":false},{"id":3338,"slug":"3338","resource":"https://toolshed.lemon-agent.dev/convert/json-yaml","description":"JSON to YAML conversion","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x0adc7adac7bbaffffbd73505711e42378c4f9f9e","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","maxTimeoutSeconds":60},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"7zXRc8sYkhjezbwXQw43beBrKDmhTMA7mkNfqRjdZ6gw","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"2000","maxTimeoutSeconds":60}],"outputSchema":{"bazaar":{"info":{"input":{"body":"{\"name\":\"toolshed\",\"tags\":[\"x402\"]}","bodyType":"text","method":"POST","type":"http"},"output":{"example":"name: toolshed\ntags:\n  - x402\n","format":"application/yaml","type":"text"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"description":"the raw JSON file as the request body, up to 256 KB","maxLength":262144,"type":"string"},"bodyType":{"const":"text","type":"string"},"method":{"const":"POST","type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"additionalProperties":false,"properties":{"example":{"description":"the sample request body above, converted — what a the converted YAML file as the response body (application/yaml) looks like","type":"string"},"format":{"const":"application/yaml","description":"the converted YAML file as the response body (application/yaml)","type":"string"},"type":{"const":"text","type":"string"}},"required":["type","format"],"type":"object"}},"required":["input"],"type":"object"}}},"tags":["bazaar"],"sourceHost":"toolshed.lemon-agent.dev","lastUpdated":"2026-09-03T09:15:34.078Z","quality":{"calls30d":5,"uniquePayers30d":4,"lastCalledAt":"2026-09-03T09:15:33.697Z"},"liveness":{},"verified":false,"featured":false},{"id":3353,"slug":"3353","resource":"https://toolshed.lemon-agent.dev/convert/html-markdown","description":"HTML to Markdown conversion","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x0adc7adac7bbaffffbd73505711e42378c4f9f9e","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"6000","maxTimeoutSeconds":60},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"7zXRc8sYkhjezbwXQw43beBrKDmhTMA7mkNfqRjdZ6gw","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"6000","maxTimeoutSeconds":60}],"outputSchema":{"bazaar":{"info":{"input":{"body":"<h1>Title</h1>\n<p>Some <strong>bold</strong> text.</p>\n","bodyType":"text","method":"POST","type":"http"},"output":{"example":"# Title\n\nSome **bold** text.","format":"text/markdown","type":"text"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"description":"the raw HTML file as the request body, up to 256 KB","maxLength":262144,"type":"string"},"bodyType":{"const":"text","type":"string"},"method":{"const":"POST","type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"additionalProperties":false,"properties":{"example":{"description":"the sample request body above, converted — what a the converted Markdown file as the response body (text/markdown) looks like","type":"string"},"format":{"const":"text/markdown","description":"the converted Markdown file as the response body (text/markdown)","type":"string"},"type":{"const":"text","type":"string"}},"required":["type","format"],"type":"object"}},"required":["input"],"type":"object"}}},"tags":["bazaar"],"sourceHost":"toolshed.lemon-agent.dev","lastUpdated":"2026-09-01T15:11:51.263Z","quality":{"calls30d":5,"uniquePayers30d":4,"lastCalledAt":"2026-09-01T15:11:51.109Z"},"liveness":{},"verified":false,"featured":false},{"id":3355,"slug":"3355","resource":"https://toolshed.lemon-agent.dev/convert/csv-json","description":"CSV to JSON conversion","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x0adc7adac7bbaffffbd73505711e42378c4f9f9e","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","maxTimeoutSeconds":60},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"7zXRc8sYkhjezbwXQw43beBrKDmhTMA7mkNfqRjdZ6gw","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"2000","maxTimeoutSeconds":60}],"outputSchema":{"bazaar":{"info":{"input":{"body":"name,tags\ntoolshed,x402\n","bodyType":"text","method":"POST","type":"http"},"output":{"example":"[\n  {\n    \"name\": \"toolshed\",\n    \"tags\": \"x402\"\n  }\n]\n","format":"application/json","type":"text"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"description":"the raw CSV file as the request body, up to 256 KB","maxLength":262144,"type":"string"},"bodyType":{"const":"text","type":"string"},"method":{"const":"POST","type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"additionalProperties":false,"properties":{"example":{"description":"the sample request body above, converted — what a the converted JSON file as the response body (application/json) looks like","type":"string"},"format":{"const":"application/json","description":"the converted JSON file as the response body (application/json)","type":"string"},"type":{"const":"text","type":"string"}},"required":["type","format"],"type":"object"}},"required":["input"],"type":"object"}}},"tags":["bazaar"],"sourceHost":"toolshed.lemon-agent.dev","lastUpdated":"2026-09-01T15:11:39.613Z","quality":{"calls30d":5,"uniquePayers30d":4,"lastCalledAt":"2026-09-01T15:11:39.261Z"},"liveness":{},"verified":false,"featured":false},{"id":3354,"slug":"3354","resource":"https://toolshed.lemon-agent.dev/convert/yaml-json","description":"YAML to JSON conversion","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x0adc7adac7bbaffffbd73505711e42378c4f9f9e","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","maxTimeoutSeconds":60},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"7zXRc8sYkhjezbwXQw43beBrKDmhTMA7mkNfqRjdZ6gw","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"2000","maxTimeoutSeconds":60}],"outputSchema":{"bazaar":{"info":{"input":{"body":"name: toolshed\ntags:\n  - x402\n","bodyType":"text","method":"POST","type":"http"},"output":{"example":"{\n  \"name\": \"toolshed\",\n  \"tags\": [\n    \"x402\"\n  ]\n}\n","format":"application/json","type":"text"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"description":"the raw YAML file as the request body, up to 256 KB","maxLength":262144,"type":"string"},"bodyType":{"const":"text","type":"string"},"method":{"const":"POST","type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"additionalProperties":false,"properties":{"example":{"description":"the sample request body above, converted — what a the converted JSON file as the response body (application/json) looks like","type":"string"},"format":{"const":"application/json","description":"the converted JSON file as the response body (application/json)","type":"string"},"type":{"const":"text","type":"string"}},"required":["type","format"],"type":"object"}},"required":["input"],"type":"object"}}},"tags":["bazaar"],"sourceHost":"toolshed.lemon-agent.dev","lastUpdated":"2026-09-01T15:11:43.367Z","quality":{"calls30d":2,"uniquePayers30d":2,"lastCalledAt":"2026-09-01T15:11:42.951Z"},"liveness":{},"verified":false,"featured":false},{"id":3339,"slug":"3339","resource":"https://toolshed.lemon-agent.dev/convert/html-json","description":"HTML tables to JSON. POST an HTML page; the response is {\"tables\": [{caption, columns, rows}]} — every <table> read into row objects keyed by its header cells, in the same shape whether the page has one table or nine. Values stay strings with whitespace collapsed. colspan and rowspan are NOT expanded, and a page with no table is refused.","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x0adc7adac7bbaffffbd73505711e42378c4f9f9e","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"6000","maxTimeoutSeconds":60},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"7zXRc8sYkhjezbwXQw43beBrKDmhTMA7mkNfqRjdZ6gw","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"6000","maxTimeoutSeconds":60}],"outputSchema":{"bazaar":{"info":{"input":{"body":"<table><tr><th>name</th><th>qty</th></tr><tr><td>lemon</td><td>3</td></tr></table>","bodyType":"text","method":"POST","type":"http"},"output":{"example":"{\n  \"tables\": [\n    {\n      \"caption\": null,\n      \"columns\": [\n        \"name\",\n        \"qty\"\n      ],\n      \"rows\": [\n        {\n          \"name\": \"lemon\",\n          \"qty\": \"3\"\n        }\n      ]\n    }\n  ]\n}\n","format":"application/json","type":"text"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"description":"the raw HTML file as the request body, up to 256 KB","maxLength":262144,"type":"string"},"bodyType":{"const":"text","type":"string"},"method":{"const":"POST","type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"additionalProperties":false,"properties":{"example":{"description":"the sample request body above, converted — what a the converted JSON file as the response body (application/json) looks like","type":"string"},"format":{"const":"application/json","description":"the converted JSON file as the response body (application/json)","type":"string"},"type":{"const":"text","type":"string"}},"required":["type","format"],"type":"object"}},"required":["input"],"type":"object"}}},"tags":["bazaar"],"sourceHost":"toolshed.lemon-agent.dev","lastUpdated":"2026-09-02T14:57:12.142Z","quality":{"calls30d":1,"uniquePayers30d":1,"lastCalledAt":"2026-09-02T14:57:11.99Z"},"liveness":{},"verified":false,"featured":false},{"id":3340,"slug":"3340","resource":"https://toolshed.lemon-agent.dev/convert/html-text","description":"HTML to readable plain text. POST an HTML file; the response is its prose. The page is parsed with a real DOM, so script, style, noscript, nav, header, footer and aside are dropped WITH their contents, block elements become paragraph breaks, and <pre> is preserved verbatim. Links become their text, not their URL.","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x0adc7adac7bbaffffbd73505711e42378c4f9f9e","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"6000","maxTimeoutSeconds":60},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"7zXRc8sYkhjezbwXQw43beBrKDmhTMA7mkNfqRjdZ6gw","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"6000","maxTimeoutSeconds":60}],"outputSchema":{"bazaar":{"info":{"input":{"body":"<h1>Title</h1>\n<p>Some text.</p>\n","bodyType":"text","method":"POST","type":"http"},"output":{"example":"Title\n\nSome text.\n","format":"text/plain","type":"text"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"description":"the raw HTML file as the request body, up to 256 KB","maxLength":262144,"type":"string"},"bodyType":{"const":"text","type":"string"},"method":{"const":"POST","type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"additionalProperties":false,"properties":{"example":{"description":"the sample request body above, converted — what a the converted plain text file as the response body (text/plain) looks like","type":"string"},"format":{"const":"text/plain","description":"the converted plain text file as the response body (text/plain)","type":"string"},"type":{"const":"text","type":"string"}},"required":["type","format"],"type":"object"}},"required":["input"],"type":"object"}}},"tags":["bazaar"],"sourceHost":"toolshed.lemon-agent.dev","lastUpdated":"2026-09-02T14:57:11.711Z","quality":{"calls30d":1,"uniquePayers30d":1,"lastCalledAt":"2026-09-02T14:57:11.565Z"},"liveness":{},"verified":false,"featured":false},{"id":3341,"slug":"3341","resource":"https://toolshed.lemon-agent.dev/convert/json-toml","description":"JSON to TOML. POST a JSON object; the response is a TOML document. The root must be an object, because TOML's root is a table, and a null anywhere in the document is refused — TOML has no spelling for one. Both are errors rather than a file that quietly parses to something you did not write.","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x0adc7adac7bbaffffbd73505711e42378c4f9f9e","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"4000","maxTimeoutSeconds":60},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"7zXRc8sYkhjezbwXQw43beBrKDmhTMA7mkNfqRjdZ6gw","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"4000","maxTimeoutSeconds":60}],"outputSchema":{"bazaar":{"info":{"input":{"body":"{\"title\":\"toolshed\",\"owner\":{\"name\":\"lemon\"}}","bodyType":"text","method":"POST","type":"http"},"output":{"example":"title = \"toolshed\"\n\n[owner]\nname = \"lemon\"\n\n","format":"application/toml","type":"text"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"description":"the raw JSON file as the request body, up to 256 KB","maxLength":262144,"type":"string"},"bodyType":{"const":"text","type":"string"},"method":{"const":"POST","type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"additionalProperties":false,"properties":{"example":{"description":"the sample request body above, converted — what a the converted TOML file as the response body (application/toml) looks like","type":"string"},"format":{"const":"application/toml","description":"the converted TOML file as the response body (application/toml)","type":"string"},"type":{"const":"text","type":"string"}},"required":["type","format"],"type":"object"}},"required":["input"],"type":"object"}}},"tags":["bazaar"],"sourceHost":"toolshed.lemon-agent.dev","lastUpdated":"2026-09-02T14:57:11.646Z","quality":{"calls30d":1,"uniquePayers30d":1,"lastCalledAt":"2026-09-02T14:57:11.515Z"},"liveness":{},"verified":false,"featured":false},{"id":3342,"slug":"3342","resource":"https://toolshed.lemon-agent.dev/convert/xml-json","description":"XML to JSON. POST an XML document; the response is JSON in fast-xml-parser's convention — attributes prefixed @_, text content under #text, and repeated sibling elements collapsed into an array (so an element appearing once is an object and twice is an array). Values stay strings; no type guessing. A document carrying a <!DOCTYPE> is refused, because internal entities are an expansion attack.","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x0adc7adac7bbaffffbd73505711e42378c4f9f9e","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"6000","maxTimeoutSeconds":60},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"7zXRc8sYkhjezbwXQw43beBrKDmhTMA7mkNfqRjdZ6gw","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"6000","maxTimeoutSeconds":60}],"outputSchema":{"bazaar":{"info":{"input":{"body":"<shed><tool id=\"1\">lemon</tool></shed>","bodyType":"text","method":"POST","type":"http"},"output":{"example":"{\n  \"shed\": {\n    \"tool\": {\n      \"#text\": \"lemon\",\n      \"@_id\": \"1\"\n    }\n  }\n}\n","format":"application/json","type":"text"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"description":"the raw XML file as the request body, up to 256 KB","maxLength":262144,"type":"string"},"bodyType":{"const":"text","type":"string"},"method":{"const":"POST","type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"additionalProperties":false,"properties":{"example":{"description":"the sample request body above, converted — what a the converted JSON file as the response body (application/json) looks like","type":"string"},"format":{"const":"application/json","description":"the converted JSON file as the response body (application/json)","type":"string"},"type":{"const":"text","type":"string"}},"required":["type","format"],"type":"object"}},"required":["input"],"type":"object"}}},"tags":["bazaar"],"sourceHost":"toolshed.lemon-agent.dev","lastUpdated":"2026-09-02T14:57:11.271Z","quality":{"calls30d":1,"uniquePayers30d":1,"lastCalledAt":"2026-09-02T14:57:11.136Z"},"liveness":{},"verified":false,"featured":false},{"id":3343,"slug":"3343","resource":"https://toolshed.lemon-agent.dev/convert/toml-json","description":"TOML to JSON. POST a TOML document; the response is pretty-printed JSON. A conforming parser handles the parts hand-rolled readers get wrong — dotted keys, arrays of tables, offset date-times. Dates become ISO-8601 strings and comments are dropped, because JSON has neither; this is a read path, not a round trip.","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x0adc7adac7bbaffffbd73505711e42378c4f9f9e","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"4000","maxTimeoutSeconds":60},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"7zXRc8sYkhjezbwXQw43beBrKDmhTMA7mkNfqRjdZ6gw","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"4000","maxTimeoutSeconds":60}],"outputSchema":{"bazaar":{"info":{"input":{"body":"title = \"toolshed\"\n\n[owner]\nname = \"lemon\"\n","bodyType":"text","method":"POST","type":"http"},"output":{"example":"{\n  \"title\": \"toolshed\",\n  \"owner\": {\n    \"name\": \"lemon\"\n  }\n}\n","format":"application/json","type":"text"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"description":"the raw TOML file as the request body, up to 256 KB","maxLength":262144,"type":"string"},"bodyType":{"const":"text","type":"string"},"method":{"const":"POST","type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"additionalProperties":false,"properties":{"example":{"description":"the sample request body above, converted — what a the converted JSON file as the response body (application/json) looks like","type":"string"},"format":{"const":"application/json","description":"the converted JSON file as the response body (application/json)","type":"string"},"type":{"const":"text","type":"string"}},"required":["type","format"],"type":"object"}},"required":["input"],"type":"object"}}},"tags":["bazaar"],"sourceHost":"toolshed.lemon-agent.dev","lastUpdated":"2026-09-02T14:57:10.781Z","quality":{"calls30d":1,"uniquePayers30d":1,"lastCalledAt":"2026-09-02T14:57:10.661Z"},"liveness":{},"verified":false,"featured":false},{"id":3344,"slug":"3344","resource":"https://toolshed.lemon-agent.dev/convert/markdown-json","description":"Markdown to a JSON token tree. POST Markdown; the response is {\"toc\": [{depth, text}], \"tokens\": [...]} — the marked lexer's token stream plus a table of contents derived from the real headings. The document's structure without rendering it to HTML and parsing that back. A bold line pretending to be a heading was never structure and is not in the toc.","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x0adc7adac7bbaffffbd73505711e42378c4f9f9e","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"4000","maxTimeoutSeconds":60},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"7zXRc8sYkhjezbwXQw43beBrKDmhTMA7mkNfqRjdZ6gw","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"4000","maxTimeoutSeconds":60}],"outputSchema":{"bazaar":{"info":{"input":{"body":"# Title\n\nSome text.\n","bodyType":"text","method":"POST","type":"http"},"output":{"example":"{\n  \"toc\": [\n    {\n      \"depth\": 1,\n      \"text\": \"Title\"\n    }\n  ],\n  \"tokens\": [\n    {\n      \"type\": \"heading\",\n      \"raw\": \"# Title\",\n      \"depth\": 1,\n      \"text\": \"Title\",\n      \"tokens\": [\n        {\n          \"type\": \"text\",\n          \"raw\": \"Title\",\n          \"text\": \"Title\",\n          \"escaped\": false\n        }\n      ]\n    },\n    {\n      \"type\": \"space\",\n      \"raw\": \"\\n\\n\"\n    },\n    {\n      \"type\": \"paragraph\",\n      \"raw\": \"Some text.\\n\",\n      \"text\": \"Some text.\",\n      \"tokens\": [\n        {\n          \"type\": \"text\",\n          \"raw\": \"Some text.\",\n          \"text\": \"Some text.\",\n          \"escaped\": false\n        }\n      ]\n    }\n  ]\n}\n","format":"application/json","type":"text"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"description":"the raw Markdown file as the request body, up to 256 KB","maxLength":262144,"type":"string"},"bodyType":{"const":"text","type":"string"},"method":{"const":"POST","type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"additionalProperties":false,"properties":{"example":{"description":"the sample request body above, converted — what a the converted JSON file as the response body (application/json) looks like","type":"string"},"format":{"const":"application/json","description":"the converted JSON file as the response body (application/json)","type":"string"},"type":{"const":"text","type":"string"}},"required":["type","format"],"type":"object"}},"required":["input"],"type":"object"}}},"tags":["bazaar"],"sourceHost":"toolshed.lemon-agent.dev","lastUpdated":"2026-09-02T14:57:10.369Z","quality":{"calls30d":1,"uniquePayers30d":1,"lastCalledAt":"2026-09-02T14:57:10.194Z"},"liveness":{},"verified":false,"featured":false},{"id":3345,"slug":"3345","resource":"https://toolshed.lemon-agent.dev/convert/frontmatter-json","description":"Markdown frontmatter to JSON. POST a Markdown file that begins with a --- fence; the response is {\"data\": the parsed YAML frontmatter, \"content\": the body returned byte for byte}. A file with no opening fence is refused rather than reported as having no metadata, because a mistyped fence should not look like an empty one.","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x0adc7adac7bbaffffbd73505711e42378c4f9f9e","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"4000","maxTimeoutSeconds":60},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"7zXRc8sYkhjezbwXQw43beBrKDmhTMA7mkNfqRjdZ6gw","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"4000","maxTimeoutSeconds":60}],"outputSchema":{"bazaar":{"info":{"input":{"body":"---\ntitle: Toolshed\n---\n\nBody text.\n","bodyType":"text","method":"POST","type":"http"},"output":{"example":"{\n  \"data\": {\n    \"title\": \"Toolshed\"\n  },\n  \"content\": \"\\nBody text.\\n\"\n}\n","format":"application/json","type":"text"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"description":"the raw Markdown with YAML frontmatter file as the request body, up to 256 KB","maxLength":262144,"type":"string"},"bodyType":{"const":"text","type":"string"},"method":{"const":"POST","type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"additionalProperties":false,"properties":{"example":{"description":"the sample request body above, converted — what a the converted JSON file as the response body (application/json) looks like","type":"string"},"format":{"const":"application/json","description":"the converted JSON file as the response body (application/json)","type":"string"},"type":{"const":"text","type":"string"}},"required":["type","format"],"type":"object"}},"required":["input"],"type":"object"}}},"tags":["bazaar"],"sourceHost":"toolshed.lemon-agent.dev","lastUpdated":"2026-09-02T14:57:10.037Z","quality":{"calls30d":1,"uniquePayers30d":1,"lastCalledAt":"2026-09-02T14:57:09.877Z"},"liveness":{},"verified":false,"featured":false},{"id":3346,"slug":"3346","resource":"https://toolshed.lemon-agent.dev/convert/vtt-srt","description":"WebVTT to SubRip. POST a .vtt file; the response is an .srt file. Cues are renumbered from 1 and hour-less timestamps are expanded to hh:mm:ss,mmm. The WEBVTT header, NOTE/STYLE/REGION blocks and per-cue settings are dropped, because SubRip cannot express them. Input that does not begin with WEBVTT is refused.","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x0adc7adac7bbaffffbd73505711e42378c4f9f9e","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","maxTimeoutSeconds":60},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"7zXRc8sYkhjezbwXQw43beBrKDmhTMA7mkNfqRjdZ6gw","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"2000","maxTimeoutSeconds":60}],"outputSchema":{"bazaar":{"info":{"input":{"body":"WEBVTT\n\n00:00:01.000 --> 00:00:02.000\nHello.\n","bodyType":"text","method":"POST","type":"http"},"output":{"example":"1\n00:00:01,000 --> 00:00:02,000\nHello.\n","format":"application/x-subrip","type":"text"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"description":"the raw WebVTT file as the request body, up to 256 KB","maxLength":262144,"type":"string"},"bodyType":{"const":"text","type":"string"},"method":{"const":"POST","type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"additionalProperties":false,"properties":{"example":{"description":"the sample request body above, converted — what a the converted SubRip file as the response body (application/x-subrip) looks like","type":"string"},"format":{"const":"application/x-subrip","description":"the converted SubRip file as the response body (application/x-subrip)","type":"string"},"type":{"const":"text","type":"string"}},"required":["type","format"],"type":"object"}},"required":["input"],"type":"object"}}},"tags":["bazaar"],"sourceHost":"toolshed.lemon-agent.dev","lastUpdated":"2026-09-02T14:57:09.74Z","quality":{"calls30d":1,"uniquePayers30d":1,"lastCalledAt":"2026-09-02T14:57:09.602Z"},"liveness":{},"verified":false,"featured":false},{"id":3347,"slug":"3347","resource":"https://toolshed.lemon-agent.dev/convert/srt-vtt","description":"SubRip to WebVTT. POST an .srt file; the response is a .vtt file — a WEBVTT header and timestamps written with a decimal point instead of a comma. Cue numbers are kept as WebVTT cue identifiers and caption text is passed through untouched, so a comma inside a line of dialogue is not mistaken for a timestamp separator.","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x0adc7adac7bbaffffbd73505711e42378c4f9f9e","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","maxTimeoutSeconds":60},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"7zXRc8sYkhjezbwXQw43beBrKDmhTMA7mkNfqRjdZ6gw","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"2000","maxTimeoutSeconds":60}],"outputSchema":{"bazaar":{"info":{"input":{"body":"1\n00:00:01,000 --> 00:00:02,000\nHello.\n","bodyType":"text","method":"POST","type":"http"},"output":{"example":"WEBVTT\n\n1\n00:00:01.000 --> 00:00:02.000\nHello.\n","format":"text/vtt","type":"text"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"description":"the raw SubRip file as the request body, up to 256 KB","maxLength":262144,"type":"string"},"bodyType":{"const":"text","type":"string"},"method":{"const":"POST","type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"additionalProperties":false,"properties":{"example":{"description":"the sample request body above, converted — what a the converted WebVTT file as the response body (text/vtt) looks like","type":"string"},"format":{"const":"text/vtt","description":"the converted WebVTT file as the response body (text/vtt)","type":"string"},"type":{"const":"text","type":"string"}},"required":["type","format"],"type":"object"}},"required":["input"],"type":"object"}}},"tags":["bazaar"],"sourceHost":"toolshed.lemon-agent.dev","lastUpdated":"2026-09-02T14:57:09.634Z","quality":{"calls30d":1,"uniquePayers30d":1,"lastCalledAt":"2026-09-02T14:57:09.349Z"},"liveness":{},"verified":false,"featured":false},{"id":3348,"slug":"3348","resource":"https://toolshed.lemon-agent.dev/convert/ndjson-json","description":"NDJSON to a JSON array. POST newline-delimited JSON; the response is a pretty-printed array of the parsed values. Blank lines are skipped and a line that does not parse is refused naming the 1-based line number — which is the reason to run a parser over a log file instead of wrapping it in brackets.","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x0adc7adac7bbaffffbd73505711e42378c4f9f9e","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","maxTimeoutSeconds":60},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"7zXRc8sYkhjezbwXQw43beBrKDmhTMA7mkNfqRjdZ6gw","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"2000","maxTimeoutSeconds":60}],"outputSchema":{"bazaar":{"info":{"input":{"body":"{\"a\":1}\n{\"a\":2}\n","bodyType":"text","method":"POST","type":"http"},"output":{"example":"[\n  {\n    \"a\": 1\n  },\n  {\n    \"a\": 2\n  }\n]\n","format":"application/json","type":"text"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"description":"the raw NDJSON file as the request body, up to 256 KB","maxLength":262144,"type":"string"},"bodyType":{"const":"text","type":"string"},"method":{"const":"POST","type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"additionalProperties":false,"properties":{"example":{"description":"the sample request body above, converted — what a the converted JSON file as the response body (application/json) looks like","type":"string"},"format":{"const":"application/json","description":"the converted JSON file as the response body (application/json)","type":"string"},"type":{"const":"text","type":"string"}},"required":["type","format"],"type":"object"}},"required":["input"],"type":"object"}}},"tags":["bazaar"],"sourceHost":"toolshed.lemon-agent.dev","lastUpdated":"2026-09-02T14:57:09.602Z","quality":{"calls30d":1,"uniquePayers30d":1,"lastCalledAt":"2026-09-02T14:57:09.272Z"},"liveness":{},"verified":false,"featured":false},{"id":3349,"slug":"3349","resource":"https://toolshed.lemon-agent.dev/convert/json-ndjson","description":"JSON array to NDJSON. POST a JSON array; the response is one compact JSON value per line — the shape streaming loaders, log shippers and jq pipelines take. A non-array input is refused rather than emitted as a stream of one, because that is the mistake this endpoint exists to catch.","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x0adc7adac7bbaffffbd73505711e42378c4f9f9e","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","maxTimeoutSeconds":60},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"7zXRc8sYkhjezbwXQw43beBrKDmhTMA7mkNfqRjdZ6gw","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"2000","maxTimeoutSeconds":60}],"outputSchema":{"bazaar":{"info":{"input":{"body":"[{\"a\":1},{\"a\":2}]","bodyType":"text","method":"POST","type":"http"},"output":{"example":"{\"a\":1}\n{\"a\":2}\n","format":"application/x-ndjson","type":"text"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"description":"the raw JSON file as the request body, up to 256 KB","maxLength":262144,"type":"string"},"bodyType":{"const":"text","type":"string"},"method":{"const":"POST","type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"additionalProperties":false,"properties":{"example":{"description":"the sample request body above, converted — what a the converted NDJSON file as the response body (application/x-ndjson) looks like","type":"string"},"format":{"const":"application/x-ndjson","description":"the converted NDJSON file as the response body (application/x-ndjson)","type":"string"},"type":{"const":"text","type":"string"}},"required":["type","format"],"type":"object"}},"required":["input"],"type":"object"}}},"tags":["bazaar"],"sourceHost":"toolshed.lemon-agent.dev","lastUpdated":"2026-09-02T14:57:08.927Z","quality":{"calls30d":1,"uniquePayers30d":1,"lastCalledAt":"2026-09-02T14:57:08.687Z"},"liveness":{},"verified":false,"featured":false},{"id":3350,"slug":"3350","resource":"https://toolshed.lemon-agent.dev/convert/csv-yaml","description":"CSV to YAML. POST a CSV file with a header row; the response is block-style YAML — a list of maps, one per data row. Parsed to RFC 4180, so quoted commas and embedded newlines survive. Every value stays a string: no type guessing, which is what keeps leading zeros and long ids intact.","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x0adc7adac7bbaffffbd73505711e42378c4f9f9e","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","maxTimeoutSeconds":60},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"7zXRc8sYkhjezbwXQw43beBrKDmhTMA7mkNfqRjdZ6gw","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"2000","maxTimeoutSeconds":60}],"outputSchema":{"bazaar":{"info":{"input":{"body":"name,qty\nlemon,3\n","bodyType":"text","method":"POST","type":"http"},"output":{"example":"- name: lemon\n  qty: '3'\n","format":"application/yaml","type":"text"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"description":"the raw CSV file as the request body, up to 256 KB","maxLength":262144,"type":"string"},"bodyType":{"const":"text","type":"string"},"method":{"const":"POST","type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"additionalProperties":false,"properties":{"example":{"description":"the sample request body above, converted — what a the converted YAML file as the response body (application/yaml) looks like","type":"string"},"format":{"const":"application/yaml","description":"the converted YAML file as the response body (application/yaml)","type":"string"},"type":{"const":"text","type":"string"}},"required":["type","format"],"type":"object"}},"required":["input"],"type":"object"}}},"tags":["bazaar"],"sourceHost":"toolshed.lemon-agent.dev","lastUpdated":"2026-09-02T14:57:08.528Z","quality":{"calls30d":1,"uniquePayers30d":1,"lastCalledAt":"2026-09-02T14:57:08.048Z"},"liveness":{},"verified":false,"featured":false},{"id":3351,"slug":"3351","resource":"https://toolshed.lemon-agent.dev/convert/yaml-csv","description":"YAML to CSV. POST a YAML list of maps; the response is a CSV file with a header row. The first document of a stream is used and anchors are resolved. One level of nesting flattens to dotted columns; any other top-level shape is refused rather than flattened into a plausible-looking sheet.","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x0adc7adac7bbaffffbd73505711e42378c4f9f9e","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","maxTimeoutSeconds":60},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"7zXRc8sYkhjezbwXQw43beBrKDmhTMA7mkNfqRjdZ6gw","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"2000","maxTimeoutSeconds":60}],"outputSchema":{"bazaar":{"info":{"input":{"body":"- name: lemon\n  qty: 3\n","bodyType":"text","method":"POST","type":"http"},"output":{"example":"name,qty\nlemon,3\n","format":"text/csv","type":"text"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"description":"the raw YAML file as the request body, up to 256 KB","maxLength":262144,"type":"string"},"bodyType":{"const":"text","type":"string"},"method":{"const":"POST","type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"additionalProperties":false,"properties":{"example":{"description":"the sample request body above, converted — what a the converted CSV file as the response body (text/csv) looks like","type":"string"},"format":{"const":"text/csv","description":"the converted CSV file as the response body (text/csv)","type":"string"},"type":{"const":"text","type":"string"}},"required":["type","format"],"type":"object"}},"required":["input"],"type":"object"}}},"tags":["bazaar"],"sourceHost":"toolshed.lemon-agent.dev","lastUpdated":"2026-09-02T14:57:08.463Z","quality":{"calls30d":1,"uniquePayers30d":1,"lastCalledAt":"2026-09-02T14:57:08.182Z"},"liveness":{},"verified":false,"featured":false},{"id":3352,"slug":"3352","resource":"https://toolshed.lemon-agent.dev/convert/json-csv","description":"JSON to CSV. POST an array of objects; the response is a CSV file whose header row is the union of every record's keys in first-seen order, so a record missing a key gets an empty cell instead of a shifted row. One level of nesting flattens to dotted columns (user.id); deeper values and arrays are written as compact JSON in the cell. RFC 4180 quoting.","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x0adc7adac7bbaffffbd73505711e42378c4f9f9e","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","maxTimeoutSeconds":60},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"7zXRc8sYkhjezbwXQw43beBrKDmhTMA7mkNfqRjdZ6gw","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"2000","maxTimeoutSeconds":60}],"outputSchema":{"bazaar":{"info":{"input":{"body":"[{\"name\":\"lemon\",\"qty\":3},{\"name\":\"lime\",\"qty\":4}]","bodyType":"text","method":"POST","type":"http"},"output":{"example":"name,qty\nlemon,3\nlime,4\n","format":"text/csv","type":"text"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"description":"the raw JSON file as the request body, up to 256 KB","maxLength":262144,"type":"string"},"bodyType":{"const":"text","type":"string"},"method":{"const":"POST","type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"additionalProperties":false,"properties":{"example":{"description":"the sample request body above, converted — what a the converted CSV file as the response body (text/csv) looks like","type":"string"},"format":{"const":"text/csv","description":"the converted CSV file as the response body (text/csv)","type":"string"},"type":{"const":"text","type":"string"}},"required":["type","format"],"type":"object"}},"required":["input"],"type":"object"}}},"tags":["bazaar"],"sourceHost":"toolshed.lemon-agent.dev","lastUpdated":"2026-09-02T14:56:52.762Z","quality":{"calls30d":1,"uniquePayers30d":1,"lastCalledAt":"2026-09-02T14:56:52.291Z"},"liveness":{},"verified":false,"featured":false}]}