LlamaParse
Parses PDFs and other documents into page text or Markdown at the fidelity you pick — a tracked async job, priced per page before it runs.
Use LlamaParse here without a subscription. LlamaParse sells its API only in monthly plans, per its pricing page; through NativePort you pay per call from one balance.
Where LlamaParse lands
No score or rank is published until the shared benchmark corpus covers LlamaParse — the note below carries the reason. Full method: how we measure.
The honest pitch
Reach for it when documents arrive in bulk or in awkward shapes — scanned reports, slide decks, long contracts — and you want a parser tier to match the job: `fast` for plain text, `cost_effective` for Markdown with tables intact, `agentic` and `agentic_plus` when layout matters. You name the pages up front, the price is reserved before LlamaCloud is called, and the job settles to what it actually used.
Look elsewhere when you need the text back in the same response — a parse is a job you start and poll, so a synchronous one-shot read belongs on a scrape or OCR route — or when the document sits behind a login the parser can't reach: it travels as a URL. `page_ranges` is required, so an open-ended archive in one request isn't the shape this route takes, and `fast` jobs produce no Markdown.
About LlamaParse
LlamaParse reads PDFs and other documents and hands back page text or Markdown at the fidelity you choose. Four tiers, listed in ascending cost, trade price for care: fast returns plain text, cost_effective adds Markdown with tables intact, agentic and agentic_plus bring layout analysis for the pages that resist simpler parsers. A version pins parser behaviour — latest, or a past calendar date to keep output stable across a parser update.
Through NativePort a parse is a job on two fixed routes: POST /llamaparse/v2/parse starts it and returns an id, a status and the tier; GET /llamaparse/v2/parse/{job_id} reads it until it finishes. The document travels as a URL LlamaCloud can reach — a signed, time-limited link works — and page_ranges is required, because a job that states its page bound up front is a job that can be priced up front. The gateway reserves that ceiling against your balance before LlamaCloud is called, refuses a job the balance can’t cover instead of forwarding it, and settles the reservation to the exact usage LlamaCloud reports once the job completes — a job that turns out cheaper is charged what it actually cost. Persist the id: it is the only handle to the job and to the balance held for it, and the create route is never retried on your behalf, since LlamaParse documents no idempotency key.
Jobs belong to the account that created them; a job id presented by anyone else answers the same 404 an unknown id does. Documents like these tend to be the sensitive kind, so both log records these routes write keep metadata only — request and response bodies are never stored, and neither the source URL nor a line of parsed text lands in a log; usage records keep the tier, page counts and rate.
Reaching it through NativePort
A fixed route. The gateway applies this route's documented request policy, injects the upstream credential and returns LlamaParse's response, metered against your balance at LlamaParse's real published usage price — request and response fields sit in the endpoint reference.
curl -X POST https://api.nativeport.ai/llamaparse/v2/parse \ -H "Authorization: Bearer $NATIVEPORT_API_KEY" \ -H "Content-Type: application/json" \ --data '{"source_url": "https://example.com/contract.pdf", "tier": "cost_effective", "version": "latest", "page_ranges": {"max_pages": 20}}'