{"uid":"cap_2xQky7iUt7p_UPRO4O-zo","slug":"netintel-pdf-parse-ccb83200","name":"NetIntel PDF Parse","description":"Parse a PDF to text and Markdown: send a PDF url or base64 file, get clean Markdown with paragraphs rebuilt from the text layer, per-page character offsets for citing pages, metadata (title, author, dates, page count) and the page numbers that are scanned images with no text layer. Up to 50 pages per call. Text layer only, no OCR: an image-only PDF returns an uncharged 422.","url":"https://netintel.dev/pdf/parse?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"url":{"type":"string","description":"Public URL of the PDF (up to 10 MB)"},"pages":{"type":"string","description":"Pages to parse, 1-based, e.g. \"1-3,7\" (default: the first 50)"},"max_chars":{"type":"number","description":"Cap on the markdown length (default 100000)"},"file_base64":{"type":"string","description":"The PDF as base64 or a data: URL (up to ~700 KB). Send url OR file_base64."}}},"responseSchema":{"type":"json","example":{"pages":[{"page":1,"char_end":507,"has_text":true,"char_start":0,"word_count":76},{"page":2,"char_end":581,"has_text":false,"char_start":509,"word_count":0},{"page":3,"char_end":730,"has_text":true,"char_start":583,"word_count":19}],"source":{"url":"https://netintel.dev/samples/pdf-parse-sample.pdf","type":"url","bytes":2236,"final_url":"https://netintel.dev/samples/pdf-parse-sample.pdf"},"findings":["scanned_pages_present"],"markdown":"<!-- page 1 -->\n\n## Quarterly Network Report\n\nThis sample shows what POST /pdf/parse returns: paragraphs rebuilt from the text layer, ...","metadata":{"title":"Quarterly Network Report (sample)","author":"NetIntel","created":"2026-10-10T00:00:00Z","has_form":false,"pdf_version":"1.4"},"truncated":false,"char_count":730,"page_count":3,"word_count":95,"pages_parsed":3,"scanned_pages":[2]}},"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_1gR_6mkfxkc21CeoHeu6T","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":"Fetches and parses a PDF from a URL or base64 input, returning full Markdown text, per-page statistics, document metadata, and scanned-page detection","exampleAgentPrompt":"Can you pull the text out of this PDF for me — https://example.com/q3-report.pdf — just pages 1-5, and give me the content as markdown along with any metadata like title and author?","exampleUseCases":[{"title":"Extract financial report data","prompt":"I need the text from this SEC filing PDF at https://example.com/10k-filing.pdf — can you parse pages 1-10 and give me the markdown content so I can analyze the financials?"},{"title":"Check if PDF is scanned or searchable","prompt":"Can you parse this PDF at https://contracts.example.com/lease-agreement.pdf and tell me if it has any scanned pages that might not have selectable text?"},{"title":"Parse uploaded document as base64","prompt":"Here's a PDF encoded in base64 — can you extract all the text from it and return it as markdown with the page-by-page word counts?"}],"resultDescription":"A JSON object containing: full Markdown representation of the parsed text (with page separators), an array of per-page objects with character ranges, word counts, and text-presence flags, a list of scanned (image-only) pages, document metadata (title, author, creation date, PDF version, form presence), source info (URL, byte size), total word/character counts, pages parsed, and a truncated flag indicating if the output was capped.","failureModes":["PDF URL not publicly accessible or returns non-200 — fetch failure error","PDF exceeds 10 MB size limit — rejected before billing","base64 payload exceeds ~700 KB — rejected before billing","Malformed or password-protected PDF — parse error returned","Both url and file_base64 supplied simultaneously — input validation rejection (not billed)","Upstream fetch timeout — server error, not billed","Invalid page range string — input validation rejection, not billed"],"whenToPreferThis":"Choose this endpoint when you need to extract readable text and metadata from a PDF document — whether publicly hosted or provided as base64 — and want structured per-page output alongside Markdown. It handles both native-text and scanned PDFs (flagging image-only pages), supports page-range selection, and charges only on successful parses. Prefer it over generic web scrapers when the target is definitively a PDF file.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-11T12:30:02.830Z","isFirstParty":false,"canonicalSlug":"netintel-pdf-parse-ccb83200"}