Ocriva Logo

Documents

เริ่มต้นใช้งาน

ติดตั้ง @ocriva/sdk และส่ง request ประมวลผลเอกสารแรกของคุณได้ภายในไม่กี่นาที

sdkinstallationquickstarttypescript

Published: 4/1/2026

เริ่มต้นใช้งาน

แพ็กเกจ @ocriva/sdk มี TypeScript client ที่มี type ครบถ้วนสำหรับ Ocriva API คู่มือนี้จะพาคุณผ่านขั้นตอนการติดตั้ง การตั้งค่าเริ่มต้น และการอัปโหลดครั้งแรก

ข้อกำหนดเบื้องต้น

  • Node.js >= 18 — SDK ใช้ native fetch API ที่มีมาตั้งแต่ Node 18+
  • TypeScript >= 5.0 (แนะนำ) — จำเป็นสำหรับการใช้งาน type definition ได้อย่างเต็มประสิทธิภาพ

การติดตั้ง

ติดตั้ง SDK ด้วย package manager ที่คุณต้องการ:

# npm
npm install @ocriva/sdk
 
# pnpm
pnpm add @ocriva/sdk
 
# yarn
yarn add @ocriva/sdk

การขอ API Key

API key สร้างได้จาก Ocriva Dashboard:

  1. เข้าสู่ระบบที่ ocriva.com
  2. ไปที่ SettingsAPI Tokens
  3. คลิก Create Token แล้วเลือก scope (organization หรือ project)
  4. คัดลอก token — token จะไม่แสดงอีกครั้ง

ดูรายละเอียดเรื่องประเภท token และ scope ได้ที่ Authentication

Quick Start

ตัวอย่างต่อไปนี้แสดง workflow ที่ใช้บ่อยที่สุด ได้แก่ สร้าง client, อัปโหลดไฟล์, poll จนกว่าการประมวลผลจะเสร็จ แล้วดาวน์โหลดผลลัพธ์

import { OcrivaClient } from '@ocriva/sdk';
import { readFileSync } from 'node:fs';
 
const client = new OcrivaClient({
  apiKey: process.env.OCRIVA_API_KEY!,
});
 
// 1. Read a local file into a Buffer
const buffer = readFileSync('./invoice.pdf');
 
// 2. Upload the file for OCR processing
const upload = await client.upload.file(buffer, {
  fileName: 'invoice.pdf',
  fileType: 'pdf',
  fileSize: String(buffer.byteLength),
  mimeType: 'application/pdf',
  projectId: 'proj_abc123',
  templateId: 'tmpl_xyz789', // optional — apply an extraction template
});
 
console.log('Upload ID:', upload.id);
console.log('Status:', upload.status); // 'uploaded' | 'processing' | ...
 
// 3. Poll processing history until the job finishes
let record = await client.processingHistory.get(upload.id, 'proj_abc123');
 
while (record.status === 'pending' || record.status === 'queued' || record.status === 'in_progress') {
  await new Promise((resolve) => setTimeout(resolve, 2000));
  record = await client.processingHistory.get(upload.id, 'proj_abc123');
}
 
if (record.status === 'completed') {
  // 4. Download the extracted result as JSON
  const blob = await client.processingHistory.getResult(record.id, {
    format: 'json',
    projectId: 'proj_abc123',
  });
 
  const text = await blob.text();
  console.log('Extracted data:', JSON.parse(text));
} else {
  console.error('Processing failed:', record.errorMessage);
}

การตั้งค่า

ส่ง configuration object ให้ OcrivaClient โดยจำเป็นต้องมีเพียง apiKey เท่านั้น ส่วน option อื่น ๆ มีค่าเริ่มต้นที่เหมาะสมแล้ว

import { OcrivaClient } from '@ocriva/sdk';
 
const client = new OcrivaClient({
  apiKey: 'ocr_live_...',       // required
  baseUrl: 'https://api.ocriva.com/v1', // default
  timeout: 30_000,              // 30 s, in milliseconds
  maxRetries: 3,                // retries on 429 and 5xx responses
});

Configuration Options

OptionTypeDefaultDescription
apiKeystringจำเป็น. Ocriva API key ของคุณ
baseUrlstringhttps://api.ocriva.com/v1Base URL ของ API
timeoutnumber30000timeout ของ request ในหน่วยมิลลิวินาที
maxRetriesnumber3จำนวนครั้งสูงสุดในการ retry เมื่อเกิดความล้มเหลวชั่วคราว (429, 5xx)

apiKey ต้องเป็น string ที่ไม่ว่างเปล่า มิฉะนั้น constructor จะ throw OcrivaError ทันที หากระบุ baseUrl ต้องเป็น URL ที่ถูกต้องและมี scheme (เช่น https://)