Back to Guides

Batch API

Process multiple Korean business verifications in a single API call. Supports both JSON arrays and CSV file uploads. Results can be downloaded as CSV.

Automatic access

Batch API is automatically enabled when you subscribe to Pro or higher. No approval needed.

View pricing

Plan Limits

PlanBatch AccessMax per Request
Free-
Starter-
Pro100 per request
Premium1,000 per request
Enterprise10,000 per request

Endpoints

POST https://kynode-api.kynode.workers.dev/v1/batch/verify
POST https://kynode-api.kynode.workers.dev/v1/batch/upload
GET  https://kynode-api.kynode.workers.dev/v1/batch/status/:job_id
GET  https://kynode-api.kynode.workers.dev/v1/batch/download/:job_id

Method 1: JSON Array

Send an array of business numbers with shared start_date and owner_name.

Request

{
  "business_numbers": ["8090903407", "1234567890"],
  "start_date": "20240101",
  "owner_name": "강민구",
  "company_name": "노드메트릭스",
  "language": "en"
}

Response

{
  "batch_id": "batch_1778848601746_vomal22",
  "total": 2,
  "success": 2,
  "failed": 0,
  "processing_time_ms": 1580,
  "results": [
    {
      "business_number": "8090903407",
      "success": true,
      "data": {
        "isValid": true,
        "businessInfo": {
          "businessNumber": "8090903407",
          "companyName": "노드메트릭스",
          "companyNameOriginal": "노드메트릭스",
          "companyNameSource": "original",
          "representative": "강민구",
          "status": "Active",
          "statusCode": "01",
          "taxType": "General VAT Taxpayer",
          "taxTypeCode": "01",
          "verifiedAt": 1778848603326
        }
      }
    },
    {
      "business_number": "1234567890",
      "success": false,
      "error": "Business information does not match"
    }
  ]
}

Method 2: CSV Upload

Upload a CSV file for bulk processing. Required columns: business_number, start_date, owner_name. Optional: company_name.

CSV Format

business_number,start_date,owner_name,company_name
8090903407,20240101,강민구,노드메트릭스
1234567890,20240101,홍길동,

Download Results

After upload, use the returned job_id to download results as CSV (UTF-8 with BOM for Excel compatibility).

Example Code

cURL — JSON

curl -X POST "https://kynode-api.kynode.workers.dev/v1/batch/verify" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "business_numbers": ["8090903407", "1234567890"],
    "start_date": "20240101",
    "owner_name": "강민구",
    "company_name": "노드메트릭스",
    "language": "en"
  }'

cURL — CSV Upload

curl -X POST "https://kynode-api.kynode.workers.dev/v1/batch/upload" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: text/csv" \
  --data-binary "@companies.csv"

cURL — Download Results

curl "https://kynode-api.kynode.workers.dev/v1/batch/download/JOB_ID" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -o results.csv

JavaScript

// JSON batch
const response = await fetch('https://kynode-api.kynode.workers.dev/v1/batch/verify', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    business_numbers: ['8090903407', '1234567890'],
    start_date: '20240101',
    owner_name: '강민구',
    company_name: '노드메트릭스',
    language: 'en',
  }),
});
const result = await response.json();
console.log(`Total: ${result.total}, Success: ${result.success}, Failed: ${result.failed}`);

Best Practices

  • Stay within your plan's batch size limit per request.
  • Each business in the batch counts toward your monthly quota.
  • For very large datasets, split into multiple requests of your tier's max size.
  • Use CSV upload for bulk operations — results download as Excel-compatible CSV.
  • Individual failures are included in results — the batch itself succeeds even if some items fail.