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/sdkVerify Installation
verify.tstypescript
import { Xase } from '@xase/sdk';
console.log(Xase.VERSION);
// Output: 1.0.0Configuration
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 # msAdvanced 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;