Skip to content

pdftables-io/javascript-sdk

Repository files navigation

pdftables-io

Official JavaScript/TypeScript SDK for the pdftables.io API — extract tables from PDFs programmatically.

npm install pdftables-io

Quick Start

import { PDFTablesClient } from "pdftables-io";

const client = new PDFTablesClient({ apiKey: "your-api-key" });

// 1. Upload a PDF
const upload = await client.upload("invoice.pdf");

// 2. Start table extraction
const job = await client.createJob(upload.upload_id);

// 3. Wait for completion
const result = await client.waitForJob(job.id);

// 4. Download results
const csvZip = await client.downloadJobCsv(result.id);

Authentication

Pass your API key directly or set the PDFTABLES_API_KEY environment variable:

// Explicit
const client = new PDFTablesClient({ apiKey: "..." });

// Via environment variable (PDFTABLES_API_KEY)
const client = new PDFTablesClient();

API Reference

Upload

Method Description
upload(file, filename?) Upload a PDF (path, Buffer, Uint8Array, or Blob)
listUploads() List all uploads

Extraction Jobs

Method Description
createJob(uploadId, { pages?, mode? }) Start extraction (auto, stream, lattice)
getJob(jobId) Get job status
waitForJob(jobId, { pollInterval?, timeout? }) Poll until complete
listJobs() List all jobs
listJobTables(jobId) List extracted tables

Downloads

Method Description
downloadTable(tableId, { format?, structure? }) Download single table (csv/json/xlsx)
downloadTablesZip(tableIds, { format?, structure? }) Download multiple tables as ZIP
downloadJobCsv(jobId) Download all job tables as CSV ZIP
downloadJobXlsx(jobId) Download all job tables as XLSX ZIP
downloadJobJson(jobId) Download all job tables as JSON ZIP

Export Structures

Method Description
listStructures() List all structures
createStructure({ name, slug, fields?, ... }) Create custom structure
getStructure(structureId) Get structure details
updateStructure(structureId, { name, slug, ... }) Update structure
deleteStructure(structureId) Delete structure

DATEV

Method Description
createDatevExport(jobId, { tableId, fiscalYear? }) Trigger DATEV export
downloadDatevExport(jobId, datevId, { format? }) Download DATEV file

Error Handling

import { PDFTablesClient, AuthenticationError, RateLimitError } from "pdftables-io";

try {
  const upload = await client.upload("invoice.pdf");
} catch (err) {
  if (err instanceof AuthenticationError) {
    console.error("Invalid API key");
  } else if (err instanceof RateLimitError) {
    console.error("Rate limit exceeded");
  }
}
Exception HTTP Status
AuthenticationError 401, 403
ValidationError 400
PaymentRequiredError 402
NotFoundError 404
RateLimitError 429
ConflictError 409
ServerError 5xx

CommonJS

const { PDFTablesClient } = require("pdftables-io");

Requirements

  • Node.js ≥ 18 (native fetch)
  • Zero runtime dependencies

License

BSD 3-Clause — see LICENSE.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors