Node.js SDK

Complete guide to installing and using the XASE Node.js SDK.

Requirements

  • Node.js 18+
  • npm, yarn, or pnpm

Installation

npm install @xase/sdk

Verify Installation

verify.tstypescript
import { Xase } from '@xase/sdk';
console.log(Xase.VERSION);
// Output: 1.0.0

Configuration

Basic Setup

basic.tstypescript
import { Xase } from '@xase/sdk';

// Option 1: pass API key
const xase = new Xase({ apiKey: 'xase_pk_...' });

// Option 2: env var (recommended)
// export XASE_API_KEY=...
const xaseEnv = new Xase();

Environment Variables

.envbash
# .env
XASE_API_KEY=xase_pk_...
XASE_BASE_URL=https://api.xase.ai  # Optional
XASE_TIMEOUT=30000  # ms

Advanced Configuration

advanced.tstypescript
const xase = new Xase({
  apiKey: 'xase_pk_...',
  baseUrl: 'https://api.xase.ai',
  timeout: 30000,
  maxRetries: 3,
  debug: false,
});

Usage

Create a Record

create-record.tstypescript
const record = await xase.records.create({
  modelId: 'credit-model-v2',
  input: {
    customerId: 'cust_123',
    income: 85000,
    debtRatio: 0.32,
    creditScore: 720,
  },
  output: {
    decision: 'APPROVED',
    creditLimit: 25000,
    interestRate: 12.5,
  },
  confidence: 0.94,
  idempotencyKey: 'req_unique_123',
});

console.log(record.id);

Record an Intervention

intervene.tstypescript
const intervention = await xase.records.intervene({
  recordId: 'rec_8a7f3b2c',
  actorEmail: 'joao.silva@company.com',
  action: 'OVERRIDE',
  newOutcome: {
    decision: 'APPROVED',
    creditLimit: 30000,
    interestRate: 11.0,
  },
  reason: 'Customer provided additional collateral',
  evidenceUrls: ['https://storage.company.com/docs/collateral_123.pdf'],
  metadata: { reviewDurationSeconds: 340, checklistCompleted: true },
});

console.log(intervention.id);

Export Evidence Bundle

export.tstypescript
const job = await xase.exports.create({
  recordId: 'rec_8a7f3b2c',
  includeRelated: true,
});
await job.download('./evidence_bundle.zip');

Express.js Integration

express.tstypescript
import express from 'express';
import { Xase } from '@xase/sdk';

const app = express();
app.use(express.json());
const xase = new Xase();

app.post('/api/credit-decision', async (req, res) => {
  const { input } = req.body;
  const aiResult = await yourAIModel.predict(input);
  const record = await xase.records.create({
    modelId: 'credit-model-v2',
    input,
    output: aiResult,
    transactionId: req.headers['x-request-id'] as string,
  });
  res.json({ ...aiResult, xaseRecordId: record.id });
});

export default app;