Documents

Table extraction

Every table in a document — even scanned — as clean headers and rows, ready for your spreadsheet or DB.

POST /v1/tables$0.08/document · 8 credits, charged only on success

Send this

{
  "fileUrl": "https://…/quarterly-report.pdf"
}

Every response carries usage — the credits burned and your remaining balance. A failed call never burns credits.

Try it live against your own key in the interactive reference; every account gets 500 free credits a month, no card.

Get this back

{
  "tables": [
    {
      "title": "Revenue by region",
      "page": 4,
      "headers": [
        "Region",
        "Q1",
        "Q2"
      ],
      "rows": [
        [
          "North America",
          "$1.2M",
          "$1.4M"
        ],
        [
          "EMEA",
          "$800k",
          "$950k"
        ]
      ]
    }
  ],
  "tableCount": 3,
  "usage": {
    "credits": 8,
    "balanceRemaining": 402
  }
}

Four ways in. Same $0.08/document.

curl
curl https://api.kynth.studio/v1/tables \
  -H "Authorization: Bearer ksk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"fileUrl":"https://…/quarterly-report.pdf"}'
TypeScript
import { KynthCore } from "@kynth/api";

const kynth = new KynthCore({ apiKey: process.env.KYNTH_API_KEY! });
const result = await kynth.tables({
  "fileUrl": "https://…/quarterly-report.pdf"
});
Python
from kynth import Kynth

client = Kynth(api_key=os.environ["KYNTH_API_KEY"])
result = client.tables(
    fileUrl="https://…/quarterly-report.pdf",
)
MCP
// One-time setup in your MCP client (Claude, Cursor, …):
{ "mcpServers": { "kynth-core": {
    "command": "npx", "args": ["@kynth/api-mcp"],
    "env": { "KYNTH_API_KEY": "ksk_live_…" } } } }

// Then the agent just calls the kynth_tables tool.

More from documents