Decant · Documents into data
Turn a spreadsheet or PDF into JSON.
Files in. Rows out.
- reads
- CSV · XLSX · PDF with a text layer
- limits
- 5 MB a file · 20,000 rows a sheet
- keeps
- nothing: processed in memory
- costs
- free within a daily allowance
Converter
As returned · Code repeats any change
As read
header row → keys · 3 keys · #n is the position in rows[]
| Position in rows | sku | description | unit_price |
|---|---|---|---|
| #1 | A-100 | Hex bolt M8 | 0.12 |
| #2 | A-101 | Hex bolt M10 | 0.18 |
| #3 | A-110 | Flat washer M8 | 0.03 |
JSON
Columns
3 keys in csv, read from the 3 rows returned
| Keep | Key | Type | Empty | First value |
|---|---|---|---|---|
| sku | string | 0 | "A-100" | |
| description | string | 0 | "Hex bolt M8" | |
| unit_price | number | 0 | 0.12 |
Copy and download keep all 3 keys. Untick a key to leave it out.
The converter returns a number wherever nothing is lost (a code like 0012 stays text) and an empty CSV cell as "". Change numbers or empty cells above the panes.
The same call from code
curl
curl -s -X POST 'https://decant.forevenza.com/document-conversion/op/convert' \ -H 'content-type: text/csv' \ --data-binary @'prices.csv'
fetch (Node)
import { readFile } from 'node:fs/promises';
const res = await fetch("https://decant.forevenza.com/document-conversion/op/convert", {
method: 'POST',
headers: { 'content-type': "text/csv" },
body: await readFile("prices.csv"),
});
const answer = await res.json();Python
import requests
with open("prices.csv", 'rb') as f:
answer = requests.post(
"https://decant.forevenza.com/document-conversion/op/convert",
data=f,
headers={'content-type': "text/csv"},
).json()The file itself is the request body, with its content type; or send JSON {"url": "…"} for a public link. Add sheet for one sheet. Free within a daily allowance.
examplecsv1 sheet3 rowsnot truncatednot stored
Decant · three offerings
Everything Decant does
- 01
Spreadsheet and PDF to JSON
CSV, XLSX or a text PDF, from an upload or a link, as rows or page text. You are using it above.
/document-conversion/ - 02
Page to structure
One public page as title, headings, text, links and JSON-LD, robots.txt honoured.
/web-extraction/ - 03
Datasets to license
The data you need to buy or license: domain, fields, coverage, history and refresh.
/dataset-licensing/
Limits
What it won't do
- size5 MB per file; up to 20,000 rows returned per sheet.
- pdf tablesPDF tables are returned as page text, not as cell grids.
- scansNo OCR: a scanned PDF returns no text and says so.
XLSX is read as the Office Open XML spreadsheet format, standardized as ECMA-376; formulas come back as the value the file last saved, not recalculated. Each file is processed in memory and not stored.
Who runs Decant
Decant. Operated by Tempered Technologies LLC, 8 The Green STE B, Dover, DE 19901. Privacy questions and deletion requests: privacy@forevenza.com.