{"uid":"cap_j4qSwiabhVK1j8ppOR02Y","slug":"tanod-pdfpeek-set-outline-a1beb2a4","name":"Tanod pdfpeek Set Outline","description":"One MCP server and HTTP API with 193 pay-per-call tools for AI agents (security checks, chain data, finance, aviation, documents), plus free uptime and MikroTik monitoring and 130+ free browser tools. No signup; free daily tier. Operated by an AI.","url":"https://tanod.dev/v1/pdf/set-outline?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"url":{"anyOf":[{"type":"string","maxLength":2048,"minLength":1},{"type":"null"}],"default":null,"description":"Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64."},"output":{"enum":["base64","url"],"type":"string","default":"base64","description":"base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, which keeps the file out of your context window."},"outline":{"type":"array","items":{"type":"object","required":["title","page"],"properties":{"open":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Whether a bookmark with children starts expanded (default false)."},"page":{"type":"integer","maximum":2000,"minimum":1,"description":"The 1-based page the bookmark opens."},"title":{"type":"string","maxLength":300,"minLength":1,"description":"The bookmark's text (1-300 printable characters)."},"children":{"anyOf":[{"type":"array","items":{"type":"object","additionalProperties":true}},{"type":"null"}],"default":null,"description":"Child bookmarks: objects with these same fields (title, page, open, children)."}},"additionalProperties":false},"maxItems":1000,"description":"The new bookmarks as a tree of {title, page, open?, children?}: at most 1,000 in all and 8 levels deep; an empty list removes every bookmark. They replace the ones the PDF has."},"pdf_base64":{"anyOf":[{"type":"string","maxLength":13398872,"minLength":1},{"type":"null"}],"default":null,"description":"The PDF as base64 (at most 10 MB decoded per request); or use url."}}},"responseSchema":{"type":"json","example":{"file":{"name":"bookmarked.pdf","bytes":90412,"pages":6,"data_base64":"JVBERi0xLjcKJb/3... (trimmed: 120,552 base64 characters in the reply)","content_type":"application/pdf"},"replaced":false,"operation":"set-outline","input_bytes":140815,"input_pages":6,"output_bytes":90412,"outline_depth":2,"outline_items":4,"untrusted_content":true,"active_content_removed":{"xfa":1,"javascript":1}}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.005","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.005/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_Ob5b0AutXTr5TmRQvu3fq","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.005","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Replaces or removes the bookmark outline (table of contents) of a PDF, returning a sanitized PDF with the new outline applied.","exampleAgentPrompt":"Take this PDF at https://example.com/report.pdf and replace its bookmarks with a 2-level outline: 'Introduction' on page 1, 'Chapter 1: Setup' on page 3 (with children 'Installation' on page 4 and 'Configuration' on page 7), and 'Conclusion' on page 20.","exampleUseCases":[{"title":"Add chapter navigation to a report","prompt":"This PDF at https://docs.mycompany.com/annual-report.pdf has no bookmarks — can you add an outline with 'Executive Summary' on page 1, 'Financials' on page 5, 'Operations' on page 12, and 'Appendix' on page 20?"},{"title":"Strip all bookmarks from a PDF","prompt":"I need to remove every bookmark from this PDF (base64 attached) before distributing it — can you set the outline to an empty list so there are no navigation points left?"},{"title":"Rebuild nested bookmarks on a legal document","prompt":"Please replace the bookmarks on https://legal.example.com/contract.pdf with a 3-level hierarchy: 'Terms' on page 2 with children 'Definitions' on page 3 and 'Obligations' on page 6, and 'Signatures' on page 18 — expand the Terms section by default."}],"resultDescription":"Returns a JSON object containing the modified PDF as a base64-encoded string (content_type: application/pdf), along with metadata: file name, input and output byte sizes, page count, outline depth, total outline item count, whether the PDF was replaced, and a report of any active content removed (e.g. XFA forms, JavaScript). The PDF is sanitized during processing.","failureModes":["PDF URL exceeds 20 MB or is unreachable — error returned","PDF URL points to a private/internal host or IP-literal — refused","base64 payload exceeds 10 MB decoded — error returned","Outline tree exceeds 1,000 total items or 8 levels deep — validation error","Page number in bookmark exceeds actual PDF page count — error returned","Both url and pdf_base64 omitted or both provided — ambiguous input error","Malformed base64 string — decode error"],"whenToPreferThis":"Choose this endpoint when you need to programmatically set, replace, or clear the bookmark outline of an existing PDF without rebuilding the document from scratch. It is ideal when the PDF already exists (hosted or in memory) and you only need to modify its navigation structure. It also sanitizes active content (XFA, JavaScript), making it useful when clean, safe output is required alongside outline manipulation. Prefer it over full PDF-generation pipelines when the document content itself is unchanged.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-10T12:39:57.436Z","isFirstParty":false,"canonicalSlug":"tanod-pdfpeek-set-outline-a1beb2a4"}