Native PDF support
Claude can read PDFs directly when you send them as content blocks of type document. The model parses both text and visual elements (tables, figures). For most documents — contracts, papers, manuals — this is the path of least friction.
Files API is for reuse
If the same PDF feeds many turns, upload it once via the Files API and reference by file_id on every turn. Saves bandwidth and latency. The trade-off is the upload step and remembering to clean up old files.
OCR fallback for scanned PDFs
Born-digital PDFs work great natively. Heavily scanned PDFs (especially old contracts) sometimes fail text extraction — preprocess with Tesseract or a managed OCR service before sending, or use vision blocks page-by-page if the layout matters.