Documentation Index
Fetch the complete documentation index at: https://docs.okrapdf.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
This cookbook follows the minimal SDK surface:
okra.sessions.create(...)
session.wait() (optional if wait: true)
session.publish()
doc(session.id) for URL generation
Minimal example
import { createOkra, doc } from '@okrapdf/runtime';
const okra = createOkra({ apiKey: process.env.OKRA_API_KEY });
const session = await okra.sessions.create('https://example.com/report.pdf', {
wait: true,
});
await session.publish();
const d = doc(session.id);
console.log(d.thumbnail.url());
console.log(d.pages[0].image.url());
console.log(d.pages[0].markdown.url());
console.log(d.entities.tables[0].url({ format: 'csv' }));
sessions.create supports:
- URL string
- local file path (Node.js)
File / Blob
ArrayBuffer / Uint8Array
- existing document ID (attach mode)
const fromUrl = await okra.sessions.create('https://example.com/report.pdf', { wait: true });
const fromPath = await okra.sessions.create('./reports/Q3-2024.pdf', { wait: true });
const fromId = okra.sessions.from('ocr_existing_doc_id');
Private vs Public
Documents are private by default. To publish, call:
Or set upload visibility on create:
const session = await okra.sessions.create('./report.pdf', {
wait: true,
upload: { visibility: 'public' },
});
Curl equivalent
curl -X POST "https://api.okrapdf.com/document/ocr-demo/upload-url" \
-H "Authorization: Bearer $OKRA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/report.pdf","visibility":"private"}'
curl "https://api.okrapdf.com/document/ocr-demo/status" \
-H "Authorization: Bearer $OKRA_API_KEY"
curl -X POST "https://api.okrapdf.com/document/ocr-demo/publish" \
-H "Authorization: Bearer $OKRA_API_KEY"