Upload a Document
Documents are uploaded to a specific schema within a workspace. Each document is scoped to an environment (defaults to production).
Upload a file
Pass a Blob or File object to the SDK:
import { readFileSync } from "node:fs";
const file = new Blob([readFileSync("./invoice.pdf")], {
type: "application/pdf",
});
const document = await client.documents.create("my-workspace", "invoice", {
file,
fileName: "invoice.pdf",
});
console.log(document.id); // "doc_abc123"
console.log(document.pageCount); // 3
Upload text content
For plain text or pre-processed content, you can upload a string directly:
const document = await client.documents.create("my-workspace", "invoice", {
content: "Invoice #1234\nDate: 2024-03-15\nTotal: $1,250.00",
fileName: "invoice.txt",
});
Upload with curl
curl -X POST https://api.tracore.io/workspaces/my-workspace/schemas/invoice/documents \
-H "x-api-key: dsk_your_api_key_here" \
-F "file=@invoice.pdf"
Environment scoping
Documents are scoped to an environment. Pass the env parameter to target a specific one:
// Upload to the development environment
const document = await client.documents.create("my-workspace", "invoice", {
file,
fileName: "invoice.pdf",
env: "development",
});
# Upload to staging via curl
curl -X POST "https://api.tracore.io/workspaces/my-workspace/schemas/invoice/documents?env=staging" \
-H "x-api-key: dsk_your_api_key_here" \
-F "file=@invoice.pdf"
If omitted, the environment defaults to production.
Inline upload and extract
You can upload a document and start extraction in a single request using the extract endpoint. See Extract & Poll for details.